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

⟦82d5097ac⟧ TextFile

    Length: 4768 (0x12a0)
    Types: TextFile
    Notes: UNIX file
    Names: »sysi86.h«

Derivation

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

TextFile

/*	Copyright (c) 1987 AT&T	*/
/*	  All Rights Reserved  	*/

/*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*/
/*	The copyright notice above does not evidence any   	*/
/*	actual or intended publication of such source code.	*/

#ident "@(#)sysi86.h	1.11 - 88/06/17"

#ifndef DIRSIZ
#define	DIRSIZ	14
#endif

/*
 * Commands for sysi86 system call (1-?)
 */

#define SI86SWPI        1       /* General swap interface.                */
#define SI86SYM         2       /* acquire boot-built symbol table        */
#define SI86CONF        4       /* acquire boot-built configuration table */
#define SI86BOOT        5       /* acquire timestamp and name of program  */
				/* booted                                 */
#define SI86DMM         7       /* double-map data segment for            */
				/* read/write/execute support             */
#define SI86AUTO        9       /* was an auto-config boot done?          */
#define SI86EDT         10      /* copy contents of EDT to user           */
#define SI86SWAP        12      /* Declare swap space                     */
#define SI86FPHW        40      /* what (if any?) floating-point hardware */

#define GRNON		52	/* set green light to solid on state */
#define GRNFLASH	53	/* start green light flashing */
#define STIME 		54	/* set internal time */
#define SETNAME		56	/* rename the system */
#define RNVR 		58	/* read NVRAM */
#define WNVR 		59	/* write NVRAM */
#define RTODC		60	/* read time of day clock */
#define CHKSER		61	/* check soft serial number */
#define SI86NVPRT       62      /* print an xtra_nvr structure */
#define SANUPD		63	/* sanity update of kernel buffers */
#define SI86KSTR        64      /* make a copy of a kernel string */
#define SI86MEM         65      /* return the memory size of system */
#define SI86TODEMON     66      /* Transfer control to firmware.        */
#define SI86CCDEMON     67      /* Control character access to demon.   */
#define SI86CACHE       68      /* Turn cache on and off.               */
#define SI86DELMEM      69      /* Delete available memory for testing. */
#define SI86ADDMEM      70      /* Add back deleted memory.             */
/* 71 through 74 reserved for VPIX */
#define SI86V86         71      /* V86 system calls (see v86.h)         */
#define SI86DSCR        75      /* Set a segment or gate descriptor     */
#define	SI86SLTIME	76	/* Set local time correction		*/
#ifdef VIANET
#define SI86SETEUID     81      /* Set effective userid			*/
#define SI86SETEGID     82      /* Set effective groupid		*/
#define SI86SETRUID     83      /* Set real userid			*/
#define SI86SETRGID     84      /* Set real groupid			*/
#define SI86FUTIME      85      /* Utime with file descriptor		*/
#define SI86SHR_OPEN    86      /* Sharing open (for DOS extended opens)*/
#endif /* VIANET */
#if defined(HBTCP)
#define SI86SETREUID	87	/* Set real and effective uid (ala BSD) */
#define SI86SETREGID	88	/* Set real and effective gid (ala BSD) */
#endif
#ifdef LDD
#define	SI86MEMALLOC	89	/* Allocate memory for device drivers	*/
#define	SI86INSTALLINTR	90	/* Install interrupt for a driver	*/
#define	SI86MEMFREE	91	/* free memory for device drivers	*/
#define	SI86BUILTON	92	/* get time kernel was built		*/
#define	SI86REMOVEINTR	93	/* remove an interrupt for a driver	*/
#endif


/*
 *  The SI86DSCR subcommand of the sysi86() system call
 *  sets a segment or gate descriptor in the kernel.
 *  The following descriptor types are accepted:
 *    - executable and data segments in the LDT at DPL 3
 *    - a call gate in the GDT at DPL 3 that points to a segment in the LDT
 *  The request structure declared below is used to pass the values
 *  to be placed in the descriptor.  A pointer to the structure is
 *  passed as the second argument of the system call.
 *  If acc1 is zero, the descriptor is cleared.
*/

/* request structure passed by user */
struct ssd {
	unsigned int sel;   /* descriptor selector */
	unsigned int bo;    /* segment base or gate offset */
	unsigned int ls;    /* segment limit or gate selector */
	unsigned int acc1;  /* access byte 5 */
	unsigned int acc2;  /* access bits in byte 6 or gate count */
};

struct intrinfo {
	unsigned long intr;	/* interrupt routine address */
	unsigned long init;	/* init routine address */
	unsigned long start;	/* start routine address */
	int intno;		/* interrupt number */
	int intpri;		/* interrupt priority */
};

struct LDDHeader {
	struct LDDHeader *forw;	/* link */
	struct LDDHeader *back;	/* link */
	unsigned long count;	/* reference count */
	unsigned long size;	/* size of block in bytes */
};

struct LDDmemref {
	int cmd;		/* 1 == use, 2 == free */
	unsigned long block;	/* pointer to block */
};

#define	LDDUseBlock	1
#define	LDDFreeBlock	2
#define	LDDZapBlock	3