/[hurd]/hurd/console/display.h
ViewVC logotype

Diff of /hurd/console/display.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by marcus, Tue Jun 4 01:50:59 2002 UTC revision 1.3 by marcus, Tue Jun 4 02:16:52 2002 UTC
# Line 1  Line 1 
1  /* display.h - The interface to a display driver.  /* display.h - Interface to the display component of a virtual console.
2     Copyright (C) 2002 Free Software Foundation, Inc.     Copyright (C) 2002 Free Software Foundation, Inc.
3     Written by Marcus Brinkmann.     Written by Marcus Brinkmann.
4    
# Line 18  Line 18 
18     along with this program; if not, write to the Free Software     along with this program; if not, write to the Free Software
19     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. */     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. */
20    
21  #ifndef _DISPLAY_H_  #ifndef DISPLAY_H
22  #define _DISPLAY_H_ 1  #define DISPLAY_H
23    
 #include <errno.h>  
 #include <argp.h>  
24  #include <sys/ioctl.h>  #include <sys/ioctl.h>
25    
26    struct display;
27  struct display_ops  typedef struct display *display_t;
 {  
   /* Initialize the subsystem.  */  
   error_t (*init) (void);  
     
   /* Create a new (virtual) console display, with the system encoding  
      being ENCODING.  A failure at the first time this is called is  
      critical.  Subsequent calls might return an error if multiple  
      virtual consoles are not supported.  Further operations on this  
      console will be called with the first parameter being *HOOK,  
      which should be set to some unique identifier for this  
      console.  */  
   error_t (*create) (void **console, const char *encoding);  
   
   /* Destroy the console CONSOLE.  The caller will first activate a  
      different console as the active one.  */  
   void (*destroy) (void *console);  
   
   /* Change the active console of WHO to CONSOLE.  WHO is a unique identifier  
    for the entity requesting the activation (which can be used by the  
    display driver to group several activation requests together).  */  
   void (*activate) (void *console, int who);  
   
   /* Scroll the console CONSOLE by the desired amount.  This is only a  
      hint, the actual amount scrolled might depend on the capability  
      of the subsystem.  Negative AMOUNT scrolls back in history.  */  
   error_t (*scroll) (void *console, int amount);  
   
   /* Output LENGTH bytes starting from BUFFER in the system encoding.  
      Set BUFFER and LENGTH to the new values.  The exact semantics are  
      just as in the iconv interface.  */  
   error_t (*output) (void *console, char **buffer, size_t *length);  
   
   /* Return the current size of CONSOLE in WINSIZE.  */  
   void (*getsize) (void *console, struct winsize *size);  
 };  
 typedef struct display_ops *display_ops_t;  
   
 extern struct display_ops vga_display_ops;  
 extern struct display_ops mach_display_ops;  
   
 display_ops_t display_driver[] =  
   {  
 #if defined(__i386__)  
     &vga_display_ops,  
 #endif  
     &mach_display_ops,  
     0  
   };  
28    
29  #endif  /* _DISPLAY_H_ */  error_t display_create (display_t *r_display, const char *encoding);
30    void display_destroy (display_t display);
31    error_t display_output (display_t display, char **buffer, size_t *length);
32    void display_getsize (display_t display, struct winsize *winsize);
33    
34    #endif  /* DISPLAY_H */

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26