From ea5ebe0809fb31b9f125ac0689f706cc5f3f078f Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 30 Apr 2023 17:06:02 +0300 Subject: rename to kmi --- include/apos/types.h | 494 --------------------------------------------------- 1 file changed, 494 deletions(-) delete mode 100644 include/apos/types.h (limited to 'include/apos/types.h') diff --git a/include/apos/types.h b/include/apos/types.h deleted file mode 100644 index 36e918e..0000000 --- a/include/apos/types.h +++ /dev/null @@ -1,494 +0,0 @@ -/* SPDX-License-Identifier: GPL-3.0-or-later */ -/* Copyright 2021 - 2022, Kim Kuparinen < kimi.h.kuparinen@gmail.com > */ - -#ifndef APOS_TYPES_H -#define APOS_TYPES_H - -/** - * @file types.h - * Shorthands for types, similar to stdint.h. - * - * Implementation detail: Note that according to the C spec, intX_t are optional. - * Will have to keep an eye out for architectures where they aren't implemented, - * but for now this is likely good enough. - */ - -/** Bool. */ -typedef _Bool bool; -/** True. */ -#define true 1 -/** False. */ -#define false 0 - -/** Type capable of holding the difference between two pointers. */ -typedef __PTRDIFF_TYPE__ ptrdiff_t; - -/** Type capable of holding a wide char. Unused by the kernel. */ -typedef __WCHAR_TYPE__ wchar_t; - -/** Type capable of holding a \ref wchar_t and WEOF. Unused by the kernel. */ -typedef __WINT_TYPE__ wint_t; - -/** Maximum width signed integer type. */ -typedef __INTMAX_TYPE__ intmax_t; - -/** Maximum width unsigned integer type. */ -typedef __UINTMAX_TYPE__ uintmax_t; - -/** 8bit signed integer type. */ -typedef __INT8_TYPE__ int8_t; - -/** 16bit signed integer type. */ -typedef __INT16_TYPE__ int16_t; - -/** 32bit signed integer type. */ -typedef __INT32_TYPE__ int32_t; - -/** 64bit signed integer type. */ -typedef __INT64_TYPE__ int64_t; - -/** 8bit unsigned integer type. */ -typedef __UINT8_TYPE__ uint8_t; - -/** 16bit unsigned integer type. */ -typedef __UINT16_TYPE__ uint16_t; - -/** 32bit unsigned integer type. */ -typedef __UINT32_TYPE__ uint32_t; - -/** 64bit unsigned integer type. */ -typedef __UINT64_TYPE__ uint64_t; - -/** Smallest signed integer type at least 8 bits wide. */ -typedef __INT_LEAST8_TYPE__ int_least8_t; - -/** Smallest signed integer type at least 16 bits wide. */ -typedef __INT_LEAST16_TYPE__ int_least16_t; - -/** Smallest signed integer type at least 32 bits wide. */ -typedef __INT_LEAST32_TYPE__ int_least32_t; - -/** Smallest signed integer type at least 64 bits wide. */ -typedef __INT_LEAST64_TYPE__ int_least64_t; - -/** Smallest unsigned integer type at least 8 bits wide. */ -typedef __UINT_LEAST8_TYPE__ uint_least8_t; - -/** Smallest unsigned integer type at least 16 bits wide. */ -typedef __UINT_LEAST16_TYPE__ uint_least16_t; - -/** Smallest unsigned integer type at least 32 bits wide. */ -typedef __UINT_LEAST32_TYPE__ uint_least32_t; - -/** Smallest unsigned integer type at least 64 bits wide. */ -typedef __UINT_LEAST64_TYPE__ uint_least64_t; - -/** Fastest signed integer type at least 8 bits wide. */ -typedef __INT_FAST8_TYPE__ int_fast8_t; - -/** Fastest signed integer type at least 16 bits wide. */ -typedef __INT_FAST16_TYPE__ int_fast16_t; - -/** Fastest signed integer type at least 32 bits wide. */ -typedef __INT_FAST32_TYPE__ int_fast32_t; - -/** Fastest signed integer type at least 64 bits wide. */ -typedef __INT_FAST64_TYPE__ int_fast64_t; - -/** Fastest unsigned integer type at least 8 bits wide. */ -typedef __UINT_FAST8_TYPE__ uint_fast8_t; - -/** Fastest unsigned integer type at least 16 bits wide. */ -typedef __UINT_FAST16_TYPE__ uint_fast16_t; - -/** Fastest unsigned integer type at least 32 bits wide. */ -typedef __UINT_FAST32_TYPE__ uint_fast32_t; - -/** Fastest unsigned integer type at least 64 bits wide. */ -typedef __UINT_FAST64_TYPE__ uint_fast64_t; - -/** Signed integer type capable of holding a pointer. */ -typedef __INTPTR_TYPE__ intptr_t; - -/** Unsigned integer type capable of holding a pointer. */ -typedef __UINTPTR_TYPE__ uintptr_t; - -#if __SIZE_WIDTH__ == 64 -/** Largest possible unsigned index an array could use. */ -typedef uint64_t size_t; - -/** Largest possible signed index an array could use. */ -typedef int64_t ssize_t; -#else -/** Largest possible unsigned index an array could use. */ -typedef uint32_t size_t; - -/** Largest possible signed index an array could use. */ -typedef int32_t ssize_t; -#endif - -/** Expands to integer constant of type \ref int8_t. */ -#define INT8_C __INT8_C - -/** Expands to integer constant of type \ref int16_t. */ -#define INT16_C __INT16_C - -/** Expands to integer constant of type \ref int32_t. */ -#define INT32_C __INT32_C -/** Expands to integer constant of type \ref int64_t. */ -#define INT64_C __INT64_C - -/** Expands to integer constant of type \ref uint8_t. */ -#define UINT8_C __UINT8_C - -/** Expands to integer constant of type \ref uint16_t. */ -#define UINT16_C __UINT16_C - -/** Expands to integer constant of type \ref uint32_t. */ -#define UINT32_C __UINT32_C - -/** Expands to integer constant of type \ref uint64_t. */ -#define UINT64_C __UINT64_C - -/** Expands to integer constant of type \ref intmax_t. */ -#define INTMAX_C __INTMAX_C - -/** Expands to integer constant of type \ref uintmax_t. */ -#define UINTMAX_C __UINTMAX_C - -/** Number of bits in a byte. */ -#define CHAR_BIT __CHAR_BIT__ - -/** Largest value a signed char can have. */ -#define SCHAR_MAX __SCHAR_MAX__ - -/** Smallest value a signed char can have. */ -#define SCHAR_MIN (-__SCHAR_MAX - 1) - -/** Largest value an unsigned char can have. */ -#define UCHAR_MAX (2 * __SCHAR_MAX__ - 1) - -#if defined(__CHAR_UNSIGNED__) -/** Smallest value a char can have. */ -#define CHAR_MIN 0 - -/** Largest value a char can have. */ -#define CHAR_MAX UCHAR_MAX -#else -/** Smallest value a char can have. */ -#define CHAR_MIN SCHAR_MIN - -/** Largest value a char can have. */ -#define CHAR_MAX SCHAR_MAX -#endif - -/** - * Maximum number of bytes in a multibyte character. - * Arbitrary, as far as I can tell. - */ -#define MB_LEN_MAX 16 - -/** Largest value a signed short can have. */ -#define SHRT_MAX __SHRT_MAX__ - -/** Smallest value a signed short can have. */ -#define SHRT_MIN (-__SHRT_MAX - 1) - -/** Largest value an unsigned short can have. */ -#define USHRT_MAX (2 * __SHRT_MAX + 1) - -/** Largest value a signed int can have. */ -#define INT_MAX __INT_MAX__ - -/** Smallest value a signed int can have. */ -#define INT_MIN (-__INT_MAX__ - 1) - -/** Largest value an unsigned int can have. */ -#define UINT_MAX (2 * __INT_MAX__ + 1) - -/** Largest value a signed long can have. */ -#define LONG_MAX __LONG__MAX__ - -/** Smallest value a signed long can have. */ -#define LONG_MIN (-__LONG_MAX__ - 1) - -/** Largest value an unsigned long can have. */ -#define ULONG_MAX (2 * __INT_MAX__ + 1) - -/** Largest value a signed long long can have. */ -#define LLONG_MAX __LONG_LONG_MAX__ - -/** Smallest value a signed long long can have. */ -#define LLONG_MIN (-__LONG_LONG_MAX__ - 1) - -/** Largest value an unsigned long long can have. */ -#define ULLONG_MAX (2 * __LONG_LONG_MAX__ + 1) - -/** Largest value an \ref int8_t can have. */ -#define INT8_MAX __INT8_MAX__ - -/** Smallest value an \ref int8_t can have. */ -#define INT8_MIN (-__INT8_MAX__ - 1) - -/** Largest value an \ref int8_t can have. */ -#define UINT8_MAX __UINT8_MAX__ - -/** Largest value an \ref int16_t can have. */ -#define INT16_MAX __INT16_MAX__ - -/** Smallest value an \ref int16_t can have. */ -#define INT16_MIN (-__INT16_MAX__ - 1) - -/** Largest value an \ref uint16_t can have. */ -#define UINT16_MAX __UINT16_MAX__ - -/** Largest value an \ref int32_t can have. */ -#define INT32_MAX __INT32_MAX__ - -/** Smallest value an \ref int32_t can have. */ -#define INT32_MIN (-__INT32_MAX__ - 1) - -/** Largest value a \ref uint16_t can have. */ -#define UINT32_MAX __UINT32_MAX__ - -/** Largest value an \ref int64_t can have. */ -#define INT64_MAX __INT64_MAX__ - -/** Smallest value an \ref int64_t can have. */ -#define INT64_MIN (-__INT64_MAX__ - 1) - -/** Largest value an \ref uint64_t can have. */ -#define UINT64_MAX __UINT64_MAX__ - -/** Largest value an \ref int_least8_t can have. */ -#define INT_LEAST8_MAX __INT_LEAST8_MAX__ - -/** Smallest value an \ref int_least8_t can have. */ -#define INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1) - -/** Largest value an \ref int_least8_t can have. */ -#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__ - -/** Largest value an \ref int_least16_t can have. */ -#define INT_LEAST16_MAX __INT_LEAST16_MAX__ - -/** Smallest value an \ref int_least16_t can have. */ -#define INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1) - -/** Largest value an \ref int_least16_t can have. */ -#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__ - -/** Largest value an \ref int_least32_t can have. */ -#define INT_LEAST32_MAX __INT_LEAST32_MAX__ - -/** Smallest value an \ref int_least32_t can have. */ -#define INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1) - -/** Largest value a \ref uint_least32_t can have. */ -#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__ - -/** Largest value an \ref int_least64_t can have. */ -#define INT_LEAST64_MAX __INT_LEAST64_MAX__ - -/** Smallest value an \ref int_least64_t can have. */ -#define INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1) - -/** Largest value a \ref uint_least64_t can have. */ -#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__ - -/** Largest value an \ref int_fast8_t can have. */ -#define INT_FAST8_MAX __INT_FAST8_MAX__ - -/** Smallest value an \ref int_fast8_t can have. */ -#define INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1) - -/** Largest value a \ref uint_fast8_t can have. */ -#define UINT_FAST8_MAX __UINT_FAST8_MAX__ - -/** Largest value an \ref int_fast16_t can have. */ -#define INT_FAST16_MAX __INT_FAST16_MAX__ - -/** Smallest value an \ref int_fast16_t can have. */ -#define INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1) - -/** Largest value a \ref uint_fast16_t can have. */ -#define UINT_FAST16_MAX __UINT_FAST16_MAX__ - -/** Largest value an \ref int_fast32_t can have. */ -#define INT_FAST32_MAX __INT_FAST32_MAX__ - -/** Smallest value an \ref int_fast32_t can have. */ -#define INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1) - -/** Largest value a \ref int_fast32_t can have. */ -#define UINT_FAST32_MAX __UINT_FAST32_MAX__ - -/** Largest value an \ref int_fast64_t can have. */ -#define INT_FAST64_MAX __INT_FAST64_MAX__ - -/** Smallest value an \ref int_fast64_t can have. */ -#define INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1) - -/** Largest value a \ref int_fast64_t can have. */ -#define UINT_FAST64_MAX __UINT_FAST64_MAX__ - -/** Largest value an \ref intptr_t can have. */ -#define INTPTR_MAX __INTPTR_MAX__ - -/** Smallest value an \ref intptr_t can have. */ -#define INTPTR_MIN (-__INTPTR_MAX__ - 1) - -/** Largest value a \ref uintptr_t can have. */ -#define UINTPTR_MAX __UINTPTR_MAX__ - -/** Largest value an \ref intmax_t can have. */ -#define INTMAX_MAX __INTMAX_MAX__ - -/** Smallest value an \ref intmax_t can have. */ -#define INTMAX_MIN (-__INTMAX_MAX__ - 1) - -/** Largest value a \ref uintmax_t can have. */ -#define UINTMAX_MAX __UINTMAX_MAX__ - -/** Width of \ref int8_t. */ -#define INT8_WIDTH 8 - -/** Width of \ref int16_t. */ -#define INT16_WIDTH 16 - -/** Width of \ref int32_t. */ -#define INT32_WIDTH 32 - -/** Width of \ref int64_t. */ -#define INT64_WIDTH 64 - -/** Width of \ref uint8_t. */ -#define UINT8_WIDTH 8 - -/** Width of \ref uint16_t. */ -#define UINT16_WIDTH 16 - -/** Width of \ref uint32_t. */ -#define UINT32_WIDTH 32 - -/** Width of \ref uint64_t. */ -#define UINT64_WIDTH 64 - -/** Width of \ref int_fast8_t. */ -#define INT_FAST8_WIDTH __INT_FAST8_WIDTH__ - -/** Width of \ref int_fast16_t. */ -#define INT_FAST16_WIDTH __INT_FAST16_WIDTH__ - -/** Width of \ref int_fast32_t. */ -#define INT_FAST32_WIDTH __INT_FAST32_WIDTH__ - -/** Width of \ref int_fast64_t. */ -#define INT_FAST64_WIDTH __INT_FAST64_WIDTH__ - -/** Width of \ref uint_fast8_t. */ -#define UINT_FAST8_WIDTH __INT_FAST8_WIDTH__ - -/** Width of \ref uint_fast16_t. */ -#define UINT_FAST16_WIDTH __INT_FAST16_WIDTH__ - -/** Width of \ref uint_fast32_t. */ -#define UINT_FAST32_WIDTH __INT_FAST32_WIDTH__ - -/** Width of \ref uint_fast64_t. */ -#define UINT_FAST64_WIDTH __INT_FAST64_WIDTH__ - -/** Width of \ref int_least8_t. */ -#define INT_LEAST8_WIDTH __INT_LEAST8_WIDTH__ - -/** Width of \ref int_least16_t. */ -#define INT_LEAST16_WIDTH __INT_LEAST16_WIDTH__ - -/** Width of \ref int_least32_t. */ -#define INT_LEAST32_WIDTH __INT_LEAST32_WIDTH__ - -/** Width of \ref int_least64_t. */ -#define INT_LEAST64_WIDTH __INT_LEAST64_WIDTH__ - -/** Width of \ref uint_least8_t. */ -#define UINT_LEAST8_WIDTH __INT_LEAST8_WIDTH__ - -/** Width of \ref uint_least16_t. */ -#define UINT_LEAST16_WIDTH __INT_LEAST16_WIDTH__ - -/** Width of \ref uint_least32_t. */ -#define UINT_LEAST32_WIDTH __INT_LEAST32_WIDTH__ - -/** Width of \ref uint_least64_t. */ -#define UINT_LEAST64_WIDTH __INT_LEAST64_WIDTH__ - -/** Width of \ref intptr_t. */ -#define INTPTR_WIDTH __INTPTR_WIDTH__ - -/** Width of \ref intmax_t. */ -#define INTMAX_WIDTH __INTMAX_WIDTH__ - -/** Width of \ref uintptr_t. */ -#define UINTPTR_WIDTH __INTPTR_WIDTH__ - -/** Width of \ref uintmax_t. */ -#define UINTMAX_WIDTH __INTMAX_WIDTH__ - -/** Null. */ -#define NULL 0 - -/* some common types used throughout the kernel */ -/** Status, used with codes in \ref status_codes. */ -typedef int_fast8_t stat_t; - -/** ID of something. @todo should this be signed? Linux etc seems to assume it - * is with pids */ -typedef int_fast32_t id_t; - -/** Maximum ID number. */ -#define ID_MAX INT_FAST32_MAX - -/** Memory region flags. */ -typedef uint_fast16_t vmflags_t; - -/** - * Status codes. - * Negative error codes are reserved for general usage, positive error codes are - * allowed to be function-specific, although that's sort of difficult to keep - * track of. - */ -/* should this enum be somewhere else? */ -enum status_codes { - /** Permission error. */ - ERR_PERM = -10, - /** Internal error, should probably halt */ - ERR_INT = -9, - /** Something went wrong :/ */ - ERR_MISC = -8, - /** Not initialized. */ - ERR_NOINIT = -7, - /** Invalid value. */ - ERR_INVAL = -6, - /** Already exists. */ - ERR_EXT = -5, - /** Out of memory. */ - ERR_OOMEM = -4, - /** Illegal address. */ - ERR_ADDR = -3, - /** Wrong alignment. */ - ERR_ALIGN = -2, - /** Not found. */ - ERR_NF = -1, - /** OK. */ - OK = 0, - /** Try again. */ - INFO_TRGN = 1, - /** Side effects. */ - INFO_SEFF = 2, - /** Continue. */ - INFO_CONT = 3, -}; - -#include /* arch-specific type definitions (pm_t/vm_t etc) */ - -#endif /* APOS_TYPES_H */ -- cgit v1.3