Phoenix
Object-oriented orthogonally persistent operating system
|
00001 /* 00002 * /phoenix/include/types.h 00003 * 00004 * This file is a part of Phoenix operating system. 00005 * Copyright (c) 2011-2012, Artyom Lebedev <artyom.lebedev@gmail.com> 00006 * All rights reserved. 00007 * See COPYING file for copyright details. 00008 */ 00009 00010 #ifndef TYPES_H_ 00011 #define TYPES_H_ 00012 00021 #include <md_types.h> 00022 00023 #define U8_MAX TYPE_UINT_MAX(u8) 00024 #define I8_MAX TYPE_INT_MAX(i8) 00025 #define I8_MIN TYPE_INT_MIN(i8) 00026 #define UCHAR_MAX U8_MAX 00027 #define CHAR_MAX I8_MAX 00028 #define CHAR_MIN I8_MIN 00029 00030 #define U16_MAX TYPE_UINT_MAX(u16) 00031 #define I16_MAX TYPE_INT_MAX(i16) 00032 #define I16_MIN TYPE_INT_MIN(i16) 00033 #define USHRT_MAX U16_MAX 00034 #define SHRT_MAX I16_MAX 00035 #define SHRT_MIN I16_MIN 00036 00037 #define U32_MAX TYPE_UINT_MAX(u32) 00038 #define I32_MAX TYPE_INT_MAX(i32) 00039 #define I32_MIN TYPE_INT_MIN(i32) 00040 #define UINT_MAX U32_MAX 00041 #define INT_MAX I32_MAX 00042 #define INT_MIN I32_MIN 00043 00044 #define U64_MAX TYPE_UINT_MAX(u64) 00045 #define I64_MAX TYPE_INT_MAX(i64) 00046 #define I64_MIN TYPE_INT_MIN(i64) 00047 #define ULONG_MAX U64_MAX 00048 #define LONG_MAX I64_MAX 00049 #define LONG_MIN I64_MIN 00050 00051 #define UQUAD_MAX ULONG_MAX 00052 #define QUAD_MAX LONG_MAX 00053 #define QUAD_MIN LONG_MIN 00054 00055 #ifndef __SIZE_TYPE__ 00056 #define __SIZE_TYPE__ vsize_t 00057 #endif 00058 00059 typedef __SIZE_TYPE__ size_t; 00060 00061 #define VSIZE_MAX TYPE_UINT_MAX(vsize_t) 00062 00063 /* Variable arguments */ 00064 00065 typedef __builtin_va_list va_list; 00066 00067 #define va_start(ap, last) __builtin_va_start((ap), (last)) 00068 #define va_arg(ap, type) __builtin_va_arg((ap), type) 00069 #define va_copy(dest, src) __builtin_va_copy((dest), (src)) 00070 #define va_end(ap) __builtin_va_end(ap) 00071 00072 #endif /* TYPES_H_ */