NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
stdarg.h
1#ifndef MSL_STDARG_H
2#define MSL_STDARG_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7#ifdef __CWCC__
8
9typedef enum _va_arg_type {
10 arg_ARGPOINTER,
11 arg_WORD,
12 arg_DOUBLEWORD,
13 arg_ARGREAL
14} _va_arg_type;
15
16typedef struct __va_list_struct {
17 char gpr;
18 char fpr;
19 char* input_arg_area;
20 char* reg_save_area;
21} va_list;
22
23void* __va_arg(va_list argp, int type);
24
25#define va_start(VA_LIST, ARG) ((void)ARG, __builtin_va_info(&VA_LIST))
26#define va_end(VA_LIST) ((void)VA_LIST)
27#define va_arg(VA_LIST, ARG_TYPE) \
28 (*(ARG_TYPE*)__va_arg(VA_LIST, _var_arg_typeof(ARG_TYPE)))
29
30#else
31
32typedef __builtin_va_list va_list;
33
34#define va_start(VA_LIST, ARG) __builtin_va_start(VA_LIST, ARG)
35#define va_end(VA_LIST) ((void)VA_LIST)
36#define va_arg(VA_LIST, ARG_TYPE) \
37 (*(ARG_TYPE*)__va_arg(VA_LIST, _var_arg_typeof(ARG_TYPE)))
38
39#endif
40
41#ifdef __cplusplus
42}
43#endif
44#endif