|
|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T U v
Length: 2385 (0x951)
Types: TextFile
Notes: UNIX file
Names: »vdi.h«
└─⟦a6ab2eb36⟧ Bits:30004042/kconfig3.imd SW95705I 386/ix Multi-user Release 1.2
└─⟦a6ab2eb36⟧ UNIX Filesystem
└─⟦this⟧ »kc/new/usr/include/sys/vdi.h«
/*
* definitions for PC AT VP/ix Device Interface driver
*/
/*
* Copyrighted as an unpublished work.
* (c) Copyright 1988 INTERACTIVE Systems Corporation
* All rights reserved.
*
* RESTRICTED RIGHTS
*
* These programs are supplied under a license. They may be used,
* disclosed, and/or copied only as permitted under such license
* agreement. Any copy must contain the above copyright notice and
* this restricted rights notice. Use, copying, and/or disclosure
* of the programs is strictly prohibited unless otherwise provided
* in the license agreement.
*/
#ident "@(#)vdi.h 1.1 - 88/05/05"
#define VDNINTR 16 /* sixteen interrupt lines on dual 8259's */
#define VDMAXVDEVS 20 /* maximum number of generic devices supported */
#define VDMAX_IOLEN 40 /* maximum number of consecutive registers */
#define VDUSELEN 50 /* maximum number of chunks of registers/memory */
#define VDCHECK 1 /* perform range checking */
/*
* this structure defines the interface between the user process and
* the generic device driver ioctl function calls. The user process
* can request chunks of io or memory with successive ioctl calls
*/
struct vdev { /* generic device structure */
ushort vdi_iobase; /* base io address */
int vdi_iolen; /* length of io address */
long vdi_pmembase; /* base physical memory address */
long vdi_vmembase; /* base virtual memory address */
int vdi_memlen; /* length of memory required */
int vdi_intnum; /* interrupt vector required */
int vdi_pseudomask; /* pseudorupt to send */
int vdi_dma_chan; /* DMA channel requested */
ushort vdi_flag; /* indicates edge or level triggered device */
};
/*
* this structure contains information needed at interrupt time to
* send the appropriate pseudorupt to the correct user process
*/
struct vdi_info {
v86_t *vdi_stash; /* ptr to v86 proc controlling this device */
short vdi_pid; /* pid of process controlling this device */
int vdi_pseudonum; /* psuedo interrupt mask to be sent */
dev_t vdi_device; /* major minor device number */
ushort vdi_flag; /* flags for this device */
};
struct vdi_used {
long base;
int len;
char dev;
};
/*
* IOCTLs supported by the generic device driver
*/
#define VDIOC ('v'<<8)
#define VDI_SET (VDIOC|1) /* setup device parameters */
#define VDI_UNSET (VDIOC|2) /* undo device parameters */