Include freestanding headers in common.h
authorcoderain <coderain@sdf.org>
Tue, 4 Apr 2017 19:41:32 +0000 (21:41 +0200)
committercoderain <coderain@sdf.org>
Tue, 4 Apr 2017 19:41:32 +0000 (21:41 +0200)
kernel/include/clock.h
kernel/include/common.h

index 5cc04bc9a60206c0a425c812cb25ab947f7d820f..eabe7228c78f8f388c02b2955d79b666eca8b4e2 100644 (file)
@@ -34,6 +34,9 @@
 #define CLOCK_PERIODIC_INT (1 << 6)
 #define CLOCK_DISABLE (1 << 7)
 
+#define CMOS_CMD_PORT 0x70
+#define CMOS_DATA_PORT 0x71
+
 #define CMOS_RTC_SECONDS_REG 0x00
 #define CMOS_RTC_MINUTES_REG 0x02
 #define CMOS_RTC_HOURS_REG 0x04
index 34ca8df14679d627b6f0e10cc07b782fe81e2c72..9d261d043312318381e38ffef195c4a65246d773 100644 (file)
 #ifndef _COMMON_H_
 #define _COMMON_H_
 
-#define NULL (void*)0
-#define FALSE 0
-#define TRUE 1
+#include <limits.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
 
+#define FALSE 0
+#define TRUE (!FALSE)
 #define VARIABLE_SIZE 0
 
-#define CHAR_MIN  -128
-#define CHAR_MAX  127
+/* Monolithium-specific Type Limits */
 #define BYTE_MIN  0
 #define BYTE_MAX  0xFF
-#define SHORT_MIN -32768
-#define SHORT_MAX 32767
 #define WORD_MIN  0
 #define WORD_MAX  0xFFFF
-#define INT_MIN   -2147483648
-#define INT_MAX   2147483647
 #define DWORD_MIN 0
 #define DWORD_MAX 0xFFFFFFFF
 #define QWORD_MIN 0ULL
 #define QWORD_MAX 0xFFFFFFFFFFFFFFFFULL
 
+/* Monolithium Error Codes */
 #define ERR_SUCCESS   0x00000000
 #define ERR_NOTFOUND  0xE0000001
 #define ERR_FORBIDDEN 0xE0000002
 #define ERR_NOMORE    0xE0000015
 #define MAX_ERR       0xE0000016
 
-#define CMOS_CMD_PORT 0x70
-#define CMOS_DATA_PORT 0x71
-
-#define va_start(v,l) __builtin_va_start(v,l)
-#define va_arg(v,l) __builtin_va_arg(v,l)
-#define va_end(v) __builtin_va_end(v)
-#define va_copy(d,s) __builtin_va_copy(d,s)
-
+/* Monolithium-specific Helper Macros */
 #define UNUSED_PARAMETER(x) (x)=(x)
 #define SEGMENT_RPL(x) ((x) & 0x03)
-#define OFFSET_OF(type, field) ((dword_t)(&((type*)NULL)->field))
-#define CONTAINER_OF(ptr, type, field) ((type*)((dword_t)(ptr) - OFFSET_OF(type, field)))
+#define OFFSET_OF(type, field) ((uintptr_t)(&((type*)NULL)->field))
+#define CONTAINER_OF(ptr, type, field) ((type*)((uintptr_t)(ptr) - OFFSET_OF(type, field)))
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
 
 #define MAX_PATH 16384
 
 #define TEXT_COLOR_RED   0x04
 #define TEXT_COLOR_STRONG 0x08
 
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
-
-typedef unsigned char bool_t;
-typedef __builtin_va_list va_list;
-typedef unsigned char byte_t;
-typedef unsigned short word_t;
-typedef unsigned int dword_t;
-typedef unsigned long long qword_t;
+/* Monolithium-specific Types */
+typedef uint8_t bool_t;
+typedef uint8_t byte_t;
+typedef uint16_t word_t;
+typedef uint32_t dword_t;
+typedef uint64_t qword_t;
 typedef bool_t critical_t;
-typedef char int8_t;
-typedef short int16_t;
-typedef long int32_t;
-typedef long long int64_t;
-
-typedef int32_t intptr_t;
-typedef dword_t uintptr_t;
-
-typedef uintptr_t size_t;
 
 static inline byte_t inportb(word_t port)
 {