summaryrefslogtreecommitdiff
path: root/kernel/old/include/defs.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/old/include/defs.h')
-rw-r--r--kernel/old/include/defs.h130
1 files changed, 130 insertions, 0 deletions
diff --git a/kernel/old/include/defs.h b/kernel/old/include/defs.h
new file mode 100644
index 0000000..018b14e
--- /dev/null
+++ b/kernel/old/include/defs.h
@@ -0,0 +1,130 @@
+/**
+** @file defs.h
+**
+** @author Warren R. Carithers
+**
+** @brief Common definitions.
+**
+** This header file defines things which are neede by all
+** parts of the system (OS and user levels).
+**
+** Things which are kernel-specific go in the kdefs.h file;
+** things which are user-specific go in the udefs.h file.
+** The correct one of these will be automatically included
+** at the end of this file.
+*/
+
+#ifndef DEFS_H_
+#define DEFS_H_
+
+/*
+** General (C and/or assembly) definitions
+**
+** This section of the header file contains definitions that can be
+** used in either C or assembly-language source code.
+*/
+
+// NULL pointer value
+//
+// we define this the traditional way so that
+// it's usable from both C and assembly
+
+#define NULL 0
+
+// predefined i/o channels
+
+#define CHAN_CIO 0
+#define CHAN_SIO 1
+
+// sizes of various things
+#define NUM_1KB 0x00000400 // 2^10
+#define NUM_4KB 0x00001000 // 2^12
+#define NUM_1MB 0x00100000 // 2^20
+#define NUM_4MB 0x00400000 // 2^22
+#define NUM_1GB 0x40000000 // 2^30
+#define NUM_2GB 0x80000000 // 2^31
+#define NUM_3GB 0xc0000000 // 1GB + 2GB
+
+#ifndef ASM_SRC
+
+/*
+** Start of C-only definitions
+**
+** Anything that should not be visible to something other than
+** the C compiler should be put here.
+*/
+
+/*
+** System error codes
+**
+** These can be returned to both system functions
+** and to user system calls.
+*/
+// success!
+#define SUCCESS (0)
+#define E_SUCCESS SUCCESS
+// generic "something went wrong"
+#define E_FAILURE (-1)
+// specific failure reasons
+#define E_BAD_PARAM (-2)
+#define E_BAD_CHAN (-3)
+#define E_NO_CHILDREN (-4)
+#define E_NO_MEMORY (-5)
+#define E_NOT_FOUND (-6)
+#define E_NO_PROCS (-7)
+
+/*
+** These error codes are internal to the OS.
+*/
+#define E_EMPTY_QUEUE (-100)
+#define E_NO_PCBS (-101)
+#define E_NO_PTE (-102)
+#define E_LOAD_LIMIT (-103)
+
+// exit status values
+#define EXIT_SUCCESS (0)
+#define EXIT_FAILURE (-1)
+#define EXIT_KILLED (-101)
+#define EXIT_BAD_SYSCALL (-102)
+
+/*
+** Process priority values
+*/
+enum priority_e {
+ PRIO_HIGH,
+ PRIO_STD,
+ PRIO_LOW,
+ PRIO_DEFERRED
+ // sentinel
+ ,
+ N_PRIOS
+};
+
+// halves of various data sizes
+
+#define UI16_UPPER 0xff00
+#define UI16_LOWER 0x00ff
+
+#define UI32_UPPER 0xffff0000
+#define UI32_LOWER 0x0000ffff
+
+#define UI64_UPPER 0xffffffff00000000LL
+#define UI64_LOWER 0x00000000ffffffffLL
+
+// Simple conversion pseudo-functions usable by everyone
+
+// convert seconds to ms
+#define SEC_TO_MS(n) ((n) * 1000)
+
+#endif /* !ASM_SRC */
+
+/*
+** Level-specific definitions
+*/
+#ifdef KERNEL_SRC
+#include <kdefs.h>
+#else
+#include <udefs.h>
+#endif /* KERNEL_SRC */
+
+#endif