picox
0.1
|
共通の型やマクロ定義等 [詳解]
データ構造 | |
union | XMaxAlign |
組込み型の最大アライメント型です。 [詳解] | |
マクロ定義 | |
#define | X_ALIGN_OF(type) X_OFFSET_OF(struct { char c; type member; }, member) |
型typeのアライメントを返します。 | |
#define | X_CONTAINER_OF(ptr, type, member) ((type*) ((char*)(ptr) - X_OFFSET_OF(type, member))) |
複合型のメンバを指すポインタから、複合型の先頭アドレスを取得します [詳解] | |
#define | X_COUNT_OF(a) (sizeof(a) / sizeof(*(a))) |
一次元配列の要素数を返します。 | |
#define | X_COUNT_OF_2D(x) (X_COUNT_OF_ROW(x) * X_COUNT_OF_COL(x)) |
二次元配列の要素数を返します。 | |
#define | X_COUNT_OF_COL(x) (sizeof(x[0]) / sizeof(x[0][0])) |
二次元配列の列要素数を返します。 | |
#define | X_COUNT_OF_ROW(x) (sizeof(x) / sizeof(x[0])) |
二次元配列の行要素数を返します。 | |
#define | X_DEF_MAX_ALIGNED(name, size) XMaxAlign name[((size) + sizeof(XMaxAlign) - 1) / sizeof(XMaxAlign)] |
最大サイズのアライメントでsizeバイト以上の領域を持つ変数nameを定義します。 | |
#define | X_LINE_MAX (X_CONF_LINE_MAX) |
#define | X_MAKE_TAG(a, b, c, d) |
a, b, c, dからXTagに格納するIDを生成します [詳解] | |
#define | X_NAME_MAX (X_CONF_FILE_NAME_MAX) |
#define | X_OFFSET_OF(s, m) ((uintptr_t)&(((s *)0)->m)) |
構造体や共用体メンバの先頭からのオフセットを返します。 | |
#define | X_PATH_MAX (X_CONF_FILE_PATH_MAX) |
#define | X_SIZEOF_MEM(s, m) (sizeof(((s*)0)->m)) |
構造体や共用体メンバのsizeofを返します。 | |
#define | X_STATIC_ASSERT(cond) |
コンパイル時アサートを行います。 [詳解] | |
#define | X_XFS_TYPE (X_CONF_XFS_TYPE) |
X_SIZEOF_XXX | |
プリプロセスで使用するためのsizeof定義です プリプロセスでsizeof()は使用できないのでlimits.hのXXX_MAXの定義から型サイズ を推測しています。
| |
#define | X_SIZEOF_CHAR (1) |
#define | X_SIZEOF_SHORT (2) |
X_MSBOF_XXX | |
各型の最上位ビットです | |
#define | X_MSBOF_CHAR (X_BIT(CHAR_BIT)) |
#define | X_MSBOF_SHORT (USHORT_MAX & (~(USHORT_MAX >> 1))) |
#define | X_MSBOF_INT (UINT_MAX & (~(UINT_MAX >> 1))) |
#define | X_MSBOF_LONG (ULONG_MAX & (~(ULONG_MAX >> 1))) |
#define | X_MSBOF_INTPTR (UINTPTR_MAX & (~(UINTPTR_MAX >> 1))) |
#define | X_MSBOF_SIZE (SIZE_MAX & (~(SIZE_MAX >> 1))) |
#define | X_MSBOF_INT8 (1U << 7) |
#define | X_MSBOF_INT16 (1U << 15) |
#define | X_MSBOF_INT32 (X_UINT32_C(1) << 31) |
X_XXX_C | |
定数サフィックスを補完するためのマクロです。 末尾の | |
#define | X_INT32_C(c) c ## L |
#define | X_UINT32_C(c) c ## UL |
#define | X_INT64_C(c) c ## LL |
#define | X_UINT64_C(c) c ## ULL |
型定義 | |
typedef uint32_t | XBits |
XModeと同じくビットフラグを格納しますが、よりビットを意識した型です | |
typedef int(* | XCompareFunc) (const void *a, const void *b) |
qsort()互換の比較関数ポインタ型です | |
typedef void(* | XDeleter) (void *ptr) |
オブジェクトを削除する関数ポインタ型です [詳解] | |
typedef void(* | XFreeFunc) (void *ptr) |
free()互換のメモリ開放関数ポインタ型です | |
typedef void *(* | XMallocFunc) (size_t size) |
malloc()互換のメモリ確保関数ポインタ型です | |
typedef uint32_t | XMode |
何らかのビットフラグを格納することを意図した型です | |
typedef int32_t | XOffset |
何らかのオフセットを表すのに十分な大きさをもった符号あり整数型です | |
typedef uint32_t | XSize |
何らかの大きさを表すのに十分なサイズを備えた符号なし整数型です [詳解] | |
typedef int32_t | XSSize |
XSizeの符号あり版です。size_tに対するssize_tと同じ役割です | |
typedef uint32_t | XTag |
何らかのIDを格納するための符号なし整数が型です [詳解] | |
列挙型 | |
enum | XError { X_ERR_NONE = 0, X_ERR_IO = 1, X_ERR_INVALID = 2, X_ERR_TIMED_OUT = 3, X_ERR_BUSY = 4, X_ERR_AGAIN = 5, X_ERR_CANCELED = 6, X_ERR_NO_MEMORY = 7, X_ERR_EXIST = 8, X_ERR_NOT_READY = 9, X_ERR_ACCESS = 10, X_ERR_NO_ENTRY = 11, X_ERR_NOT_SUPPORTED = 12, X_ERR_DISCONNECTED = 13, X_ERR_INPROGRESS = 14, X_ERR_PROTOCOL = 15, X_ERR_MANY = 16, X_ERR_RANGE = 17, X_ERR_BROKEN = 18, X_ERR_NAME_TOO_LONG = 19, X_ERR_INVALID_NAME = 20, X_ERR_IS_DIRECTORY = 21, X_ERR_NOT_DIRECTORY = 22, X_ERR_NOT_EMPTY = 23, X_ERR_NO_SPACE = 24, X_ERR_INTERNAL = 25, X_ERR_OTHER = 26, X_ERR_UNKNOWN = 27 } |
errnoの代替として使用する共通のエラーコードを表す列挙型です [詳解] | |
enum | XOpenFlag { X_OPEN_FLAG_READ = (1 << 0), X_OPEN_FLAG_WRITE = (1 << 1), X_OPEN_FLAG_READ_WRITE = X_OPEN_FLAG_READ | X_OPEN_FLAG_WRITE, X_OPEN_FLAG_APPEND = (1 << 2), X_OPEN_FLAG_TRUNCATE = (1 << 3) } |
ファイルオープン等に使用するフラグです [詳解] | |
enum | XOpenMode { X_OPEN_MODE_READ = X_OPEN_FLAG_READ, X_OPEN_MODE_WRITE = X_OPEN_FLAG_WRITE | X_OPEN_FLAG_TRUNCATE, X_OPEN_MODE_APPEND = X_OPEN_FLAG_WRITE | X_OPEN_FLAG_APPEND, X_OPEN_MODE_READ_PLUS = X_OPEN_FLAG_READ_WRITE, X_OPEN_MODE_WRITE_PLUS = X_OPEN_FLAG_READ_WRITE | X_OPEN_FLAG_TRUNCATE, X_OPEN_MODE_APPEND_PLUS = X_OPEN_FLAG_READ_WRITE | X_OPEN_FLAG_APPEND, X_OPEN_MODE_UNKNOWN = 0xFF } |
ファイルオープン等のモードです [詳解] | |
enum | XSeekMode { X_SEEK_SET = SEEK_SET, X_SEEK_CUR = SEEK_CUR, X_SEEK_END = SEEK_END } |
シークの起点を指定する列挙型です [詳解] | |
関数 | |
static void | x_null_deleter (void *ptr) |
何もしないデリータです | |
共通の型やマクロ定義等