Annotation of 43BSD/contrib/X/libvs100/packet.h, revision 1.1.1.1

1.1       root        1: /* $Header: packet.h,v 10.3 86/02/01 15:47:13 tony Rel $ */
                      2: /* packet.h    Packet descriptions for Workstation Graphics Architecture
                      3:  *             command packets
                      4:  *
                      5:  *     Each object has two definitions.  The more human-readable one
                      6:  *     has "reasonable" definitions, the one beginning with a_ expresses
                      7:  *     the structure as an array of shorts so that the C compiler doesn't
                      8:  *     move it around for silly alignment reasons.
                      9:  *
                     10:  * Author:     Paul J. Asente
                     11:  *             Digital Equipment Corporation
                     12:  *             Western Reseach Lab
                     13:  * Date:       June 1983
                     14:  */
                     15: 
                     16: /****************************************************************************
                     17:  *                                                                         *
                     18:  *  Copyright (c) 1983, 1984 by                                                    *
                     19:  *  DIGITAL EQUIPMENT CORPORATION, Maynard, Massachusetts.                 *
                     20:  *  All rights reserved.                                                   *
                     21:  *                                                                         *
                     22:  *  This software is furnished on an as-is basis and may be used and copied *
                     23:  *  only with inclusion of the above copyright notice. This software or any *
                     24:  *  other copies thereof may be provided or otherwise made available to     *
                     25:  *  others only for non-commercial purposes.  No title to or ownership of   *
                     26:  *  the software is hereby transferred.                                            *
                     27:  *                                                                         *
                     28:  *  The information in this software is  subject to change without notice   *
                     29:  *  and  should  not  be  construed as  a commitment by DIGITAL EQUIPMENT   *
                     30:  *  CORPORATION.                                                           *
                     31:  *                                                                         *
                     32:  *  DIGITAL assumes no responsibility for the use  or  reliability of its   *
                     33:  *  software on equipment which is not supplied by DIGITAL.                *
                     34:  *                                                                         *
                     35:  *                                                                         *
                     36:  ****************************************************************************/
                     37: 
                     38: #ifndef WGA_PACKET
                     39: #define WGA_PACKET
                     40: 
                     41: typedef struct _CopyAreaMod {
                     42:        unsigned : 8;
                     43:        unsigned m_source : 3;
                     44:        unsigned m_mask : 3;
                     45:        unsigned : 3;
                     46:        unsigned m_map : 3;
                     47:        unsigned m_clipping : 3;
                     48: } CopyAreaMod;
                     49: 
                     50: typedef struct _DrawCurveMod {
                     51:        unsigned : 8;
                     52:        unsigned m_source : 3;
                     53:        unsigned m_mask : 3;
                     54:        unsigned : 3;
                     55:        unsigned m_map : 3;
                     56:        unsigned m_clipping : 3;
                     57:        unsigned m_drawMode : 1;
                     58:        unsigned m_patState : 2;
                     59:        unsigned m_patMode : 2;
                     60: } DrawCurveMod;
                     61: 
                     62: typedef struct _PrintTextMod {
                     63:        unsigned : 8;
                     64:        unsigned m_source : 3;
                     65:        unsigned m_mask: 3;
                     66:        unsigned m_dest : 3;
                     67:        unsigned m_map : 3;
                     68:        unsigned m_clipping : 3;
                     69:        unsigned m_textSize : 1;
                     70:        unsigned m_control : 1;
                     71: } PrintTextMod;
                     72: 
                     73: typedef struct _FillAreaMod {
                     74:        unsigned : 8;
                     75:        unsigned m_source : 3;
                     76:        unsigned : 6;
                     77:        unsigned m_map : 3;
                     78:        unsigned m_clipping : 3;
                     79: } FillAreaMod;
                     80: 
                     81: typedef struct _FloodAreaMod {
                     82:        unsigned : 8;
                     83:        unsigned m_source : 3;
                     84:        unsigned : 9;
                     85:        unsigned m_clipping : 3;
                     86:        unsigned m_boundary : 1;
                     87: } FloodAreaMod;
                     88: 
                     89: typedef struct _LoadCursorMod {
                     90:        unsigned : 8;
                     91:        unsigned m_source : 3;
                     92:        unsigned m_mask : 3;
                     93:        unsigned : 3;
                     94:        unsigned m_map : 3;
                     95: } LoadCursorMod;
                     96: 
                     97: typedef struct _SetMouseCharacteristicsMod {
                     98:        unsigned : 8;
                     99:        unsigned m_tracking : 3;
                    100: } SetMouseCharacteristicsMod;
                    101: 
                    102: typedef struct _SetTabletCharacteristicsMod {
                    103:        unsigned : 8;
                    104:        unsigned m_tracking : 3;
                    105: } SetTabletCharacteristicsMod;
                    106: 
                    107: typedef struct _PacketHeader {
                    108:        union {
                    109:            struct {
                    110:                unsigned _opcode : 8;
                    111:                unsigned _modifier : 24;
                    112:            } ph;
                    113:            long emptymod;
                    114:            CopyAreaMod copy;
                    115:            DrawCurveMod draw;
                    116:            PrintTextMod text;
                    117:            FillAreaMod fill;
                    118:            FloodAreaMod flood;
                    119:            LoadCursorMod cursor;
                    120:            SetMouseCharacteristicsMod mouse;
                    121:            SetTabletCharacteristicsMod tablet;
                    122:        } ph_modifier;
                    123:        a_CharPtr ph_next;
                    124: } PacketHeader;
                    125: 
                    126: #define ph_copyMod ph_modifier.copy
                    127: #define ph_drawMod ph_modifier.draw
                    128: #define ph_textMod ph_modifier.text
                    129: #define ph_fillMod ph_modifier.fill
                    130: #define ph_floodMod ph_modifier.flood
                    131: #define ph_cursorMod ph_modifier.cursor
                    132: #define ph_mouseMod ph_modifier.mouse
                    133: #define ph_tabletMod ph_modifier.tablet
                    134: 
                    135: typedef short a_PacketHeader[4];
                    136: 
                    137: #define ph_opcode ph_modifier.ph._opcode
                    138: 
                    139: #define COPY_AREA      1
                    140: 
                    141: typedef struct _CopyAreaPacket {
                    142:        a_PacketHeader cap_head;
                    143:        union {
                    144:            a_SubBitmap image;
                    145:            Constant const;
                    146:            a_Halftone pattern;
                    147:        } cap_source;
                    148:        a_SubBitmap cap_sourceMask;
                    149:        a_Extent cap_maskSize;
                    150:        a_Bitmap cap_destImage;
                    151:        a_Point cap_destOffset;
                    152:        union {
                    153:            a_MapPtr ptr;
                    154:            a_Map literal;
                    155:        } cap_map;
                    156:        union {
                    157:            a_RectangleList rectList;
                    158:            a_Rectangle litRect;
                    159:        } cap_clipping;
                    160: } CopyAreaPacket;
                    161: 
                    162: typedef short a_CopyAreaPacket[33];
                    163: 
                    164: #define DRAW_CURVE     2
                    165: 
                    166: typedef struct _DrawCurvePacket {
                    167:        a_PacketHeader dcp_head;
                    168:        union {
                    169:            a_SubBitmap image;
                    170:            Constant const;
                    171:            a_Halftone pattern;
                    172:        } dcp_source;
                    173:        a_SubBitmap dcp_sourceMask;
                    174:        a_Extent dcp_maskSize;
                    175:        a_Bitmap dcp_destImage;
                    176:        a_Point dcp_destOffset;
                    177:        union {
                    178:            a_MapPtr ptr;
                    179:            a_Map literal;
                    180:        } dcp_map;
                    181:        union {
                    182:            a_RectangleList rectList;
                    183:            a_Rectangle litRect;
                    184:        } dcp_clipping;
                    185:        a_SegmentList dcp_path;
                    186:        a_PatternString dcp_pattern;
                    187:        union {
                    188:            a_PatternState literal;
                    189:            a_PatternStatePtr ptr;
                    190:        } dcp_patState;
                    191:        union {
                    192:            a_SubBitmap image;
                    193:            Constant const;
                    194:            a_Halftone pattern;
                    195:        } dcp_secondSource;
                    196: } DrawCurvePacket;
                    197: 
                    198: typedef short a_DrawCurvePacket[49];
                    199: 
                    200: #define PRINT_TEXT     3
                    201: 
                    202: typedef struct _PrintTextPacket {
                    203:        a_PacketHeader ptp_head;
                    204:        union {
                    205:            a_FontPtr font;
                    206:            Constant const;
                    207:            a_Halftone pattern;
                    208:        } ptp_source;
                    209:        a_FontPtr ptp_mask;
                    210:        short filler[7];
                    211:        a_Bitmap ptp_destImage;
                    212:        union {
                    213:            a_Point literal;
                    214:            a_PointPtr ptr;
                    215:        } ptp_initialOffset;
                    216:        union {
                    217:            a_MapPtr ptr;
                    218:            a_Map literal;
                    219:        } ptp_map;
                    220:        union {
                    221:            a_RectangleList rectList;
                    222:            a_Rectangle litRect;
                    223:        } ptp_clipping;
                    224:        a_TextString ptp_text;
                    225:        a_ControlString ptp_control;
                    226:        short ptp_charPad;
                    227:        short ptp_spacePad;
                    228: } PrintTextPacket;
                    229: 
                    230: typedef short a_PrintTextPacket[41];
                    231: 
                    232: #define FILL_AREA      11
                    233: 
                    234: typedef struct _FillAreaPacket {
                    235:        a_PacketHeader fap_head;
                    236:        union {
                    237:            Constant const;
                    238:            a_Halftone pattern;
                    239:        } fap_source;
                    240:        a_Bitmap fap_destImage;
                    241:        a_Point fap_destOffset;
                    242:        union {
                    243:            a_MapPtr ptr;
                    244:            a_Map literal;
                    245:        } fap_map;
                    246:        a_Rectangle fap_clippingRec;
                    247:        a_SegmentList fap_path;
                    248: } FillAreaPacket;
                    249: 
                    250: typedef short a_FillAreaPacket[28];
                    251: 
                    252: #define FLOOD_AREA     4
                    253: 
                    254: typedef struct _FloodAreaPacket {
                    255:        a_PacketHeader flp_head;
                    256:        union {
                    257:            Constant const;
                    258:            a_Halftone pattern;
                    259:        } flp_source;
                    260:        a_Bitmap flp_destImage;
                    261:        a_Point flp_seed;
                    262:        Rectangle flp_clippingRec;
                    263:        union {
                    264:            a_MapPtr ptr;
                    265:            a_Map literal;
                    266:        } flp_boundary;
                    267: } FloodAreaPacket;
                    268: 
                    269: typedef short a_FloodAreaPacket[24];
                    270: 
                    271: #define LOAD_CURSOR    5
                    272: 
                    273: typedef struct _LoadCursorPacket {
                    274:        a_PacketHeader lcp_head;
                    275:        union {
                    276:            a_SubBitmap image;
                    277:            Constant const;
                    278:            a_Halftone pattern;
                    279:        } lcp_source;
                    280:        a_SubBitmap lcp_sourceMask;
                    281:        a_Extent lcp_maskSize;
                    282:        union {
                    283:            a_MapPtr ptr;
                    284:            a_Map literal;
                    285:        } lcp_map;
                    286:        short lcp_blink;
                    287:        short lcp_tip_x;
                    288:        short lcp_tip_y;
                    289:        short lcp_center_x;
                    290:        short lcp_center_y;
                    291: } LoadCursorPacket;
                    292: 
                    293: typedef short a_LoadCursorPacket[29];
                    294: 
                    295: #define SET_CURSOR_POSITION    6
                    296: 
                    297: typedef struct _SetCursorPositionPacket {
                    298:        a_PacketHeader scp_head;
                    299:        a_Point scp_position;
                    300: } SetCursorPositionPacket;
                    301: 
                    302: typedef short a_SetCursorPositionPacket[6];
                    303: 
                    304: #define ATTACH_CURSOR  7
                    305: 
                    306: typedef struct _AttachCursorPacket {
                    307:        a_PacketHeader acp_head;
                    308:        short acp_device;
                    309: } AttachCursorPacket;
                    310: 
                    311: typedef short a_AttachCursorPacket[5];
                    312: 
                    313: #define GET_CURSOR_POSITION    8
                    314: 
                    315: typedef struct _GetCursorPositionPacket {
                    316:        a_PacketHeader gcp_head;
                    317:        a_Point gcp_position;
                    318: } GetCursorPositionPacket;
                    319: 
                    320: typedef short a_GetCursorPositionPacket[6];
                    321: 
                    322: #define MOVE_OBJECT    9
                    323: #define MOVE_OBJECT_ROM        128
                    324: 
                    325: typedef struct _MoveObjectPacket {
                    326:        a_PacketHeader mop_head;
                    327:        short mop_objectType;
                    328:        a_MemSize mop_objectSize;
                    329:        a_CharPtr mop_source;
                    330:        a_CharPtr mop_dest;
                    331: } MoveObjectPacket;
                    332: 
                    333: typedef short a_MoveObjectPacket[11];
                    334: 
                    335: #define REPORT_STATUS  10
                    336: #define REPORT_STATUS_ROM      129
                    337: 
                    338: typedef struct _ReportStatusPacket {
                    339:        a_PacketHeader rsp_head;
                    340:        char rsp_deviceType[4];
                    341:        short rsp_deviceVersion;
                    342:        short rsp_ucodeVersion;
                    343:        a_Bitmap rsp_visibleFramebuffer;
                    344:        a_MemArea rsp_freeFramebuffer;
                    345:        a_MemArea rsp_freeProgramMemory;
                    346:        a_MemArea rsp_hostMemory;
                    347: } ReportStatusPacket;
                    348: 
                    349: typedef short a_ReportStatusPacket[25];
                    350: 
                    351: #define NO_OPERATION   0
                    352: 
                    353: typedef struct _NoopPacket {
                    354:        a_PacketHeader nop_head;
                    355: } NoopPacket;
                    356: 
                    357: typedef short a_NoopPacket[4];
                    358:  
                    359: #define GET_MOUSE_POSITION     12
                    360: 
                    361: typedef struct _GetMousePositionPacket {
                    362:        a_PacketHeader gmp_head;
                    363:        a_Point gmp_position;
                    364: } GetMousePositionPacket;
                    365: 
                    366: typedef short a_GetMousePositionPacket[6];
                    367: 
                    368: #define SET_MOUSE_CHARACTERISTICS      13
                    369: 
                    370: typedef struct _SetMouseCharacteristicsPacket {
                    371:        a_PacketHeader smc_head;
                    372:        union {
                    373:                struct {
                    374:                        short multiplier;
                    375:                        short divisor;
                    376:                } linear;
                    377:                struct {
                    378:                        short scale;
                    379:                        short threshold;
                    380:                } exponential;
                    381:        } tracking;
                    382: } SetMouseCharacteristicsPacket;
                    383: 
                    384: 
                    385: #define smc_multiplier tracking.linear.multiplier
                    386: #define smc_divisor tracking.linear.divisor
                    387: #define smc_threshold tracking.exponential.threshold
                    388: #define smc_scale tracking.exponential.scale
                    389: 
                    390: typedef short a_SetMouseCharacteristicsPacket[6];
                    391: 
                    392: #define GET_TABLET_POSITION    14
                    393: 
                    394: typedef struct _GetTabletPositionPacket {
                    395:        a_PacketHeader gtp_head;
                    396:        a_Point gtp_position;
                    397: } GetTabletPositionPacket;
                    398: 
                    399: typedef short a_GetTabletPositionPacket[6];
                    400: 
                    401: #define SET_TABLET_CHARACTERISTICS     16
                    402: 
                    403: typedef struct _SetTabletCharacteristicsPacket {
                    404:        a_PacketHeader stc_head;
                    405:        union {
                    406:                struct {
                    407:                        short multiplier;
                    408:                        short divisor;
                    409:                } linear;
                    410:                struct {
                    411:                        a_Point input;
                    412:                        a_Point output;
                    413:                } quantized;
                    414:        } tracking;
                    415: } SetTabletCharacteristicsPacket;
                    416: 
                    417: #define stc_multiplier tracking.linear.multiplier
                    418: #define stc_divisor tracking.linear.divisor
                    419: #define stc_input tracking.quantized.input
                    420: #define stc_output tracking.quantized.output
                    421: 
                    422: typedef short a_SetTabletCharacteristicsPacket[8];
                    423: 
                    424: #define SET_POINTING_DEVICE_REPORTING  15
                    425: 
                    426: typedef struct _SetPointingDeviceReportingPacket {
                    427:        a_PacketHeader spdp_head;
                    428:        short spdp_enable;
                    429: } SetPointingDeviceReportingPacket;
                    430: 
                    431: typedef short a_SetPointingDeviceReportingPacket[5];
                    432: 
                    433: typedef union _Packet {
                    434:        a_CopyAreaPacket copyArea;
                    435:        a_DrawCurvePacket drawCurve;
                    436:        a_PrintTextPacket writeText;
                    437:        a_FillAreaPacket fillArea;
                    438:        a_FloodAreaPacket floodArea;
                    439:        a_LoadCursorPacket loadCursor;
                    440:        a_SetCursorPositionPacket setCursor;
                    441:        a_AttachCursorPacket attachCursor;
                    442:        a_GetCursorPositionPacket getCursor;
                    443:        a_MoveObjectPacket moveObject;
                    444:        a_ReportStatusPacket reportStatus;
                    445:        a_NoopPacket noop;
                    446:        a_GetMousePositionPacket getMouse;
                    447:        a_SetMouseCharacteristicsPacket setMouse;
                    448:        a_GetTabletPositionPacket getTablet;
                    449:        a_SetTabletCharacteristicsPacket setTablet;
                    450:        a_SetPointingDeviceReportingPacket setPointingDevice;
                    451: } Packet;      
                    452: 
                    453: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.