aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/stdarg.h
blob: f879db12f0f6a7fe87d40b50bc4b6854b780dff6 (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
#ifndef __DUCC_BUILTIN___STDARG_H__
#define __DUCC_BUILTIN___STDARG_H__

// System V Application Binary Interface
// AMD64 Architecture Processor Supplement
// (With LP64 and ILP32 Programming Models)
// Version 1.0
// Figure 3.34: va_list Type Declaration
struct __ducc_va_list {
    unsigned int gp_offset;
    unsigned int fp_offset;
    void* overflow_arg_area;
    void* reg_save_area;
};
typedef struct __ducc_va_list va_list[1];

#define va_start(args, start) __ducc_va_start(args, start)
#define va_end(args)
#define va_arg(args, T) (*(T*)__ducc_va_arg(args, sizeof(T)))

// For glibc:
typedef va_list __gnuc_va_list;

#endif