Initial revision
This commit is contained in:
parent
449ea0d073
commit
647b192b1f
41
lib/minix/include/errno.h
Normal file
41
lib/minix/include/errno.h
Normal file
|
@ -0,0 +1,41 @@
|
|||
#define OK 0
|
||||
#define ERROR 1
|
||||
#define EPERM 1
|
||||
#define ENOENT 2
|
||||
#define ESRCH 3
|
||||
#define EINTR 4
|
||||
#define EIO 5
|
||||
#define ENXIO 6
|
||||
#define E2BIG 7
|
||||
#define ENOEXEC 8
|
||||
#define EBADF 9
|
||||
#define ECHILD 10
|
||||
#define EAGAIN 11
|
||||
#define ENOMEM 12
|
||||
#define EACCES 13
|
||||
#define EFAULT 14
|
||||
#define ENOTBLK 15
|
||||
#define EBUSY 16
|
||||
#define EEXIST 17
|
||||
#define EXDEV 18
|
||||
#define ENODEV 19
|
||||
#define ENOTDIR 20
|
||||
#define EISDIR 21
|
||||
#define EINVAL 22
|
||||
#define ENFILE 23
|
||||
#define EMFILE 24
|
||||
#define ENOTTY 25
|
||||
#define ETXTBSY 26
|
||||
#define EFBIG 27
|
||||
#define ENOSPC 28
|
||||
#define ESPIPE 29
|
||||
#define EROFS 30
|
||||
#define EMLINK 31
|
||||
#define EPIPE 32
|
||||
#define EDOM 33
|
||||
#define ERANGE 34
|
||||
|
||||
#define E_LOCKED 101
|
||||
#define E_BAD_CALL 102
|
||||
#define E_LONG_STRING 103
|
||||
|
50
lib/minix/include/minix/callnr.h
Normal file
50
lib/minix/include/minix/callnr.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
#define NCALLS 69 /* number of system calls allowed */
|
||||
|
||||
#define EXIT 1
|
||||
#define FORK 2
|
||||
#define READ 3
|
||||
#define WRITE 4
|
||||
#define OPEN 5
|
||||
#define CLOSE 6
|
||||
#define WAIT 7
|
||||
#define CREAT 8
|
||||
#define LINK 9
|
||||
#define UNLINK 10
|
||||
#define CHDIR 12
|
||||
#define TIME 13
|
||||
#define MKNOD 14
|
||||
#define CHMOD 15
|
||||
#define CHOWN 16
|
||||
#define BRK 17
|
||||
#define STAT 18
|
||||
#define LSEEK 19
|
||||
#define GETPID 20
|
||||
#define MOUNT 21
|
||||
#define UMOUNT 22
|
||||
#define SETUID 23
|
||||
#define GETUID 24
|
||||
#define STIME 25
|
||||
#define ALARM 27
|
||||
#define FSTAT 28
|
||||
#define PAUSE 29
|
||||
#define UTIME 30
|
||||
#define ACCESS 33
|
||||
#define SYNC 36
|
||||
#define KILL 37
|
||||
#define DUP 41
|
||||
#define PIPE 42
|
||||
#define TIMES 43
|
||||
#define SETGID 46
|
||||
#define GETGID 47
|
||||
#define SIGNAL 48
|
||||
#define IOCTL 54
|
||||
#define EXEC 59
|
||||
#define UMASK 60
|
||||
#define CHROOT 61
|
||||
|
||||
/* The following are not system calls, but are processed like them. */
|
||||
#define KSIG 64 /* kernel detected a signal */
|
||||
#define UNPAUSE 65 /* to MM or FS: check for EINTR */
|
||||
#define BRK2 66 /* to MM: used to say how big FS & INIT are */
|
||||
#define REVIVE 67 /* to FS: revive a sleeping process */
|
||||
#define TASK_REPLY 68 /* to FS: reply code from tty task */
|
101
lib/minix/include/minix/com.h
Normal file
101
lib/minix/include/minix/com.h
Normal file
|
@ -0,0 +1,101 @@
|
|||
/* System calls. */
|
||||
#define SEND 1 /* function code for sending messages */
|
||||
#define RECEIVE 2 /* function code for receiving messages */
|
||||
#define BOTH 3 /* function code for SEND + RECEIVE */
|
||||
#define ANY (NR_PROCS+100) /* receive(ANY, buf) accepts from any source */
|
||||
|
||||
/* Task numbers, function codes and reply codes. */
|
||||
#define HARDWARE -1 /* used as source on interrupt generated msgs */
|
||||
|
||||
#define SYSTASK -2 /* internal functions */
|
||||
# define SYS_XIT 1 /* fcn code for sys_xit(parent, proc) */
|
||||
# define SYS_GETSP 2 /* fcn code for sys_sp(proc, &new_sp) */
|
||||
# define SYS_SIG 3 /* fcn code for sys_sig(proc, sig) */
|
||||
# define SYS_FORK 4 /* fcn code for sys_fork(parent, child) */
|
||||
# define SYS_NEWMAP 5 /* fcn code for sys_newmap(procno, map_ptr) */
|
||||
# define SYS_COPY 6 /* fcn code for sys_copy(ptr) */
|
||||
# define SYS_EXEC 7 /* fcn code for sys_exec(procno, new_sp) */
|
||||
# define SYS_TIMES 8 /* fcn code for sys_times(procno, bufptr) */
|
||||
# define SYS_ABORT 9 /* fcn code for sys_abort() */
|
||||
#ifdef ATARI_ST
|
||||
# define SYS_FRESH 10 /* fcn code for sys_fresh() */
|
||||
#endif
|
||||
|
||||
#define CLOCK -3 /* clock class */
|
||||
# define SET_ALARM 1 /* fcn code to CLOCK, set up alarm */
|
||||
# define CLOCK_TICK 2 /* fcn code for clock tick */
|
||||
# define GET_TIME 3 /* fcn code to CLOCK, get real time */
|
||||
# define SET_TIME 4 /* fcn code to CLOCK, set real time */
|
||||
# define REAL_TIME 1 /* reply from CLOCK: here is real time */
|
||||
|
||||
#define MEM -4 /* /dev/ram, /dev/(k)mem and /dev/null class */
|
||||
# define RAM_DEV 0 /* minor device for /dev/ram */
|
||||
# define MEM_DEV 1 /* minor device for /dev/mem */
|
||||
# define KMEM_DEV 2 /* minor device for /dev/kmem */
|
||||
# define NULL_DEV 3 /* minor device for /dev/null */
|
||||
|
||||
#define FLOPPY -5 /* floppy disk class */
|
||||
#define WINCHESTER -6 /* winchester (hard) disk class */
|
||||
# define DISKINT 1 /* fcn code for disk interupt */
|
||||
# define DISK_READ 3 /* fcn code to DISK (must equal TTY_READ) */
|
||||
# define DISK_WRITE 4 /* fcn code to DISK (must equal TTY_WRITE) */
|
||||
# define DISK_IOCTL 5 /* fcn code for setting up RAM disk */
|
||||
|
||||
#define TTY -7 /* terminal I/O class */
|
||||
#define PRINTER -8 /* printer I/O class */
|
||||
# define TTY_CHAR_INT 1 /* fcn code for tty input interrupt */
|
||||
# define TTY_O_DONE 2 /* fcn code for tty output done */
|
||||
# define TTY_READ 3 /* fcn code for reading from tty */
|
||||
# define TTY_WRITE 4 /* fcn code for writing to tty */
|
||||
# define TTY_IOCTL 5 /* fcn code for ioctl */
|
||||
# define SUSPEND -998 /* used in interrupts when tty has no data */
|
||||
|
||||
/* Names of message fields for messages to CLOCK task. */
|
||||
#define DELTA_TICKS m6_l1 /* alarm interval in clock ticks */
|
||||
#define FUNC_TO_CALL m6_f1 /* pointer to function to call */
|
||||
#define NEW_TIME m6_l1 /* value to set clock to (SET_TIME) */
|
||||
#define CLOCK_PROC_NR m6_i1 /* which proc (or task) wants the alarm? */
|
||||
#define SECONDS_LEFT m6_l1 /* how many seconds were remaining */
|
||||
|
||||
/* Names of message fields used for messages to block and character tasks. */
|
||||
#define DEVICE m2_i1 /* major-minor device */
|
||||
#define PROC_NR m2_i2 /* which (proc) wants I/O? */
|
||||
#define COUNT m2_i3 /* how many bytes to transfer */
|
||||
#define POSITION m2_l1 /* file offset */
|
||||
#define ADDRESS m2_p1 /* core buffer address */
|
||||
|
||||
/* Names of message fields for messages to TTY task. */
|
||||
#define TTY_LINE m2_i1 /* message parameter: terminal line */
|
||||
#define TTY_REQUEST m2_i3 /* message parameter: ioctl request code */
|
||||
#define TTY_SPEK m2_l1 /* message parameter: ioctl speed, erasing */
|
||||
#define TTY_FLAGS m2_l2 /* message parameter: ioctl tty mode */
|
||||
|
||||
/* Names of messages fields used in reply messages from tasks. */
|
||||
#define REP_PROC_NR m2_i1 /* # of proc on whose behalf I/O was done */
|
||||
#define REP_STATUS m2_i2 /* bytes transferred or error number */
|
||||
|
||||
/* Names of fields for copy message to SYSTASK. */
|
||||
#define SRC_SPACE m5_c1 /* T or D space (stack is also D) */
|
||||
#define SRC_PROC_NR m5_i1 /* process to copy from */
|
||||
#define SRC_BUFFER m5_l1 /* virtual address where data come from */
|
||||
#define DST_SPACE m5_c2 /* T or D space (stack is also D) */
|
||||
#define DST_PROC_NR m5_i2 /* process to copy to */
|
||||
#define DST_BUFFER m5_l2 /* virtual address where data go to */
|
||||
#define COPY_BYTES m5_l3 /* number of bytes to copy */
|
||||
|
||||
/* Field names for accounting, SYSTASK and miscellaneous. */
|
||||
#define USER_TIME m4_l1 /* user time consumed by process */
|
||||
#define SYSTEM_TIME m4_l2 /* system time consumed by process */
|
||||
#define CHILD_UTIME m4_l3 /* user time consumed by process' children */
|
||||
#define CHILD_STIME m4_l4 /* system time consumed by proces children */
|
||||
|
||||
#define PROC1 m1_i1 /* indicates a process */
|
||||
#define PROC2 m1_i2 /* indicates a process */
|
||||
#define PID m1_i3 /* process id passed from MM to kernel */
|
||||
#define STACK_PTR m1_p1 /* used for stack ptr in sys_exec, sys_getsp */
|
||||
#define PR m6_i1 /* process number for sys_sig */
|
||||
#define SIGNUM m6_i2 /* signal number for sys_sig */
|
||||
#define FUNC m6_f1 /* function pointer for sys_sig */
|
||||
#define MEM_PTR m1_p1 /* tells where memory map is for sys_newmap */
|
||||
#define CANCEL 0 /* general request to force a task to cancel */
|
||||
#define SIG_MAP m1_i2 /* used by kernel for passing signal bit map */
|
86
lib/minix/include/minix/const.h
Normal file
86
lib/minix/include/minix/const.h
Normal file
|
@ -0,0 +1,86 @@
|
|||
/* Copyright (C) 1987 by Prentice-Hall, Inc. Permission is hereby granted to
|
||||
* private individuals and educational institutions to modify and
|
||||
* redistribute the binary and source programs of this system to other
|
||||
* private individuals and educational institutions for educational and
|
||||
* research purposes. For corporate or commercial use, permission from
|
||||
* Prentice-Hall is required. In general, such permission will be granted,
|
||||
* subject to a few conditions.
|
||||
*/
|
||||
|
||||
#define EXTERN extern /* used in *.h files */
|
||||
#define PRIVATE static /* PRIVATE x limits the scope of x */
|
||||
#define PUBLIC /* PUBLIC is the opposite of PRIVATE */
|
||||
#define FORWARD static /* some compilers require this to be 'static' */
|
||||
|
||||
#define TRUE 1 /* used for turning integers into Booleans */
|
||||
#define FALSE 0 /* used for turning integers into Booleans */
|
||||
|
||||
#define HZ 60 /* clock freq (software settable on IBM-PC) */
|
||||
#define BLOCK_SIZE 1024 /* # bytes in a disk block */
|
||||
#define SUPER_USER (uid) 0 /* uid of superuser */
|
||||
|
||||
#define MAJOR 8 /* major device = (dev>>MAJOR) & 0377 */
|
||||
#define MINOR 0 /* minor device = (dev>>MINOR) & 0377 */
|
||||
|
||||
#define NR_TASKS 8 /* number of tasks in the transfer vector */
|
||||
#define NR_PROCS 16 /* number of slots in proc table */
|
||||
#define NR_SEGS 3 /* # segments per process */
|
||||
#define T 0 /* proc[i].mem_map[T] is for text */
|
||||
#define D 1 /* proc[i].mem_map[D] is for data */
|
||||
#define S 2 /* proc[i].mem_map[S] is for stack */
|
||||
|
||||
#define MAX_P_LONG 2147483647 /* maximum positive long, i.e. 2**31 - 1 */
|
||||
|
||||
/* Memory is allocated in clicks. */
|
||||
#ifdef i8088
|
||||
#define CLICK_SIZE 0020 /* unit in which memory is allocated */
|
||||
#define CLICK_SHIFT 4 /* log2 of CLICK_SIZE */
|
||||
#endif
|
||||
#ifdef ATARI_ST
|
||||
#define CLICK_SIZE 256 /* unit in which memory is allocated */
|
||||
#define CLICK_SHIFT 8 /* log2 of CLICK_SIZE */
|
||||
#endif
|
||||
|
||||
/* Process numbers of some important processes */
|
||||
#define MM_PROC_NR 0 /* process number of memory manager */
|
||||
#define FS_PROC_NR 1 /* process number of file system */
|
||||
#define INIT_PROC_NR 2 /* init -- the process that goes multiuser */
|
||||
#define LOW_USER 2 /* first user not part of operating system */
|
||||
|
||||
/* Miscellaneous */
|
||||
#define BYTE 0377 /* mask for 8 bits */
|
||||
#define TO_USER 0 /* flag telling to copy from fs to user */
|
||||
#define FROM_USER 1 /* flag telling to copy from user to fs */
|
||||
#define READING 0 /* copy data to user */
|
||||
#define WRITING 1 /* copy data from user */
|
||||
#ifndef ATARI_ST
|
||||
#define ABS -999 /* this process means absolute memory */
|
||||
#endif
|
||||
|
||||
#define WORD_SIZE 2 /* number of bytes per word */
|
||||
|
||||
#define NIL_PTR (char *) 0 /* generally useful expression */
|
||||
|
||||
#define NO_NUM 0x8000 /* used as numerical argument to panic() */
|
||||
#define MAX_PATH 128 /* max length of path names */
|
||||
#define SIG_PUSH_BYTES 8 /* how many bytes pushed by signal */
|
||||
#define MAX_ISTACK_BYTES 1024 /* maximum initial stack size for EXEC */
|
||||
|
||||
/* Device numbers of root (RAM) and boot (fd0) devices. */
|
||||
#define ROOT_DEV (dev_nr) 256 /* major-minor device number of root dev */
|
||||
#define BOOT_DEV (dev_nr) 512 /* major-minor device number of boot diskette */
|
||||
|
||||
/* Flag bits for i_mode in the inode. */
|
||||
#define I_TYPE 0170000 /* this field gives inode type */
|
||||
#define I_REGULAR 0100000 /* regular file, not dir or special */
|
||||
#define I_BLOCK_SPECIAL 0060000 /* block special file */
|
||||
#define I_DIRECTORY 0040000 /* file is a directory */
|
||||
#define I_CHAR_SPECIAL 0020000 /* character special file */
|
||||
#define I_SET_UID_BIT 0004000 /* set effective uid on exec */
|
||||
#define I_SET_GID_BIT 0002000 /* set effective gid on exec */
|
||||
#define ALL_MODES 0006777 /* all bits for user, group and others */
|
||||
#define RWX_MODES 0000777 /* mode bits for RWX only */
|
||||
#define R_BIT 0000004 /* Rwx protection bit */
|
||||
#define W_BIT 0000002 /* rWx protection bit */
|
||||
#define X_BIT 0000001 /* rwX protection bit */
|
||||
#define I_NOT_ALLOC 0000000 /* this inode is free */
|
59
lib/minix/include/minix/error.h
Normal file
59
lib/minix/include/minix/error.h
Normal file
|
@ -0,0 +1,59 @@
|
|||
/* Error codes. They are negative since a few system calls, such as READ, can
|
||||
* either return a positive number indicating success, or an error code.
|
||||
*/
|
||||
|
||||
#define NERROR 34
|
||||
#define OK 0
|
||||
#define ERROR -1
|
||||
#define EPERM -1
|
||||
#define ENOENT -2
|
||||
#define ESRCH -3
|
||||
#define EINTR -4
|
||||
#define EIO -5
|
||||
#define ENXIO -6
|
||||
#define E2BIG -7
|
||||
#define ENOEXEC -8
|
||||
#define EBADF -9
|
||||
#define ECHILD -10
|
||||
#define EAGAIN -11
|
||||
#define ENOMEM -12
|
||||
#define EACCES -13
|
||||
#define EFAULT -14
|
||||
#define ENOTBLK -15
|
||||
#define EBUSY -16
|
||||
#define EEXIST -17
|
||||
#define EXDEV -18
|
||||
#define ENODEV -19
|
||||
#define ENOTDIR -20
|
||||
#define EISDIR -21
|
||||
#define EINVAL -22
|
||||
#define ENFILE -23
|
||||
#define EMFILE -24
|
||||
#define ENOTTY -25
|
||||
#define ETXTBSY -26
|
||||
#define EFBIG -27
|
||||
#define ENOSPC -28
|
||||
#define ESPIPE -29
|
||||
#define EROFS -30
|
||||
#define EMLINK -31
|
||||
#define EPIPE -32
|
||||
#define EDOM -33
|
||||
#define ERANGE -34
|
||||
|
||||
#define E_LOCKED -101
|
||||
#define E_BAD_CALL -102
|
||||
#define E_LONG_STRING -103
|
||||
#define EOF -104 /* End Of File - used by drivers */
|
||||
|
||||
/* The following error codes are generated by the kernel itself. */
|
||||
#define E_BAD_DEST -1 /* destination address illegal */
|
||||
#define E_BAD_SRC -2 /* source address illegal */
|
||||
#define E_TRY_AGAIN -3 /* can't send-- tables full */
|
||||
#define E_OVERRUN -4 /* interrupt for task that is not waiting */
|
||||
#define E_BAD_BUF -5 /* message buf outside caller's addr space */
|
||||
#define E_TASK -6 /* can't send to task */
|
||||
#define E_NO_MESSAGE -7 /* RECEIVE failed: no message present */
|
||||
#define E_NO_PERM -8 /* ordinary users can't send to tasks */
|
||||
#define E_BAD_FCN -9 /* only valid fcns are SEND, RECEIVE, BOTH */
|
||||
#define E_BAD_ADDR -10 /* bad address given to utility routine */
|
||||
#define E_BAD_PROC -11 /* bad proc number given to utility */
|
59
lib/minix/include/minix/sgtty.h
Normal file
59
lib/minix/include/minix/sgtty.h
Normal file
|
@ -0,0 +1,59 @@
|
|||
/* Error codes. They are negative since a few system calls, such as READ, can
|
||||
* either return a positive number indicating success, or an error code.
|
||||
*/
|
||||
|
||||
#define NERROR 34
|
||||
#define OK 0
|
||||
#define ERROR -1
|
||||
#define EPERM -1
|
||||
#define ENOENT -2
|
||||
#define ESRCH -3
|
||||
#define EINTR -4
|
||||
#define EIO -5
|
||||
#define ENXIO -6
|
||||
#define E2BIG -7
|
||||
#define ENOEXEC -8
|
||||
#define EBADF -9
|
||||
#define ECHILD -10
|
||||
#define EAGAIN -11
|
||||
#define ENOMEM -12
|
||||
#define EACCES -13
|
||||
#define EFAULT -14
|
||||
#define ENOTBLK -15
|
||||
#define EBUSY -16
|
||||
#define EEXIST -17
|
||||
#define EXDEV -18
|
||||
#define ENODEV -19
|
||||
#define ENOTDIR -20
|
||||
#define EISDIR -21
|
||||
#define EINVAL -22
|
||||
#define ENFILE -23
|
||||
#define EMFILE -24
|
||||
#define ENOTTY -25
|
||||
#define ETXTBSY -26
|
||||
#define EFBIG -27
|
||||
#define ENOSPC -28
|
||||
#define ESPIPE -29
|
||||
#define EROFS -30
|
||||
#define EMLINK -31
|
||||
#define EPIPE -32
|
||||
#define EDOM -33
|
||||
#define ERANGE -34
|
||||
|
||||
#define E_LOCKED -101
|
||||
#define E_BAD_CALL -102
|
||||
#define E_LONG_STRING -103
|
||||
#define EOF -104 /* End Of File - used by drivers */
|
||||
|
||||
/* The following error codes are generated by the kernel itself. */
|
||||
#define E_BAD_DEST -1 /* destination address illegal */
|
||||
#define E_BAD_SRC -2 /* source address illegal */
|
||||
#define E_TRY_AGAIN -3 /* can't send-- tables full */
|
||||
#define E_OVERRUN -4 /* interrupt for task that is not waiting */
|
||||
#define E_BAD_BUF -5 /* message buf outside caller's addr space */
|
||||
#define E_TASK -6 /* can't send to task */
|
||||
#define E_NO_MESSAGE -7 /* RECEIVE failed: no message present */
|
||||
#define E_NO_PERM -8 /* ordinary users can't send to tasks */
|
||||
#define E_BAD_FCN -9 /* only valid fcns are SEND, RECEIVE, BOTH */
|
||||
#define E_BAD_ADDR -10 /* bad address given to utility routine */
|
||||
#define E_BAD_PROC -11 /* bad proc number given to utility */
|
26
lib/minix/include/minix/stat.h
Normal file
26
lib/minix/include/minix/stat.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
struct stat {
|
||||
short int st_dev;
|
||||
unsigned short st_ino;
|
||||
unsigned short st_mode;
|
||||
short int st_nlink;
|
||||
short int st_uid;
|
||||
short int st_gid;
|
||||
short int st_rdev;
|
||||
long st_size;
|
||||
long st_atime;
|
||||
long st_mtime;
|
||||
long st_ctime;
|
||||
};
|
||||
|
||||
/* Some common definitions. */
|
||||
#define S_IFMT 0170000 /* type of file */
|
||||
#define S_IFDIR 0040000 /* directory */
|
||||
#define S_IFCHR 0020000 /* character special */
|
||||
#define S_IFBLK 0060000 /* block special */
|
||||
#define S_IFREG 0100000 /* regular */
|
||||
#define S_ISUID 04000 /* set user id on execution */
|
||||
#define S_ISGID 02000 /* set group id on execution */
|
||||
#define S_ISVTX 01000 /* save swapped text even after use */
|
||||
#define S_IREAD 00400 /* read permission, owner */
|
||||
#define S_IWRITE 00200 /* write permission, owner */
|
||||
#define S_IEXEC 00100 /* execute/search permission, owner */
|
130
lib/minix/include/minix/type.h
Normal file
130
lib/minix/include/minix/type.h
Normal file
|
@ -0,0 +1,130 @@
|
|||
/* Macros */
|
||||
#define MAX(a,b) (a > b ? a : b)
|
||||
#define MIN(a,b) (a < b ? a : b)
|
||||
|
||||
/* Type definitions */
|
||||
typedef unsigned short unshort; /* must be 16-bit unsigned */
|
||||
typedef unshort block_nr; /* block number */
|
||||
#define NO_BLOCK (block_nr) 0 /* indicates the absence of a block number */
|
||||
#define MAX_BLOCK_NR (block_nr) 0177777
|
||||
|
||||
typedef unshort inode_nr; /* inode number */
|
||||
#define NO_ENTRY (inode_nr) 0 /* indicates the absence of a dir entry */
|
||||
#define MAX_INODE_NR (inode_nr) 0177777
|
||||
|
||||
typedef unshort zone_nr; /* zone number */
|
||||
#define NO_ZONE (zone_nr) 0 /* indicates the absence of a zone number */
|
||||
#define HIGHEST_ZONE (zone_nr) 0177777
|
||||
|
||||
typedef unshort bit_nr; /* if inode_nr & zone_nr both unshort,
|
||||
then also unshort, else long */
|
||||
|
||||
typedef long zone_type; /* zone size */
|
||||
typedef unshort mask_bits; /* mode bits */
|
||||
typedef unshort dev_nr; /* major | minor device number */
|
||||
#define NO_DEV (dev_nr) ~0 /* indicates absence of a device number */
|
||||
|
||||
typedef char links; /* number of links to an inode */
|
||||
#define MAX_LINKS 0177
|
||||
|
||||
typedef long real_time; /* real time in seconds since Jan 1, 1980 */
|
||||
typedef long file_pos; /* position in, or length of, a file */
|
||||
#define MAX_FILE_POS 017777777777L
|
||||
typedef short int uid; /* user id */
|
||||
typedef char gid; /* group id */
|
||||
|
||||
#ifdef i8088
|
||||
typedef unsigned vir_bytes; /* virtual addresses and lengths in bytes */
|
||||
#endif
|
||||
#ifdef ATARI_ST
|
||||
typedef long vir_bytes; /* virtual addresses and lengths in bytes */
|
||||
#endif
|
||||
typedef unsigned vir_clicks; /* virtual addresses and lengths in clicks */
|
||||
typedef long phys_bytes; /* physical addresses and lengths in bytes */
|
||||
typedef unsigned phys_clicks; /* physical addresses and lengths in clicks */
|
||||
typedef int signed_clicks; /* same length as phys_clicks, but signed */
|
||||
|
||||
/* Types relating to messages. */
|
||||
#define M1 1
|
||||
#define M3 3
|
||||
#define M4 4
|
||||
#define M3_STRING 14
|
||||
|
||||
typedef struct {int m1i1, m1i2, m1i3; char *m1p1, *m1p2, *m1p3;} mess_1;
|
||||
typedef struct {int m2i1, m2i2, m2i3; long m2l1, m2l2; char *m2p1;} mess_2;
|
||||
typedef struct {int m3i1, m3i2; char *m3p1; char m3ca1[M3_STRING];} mess_3;
|
||||
typedef struct {long m4l1, m4l2, m4l3, m4l4;} mess_4;
|
||||
typedef struct {char m5c1, m5c2; int m5i1, m5i2; long m5l1, m5l2, m5l3;} mess_5;
|
||||
typedef struct {int m6i1, m6i2, m6i3; long m6l1; int (*m6f1)();} mess_6;
|
||||
|
||||
typedef struct {
|
||||
int m_source; /* who sent the message */
|
||||
int m_type; /* what kind of message is it */
|
||||
union {
|
||||
mess_1 m_m1;
|
||||
mess_2 m_m2;
|
||||
mess_3 m_m3;
|
||||
mess_4 m_m4;
|
||||
mess_5 m_m5;
|
||||
mess_6 m_m6;
|
||||
} m_u;
|
||||
} message;
|
||||
|
||||
#define MESS_SIZE (sizeof(message))
|
||||
#define NIL_MESS (message *) 0
|
||||
|
||||
/* The following defines provide names for useful members. */
|
||||
#define m1_i1 m_u.m_m1.m1i1
|
||||
#define m1_i2 m_u.m_m1.m1i2
|
||||
#define m1_i3 m_u.m_m1.m1i3
|
||||
#define m1_p1 m_u.m_m1.m1p1
|
||||
#define m1_p2 m_u.m_m1.m1p2
|
||||
#define m1_p3 m_u.m_m1.m1p3
|
||||
|
||||
#define m2_i1 m_u.m_m2.m2i1
|
||||
#define m2_i2 m_u.m_m2.m2i2
|
||||
#define m2_i3 m_u.m_m2.m2i3
|
||||
#define m2_l1 m_u.m_m2.m2l1
|
||||
#define m2_l2 m_u.m_m2.m2l2
|
||||
#define m2_p1 m_u.m_m2.m2p1
|
||||
|
||||
#define m3_i1 m_u.m_m3.m3i1
|
||||
#define m3_i2 m_u.m_m3.m3i2
|
||||
#define m3_p1 m_u.m_m3.m3p1
|
||||
#define m3_ca1 m_u.m_m3.m3ca1
|
||||
|
||||
|
||||
#define m4_l1 m_u.m_m4.m4l1
|
||||
#define m4_l2 m_u.m_m4.m4l2
|
||||
#define m4_l3 m_u.m_m4.m4l3
|
||||
#define m4_l4 m_u.m_m4.m4l4
|
||||
|
||||
#define m5_c1 m_u.m_m5.m5c1
|
||||
#define m5_c2 m_u.m_m5.m5c2
|
||||
#define m5_i1 m_u.m_m5.m5i1
|
||||
#define m5_i2 m_u.m_m5.m5i2
|
||||
#define m5_l1 m_u.m_m5.m5l1
|
||||
#define m5_l2 m_u.m_m5.m5l2
|
||||
#define m5_l3 m_u.m_m5.m5l3
|
||||
|
||||
#define m6_i1 m_u.m_m6.m6i1
|
||||
#define m6_i2 m_u.m_m6.m6i2
|
||||
#define m6_i3 m_u.m_m6.m6i3
|
||||
#define m6_l1 m_u.m_m6.m6l1
|
||||
#define m6_f1 m_u.m_m6.m6f1
|
||||
|
||||
struct mem_map {
|
||||
vir_clicks mem_vir; /* virtual address */
|
||||
phys_clicks mem_phys; /* physical address */
|
||||
vir_clicks mem_len; /* length */
|
||||
};
|
||||
|
||||
struct copy_info { /* used by sys_copy(src, dst, bytes) */
|
||||
int cp_src_proc;
|
||||
int cp_src_space;
|
||||
vir_bytes cp_src_vir;
|
||||
int cp_dst_proc;
|
||||
int cp_dst_space;
|
||||
vir_bytes cp_dst_vir;
|
||||
vir_bytes cp_bytes;
|
||||
};
|
31
lib/minix/include/sgtty.h
Normal file
31
lib/minix/include/sgtty.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
/* Data structures for IOCTL. */
|
||||
|
||||
struct sgttyb {
|
||||
char sg_ispeed; /* input speed (not used) */
|
||||
char sg_ospeed; /* output speed (not used) */
|
||||
char sg_erase; /* erase character */
|
||||
char sg_kill; /* kill character */
|
||||
int sg_flags; /* mode flags */
|
||||
};
|
||||
|
||||
struct tchars {
|
||||
char t_intrc; /* SIGINT char */
|
||||
char t_quitc; /* SIGQUIT char */
|
||||
char t_startc; /* start output (initially CTRL-Q) */
|
||||
char t_stopc; /* stop output (initially CTRL-S) */
|
||||
char t_eofc; /* EOF (initially CTRL-D) */
|
||||
char t_brkc; /* input delimiter (like nl) */
|
||||
};
|
||||
|
||||
/* Fields in t_flags. */
|
||||
#define XTABS 0006000 /* do tab expansion */
|
||||
#define RAW 0000040 /* enable raw mode */
|
||||
#define CRMOD 0000020 /* map lf to cr + lf */
|
||||
#define ECHO 0000010 /* echo input */
|
||||
#define CBREAK 0000002 /* enable cbreak mode */
|
||||
#define COOKED 0000000 /* neither CBREAK nor RAW */
|
||||
|
||||
#define TIOCGETP (('t'<<8) | 8)
|
||||
#define TIOCSETP (('t'<<8) | 9)
|
||||
#define TIOCGETC (('t'<<8) | 18)
|
||||
#define TIOCSETC (('t'<<8) | 17)
|
24
lib/minix/include/signal.h
Normal file
24
lib/minix/include/signal.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
#define NR_SIGS 16 /* number of signals used */
|
||||
#define NSIG 16 /* number of signals used */
|
||||
|
||||
#define SIGHUP 1 /* hangup */
|
||||
#define SIGINT 2 /* interrupt (DEL) */
|
||||
#define SIGQUIT 3 /* quit (ASCII FS) */
|
||||
#define SIGILL 4 /* illegal instruction (not reset when caught)*/
|
||||
#define SIGTRAP 5 /* trace trap (not reset when caught) */
|
||||
#define SIGIOT 6 /* IOT instruction */
|
||||
#define SIGEMT 7 /* EMT instruction */
|
||||
#define SIGFPE 8 /* floating point exception */
|
||||
#define SIGKILL 9 /* kill (cannot be caught or ignored) */
|
||||
#define SIGBUS 10 /* bus error */
|
||||
#define SIGSEGV 11 /* segmentation violation */
|
||||
#define SIGSYS 12 /* bad argument to system call */
|
||||
#define SIGPIPE 13 /* write on a pipe with no one to read it */
|
||||
#define SIGALRM 14 /* alarm clock */
|
||||
#define SIGTERM 15 /* software termination signal from kill */
|
||||
|
||||
#define STACK_FAULT 16 /* used by kernel to signal stack fault */
|
||||
|
||||
int (*signal())();
|
||||
#define SIG_DFL (int (*)())0
|
||||
#define SIG_IGN (int (*)())1
|
2
lib/minixST/.distr
Normal file
2
lib/minixST/.distr
Normal file
|
@ -0,0 +1,2 @@
|
|||
descr
|
||||
include
|
50
lib/minixST/include/minix/callnr.h
Normal file
50
lib/minixST/include/minix/callnr.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
#define NCALLS 69 /* number of system calls allowed */
|
||||
|
||||
#define EXIT 1
|
||||
#define FORK 2
|
||||
#define READ 3
|
||||
#define WRITE 4
|
||||
#define OPEN 5
|
||||
#define CLOSE 6
|
||||
#define WAIT 7
|
||||
#define CREAT 8
|
||||
#define LINK 9
|
||||
#define UNLINK 10
|
||||
#define CHDIR 12
|
||||
#define TIME 13
|
||||
#define MKNOD 14
|
||||
#define CHMOD 15
|
||||
#define CHOWN 16
|
||||
#define BRK 17
|
||||
#define STAT 18
|
||||
#define LSEEK 19
|
||||
#define GETPID 20
|
||||
#define MOUNT 21
|
||||
#define UMOUNT 22
|
||||
#define SETUID 23
|
||||
#define GETUID 24
|
||||
#define STIME 25
|
||||
#define ALARM 27
|
||||
#define FSTAT 28
|
||||
#define PAUSE 29
|
||||
#define UTIME 30
|
||||
#define ACCESS 33
|
||||
#define SYNC 36
|
||||
#define KILL 37
|
||||
#define DUP 41
|
||||
#define PIPE 42
|
||||
#define TIMES 43
|
||||
#define SETGID 46
|
||||
#define GETGID 47
|
||||
#define SIGNAL 48
|
||||
#define IOCTL 54
|
||||
#define EXEC 59
|
||||
#define UMASK 60
|
||||
#define CHROOT 61
|
||||
|
||||
/* The following are not system calls, but are processed like them. */
|
||||
#define KSIG 64 /* kernel detected a signal */
|
||||
#define UNPAUSE 65 /* to MM or FS: check for EINTR */
|
||||
#define BRK2 66 /* to MM: used to say how big FS & INIT are */
|
||||
#define REVIVE 67 /* to FS: revive a sleeping process */
|
||||
#define TASK_REPLY 68 /* to FS: reply code from tty task */
|
101
lib/minixST/include/minix/com.h
Normal file
101
lib/minixST/include/minix/com.h
Normal file
|
@ -0,0 +1,101 @@
|
|||
/* System calls. */
|
||||
#define SEND 1 /* function code for sending messages */
|
||||
#define RECEIVE 2 /* function code for receiving messages */
|
||||
#define BOTH 3 /* function code for SEND + RECEIVE */
|
||||
#define ANY (NR_PROCS+100) /* receive(ANY, buf) accepts from any source */
|
||||
|
||||
/* Task numbers, function codes and reply codes. */
|
||||
#define HARDWARE -1 /* used as source on interrupt generated msgs */
|
||||
|
||||
#define SYSTASK -2 /* internal functions */
|
||||
# define SYS_XIT 1 /* fcn code for sys_xit(parent, proc) */
|
||||
# define SYS_GETSP 2 /* fcn code for sys_sp(proc, &new_sp) */
|
||||
# define SYS_SIG 3 /* fcn code for sys_sig(proc, sig) */
|
||||
# define SYS_FORK 4 /* fcn code for sys_fork(parent, child) */
|
||||
# define SYS_NEWMAP 5 /* fcn code for sys_newmap(procno, map_ptr) */
|
||||
# define SYS_COPY 6 /* fcn code for sys_copy(ptr) */
|
||||
# define SYS_EXEC 7 /* fcn code for sys_exec(procno, new_sp) */
|
||||
# define SYS_TIMES 8 /* fcn code for sys_times(procno, bufptr) */
|
||||
# define SYS_ABORT 9 /* fcn code for sys_abort() */
|
||||
#ifdef ATARI_ST
|
||||
# define SYS_FRESH 10 /* fcn code for sys_fresh() */
|
||||
#endif
|
||||
|
||||
#define CLOCK -3 /* clock class */
|
||||
# define SET_ALARM 1 /* fcn code to CLOCK, set up alarm */
|
||||
# define CLOCK_TICK 2 /* fcn code for clock tick */
|
||||
# define GET_TIME 3 /* fcn code to CLOCK, get real time */
|
||||
# define SET_TIME 4 /* fcn code to CLOCK, set real time */
|
||||
# define REAL_TIME 1 /* reply from CLOCK: here is real time */
|
||||
|
||||
#define MEM -4 /* /dev/ram, /dev/(k)mem and /dev/null class */
|
||||
# define RAM_DEV 0 /* minor device for /dev/ram */
|
||||
# define MEM_DEV 1 /* minor device for /dev/mem */
|
||||
# define KMEM_DEV 2 /* minor device for /dev/kmem */
|
||||
# define NULL_DEV 3 /* minor device for /dev/null */
|
||||
|
||||
#define FLOPPY -5 /* floppy disk class */
|
||||
#define WINCHESTER -6 /* winchester (hard) disk class */
|
||||
# define DISKINT 1 /* fcn code for disk interupt */
|
||||
# define DISK_READ 3 /* fcn code to DISK (must equal TTY_READ) */
|
||||
# define DISK_WRITE 4 /* fcn code to DISK (must equal TTY_WRITE) */
|
||||
# define DISK_IOCTL 5 /* fcn code for setting up RAM disk */
|
||||
|
||||
#define TTY -7 /* terminal I/O class */
|
||||
#define PRINTER -8 /* printer I/O class */
|
||||
# define TTY_CHAR_INT 1 /* fcn code for tty input interrupt */
|
||||
# define TTY_O_DONE 2 /* fcn code for tty output done */
|
||||
# define TTY_READ 3 /* fcn code for reading from tty */
|
||||
# define TTY_WRITE 4 /* fcn code for writing to tty */
|
||||
# define TTY_IOCTL 5 /* fcn code for ioctl */
|
||||
# define SUSPEND -998 /* used in interrupts when tty has no data */
|
||||
|
||||
/* Names of message fields for messages to CLOCK task. */
|
||||
#define DELTA_TICKS m6_l1 /* alarm interval in clock ticks */
|
||||
#define FUNC_TO_CALL m6_f1 /* pointer to function to call */
|
||||
#define NEW_TIME m6_l1 /* value to set clock to (SET_TIME) */
|
||||
#define CLOCK_PROC_NR m6_i1 /* which proc (or task) wants the alarm? */
|
||||
#define SECONDS_LEFT m6_l1 /* how many seconds were remaining */
|
||||
|
||||
/* Names of message fields used for messages to block and character tasks. */
|
||||
#define DEVICE m2_i1 /* major-minor device */
|
||||
#define PROC_NR m2_i2 /* which (proc) wants I/O? */
|
||||
#define COUNT m2_i3 /* how many bytes to transfer */
|
||||
#define POSITION m2_l1 /* file offset */
|
||||
#define ADDRESS m2_p1 /* core buffer address */
|
||||
|
||||
/* Names of message fields for messages to TTY task. */
|
||||
#define TTY_LINE m2_i1 /* message parameter: terminal line */
|
||||
#define TTY_REQUEST m2_i3 /* message parameter: ioctl request code */
|
||||
#define TTY_SPEK m2_l1 /* message parameter: ioctl speed, erasing */
|
||||
#define TTY_FLAGS m2_l2 /* message parameter: ioctl tty mode */
|
||||
|
||||
/* Names of messages fields used in reply messages from tasks. */
|
||||
#define REP_PROC_NR m2_i1 /* # of proc on whose behalf I/O was done */
|
||||
#define REP_STATUS m2_i2 /* bytes transferred or error number */
|
||||
|
||||
/* Names of fields for copy message to SYSTASK. */
|
||||
#define SRC_SPACE m5_c1 /* T or D space (stack is also D) */
|
||||
#define SRC_PROC_NR m5_i1 /* process to copy from */
|
||||
#define SRC_BUFFER m5_l1 /* virtual address where data come from */
|
||||
#define DST_SPACE m5_c2 /* T or D space (stack is also D) */
|
||||
#define DST_PROC_NR m5_i2 /* process to copy to */
|
||||
#define DST_BUFFER m5_l2 /* virtual address where data go to */
|
||||
#define COPY_BYTES m5_l3 /* number of bytes to copy */
|
||||
|
||||
/* Field names for accounting, SYSTASK and miscellaneous. */
|
||||
#define USER_TIME m4_l1 /* user time consumed by process */
|
||||
#define SYSTEM_TIME m4_l2 /* system time consumed by process */
|
||||
#define CHILD_UTIME m4_l3 /* user time consumed by process' children */
|
||||
#define CHILD_STIME m4_l4 /* system time consumed by proces children */
|
||||
|
||||
#define PROC1 m1_i1 /* indicates a process */
|
||||
#define PROC2 m1_i2 /* indicates a process */
|
||||
#define PID m1_i3 /* process id passed from MM to kernel */
|
||||
#define STACK_PTR m1_p1 /* used for stack ptr in sys_exec, sys_getsp */
|
||||
#define PR m6_i1 /* process number for sys_sig */
|
||||
#define SIGNUM m6_i2 /* signal number for sys_sig */
|
||||
#define FUNC m6_f1 /* function pointer for sys_sig */
|
||||
#define MEM_PTR m1_p1 /* tells where memory map is for sys_newmap */
|
||||
#define CANCEL 0 /* general request to force a task to cancel */
|
||||
#define SIG_MAP m1_i2 /* used by kernel for passing signal bit map */
|
86
lib/minixST/include/minix/const.h
Normal file
86
lib/minixST/include/minix/const.h
Normal file
|
@ -0,0 +1,86 @@
|
|||
/* Copyright (C) 1987 by Prentice-Hall, Inc. Permission is hereby granted to
|
||||
* private individuals and educational institutions to modify and
|
||||
* redistribute the binary and source programs of this system to other
|
||||
* private individuals and educational institutions for educational and
|
||||
* research purposes. For corporate or commercial use, permission from
|
||||
* Prentice-Hall is required. In general, such permission will be granted,
|
||||
* subject to a few conditions.
|
||||
*/
|
||||
|
||||
#define EXTERN extern /* used in *.h files */
|
||||
#define PRIVATE static /* PRIVATE x limits the scope of x */
|
||||
#define PUBLIC /* PUBLIC is the opposite of PRIVATE */
|
||||
#define FORWARD static /* some compilers require this to be 'static' */
|
||||
|
||||
#define TRUE 1 /* used for turning integers into Booleans */
|
||||
#define FALSE 0 /* used for turning integers into Booleans */
|
||||
|
||||
#define HZ 60 /* clock freq (software settable on IBM-PC) */
|
||||
#define BLOCK_SIZE 1024 /* # bytes in a disk block */
|
||||
#define SUPER_USER (uid) 0 /* uid of superuser */
|
||||
|
||||
#define MAJOR 8 /* major device = (dev>>MAJOR) & 0377 */
|
||||
#define MINOR 0 /* minor device = (dev>>MINOR) & 0377 */
|
||||
|
||||
#define NR_TASKS 8 /* number of tasks in the transfer vector */
|
||||
#define NR_PROCS 16 /* number of slots in proc table */
|
||||
#define NR_SEGS 3 /* # segments per process */
|
||||
#define T 0 /* proc[i].mem_map[T] is for text */
|
||||
#define D 1 /* proc[i].mem_map[D] is for data */
|
||||
#define S 2 /* proc[i].mem_map[S] is for stack */
|
||||
|
||||
#define MAX_P_LONG 2147483647 /* maximum positive long, i.e. 2**31 - 1 */
|
||||
|
||||
/* Memory is allocated in clicks. */
|
||||
#ifdef i8088
|
||||
#define CLICK_SIZE 0020 /* unit in which memory is allocated */
|
||||
#define CLICK_SHIFT 4 /* log2 of CLICK_SIZE */
|
||||
#endif
|
||||
#ifdef ATARI_ST
|
||||
#define CLICK_SIZE 256 /* unit in which memory is allocated */
|
||||
#define CLICK_SHIFT 8 /* log2 of CLICK_SIZE */
|
||||
#endif
|
||||
|
||||
/* Process numbers of some important processes */
|
||||
#define MM_PROC_NR 0 /* process number of memory manager */
|
||||
#define FS_PROC_NR 1 /* process number of file system */
|
||||
#define INIT_PROC_NR 2 /* init -- the process that goes multiuser */
|
||||
#define LOW_USER 2 /* first user not part of operating system */
|
||||
|
||||
/* Miscellaneous */
|
||||
#define BYTE 0377 /* mask for 8 bits */
|
||||
#define TO_USER 0 /* flag telling to copy from fs to user */
|
||||
#define FROM_USER 1 /* flag telling to copy from user to fs */
|
||||
#define READING 0 /* copy data to user */
|
||||
#define WRITING 1 /* copy data from user */
|
||||
#ifndef ATARI_ST
|
||||
#define ABS -999 /* this process means absolute memory */
|
||||
#endif
|
||||
|
||||
#define WORD_SIZE 2 /* number of bytes per word */
|
||||
|
||||
#define NIL_PTR (char *) 0 /* generally useful expression */
|
||||
|
||||
#define NO_NUM 0x8000 /* used as numerical argument to panic() */
|
||||
#define MAX_PATH 128 /* max length of path names */
|
||||
#define SIG_PUSH_BYTES 8 /* how many bytes pushed by signal */
|
||||
#define MAX_ISTACK_BYTES 1024 /* maximum initial stack size for EXEC */
|
||||
|
||||
/* Device numbers of root (RAM) and boot (fd0) devices. */
|
||||
#define ROOT_DEV (dev_nr) 256 /* major-minor device number of root dev */
|
||||
#define BOOT_DEV (dev_nr) 512 /* major-minor device number of boot diskette */
|
||||
|
||||
/* Flag bits for i_mode in the inode. */
|
||||
#define I_TYPE 0170000 /* this field gives inode type */
|
||||
#define I_REGULAR 0100000 /* regular file, not dir or special */
|
||||
#define I_BLOCK_SPECIAL 0060000 /* block special file */
|
||||
#define I_DIRECTORY 0040000 /* file is a directory */
|
||||
#define I_CHAR_SPECIAL 0020000 /* character special file */
|
||||
#define I_SET_UID_BIT 0004000 /* set effective uid on exec */
|
||||
#define I_SET_GID_BIT 0002000 /* set effective gid on exec */
|
||||
#define ALL_MODES 0006777 /* all bits for user, group and others */
|
||||
#define RWX_MODES 0000777 /* mode bits for RWX only */
|
||||
#define R_BIT 0000004 /* Rwx protection bit */
|
||||
#define W_BIT 0000002 /* rWx protection bit */
|
||||
#define X_BIT 0000001 /* rwX protection bit */
|
||||
#define I_NOT_ALLOC 0000000 /* this inode is free */
|
59
lib/minixST/include/minix/error.h
Normal file
59
lib/minixST/include/minix/error.h
Normal file
|
@ -0,0 +1,59 @@
|
|||
/* Error codes. They are negative since a few system calls, such as READ, can
|
||||
* either return a positive number indicating success, or an error code.
|
||||
*/
|
||||
|
||||
#define NERROR 34
|
||||
#define OK 0
|
||||
#define ERROR -1
|
||||
#define EPERM -1
|
||||
#define ENOENT -2
|
||||
#define ESRCH -3
|
||||
#define EINTR -4
|
||||
#define EIO -5
|
||||
#define ENXIO -6
|
||||
#define E2BIG -7
|
||||
#define ENOEXEC -8
|
||||
#define EBADF -9
|
||||
#define ECHILD -10
|
||||
#define EAGAIN -11
|
||||
#define ENOMEM -12
|
||||
#define EACCES -13
|
||||
#define EFAULT -14
|
||||
#define ENOTBLK -15
|
||||
#define EBUSY -16
|
||||
#define EEXIST -17
|
||||
#define EXDEV -18
|
||||
#define ENODEV -19
|
||||
#define ENOTDIR -20
|
||||
#define EISDIR -21
|
||||
#define EINVAL -22
|
||||
#define ENFILE -23
|
||||
#define EMFILE -24
|
||||
#define ENOTTY -25
|
||||
#define ETXTBSY -26
|
||||
#define EFBIG -27
|
||||
#define ENOSPC -28
|
||||
#define ESPIPE -29
|
||||
#define EROFS -30
|
||||
#define EMLINK -31
|
||||
#define EPIPE -32
|
||||
#define EDOM -33
|
||||
#define ERANGE -34
|
||||
|
||||
#define E_LOCKED -101
|
||||
#define E_BAD_CALL -102
|
||||
#define E_LONG_STRING -103
|
||||
#define EOF -104 /* End Of File - used by drivers */
|
||||
|
||||
/* The following error codes are generated by the kernel itself. */
|
||||
#define E_BAD_DEST -1 /* destination address illegal */
|
||||
#define E_BAD_SRC -2 /* source address illegal */
|
||||
#define E_TRY_AGAIN -3 /* can't send-- tables full */
|
||||
#define E_OVERRUN -4 /* interrupt for task that is not waiting */
|
||||
#define E_BAD_BUF -5 /* message buf outside caller's addr space */
|
||||
#define E_TASK -6 /* can't send to task */
|
||||
#define E_NO_MESSAGE -7 /* RECEIVE failed: no message present */
|
||||
#define E_NO_PERM -8 /* ordinary users can't send to tasks */
|
||||
#define E_BAD_FCN -9 /* only valid fcns are SEND, RECEIVE, BOTH */
|
||||
#define E_BAD_ADDR -10 /* bad address given to utility routine */
|
||||
#define E_BAD_PROC -11 /* bad proc number given to utility */
|
26
lib/minixST/include/minix/stat.h
Normal file
26
lib/minixST/include/minix/stat.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
struct stat {
|
||||
short int st_dev;
|
||||
unsigned short st_ino;
|
||||
unsigned short st_mode;
|
||||
short int st_nlink;
|
||||
short int st_uid;
|
||||
short int st_gid;
|
||||
short int st_rdev;
|
||||
long st_size;
|
||||
long st_atime;
|
||||
long st_mtime;
|
||||
long st_ctime;
|
||||
};
|
||||
|
||||
/* Some common definitions. */
|
||||
#define S_IFMT 0170000 /* type of file */
|
||||
#define S_IFDIR 0040000 /* directory */
|
||||
#define S_IFCHR 0020000 /* character special */
|
||||
#define S_IFBLK 0060000 /* block special */
|
||||
#define S_IFREG 0100000 /* regular */
|
||||
#define S_ISUID 04000 /* set user id on execution */
|
||||
#define S_ISGID 02000 /* set group id on execution */
|
||||
#define S_ISVTX 01000 /* save swapped text even after use */
|
||||
#define S_IREAD 00400 /* read permission, owner */
|
||||
#define S_IWRITE 00200 /* write permission, owner */
|
||||
#define S_IEXEC 00100 /* execute/search permission, owner */
|
130
lib/minixST/include/minix/type.h
Normal file
130
lib/minixST/include/minix/type.h
Normal file
|
@ -0,0 +1,130 @@
|
|||
/* Macros */
|
||||
#define MAX(a,b) (a > b ? a : b)
|
||||
#define MIN(a,b) (a < b ? a : b)
|
||||
|
||||
/* Type definitions */
|
||||
typedef unsigned short unshort; /* must be 16-bit unsigned */
|
||||
typedef unshort block_nr; /* block number */
|
||||
#define NO_BLOCK (block_nr) 0 /* indicates the absence of a block number */
|
||||
#define MAX_BLOCK_NR (block_nr) 0177777
|
||||
|
||||
typedef unshort inode_nr; /* inode number */
|
||||
#define NO_ENTRY (inode_nr) 0 /* indicates the absence of a dir entry */
|
||||
#define MAX_INODE_NR (inode_nr) 0177777
|
||||
|
||||
typedef unshort zone_nr; /* zone number */
|
||||
#define NO_ZONE (zone_nr) 0 /* indicates the absence of a zone number */
|
||||
#define HIGHEST_ZONE (zone_nr) 0177777
|
||||
|
||||
typedef unshort bit_nr; /* if inode_nr & zone_nr both unshort,
|
||||
then also unshort, else long */
|
||||
|
||||
typedef long zone_type; /* zone size */
|
||||
typedef unshort mask_bits; /* mode bits */
|
||||
typedef unshort dev_nr; /* major | minor device number */
|
||||
#define NO_DEV (dev_nr) ~0 /* indicates absence of a device number */
|
||||
|
||||
typedef char links; /* number of links to an inode */
|
||||
#define MAX_LINKS 0177
|
||||
|
||||
typedef long real_time; /* real time in seconds since Jan 1, 1980 */
|
||||
typedef long file_pos; /* position in, or length of, a file */
|
||||
#define MAX_FILE_POS 017777777777L
|
||||
typedef short int uid; /* user id */
|
||||
typedef char gid; /* group id */
|
||||
|
||||
#ifdef i8088
|
||||
typedef unsigned vir_bytes; /* virtual addresses and lengths in bytes */
|
||||
#endif
|
||||
#ifdef ATARI_ST
|
||||
typedef long vir_bytes; /* virtual addresses and lengths in bytes */
|
||||
#endif
|
||||
typedef unsigned vir_clicks; /* virtual addresses and lengths in clicks */
|
||||
typedef long phys_bytes; /* physical addresses and lengths in bytes */
|
||||
typedef unsigned phys_clicks; /* physical addresses and lengths in clicks */
|
||||
typedef int signed_clicks; /* same length as phys_clicks, but signed */
|
||||
|
||||
/* Types relating to messages. */
|
||||
#define M1 1
|
||||
#define M3 3
|
||||
#define M4 4
|
||||
#define M3_STRING 14
|
||||
|
||||
typedef struct {int m1i1, m1i2, m1i3; char *m1p1, *m1p2, *m1p3;} mess_1;
|
||||
typedef struct {int m2i1, m2i2, m2i3; long m2l1, m2l2; char *m2p1;} mess_2;
|
||||
typedef struct {int m3i1, m3i2; char *m3p1; char m3ca1[M3_STRING];} mess_3;
|
||||
typedef struct {long m4l1, m4l2, m4l3, m4l4;} mess_4;
|
||||
typedef struct {char m5c1, m5c2; int m5i1, m5i2; long m5l1, m5l2, m5l3;} mess_5;
|
||||
typedef struct {int m6i1, m6i2, m6i3; long m6l1; int (*m6f1)();} mess_6;
|
||||
|
||||
typedef struct {
|
||||
int m_source; /* who sent the message */
|
||||
int m_type; /* what kind of message is it */
|
||||
union {
|
||||
mess_1 m_m1;
|
||||
mess_2 m_m2;
|
||||
mess_3 m_m3;
|
||||
mess_4 m_m4;
|
||||
mess_5 m_m5;
|
||||
mess_6 m_m6;
|
||||
} m_u;
|
||||
} message;
|
||||
|
||||
#define MESS_SIZE (sizeof(message))
|
||||
#define NIL_MESS (message *) 0
|
||||
|
||||
/* The following defines provide names for useful members. */
|
||||
#define m1_i1 m_u.m_m1.m1i1
|
||||
#define m1_i2 m_u.m_m1.m1i2
|
||||
#define m1_i3 m_u.m_m1.m1i3
|
||||
#define m1_p1 m_u.m_m1.m1p1
|
||||
#define m1_p2 m_u.m_m1.m1p2
|
||||
#define m1_p3 m_u.m_m1.m1p3
|
||||
|
||||
#define m2_i1 m_u.m_m2.m2i1
|
||||
#define m2_i2 m_u.m_m2.m2i2
|
||||
#define m2_i3 m_u.m_m2.m2i3
|
||||
#define m2_l1 m_u.m_m2.m2l1
|
||||
#define m2_l2 m_u.m_m2.m2l2
|
||||
#define m2_p1 m_u.m_m2.m2p1
|
||||
|
||||
#define m3_i1 m_u.m_m3.m3i1
|
||||
#define m3_i2 m_u.m_m3.m3i2
|
||||
#define m3_p1 m_u.m_m3.m3p1
|
||||
#define m3_ca1 m_u.m_m3.m3ca1
|
||||
|
||||
|
||||
#define m4_l1 m_u.m_m4.m4l1
|
||||
#define m4_l2 m_u.m_m4.m4l2
|
||||
#define m4_l3 m_u.m_m4.m4l3
|
||||
#define m4_l4 m_u.m_m4.m4l4
|
||||
|
||||
#define m5_c1 m_u.m_m5.m5c1
|
||||
#define m5_c2 m_u.m_m5.m5c2
|
||||
#define m5_i1 m_u.m_m5.m5i1
|
||||
#define m5_i2 m_u.m_m5.m5i2
|
||||
#define m5_l1 m_u.m_m5.m5l1
|
||||
#define m5_l2 m_u.m_m5.m5l2
|
||||
#define m5_l3 m_u.m_m5.m5l3
|
||||
|
||||
#define m6_i1 m_u.m_m6.m6i1
|
||||
#define m6_i2 m_u.m_m6.m6i2
|
||||
#define m6_i3 m_u.m_m6.m6i3
|
||||
#define m6_l1 m_u.m_m6.m6l1
|
||||
#define m6_f1 m_u.m_m6.m6f1
|
||||
|
||||
struct mem_map {
|
||||
vir_clicks mem_vir; /* virtual address */
|
||||
phys_clicks mem_phys; /* physical address */
|
||||
vir_clicks mem_len; /* length */
|
||||
};
|
||||
|
||||
struct copy_info { /* used by sys_copy(src, dst, bytes) */
|
||||
int cp_src_proc;
|
||||
int cp_src_space;
|
||||
vir_bytes cp_src_vir;
|
||||
int cp_dst_proc;
|
||||
int cp_dst_space;
|
||||
vir_bytes cp_dst_vir;
|
||||
vir_bytes cp_bytes;
|
||||
};
|
Loading…
Reference in a new issue