IOFramebufferShared.h [plain text]
#ifndef _IOKIT_IOFRAMEBUFFERSHARED_H
#define _IOKIT_IOFRAMEBUFFERSHARED_H
#include <IOKit/hidsystem/IOHIDTypes.h>
#include <IOKit/graphics/IOGraphicsTypes.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef KERNEL
#define IOFB_ARBITRARY_SIZE_CURSOR
#endif
#define IOFB_SUPPORTS_XOR_CURSOR
enum {
kIOFBNumCursorFrames = 4,
kIOFBNumCursorFramesShift = 2,
kIOFBMaxCursorDepth = 32
};
#ifndef IOFB_ARBITRARY_SIZE_CURSOR
#define CURSORWIDTH 16
#define CURSORHEIGHT 16
struct bm12Cursor {
unsigned int image[4][16];
unsigned int mask[4][16];
unsigned int save[16];
};
struct bm18Cursor {
unsigned char image[4][256];
unsigned char mask[4][256];
unsigned char save[256];
};
struct bm34Cursor {
unsigned short image[4][256];
unsigned short save[256];
};
struct bm38Cursor {
unsigned int image[4][256];
unsigned int save[256];
};
#endif
struct StdFBShmem_t {
ev_lock_data_t cursorSema;
int frame;
char cursorShow;
char cursorObscured;
char shieldFlag;
char shielded;
IOGBounds saveRect;
IOGBounds shieldRect;
IOGPoint cursorLoc;
IOGBounds cursorRect;
IOGBounds oldCursorRect;
IOGBounds screenBounds;
int version;
int structSize;
AbsoluteTime vblTime;
AbsoluteTime vblDelta;
unsigned int reservedC[30];
unsigned char hardwareCursorCapable;
unsigned char hardwareCursorActive;
unsigned char reservedB[2];
IOGSize cursorSize[kIOFBNumCursorFrames];
IOGPoint hotSpot[kIOFBNumCursorFrames];
#ifndef IOFB_ARBITRARY_SIZE_CURSOR
union {
struct bm12Cursor bw;
struct bm18Cursor bw8;
struct bm34Cursor rgb;
struct bm38Cursor rgb24;
} cursor;
#else
unsigned char cursor[0];
#endif
};
#ifndef __cplusplus
typedef volatile struct StdFBShmem_t StdFBShmem_t;
#endif
enum {
kIOFBCurrentShmemVersion = 2,
kIOFBCursorMemory = 100,
kIOFBVRAMMemory = 110
};
#define IOFRAMEBUFFER_CONFORMSTO "IOFramebuffer"
#ifdef __cplusplus
}
#endif
#endif