DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦539a519e7⟧ TextFile

    Length: 2385 (0x951)
    Types: TextFile
    Notes: UNIX file
    Names: »vdi.h«

Derivation

└─⟦a6ab2eb36⟧ Bits:30004042/kconfig3.imd SW95705I 386/ix Multi-user Release 1.2
└─⟦a6ab2eb36⟧ UNIX Filesystem
    └─⟦this⟧ »kc/new/usr/include/sys/vdi.h« 

TextFile

/*
 * 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 */