/* @(#)cg8var.h 1.14 of 8/22/90 SMI */ /* * Copyright 1988 by Sun Microsystems, Inc. */ #ifndef cg8var_DEFINED #define cg8var_DEFINED /* and included */ #include #ifndef SVR4 #include #include #else #include #endif SVR4 /* FBIOSATTR device specific array indices, copied from cg4var.h */ #define FB_ATTR_CG8_SETOWNER_CMD 0 /* 1 indicates PID is valid */ #define FB_ATTR_CG8_SETOWNER_PID 1 /* new owner of device */ #define CG8_NFBS 3 #define CG8_PRIMARY 0x01 /* Mark the PRIMARY Pixrect */ #define CG8_OVERLAY_CMAP 0x02 /* Overlay CMAP to be changed */ #define CG8_24BIT_CMAP 0x04 /* 24 Bit CMAP to be changed */ #define CG8_KERNEL_UPDATE 0x08 /* kernel vs. user ioctl */ /* 0x10 & 0x20 are dbl buf in cg9 */ #define CG8_SLEEPING 0x40 /* Denote if wake_up is necessary */ #define CG8_COLOR_OVERLAY 0x80 /* view overlay & enable as 2 bits */ #define CG8_UPDATE_PENDING 0x100 struct cg8_data { struct mprp_data mprp; /* memory pixrect simulator */ int flags; /* misc. flags */ int planes; /* current group and mask */ int fd; /* file descriptor */ short active; /* active fb no. */ struct cg4fb fb[CG8_NFBS]; /* frame buffer info */ int windowfd; /* if 8-bit indexed pw */ struct colormapseg cms; /* if 8-bit indexed pr */ int real_windowfd; /* if 8-bit indexed pw */ }; #define cg8_d(pr) ((struct cg8_data *)((pr)->pr_data)) #define CG8_PR_TO_MEM(src, mem) \ if (src && src->pr_ops != &mem_ops) \ { \ mem.pr_ops = &mem_ops; \ mem.pr_size = src->pr_size; \ mem.pr_depth = src->pr_depth; \ mem.pr_data = (char *) &cg8_d(src)->mprp; \ src = &mem; \ } #define CG8_PR_TO_MEM32(pr, mem32_pr, mem32_pr_data) \ if (pr && pr->pr_ops != &mem_ops) \ { \ mem32_pr.pr_ops = &mem32_ops; \ mem32_pr.pr_size = pr->pr_size; \ mem32_pr.pr_depth = pr->pr_depth; \ mem32_pr_data.mprp = cg8_d(pr)->mprp; \ mem32_pr_data.plane_group = cg8_d(pr)->fb[cg8_d(pr)->active].group;\ mem32_pr_data.fd = cg8_d(pr)->fd; \ mem32_pr_data.windowfd = cg8_d(pr)->windowfd; \ mem32_pr_data.cms = cg8_d(pr)->cms; \ mem32_pr.pr_data = (char *) &mem32_pr_data; \ pr = &mem32_pr; \ } extern struct pixrectops cg8_ops; int cg8_putcolormap(); int cg8_putattributes(); int cg8_ioctl(); #ifndef KERNEL Pixrect *cg8_make(); int cg8_destroy(); Pixrect *cg8_region(); int cg8_getcolormap(); int cg8_getattributes(); int cg8_vector(); int cg8_get(); int cg8_put(); int cg8_rop(); #endif !KERNEL #endif cg8var_DEFINED