xref: /minix3/minix/lib/libmagicrt/include/st/typedefs.h (revision b2ed49a5d83e311ee0fa9e5ff613639b1bf77aaf)
1 #ifndef ST_TYPEDEFS_H
2 #define ST_TYPEDEFS_H
3 
4 #include <stdint.h>
5 
6 /* Typedefs for predefined state transfer names. */
7 #define ST_DECLARE_STD_PTR_TYPEDEFS(PREFIX)         \
8     typedef void*           PREFIX ## void_ptr_t;   \
9     typedef char*           PREFIX ## char_ptr_t;   \
10     typedef short*          PREFIX ## short_ptr_t;  \
11     typedef int*            PREFIX ## int_ptr_t;    \
12     typedef long*           PREFIX ## long_ptr_t;   \
13     typedef unsigned char*  PREFIX ## uchar_ptr_t;  \
14     typedef unsigned short* PREFIX ## ushort_ptr_t; \
15     typedef unsigned int*   PREFIX ## uint_ptr_t;   \
16     typedef unsigned long*  PREFIX ## ulong_ptr_t;  \
17     typedef float*          PREFIX ## float_ptr_t;  \
18     typedef double*         PREFIX ## double_ptr_t; \
19     typedef uint8_t*        PREFIX ## u8_ptr_t;     \
20     typedef uint16_t*       PREFIX ## u16_ptr_t;    \
21     typedef uint32_t*       PREFIX ## u32_ptr_t;    \
22     typedef uint64_t*       PREFIX ## u64_ptr_t;    \
23     typedef int8_t*         PREFIX ## i8_ptr_t;     \
24     typedef int16_t*        PREFIX ## i16_ptr_t;    \
25     typedef int32_t*        PREFIX ## i32_ptr_t
26 
27 #define ST_DECLARE_STD_PTRINT_TYPEDEFS(PREFIX)      \
28     typedef uint32_t        PREFIX ## u32_t;        \
29     typedef int             PREFIX ## int_t;        \
30     typedef long            PREFIX ## long_t;       \
31     typedef unsigned int    PREFIX ## uint_t;       \
32     typedef unsigned long   PREFIX ## ulong_t
33 
34 #define ST_TYPENAME_NO_TRANSFER_NAMES           "noxfer_*", "pthread_mutex_t", "siginfo_t", "epoll_data_t", "YYSTYPE"
35     ST_DECLARE_STD_PTR_TYPEDEFS(noxfer_);
36 #define ST_TYPENAME_IDENTITY_TRANSFER_NAMES     "ixfer_*"
37     ST_DECLARE_STD_PTR_TYPEDEFS(ixfer_);
38 #define ST_TYPENAME_CIDENTITY_TRANSFER_NAMES    "cixfer_*"
39     ST_DECLARE_STD_PTR_TYPEDEFS(cixfer_);
40 #define ST_TYPENAME_PTR_TRANSFER_NAMES          "pxfer_*"
41     ST_DECLARE_STD_PTRINT_TYPEDEFS(pxfer_);
42 #define ST_TYPENAME_STRUCT_TRANSFER_NAMES       "sxfer_*"
43 #ifdef __MINIX
44 #define ST_SENTRYNAME_NO_TRANSFER_NAMES         "noxfer_*", "sef_*", "st_*", "etext"
45 #else
46 #define ST_SENTRYNAME_NO_TRANSFER_NAMES         "noxfer_*", "st_*", "etext", "allocatedDescs*", "ep.*" /* nginx specific */
47 #define ST_DSENTRYLIB_NO_TRANSFER_NAMES         "*/libst.so", "*/libcommon.so", "*/libtaskctl.so"
48 #endif
49 #define ST_SENTRYNAME_NO_TRANSFER_MEM_NAMES     "_brksize"
50 #define ST_SENTRYNAME_IDENTITY_TRANSFER_NAMES   "ixfer_*"
51 #define ST_SENTRYNAME_CIDENTITY_TRANSFER_NAMES  "cixfer_*"
52 #define ST_SENTRYNAME_PTR_TRANSFER_NAMES        "pxfer_*"
53 
54 
55 #endif /* ST_TYPEDEFS_H */
56