33 lines
No EOL
593 B
C
33 lines
No EOL
593 B
C
#ifndef __CUTIL_VA_LIST_H
|
|
#define __CUTIL_VA_LIST_H
|
|
|
|
#include "cutypes.h"
|
|
|
|
#if (CU_ARCH == x86_64)
|
|
# define VA_NUM 6
|
|
#elif (CU_ARCH == AARCH64)
|
|
# define VA_NUM 8
|
|
#elif (defined(CU_ARCH_ARM7))
|
|
# define VA_NUM 4
|
|
#else
|
|
# define VA_NUM 0
|
|
#endif
|
|
|
|
#ifdef CU_ARCH_X86
|
|
typedef struct {
|
|
uword args[VA_NUM];
|
|
} cu_va_list;
|
|
#elif (defined(CU_ARCH_ARM))
|
|
typedef struct {
|
|
uword fp;
|
|
} cu_va_list;
|
|
#elif (defined(CU_ARCH_SUPERH))
|
|
typedef struct {
|
|
uword fp;
|
|
} cu_va_list;
|
|
#endif
|
|
|
|
extern void cu_va_start(cu_va_list* va);
|
|
extern uword cu_va_arg(cu_va_list* va, unsigned idx);
|
|
|
|
#endif |