/* cromixcalls.h:  Cromemco C I/O header file

   Copyright (c) 1980 by Cromemco, Inc., All Rights Reserved

   This file contains definitions for all Cromix system calls
   which can be made using the function _ccromix. */

#define SYSMAKDEV		0x00	/* make a device entry */
#define SYSMAKDIR		0x01	/* make a directory */
#define SYSGETDIR		0x02	/* get current directory name */
#define SYSSETDIR		0x03	/* change current directory */

#define SYSMOUNT		0x04	/* mount a file system */
#define SYSUNMOUNT		0x05	/* unmount file system */
#define SYSDELETE		0x06	/* delete file */
#define SYSCHKDEV		0x07	/* check for device driver */

#define SYSCREATE		0x08	/* create and open file */
#define SYSOPEN			0x09	/* open file */
#define SYSCHDUP		0x0A	/* duplicate channel */
#define SYSCLOSE		0x0B	/* close file */

#define SYSEXCHG		0x0C	/* exchange data in files */
#define SYSTRUNC		0x0D	/* truncate an open file */
#define SYSPIPE			0x0E	/* create a pipe */
#define SYSREADY		0x0F	/* test console ready */

#define SYSGETPOS		0x10	/* get file position */
#define SYSSETPOS		0x11	/* set file position */
#define SYSGETMODE		0x12	/* get device characteristics */
#define SYSSETMODE		0x13	/* set device characteristics */

#define SYSRDSEQ		0x14	/* read n bytes */
#define SYSWRSEQ		0x15	/* write n bytes */
#define SYSRDBYTE		0x16	/* read 1 byte */
#define SYSWRBYTE		0x17	/* write 1 byte */
#define SYSRDLINE		0x18	/* read a line */
#define SYSWRLINE		0x19	/* write a line */

#define SYSPRINTF		0x1B	/* print formatted string */
#define SYSERROR		0x1C	/* print error message */

#define SYSFSTAT		0x20	/* get file status ( inode ) */
#define SYSCSTAT		0x21	/* get channel status ( inode ) */
#define SYSFCHSTAT		0x22	/* change file status */
#define SYSCCHSTAT		0x23	/* change channel status */
#define SYSFLINK		0x24	/* link to file */
#define SYSCLINK		0x25	/* link to open channel */
#define SYSFACCESS		0x26	/* test file access */
#define SYSCACCESS		0x27	/* test channel access */

#define SYSGETDATE		0x30	/* get date */
#define SYSSETDATE		0x31	/* set date */
#define SYSGETTIME		0x32	/* get time */
#define SYSSETTIME		0x33	/* set time */

#define SYSGETUSER		0x34	/* get user id */
#define SYSSETUSER		0x35	/* set user id */
#define SYSGETGROUP		0x36	/* get group id */
#define SYSSETGROUP		0x37	/* set group id */

#define SYSRECEIVE		0x40	/* set up to receive a signal */
#define SYSSEND			0x41	/* send a signal */
#define SYSSLEEP		0x42	/* sleep for hl seconds */
#define SYSALARM		0x43	/* set alarm clock */
#define SYSPAUSE		0x44	/* pause for alarm clock */
#define SYSWAIT			0x45	/* wait for child process */
#define SYSEXIT			0x46	/* exit process ( close files ) */

#define SYSFSHELL		0x48	/* fork a shell process */
#define SYSSHELL		0x49	/* transfer to shell process */
#define SYSFORK			0x4A	/* fork a process in same bank */
#define SYSFEXEC		0x4B	/* fork and execute a program */
#define SYSEXEC			0x4C	/* execute a program */

#define SYSMEMORY		0x50	/* allocate user memory */
#define SYSINDIRECT		0x51	/* indirect system call in a reg */
#define SYSUPDATE		0x52	/* update disk I/O buffers */
#define SYSMULT			0x53	/* multiply */
#define SYSDIVD			0x54	/* divide */
#define SYSVERSION		0x55	/* get system version # */

/*
	values for modes of SYSCREATE and SYSOPEN
*/

#define OP_READ		0x00	/* read only */
#define OP_WRITE	0x01	/* write only */
#define OP_RDWR		0x02	/* read and write (UPDATE) */
#define OP_APPEND	0x03	/* append only */

#define OP_XREAD	0x04	/* exclusive read only */
#define OP_XWRITE	0x05	/* exclusive write only */
#define OP_XRDWR	0x06	/* exclusive read and write */
#define OP_XAPPEND	0x07	/* exclusive append only */

#define OP_TRUNCF	0x80	/* truncate on create flag */
#define OP_CONDF	0x40	/* conditional create flag */


/*
	modes for SYSGETPOS and SYSSETPOS
*/

#define POS_BEGIN	0x00
#define POS_CURRENT	0x01
#define POS_END		0x02


/*
	error codes returned by cromix
*/

#define EREOF		0x04
