From 0369b1505b019becfb74ccd9c82f9f7700af377a Mon Sep 17 00:00:00 2001 From: Nicholas Date: Fri, 12 Nov 2021 16:59:46 -0800 Subject: chore: error->int --- include/u.h | 130 +++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 93 insertions(+), 37 deletions(-) (limited to 'include/u.h') diff --git a/include/u.h b/include/u.h index 3cf3c7b..cf5f53c 100644 --- a/include/u.h +++ b/include/u.h @@ -1,64 +1,120 @@ #pragma once -// ------------------------------------------------------------------------ -// Freestanding headers - -#include -#include -#include -#include -#include -#include +#include // ------------------------------------------------------------------------ -// Modern type aliases +// types -typedef char byte; -typedef unsigned char ubyte, uchar; -typedef signed char sbyte, schar; +/* useful aliases */ +typedef char byte; +typedef signed char schar, sbyte; +typedef unsigned char uchar, ubyte; +typedef signed short sshort; typedef unsigned short ushort; -typedef signed short sshort; -typedef unsigned int uint; -typedef signed int sint; +typedef signed int sint; +typedef unsigned int uint; +typedef signed long slong; typedef unsigned long ulong; -typedef signed long slong; -typedef unsigned long ulong; -typedef signed long slong; +typedef long long vlong; +typedef unsigned long long uvlong; +typedef signed long long svlong; -typedef long long vlong; -typedef unsigned long long uvlong; -typedef signed long long svlong; +typedef _Bool bool; -typedef uint8_t uint8; -typedef uint16_t uint16; -typedef uint32_t uint32; -typedef uint64_t uint64; +/* fixed width */ +typedef signed INT8 int8; +typedef signed INT16 int16; +typedef signed INT32 int32; +typedef signed INT64 int64; -typedef int8_t int8; -typedef int16_t int16; -typedef int32_t int32; -typedef int64_t int64; +typedef unsigned INT8 uint8; +typedef unsigned INT16 uint16; +typedef unsigned INT32 uint32; +typedef unsigned INT64 uint64; -typedef float float32; -typedef double float64; +typedef uint32 rune; -typedef uintptr_t uintptr; -typedef intptr_t intptr; +/* pointer address */ +typedef ADDR intptr; +typedef unsigned ADDR uintptr; -typedef int error; +#undef INT8 +#undef INT16 +#undef INT32 +#undef INT64 +#undef ADDR -#define nil NULL +// ------------------------------------------------------------------ +// global constants + +#define true 1 +#define false 0 +#define nil ((void*)0) + +/* limits */ +#define CHAR_BIT 8 +#define SCHAR_MIN (-128) +#define SCHAR_MAX 127 +#define UCHAR_MAX 255 + +#if '\xff' > 0 +# define CHAR_MIN 0 +# define CHAR_MAX UCHAR_MAX +#else +# define CHAR_MIN SCHAR_MIN +# define CHAR_MAX SCHAR_MAX +#endif + +#define SHRT_MIN (-1-0x7fff) +#define SHRT_MAX 0x7fff +#define USHRT_MAX 0xffff +#define INT_MIN (-1-0x7fffffff) +#define INT_MAX 0x7fffffff +#define UINT_MAX 0xffffffffU +#define LONG_MIN (-LONG_MAX-1) +#define ULONG_MAX (2UL*LONG_MAX+1) +#define LLONG_MIN (-LLONG_MAX-1) +#define LLONG_MAX 0x7fffffffffffffffLL +#define ULLONG_MAX (2ULL*LLONG_MAX+1) + +#define INT8_MIN (-1-0x7f) +#define INT16_MIN (-1-0x7fff) +#define INT32_MIN (-1-0x7fffffff) +#define INT64_MIN (-1-0x7fffffffffffffff) + +#define INT8_MAX (0x7f) +#define INT16_MAX (0x7fff) +#define INT32_MAX (0x7fffffff) +#define INT64_MAX (0x7fffffffffffffff) + +#define UINT8_MAX (0xff) +#define UINT16_MAX (0xffff) +#define UINT32_MAX (0xffffffffu) +#define UINT64_MAX (0xffffffffffffffffu) + +#define PATH_MAX 4096 // ------------------------------------------------------------------ -// Global macros +// global macros + +/* offsets */ +#define offsetof(t, d) __builtin_offsetof(t, d) + +/* variable arguments */ +#define va_start(v,a) __builtin_va_start(v,a) +#define va_end(v) __builtin_va_end(v) +#define va_arg(v,t) __builtin_va_arg(v,t) +#define va_copy(d,s) __builtin_va_copy(d,s) +/* array helpers */ #define arrlen(Array) (sizeof(Array) / sizeof((Array)[0])) #define arrend(Array) ((Array) + arrlen(Array)) +/* simple thresholding */ #define MAX(x, y) (((x) > (y)) ? (x) : (y)) #define MIN(x, y) (((x) < (y)) ? (x) : (y)) #define CLAMP(x, lo, hi) (((x) < (lo)) ? (lo) : (((x) > (hi)) ? (hi) : (x))) -- cgit v1.2.1