You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

90 lines
3.1 KiB

/* kernel.h */
/* avr specific values. Original saved under orig/ folder */
/* General type declarations used throughout the kernel */
typedef unsigned char byte;
typedef unsigned char uint8;
typedef long int32;
typedef int int16;
typedef unsigned long uint32;
typedef unsigned int uint16;
typedef unsigned long long uint64;
/* Xinu-specific types */
typedef int16 pri16; /* process priority */
typedef uint32 umsg32; /* message passed among processes */
typedef int32 bpid32; /* buffer pool ID */
typedef byte bool8; /* Boolean type */
/* Xinu-specific types */
typedef int sid32; /* semaphore ID */
typedef int16 qid16; /* queue ID */
typedef int32 pid32; /* process ID */
typedef int32 did32; /* device ID */
// typedef uint32 intmask; /* saved interrupt mask */
typedef uint8 intmask; /* saved interrupt mask */
typedef int32 ibid32; /* index block ID (used in file system) */
typedef int32 dbid32; /* data block ID (used in file system) */
typedef int32 uid32; /* ID for UDP table descriptor */
//typedef char sid32; /* semaphore ID */
//typedef char qid16; /* queue ID */
//typedef char pid32; /* process ID */
//typedef char did32; /* device ID */
//typedef char intmask; /* saved interrupt mask */
//typedef char ibid32; /* index block ID (used in file system) */
//typedef char dbid32; /* data block ID (used in file system) */
//typedef char uid32; /* ID for UDP table descriptor */
/* Function declaration return types */
typedef int32 process; /* top-level function of a process */
typedef void interrupt; /* interrupt procedure */
typedef char syscall; /* system call declaration */
typedef char devcall; /* device call declaration */
typedef char shellcmd; /* shell command declaration */
typedef char status; /* returned status value (OK/SYSERR) */
#define local static /* Local procedure or variable declar. */
/* Boolean constants */
#define FALSE 0 /* Boolean False */
#define TRUE 1 /* Boolean True */
/* Null pointer, character, and string definintions */
#define NULL 0 /* null pointer for linked lists */
#define NULLCH '\0' /* null character */
#define NULLSTR "" /* null string */
/* Universal return constants */
#define OK ( 1) /* normal system call return */
#define SYSERR (-1) /* system call failed */
#define EOF (-2) /* End-of-file (usually from read) */
#define TIMEOUT (-3) /* system call timed out */
extern qid16 readylist; /* global ID for list of ready processes*/
#define MINSTK 64 /* minimum stack size in bytes */
#define CONTEXT 64 /* bytes in a function call context on */
/* the run-time stack */
#define QUANTUM 1 /* time slice in milliseconds */
/* Size of the stack for the null process */
#define NULLSTK 64 /* stack size for null process */
/* Prototypes of I/O functions used throughout the kernel */
syscall kprintf(char *fmt, ...);
syscall kputc(byte);
syscall kgetc(void);