blob: ccdfb4850292ca648b36046e7c4e602227f19e05 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
/* -------------------------------------------
Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved.
File: Macros.h
Purpose: LibSCI Macros header.
------------------------------------------- */
#pragma once
/***********************************************************************************/
/// @file LibSCI/Macros.h
/// @brief Macros and core types.
/***********************************************************************************/
#include <LibSCI/CompilerHint.h>
#define ATTRIBUTE(X) __attribute__((X))
#define IMPORT_CXX extern "C++"
#define IMPORT_C extern "C"
#define DEPRECATED ATTRIBUTE(deprecated)
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
#define FILE_MAX_LEN 256
typedef bool Bool;
typedef bool BOOL;
typedef bool Boolean;
typedef void Void;
#ifndef __cplusplus
#define true 1
#define false 0
#endif
#define YES true
#define NO false
typedef __UINT64_TYPE__ UInt64;
typedef __UINT32_TYPE__ UInt32;
typedef __UINT16_TYPE__ UInt16;
typedef __UINT8_TYPE__ UInt8;
typedef __SIZE_TYPE__ SizeT;
typedef __INT64_TYPE__ SInt64;
typedef __INT32_TYPE__ SInt32;
typedef __INT16_TYPE__ SInt16;
typedef __INT8_TYPE__ SInt8;
typedef void* VoidPtr;
typedef __UINTPTR_TYPE__ UIntPtr;
typedef char Char;
#ifdef __cplusplus
typedef decltype(nullptr) nullPtr;
typedef nullPtr NullPtr;
#define SCI_COPY_DELETE(KLASS) \
KLASS& operator=(const KLASS&) = delete; \
KLASS(const KLASS&) = delete;
#define SCI_COPY_DEFAULT(KLASS) \
KLASS& operator=(const KLASS&) = default; \
KLASS(const KLASS&) = default;
#define SCI_MOVE_DELETE(KLASS) \
KLASS& operator=(KLASS&&) = delete; \
KLASS(KLASS&&) = delete;
#define SCI_MOVE_DEFAULT(KLASS) \
KLASS& operator=(KLASS&&) = default; \
KLASS(KLASS&&) = default;
#endif
IMPORT_C void _rtl_assert(Bool expr, const Char* origin);
#define MUST_PASS(X) _rtl_assert(X, __FILE__)
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(a) \
(((sizeof(a) / sizeof(*(a))) / \
(static_cast<SizeT>(!(sizeof(a) % sizeof(*(a)))))))
#endif
|