Go to the source code of this file.
|
uacpi_size | uacpi_strlen (const uacpi_char *str) |
|
uacpi_size | uacpi_strnlen (const uacpi_char *str, uacpi_size max) |
|
uacpi_i32 | uacpi_strcmp (const uacpi_char *lhs, const uacpi_char *rhs) |
|
void | uacpi_memcpy_zerout (void *dst, const void *src, uacpi_size dst_size, uacpi_size src_size) |
|
uacpi_u8 | uacpi_bit_scan_forward (uacpi_u64 value) |
|
uacpi_u8 | uacpi_bit_scan_backward (uacpi_u64 value) |
|
void * | uacpi_builtin_alloc_zeroed (uacpi_size size) |
|
static void | write_one (struct fmt_buf_state *fb_state, uacpi_char c) |
|
static void | write_many (struct fmt_buf_state *fb_state, const uacpi_char *string, uacpi_size count) |
|
static uacpi_char | hex_char (uacpi_bool upper, uacpi_u64 value) |
|
static void | write_padding (struct fmt_buf_state *fb_state, struct fmt_spec *fm, uacpi_size repr_size) |
|
static void | write_integer (struct fmt_buf_state *fb_state, struct fmt_spec *fm, uacpi_u64 value) |
|
static uacpi_bool | string_has_at_least (const uacpi_char *string, uacpi_size characters) |
|
static uacpi_bool | consume_digits (const uacpi_char **string, uacpi_size *out_size) |
|
static uacpi_bool | parse_number (const uacpi_char **fmt, enum parse_number_mode mode, uacpi_u64 *out_value) |
|
static uacpi_bool | consume (const uacpi_char **string, const uacpi_char *token) |
|
static uacpi_bool | is_one_of (uacpi_char c, const uacpi_char *list) |
|
static uacpi_bool | consume_one_of (const uacpi_char **string, const uacpi_char *list, uacpi_char *consumed_char) |
|
static uacpi_u32 | base_from_specifier (uacpi_char specifier) |
|
static uacpi_bool | is_uppercase_specifier (uacpi_char specifier) |
|
static const uacpi_char * | find_next_conversion (const uacpi_char *fmt, uacpi_size *offset) |
|
uacpi_i32 | uacpi_vsnprintf (uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt, uacpi_va_list vlist) |
|
uacpi_i32 | uacpi_snprintf (uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt,...) |
|
void | uacpi_log (uacpi_log_level lvl, const uacpi_char *str,...) |
|
◆ REPR_BUFFER_SIZE
◆ parse_number_mode
Enumerator |
---|
PARSE_NUMBER_MODE_MAYBE | |
PARSE_NUMBER_MODE_MUST | |
Definition at line 375 of file stdlib.c.
375 {
378};
@ PARSE_NUMBER_MODE_MAYBE
◆ base_from_specifier()
Definition at line 439 of file stdlib.c.
440{
442 {
443 case 'x':
444 case 'X':
445 return 16;
446 case 'o':
447 return 8;
448 default:
449 return 10;
450 }
451}
Referenced by uacpi_vsnprintf().
◆ consume()
Definition at line 395 of file stdlib.c.
396{
398
400
403
405 *string += token_size;
407 }
408
410}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
static uacpi_bool string_has_at_least(const uacpi_char *string, uacpi_size characters)
uacpi_size uacpi_strlen(const uacpi_char *str)
Referenced by uacpi_vsnprintf().
◆ consume_digits()
Definition at line 353 of file stdlib.c.
356{
358
359 for (;;) {
361 if (
c <
'0' ||
c >
'9')
362 break;
363
365 *string += 1;
366 }
367
370
373}
static HANDLE PIO_APC_ROUTINE PVOID PIO_STATUS_BLOCK ULONG PVOID ULONG PVOID ULONG out_size
Referenced by parse_number().
◆ consume_one_of()
Definition at line 422 of file stdlib.c.
425{
429
432 *string += 1;
434 }
435
437}
static uacpi_bool is_one_of(uacpi_char c, const uacpi_char *list)
Referenced by uacpi_vsnprintf().
◆ find_next_conversion()
◆ hex_char()
Definition at line 250 of file stdlib.c.
251{
252 static const uacpi_char upper_hex[] =
"0123456789ABCDEF";
253 static const uacpi_char lower_hex[] =
"0123456789abcdef";
254
255 return (upper ? upper_hex : lower_hex)[
value];
256}
Referenced by write_integer().
◆ is_one_of()
◆ is_uppercase_specifier()
◆ parse_number()
Definition at line 380 of file stdlib.c.
383{
387
390
393}
uacpi_status uacpi_string_to_integer(const uacpi_char *str, uacpi_size max_chars, enum uacpi_base base, uacpi_u64 *out_value)
static const int digits[]
static uacpi_bool consume_digits(const uacpi_char **string, uacpi_size *out_size)
Referenced by uacpi_vsnprintf().
◆ string_has_at_least()
Definition at line 339 of file stdlib.c.
342{
343 while (*string) {
344 if (--characters == 0)
346
347 string++;
348 }
349
351}
Referenced by consume().
◆ uacpi_bit_scan_backward()
Definition at line 154 of file stdlib.c.
155{
156#if defined(_MSC_VER) && !defined(__clang__)
159
160#ifdef _WIN64
163 return 0;
164
166#else
171 return 0;
172
174 }
175
177#endif
178
179#else
181 return 0;
182
183 return 64 - __builtin_clzll(
value);
184#endif
185}
unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask)
Referenced by gas_get_access_bit_width(), and handle_unary_math().
◆ uacpi_bit_scan_forward()
Definition at line 124 of file stdlib.c.
125{
126#if defined(_MSC_VER) && !defined(__clang__)
129
130#ifdef _WIN64
133 return 0;
134
136#else
141 return 0;
142
144 }
145
147#endif
148
149#else
150 return __builtin_ffsll(
value);
151#endif
152}
unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask)
Referenced by handle_unary_math().
◆ uacpi_builtin_alloc_zeroed()
Definition at line 188 of file stdlib.c.
189{
191
195
198}
#define uacpi_memzero(ptr, size)
void * uacpi_kernel_alloc(uacpi_size size)
◆ uacpi_log()
Definition at line 677 of file stdlib.c.
678{
681
684
687 return;
688
689
690
691
692
693
699 }
700
702
704}
GLenum GLuint GLenum GLsizei const GLchar * buf
void uacpi_kernel_log(uacpi_log_level, const uacpi_char *)
uacpi_i32 uacpi_vsnprintf(uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt, uacpi_va_list vlist)
◆ uacpi_memcpy_zerout()
Definition at line 112 of file stdlib.c.
114{
116
117 if (bytes_to_copy)
119
120 if (dst_size > bytes_to_copy)
122}
Referenced by buffer_alloc_and_store(), build_table_id(), do_aml_resource_to_native(), do_native_resource_to_aml(), exec_op(), handle_buffer(), handle_ref_or_deref_of(), handle_special_field(), object_assign_with_implicit_cast(), object_to_integer(), uacpi_dispatch_opregion_io(), uacpi_read_field_unit(), uacpi_write_buffer_field(), and write_buffer_index().
◆ uacpi_snprintf()
◆ uacpi_strcmp()
Definition at line 96 of file stdlib.c.
97{
100
101 while (lhs[
i] && rhs[
i]) {
102 if (lhs[
i] != rhs[
i])
103 return *(cucp)&lhs[
i] - *(cucp)&rhs[
i];
104
106 }
107
108 return *(cucp)&lhs[
i] - *(cucp)&rhs[
i];
109}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Referenced by find_interface_unlocked(), matches_any(), and uacpi_uninstall_interface().
◆ uacpi_strlen()
◆ uacpi_strnlen()
◆ uacpi_vsnprintf()
Definition at line 475 of file stdlib.c.
479{
483 .bytes_written = 0
484 };
485
490
494 .base = 10,
495 };
497
498 if (next_offset)
500
501 if (!next_conversion)
502 break;
503
504 fmt = next_conversion;
507 continue;
508 }
509
510
512
515 case '+':
516 case ' ':
519 continue;
520 case '-':
522 continue;
523 case '0':
525 continue;
526 case '#':
528 continue;
529 default:
530 return -1;
531 }
532 }
533
537 return -1;
538 }
539
542
545 } else {
547 return -1;
548 }
549 }
550
552
556 continue;
557 }
558
562
564 string = "<null>";
565
570 continue;
571 }
572
578 goto write_int;
579 }
580
587 } else {
588 return -1;
589 }
590 goto write_int;
591 }
592
599 } else {
600 return -1;
601 }
602 goto write_int;
603 }
604
612 } else {
613 return -1;
614 }
615 goto write_int;
616 }
617
625 } else {
626 return -1;
627 }
628 goto write_int;
629 }
630
636 } else {
637 return -1;
638 }
639
640 write_int:
644 }
645
647 }
648
651
654 }
655
657}
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
static uacpi_bool consume(const uacpi_char **string, const uacpi_char *token)
static void write_many(struct fmt_buf_state *fb_state, const uacpi_char *string, uacpi_size count)
static const uacpi_char * find_next_conversion(const uacpi_char *fmt, uacpi_size *offset)
static uacpi_u32 base_from_specifier(uacpi_char specifier)
static uacpi_bool consume_one_of(const uacpi_char **string, const uacpi_char *list, uacpi_char *consumed_char)
static void write_one(struct fmt_buf_state *fb_state, uacpi_char c)
static uacpi_bool parse_number(const uacpi_char **fmt, enum parse_number_mode mode, uacpi_u64 *out_value)
static uacpi_bool is_uppercase_specifier(uacpi_char specifier)
static void write_integer(struct fmt_buf_state *fb_state, struct fmt_spec *fm, uacpi_u64 value)
Referenced by uacpi_log(), and uacpi_snprintf().
◆ write_integer()
Definition at line 275 of file stdlib.c.
278{
285
288
289 if (as_ll < 0) {
292 }
293 }
294
297
301
302 if (fm->
base == 16) {
304 }
else if (fm->
base == 8 || fm->
base == 10) {
306 } else {
307 repr = '?';
308 }
309
310 repr_buffer[--
index] = repr;
311 }
313
314 if (repr_size == 0) {
315 repr_buffer[--
index] =
'0';
316 repr_size = 1;
317 }
318
320 if (fm->
base == 16) {
322 repr_buffer[--
index] =
'0';
323 repr_size += 2;
324 }
else if (fm->
base == 8) {
325 repr_buffer[--
index] =
'0';
326 repr_size += 1;
327 }
328 }
329
333 } else {
336 }
337}
double __cdecl remainder(double, double)
static void write_padding(struct fmt_buf_state *fb_state, struct fmt_spec *fm, uacpi_size repr_size)
static uacpi_char hex_char(uacpi_bool upper, uacpi_u64 value)
Referenced by uacpi_vsnprintf().
◆ write_many()
◆ write_one()
◆ write_padding()
Definition at line 258 of file stdlib.c.
261{
263
264 if (mw <= repr_size)
265 return;
266
267 mw -= repr_size;
268
269 while (mw--)
271}
Referenced by write_integer().