#include <arch/types.h>
#include <types.h>
#ifndef __libc__FB_H__
#define __libc__FB_H__
#define FB_GET_VFB 1024
#define FB_PUTCHAR 1025
#define METHOD_WIDTH 16
#define ITEM_WIDTH 16
#define COUNT_WIDTH 16 /*Should be 8 times integer*/
struct _fb_method
{
unsigned m : METHOD_WIDTH;
unsigned item : ITEM_WIDTH;
} __attribute__ ((packed));
union fb_method
{
struct _fb_method m;
__native fill;
}__attribute__ ((packed));
struct fb_call_args
{
union fb_method method;
union
{
struct
{
unsigned count :COUNT_WIDTH;
char chars[3*sizeof(__native)-(COUNT_WIDTH>>3)];
}putchar __attribute__ ((packed));
}data ; //__attribute__ ((packed));
}__attribute__ ((packed));
struct fb_ipc_args
{
__native method;
__native arg1;
__native arg2;
__native arg3;
} __attribute__ ((packed));
union fb_args
{
struct fb_call_args fb_args;
struct fb_ipc_args ipc_args;
}__attribute__ ((packed));
typedef union fb_args fb_args_t;
#endif