30#include "sexp-types.h"
31#include "oscap_export.h"
37#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
38#define _GNUC_PRINTF( format_idx, arg_idx ) \
39 __attribute__((__format__ (__printf__, format_idx, arg_idx)))
41#define _GNUC_PRINTF( format_idx, arg_idx )
44OSCAP_API SEXP_t *SEXP_init(SEXP_t *sexp_mem);
46OSCAP_API SEXP_t *SEXP_number_newb_r(SEXP_t *sexp_mem,
bool n);
47#define SEXP_number_newi_r SEXP_number_newi_32_r
48OSCAP_API SEXP_t *SEXP_number_newi_32_r(SEXP_t *sexp_mem, int32_t n);
49OSCAP_API SEXP_t *SEXP_number_newu_32_r(SEXP_t *sexp_mem, uint32_t n);
50OSCAP_API SEXP_t *SEXP_number_newu_64_r(SEXP_t *sexp_mem, uint64_t n);
51OSCAP_API SEXP_t *SEXP_number_newi_64_r(SEXP_t *sexp_mem, int64_t n);
52OSCAP_API SEXP_t *SEXP_number_newf_r(SEXP_t *sexp_mem,
double n);
54OSCAP_API SEXP_t *SEXP_string_new_r(SEXP_t *sexp_mem,
const void *
string,
size_t length);
55OSCAP_API SEXP_t *SEXP_string_newf_r(SEXP_t *sexp_mem,
const char *format, ...) _GNUC_PRINTF (2,3);
56OSCAP_API SEXP_t *SEXP_string_newf_rv(SEXP_t *sexp_mem, const
char *format, va_list ap);
58OSCAP_API SEXP_t *SEXP_list_new_rv(SEXP_t *sexp_mem, SEXP_t *memb, va_list alist);
59OSCAP_API SEXP_t *SEXP_list_new_r(SEXP_t *sexp_mem, SEXP_t *memb, ...);
61OSCAP_API SEXP_t *SEXP_list_rest_r (SEXP_t *rest, const SEXP_t *list);
63OSCAP_API
int SEXP_unref_r(SEXP_t *s_exp);
66OSCAP_API
void SEXP_free_r (SEXP_t *s_exp);
69OSCAP_API
void __SEXP_free_r(SEXP_t *s_exp,
const char *file, uint32_t line,
const char *func);
71__attribute__ ((unused))
static void SEXP_free_r(SEXP_t *sexp)
73 __SEXP_free_r(sexp, __FILE__, __LINE__, __PRETTY_FUNCTION__);
76#define SEXP_free_r(ptr) __SEXP_free_r(ptr, __FILE__, __LINE__, __PRETTY_FUNCTION__)