|
|
1.1 ! root 1: /* packet.c Routines to allocate, free, and use packets ! 2: * ! 3: * OpenDisplay Open it ! 4: * InitDisplay Download it ! 5: * DisplayDead Check if dead ! 6: * Allocate_space Allocate some temporary storage ! 7: * Deallocate_space Flush space of unsent packet ! 8: * ! 9: */ ! 10: ! 11: ! 12: #include <stdio.h> ! 13: #include <fcntl.h> ! 14: #include <errno.h> ! 15: #include <sys/types.h> ! 16: #include <sys/ioctl.h> ! 17: #include "ddxqvss.h" ! 18: #include <vaxuba/qvioctl.h> ! 19: ! 20: vsIoAddr *VSAddr; ! 21: vsEvent *VSEvent; ! 22: int VSqMax; ! 23: ! 24: BITMAP pbm; /* the actual screen memory */ ! 25: BITMAP vbm; /* the size of the root window */ ! 26: caddr_t ltable[YSIZE]; /* line address table */ ! 27: ! 28: int vsdev = -1; ! 29: extern int errno; ! 30: ! 31: /* Open the display */ ! 32: ! 33: /*ARGSUSED*/ ! 34: OpenDisplay (vsNumber) ! 35: char *vsNumber; ! 36: { ! 37: char vsname[10]; ! 38: ! 39: return(vsdev = open ("/dev/mouse", O_RDWR|O_NDELAY)); ! 40: } ! 41: ! 42: /* Do qvss specific initialization */ ! 43: ! 44: InitDisplay (info) ! 45: register DEVICE *info; ! 46: { ! 47: register int i; ! 48: if (ioctl(vsdev,QIOCADDR,&VSAddr) == -1) return(-1); ! 49: if (ioctl(vsdev,QIOCINIT,0) == -1) return(-1); ! 50: VSEvent = VSAddr->ibuff; ! 51: VSqMax = VSAddr->iqsize - 1; ! 52: vbm.data = VSAddr->bitmap; ! 53: vbm.width = VSAddr->max_x; ! 54: vbm.height = VSAddr->max_y; ! 55: pbm.data = VSAddr->bitmap; ! 56: pbm.width = 1024; ! 57: pbm.height = VSAddr->max_y; ! 58: for(i = 0; i < YSIZE; i++) ltable[i] = VSAddr->bitmap + (i * XSIZE); ! 59: info->id = XDEV_QVSS; ! 60: info->width = vbm.width; ! 61: info->height = vbm.height; ! 62: info->planes = 1; ! 63: info->entries = 0; ! 64: info->mouse = &VSAddr->mouse; ! 65: info->mbox = &VSAddr->mbox; ! 66: info->queue = (vsEventQueue *) &VSAddr->ibuff; ! 67: return (0); ! 68: } ! 69: ! 70: /* Check if display is dead */ ! 71: ! 72: DisplayDead () ! 73: { ! 74: return(0); ! 75: } ! 76: ! 77: /* the presumption here is that only one Allocate_space call is made/request */ ! 78: ! 79: #define ABUFSIZE 3072 ! 80: static char ABuffer[3072]; /* random size buffer for allocate space */ ! 81: caddr_t AllocateSpace (size) ! 82: register int size; ! 83: { ! 84: if (size < ABUFSIZE) return(ABuffer); ! 85: errno = ENOMEM; ! 86: return (NULL); ! 87: } ! 88: ! 89:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.