Subversion Repositories HelenOS-historic

Rev

Rev 1366 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2.  
  3. #include <arch/types.h>
  4. #include <types.h>
  5.  
  6. #ifndef __libc__FB_H__
  7. #define __libc__FB_H__
  8.  
  9. #define FB_GET_VFB 1024
  10. #define FB_PUTCHAR 1025
  11.  
  12. #define METHOD_WIDTH 16
  13. #define ITEM_WIDTH 16
  14. #define COUNT_WIDTH 16 /*Should be 8 times integer*/
  15.  
  16.  
  17. struct _fb_method
  18. {
  19.     unsigned m     : METHOD_WIDTH;
  20.     unsigned item  : ITEM_WIDTH;
  21. } __attribute__ ((packed));
  22.  
  23. union fb_method
  24. {
  25.     struct _fb_method m;
  26.     __native fill;
  27. }__attribute__ ((packed));
  28.  
  29. struct fb_call_args
  30. {
  31.     union fb_method method;
  32.     union
  33.     {
  34.         struct
  35.         {
  36.             unsigned count :COUNT_WIDTH;
  37.             char chars[3*sizeof(__native)-(COUNT_WIDTH>>3)];
  38.         }putchar __attribute__ ((packed));
  39.     }data ; //__attribute__ ((packed));
  40. }__attribute__ ((packed));
  41.  
  42. struct fb_ipc_args
  43. {
  44.     __native method;
  45.     __native arg1;
  46.     __native arg2;
  47.     __native arg3;
  48. } __attribute__ ((packed));
  49.  
  50. union fb_args
  51. {
  52.     struct fb_call_args fb_args;
  53.     struct fb_ipc_args ipc_args;
  54. }__attribute__ ((packed));
  55.  
  56. typedef union fb_args fb_args_t;
  57.  
  58. #endif
  59.  
  60.  
  61.