|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T d
Length: 1890 (0x762)
Types: TextFile
Names: »ddxpacket.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
└─⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z«
└─⟦2109abc41⟧
└─⟦this⟧ »./X.V10R4/libqvss/ddxpacket.c«
/* packet.c Routines to allocate, free, and use packets
*
* OpenDisplay Open it
* InitDisplay Download it
* DisplayDead Check if dead
* Allocate_space Allocate some temporary storage
* Deallocate_space Flush space of unsent packet
*
*/
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include "ddxqvss.h"
#include <vaxuba/qvioctl.h>
vsIoAddr *VSAddr;
vsEvent *VSEvent;
int VSqMax;
BITMAP pbm; /* the actual screen memory */
BITMAP vbm; /* the size of the root window */
caddr_t ltable[YSIZE]; /* line address table */
int vsdev = -1;
extern int errno;
/* Open the display */
/*ARGSUSED*/
OpenDisplay (vsNumber)
char *vsNumber;
{
char vsname[10];
return(vsdev = open ("/dev/mouse", O_RDWR|O_NDELAY));
}
/* Do qvss specific initialization */
InitDisplay (info)
register DEVICE *info;
{
register int i;
if (ioctl(vsdev,QIOCADDR,&VSAddr) == -1) return(-1);
if (ioctl(vsdev,QIOCINIT,0) == -1) return(-1);
VSEvent = VSAddr->ibuff;
VSqMax = VSAddr->iqsize - 1;
vbm.data = VSAddr->bitmap;
vbm.width = VSAddr->max_x;
vbm.height = VSAddr->max_y;
pbm.data = VSAddr->bitmap;
pbm.width = 1024;
pbm.height = VSAddr->max_y;
for(i = 0; i < YSIZE; i++) ltable[i] = VSAddr->bitmap + (i * XSIZE);
info->id = XDEV_QVSS;
info->width = vbm.width;
info->height = vbm.height;
info->planes = 1;
info->entries = 0;
info->mouse = &VSAddr->mouse;
info->mbox = &VSAddr->mbox;
info->queue = (vsEventQueue *) &VSAddr->ibuff;
return (0);
}
/* Check if display is dead */
DisplayDead ()
{
return(0);
}
/* the presumption here is that only one Allocate_space call is made/request */
#define ABUFSIZE 3072
static char ABuffer[3072]; /* random size buffer for allocate space */
caddr_t AllocateSpace (size)
register int size;
{
if (size < ABUFSIZE) return(ABuffer);
errno = ENOMEM;
return (NULL);
}