#ifndef _C_STDARG_H
#define _C_STDARG_H

#ifdef __cplusplus
extern "C" {
#endif
typedef char *va_list;

#define __std(ref) ::std::ref
#define __fourbytealign(n) ((((unsigned long) (n)) + 3U) & ~3U)
#define __va_start(parm) ((__std(va_list))((char *) ((unsigned long) (&parm) & ~3U) + __fourbytealign(sizeof(parm))))

#define va_start(ap, parm) ((ap) = __va_start(parm))
#define va_arg(ap, type) (*(type *) ((ap += __fourbytealign(sizeof(type))) - __fourbytealign(sizeof(type))))
#define va_end(ap) ((void) 0)
#ifdef __cplusplus
} // extern "C"
#endif

#if defined(__cplusplus)
namespace std {
    using ::va_list;
};

using std::va_list;
#endif

#endif
