/usr/include/ustr-cntl.h is in libustr-dev 1.0.4-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | /* Copyright (c) 2007 James Antill -- See LICENSE file for terms. */
#ifndef USTR_CNTL_H
#define USTR_CNTL_H 1
#ifndef USTR_MAIN_H
# error " You should include ustr-main.h before this file, or just ustr.h"
#endif
#define USTR_CNTL_OPT_GET_REF_BYTES ( 1)
#define USTR_CNTL_OPT_SET_REF_BYTES ( 2)
#define USTR_CNTL_OPT_GET_HAS_SIZE ( 3)
#define USTR_CNTL_OPT_SET_HAS_SIZE ( 4)
#define USTR_CNTL_OPT_GET_EXACT_BYTES ( 5)
#define USTR_CNTL_OPT_SET_EXACT_BYTES ( 6)
#define USTR_CNTL_OPT_GET_MEM ( 7)
#define USTR_CNTL_OPT_SET_MEM ( 8)
#define USTR_CNTL_OPT_GET_MC_M_SCRUB ( 9)
#define USTR_CNTL_OPT_SET_MC_M_SCRUB (10)
#define USTR_CNTL_OPT_GET_MC_F_SCRUB (11)
#define USTR_CNTL_OPT_SET_MC_F_SCRUB (12)
#define USTR_CNTL_OPT_GET_MC_R_SCRUB (13)
#define USTR_CNTL_OPT_SET_MC_R_SCRUB (14)
#define USTR_CNTL_OPT_GET_FMT (15)
#define USTR_CNTL_OPT_SET_FMT (16)
/* move to dynamic configuration, so it's more usable from a shared library */
#undef USTR_CONF_REF_BYTES
#define USTR_CONF_REF_BYTES (ustr__opts->ref_bytes)
#undef USTR_CONF_HAS_SIZE
#define USTR_CONF_HAS_SIZE (ustr__opts->has_size)
#undef USTR_CONF_EXACT_BYTES
#define USTR_CONF_EXACT_BYTES (ustr__opts->exact_bytes)
#undef USTR_CONF_MALLOC
#define USTR_CONF_MALLOC(x) ((*ustr__opts->umem.sys_malloc)(x))
#undef USTR_CONF_REALLOC
#define USTR_CONF_REALLOC(x, y) ((*ustr__opts->umem.sys_realloc)((x), (y)))
#undef USTR_CONF_FREE
#define USTR_CONF_FREE(x) ((*ustr__opts->umem.sys_free)(x))
#undef USTR_CONF_VSNPRINTF_BEG
#define USTR_CONF_VSNPRINTF_BEG ustr__opts->ufmt.sys_vsnprintf_beg
#undef USTR_CONF_VSNPRINTF_END
#define USTR_CONF_VSNPRINTF_END ustr__opts->ufmt.sys_vsnprintf_end
struct Ustr_cntl_mem
{
void *(*sys_malloc)(size_t);
void *(*sys_realloc)(void *, size_t);
void (*sys_free)(void *);
};
struct Ustr_cntl_fmt
{
int (*sys_vsnprintf_beg)(char *, size_t, const char *, va_list);
int (*sys_vsnprintf_end)(char *, size_t, const char *, va_list);
};
#if USTR_CONF_INCLUDE_INTERNAL_HEADERS
struct Ustr_opts
{
size_t ref_bytes;
struct Ustr_cntl_mem umem;
struct Ustr_cntl_fmt ufmt;
unsigned int has_size : 1;
unsigned int exact_bytes : 1;
unsigned int mc_m_scrub : 1;
unsigned int mc_f_scrub : 1;
unsigned int mc_r_scrub : 1;
};
/* this is for use within the shared library only... */
extern struct Ustr_opts ustr__opts[1];
USTR_CONF_e_PROTO int ustr__cntl_mc_setup_env2bool(const char *, int)
USTR__COMPILE_ATTR_WARN_UNUSED_RET();
USTR_CONF_e_PROTO void ustr__cntl_mc_setup_main(void);
USTR_CONF_e_PROTO void *ustr__cntl_mc_setup_malloc(size_t)
USTR__COMPILE_ATTR_WARN_UNUSED_RET();
USTR_CONF_e_PROTO void *ustr__cntl_mc_malloc(size_t)
USTR__COMPILE_ATTR_WARN_UNUSED_RET();
USTR_CONF_e_PROTO void *ustr__cntl_mc_realloc(void *, size_t)
USTR__COMPILE_ATTR_WARN_UNUSED_RET();
USTR_CONF_e_PROTO void ustr__cntl_mc_free(void *);
#else
struct Ustr_opts; /* declare opaque struct */
#endif
#if USTR_CONF_COMPILE_TYPEDEF
typedef struct Ustr_cntl_mem Ustr_cntl_mem;
typedef struct Ustr_cntl_fmt Ustr_cntl_fmt;
typedef struct Ustr_opts Ustr_opts;
#endif
USTR_CONF_E_PROTO int ustr_cntl_opt(int, ...)
USTR__COMPILE_ATTR_NONNULL_A();
#if USTR_CONF_INCLUDE_CODEONLY_HEADERS
#include "ustr-cntl-code.h"
#endif
#endif
|