15#error "_SCAN_GET not defined"
19#error "_SCAN_UNGET not defined"
140 *
va_arg(ctx->
arg,
signed char*) = (
signed char)value;
143 *
va_arg(ctx->
arg,
short int*) = (
short int)value;
146 *
va_arg(ctx->
arg,
long int*) = (
long int)value;
149 *
va_arg(ctx->
arg,
long long int*) = (
long long int)value;
172 *
va_arg(ctx->
arg,
unsigned int*) = (
unsigned int)value;
175 *
va_arg(ctx->
arg,
unsigned char*) = (
unsigned char)value;
178 *
va_arg(ctx->
arg,
unsigned short int*) = (
unsigned short int)value;
181 *
va_arg(ctx->
arg,
unsigned long int*) = (
unsigned long int)value;
184 *
va_arg(ctx->
arg,
unsigned long long int*) = (
unsigned long long int)value;
237 if (base == 0 || base == 16)
242 if ((
next ==
'x' ||
next ==
'X') && (base == 0 || base == 16))
269 while (c !=
EOF && digits < format->
width)
278 value = (value * base) + digit;
366 while (count < format->
width)
414 return found ^ scanset->
invert;
433 while (*ctx->
p !=
'\0' && *ctx->
p !=
']')
435 if (ctx->
p[1] ==
'-' && ctx->
p[2] !=
']' && ctx->
p[2] !=
'\0')
437 unsigned char start = (
unsigned char)*ctx->
p;
438 unsigned char end = (
unsigned char)ctx->
p[2];
442 for (
int i =
start; i <= end; i++)
476 while (count < format->
width)
612 char specifier = *ctx->
p;
679 while (*ctx.
p !=
'\0')
#define assert(expression)
EFI_PHYSICAL_ADDRESS buffer
static char format[MAX_NAME]
static uint8_t _digit_to_int(char c)
static int _scan(const char *_RESTRICT format, va_list arg, void *data)
static int _scan_format_count(_scan_ctx_t *ctx, _scan_format_ctx_t *format)
static int _scan_whitespace(_scan_ctx_t *ctx)
static int _scan_format(_scan_ctx_t *ctx)
static int _scan_format_char(_scan_ctx_t *ctx, _scan_format_ctx_t *format)
static void _scanset_set(_scanset_t *scanset, uint8_t c)
static bool _scanset_get(_scanset_t *scanset, uint8_t c)
static int _scan_format_integer(_scan_ctx_t *ctx, _scan_format_ctx_t *format, uint32_t base, _scan_format_integer_flags_t flags)
static void _scan_undo(_scan_ctx_t *ctx, int c)
static int _scan_asign_unsigned_int(_scan_ctx_t *ctx, _scan_format_ctx_t *format, uint64_t value)
_scan_format_integer_flags_t
static int _scan_format_string(_scan_ctx_t *ctx, _scan_format_ctx_t *format)
static int _scan_format_scanset(_scan_ctx_t *ctx, _scan_format_ctx_t *format)
static int _scan_format_float(_scan_ctx_t *ctx, _scan_format_ctx_t *format)
static int _scan_next(_scan_ctx_t *ctx)
static int _scan_format_percent(_scan_ctx_t *ctx, _scan_format_ctx_t *format)
static int _scan_asign_signed_int(_scan_ctx_t *ctx, _scan_format_ctx_t *format, int64_t value)
@ _SCAN_SUPPRESS_ASSIGNMENT
#define NULL
Pointer error value.
__UINTMAX_TYPE__ uintmax_t
static const path_flag_t flags[]
__PTRDIFF_TYPE__ ptrdiff_t
#define va_copy(dest, src)
__builtin_va_list va_list
uint64_t table[UINT8_MAX/(sizeof(uint64_t) *8)+1]
#define _SCAN_UNGET(ctx, c)