ReactOS 0.4.17-dev-683-g0dafdc5
stdlib.c
Go to the documentation of this file.
3
4#ifdef UACPI_USE_BUILTIN_STRING
5
6#ifndef uacpi_memcpy
7void *uacpi_memcpy(void *dest, const void *src, uacpi_size count)
8{
10 const uacpi_char *cs = src;
11
12 while (count--)
13 *cd++ = *cs++;
14
15 return dest;
16}
17#endif
18
19#ifndef uacpi_memmove
20void *uacpi_memmove(void *dest, const void *src, uacpi_size count)
21{
23 const uacpi_char *cs = src;
24
25 if (src < dest) {
26 cs += count;
27 cd += count;
28
29 while (count--)
30 *--cd = *--cs;
31 } else {
32 while (count--)
33 *cd++ = *cs++;
34 }
35
36 return dest;
37}
38#endif
39
40#ifndef uacpi_memset
42{
44 uacpi_u8 *cdest = dest;
45
46 while (count--)
47 *cdest++ = fill;
48
49 return dest;
50}
51#endif
52
53#ifndef uacpi_memcmp
54uacpi_i32 uacpi_memcmp(const void *lhs, const void *rhs, uacpi_size count)
55{
56 const uacpi_u8 *byte_lhs = lhs;
57 const uacpi_u8 *byte_rhs = rhs;
59
60 for (i = 0; i < count; ++i) {
61 if (byte_lhs[i] != byte_rhs[i])
62 return byte_lhs[i] - byte_rhs[i];
63 }
64
65 return 0;
66}
67#endif
68
69#endif // UACPI_USE_BUILTIN_STRING
70
71#ifndef uacpi_strlen
73{
74 const uacpi_char *str1;
75
76 for (str1 = str; *str1; str1++);
77
78 return str1 - str;
79}
80#endif
81
82#ifndef UACPI_BAREBONES_MODE
83
84#ifndef uacpi_strnlen
86{
87 const uacpi_char *str1;
88
89 for (str1 = str; max-- && *str1; str1++);
90
91 return str1 - str;
92}
93#endif
94
95#ifndef uacpi_strcmp
97{
98 uacpi_size i = 0;
99 typedef const uacpi_u8 *cucp;
100
101 while (lhs[i] && rhs[i]) {
102 if (lhs[i] != rhs[i])
103 return *(cucp)&lhs[i] - *(cucp)&rhs[i];
104
105 i++;
106 }
107
108 return *(cucp)&lhs[i] - *(cucp)&rhs[i];
109}
110#endif
111
112void uacpi_memcpy_zerout(void *dst, const void *src,
113 uacpi_size dst_size, uacpi_size src_size)
114{
115 uacpi_size bytes_to_copy = UACPI_MIN(src_size, dst_size);
116
117 if (bytes_to_copy)
118 uacpi_memcpy(dst, src, bytes_to_copy);
119
120 if (dst_size > bytes_to_copy)
121 uacpi_memzero((uacpi_u8 *)dst + bytes_to_copy, dst_size - bytes_to_copy);
122}
123
125{
126#if defined(_MSC_VER) && !defined(__clang__)
127 unsigned char ret;
128 unsigned long index;
129
130#ifdef _WIN64
132 if (ret == 0)
133 return 0;
134
135 return (uacpi_u8)index + 1;
136#else
138 if (ret == 0) {
139 ret = _BitScanForward(&index, value >> 32);
140 if (ret == 0)
141 return 0;
142
143 return (uacpi_u8)index + 33;
144 }
145
146 return (uacpi_u8)index + 1;
147#endif
148
149#elif defined(__WATCOMC__)
150 // TODO: Use compiler intrinsics or inline ASM here
152 uacpi_u64 mask = 1;
153
154 for (index = 1; index <= 64; index++, mask <<= 1) {
155 if (value & mask) {
156 return index;
157 }
158 }
159
160 return 0;
161#else
162 return __builtin_ffsll(value);
163#endif
164}
165
167{
168#if defined(_MSC_VER) && !defined(__clang__)
169 unsigned char ret;
170 unsigned long index;
171
172#ifdef _WIN64
174 if (ret == 0)
175 return 0;
176
177 return (uacpi_u8)index + 1;
178#else
179 ret = _BitScanReverse(&index, value >> 32);
180 if (ret == 0) {
182 if (ret == 0)
183 return 0;
184
185 return (uacpi_u8)index + 1;
186 }
187
188 return (uacpi_u8)index + 33;
189#endif
190
191#elif defined(__WATCOMC__)
192 // TODO: Use compiler intrinsics or inline ASM here
194 uacpi_u64 mask = (1ull << 63);
195
196 for (index = 64; index > 0; index--, mask >>= 1) {
197 if (value & mask) {
198 return index;
199 }
200 }
201
202 return 0;
203#else
204 if (value == 0)
205 return 0;
206
207 return 64 - __builtin_clzll(value);
208#endif
209}
210
211#ifndef UACPI_NATIVE_ALLOC_ZEROED
213{
214 void *ptr;
215
218 return ptr;
219
221 return ptr;
222}
223#endif
224
225#endif // !UACPI_BAREBONES_MODE
226
227#ifndef uacpi_vsnprintf
232};
233
234struct fmt_spec {
246};
247
248static void write_one(struct fmt_buf_state *fb_state, uacpi_char c)
249{
250 if (fb_state->bytes_written < fb_state->capacity)
251 fb_state->buffer[fb_state->bytes_written] = c;
252
253 fb_state->bytes_written++;
254}
255
256static void write_many(
257 struct fmt_buf_state *fb_state, const uacpi_char *string, uacpi_size count
258)
259{
260 if (fb_state->bytes_written < fb_state->capacity) {
261 uacpi_size count_to_write;
262
263 count_to_write = UACPI_MIN(
264 count, fb_state->capacity - fb_state->bytes_written
265 );
267 &fb_state->buffer[fb_state->bytes_written], string, count_to_write
268 );
269 }
270
271 fb_state->bytes_written += count;
272}
273
275{
276 static const uacpi_char upper_hex[] = "0123456789ABCDEF";
277 static const uacpi_char lower_hex[] = "0123456789abcdef";
278
279 return (upper ? upper_hex : lower_hex)[value];
280}
281
282static void write_padding(
283 struct fmt_buf_state *fb_state, struct fmt_spec *fm, uacpi_size repr_size
284)
285{
286 uacpi_u64 mw = fm->min_width;
287
288 if (mw <= repr_size)
289 return;
290
291 mw -= repr_size;
292
293 while (mw--)
294 write_one(fb_state, fm->left_justify ? ' ' : fm->pad_char);
295}
296
297#define REPR_BUFFER_SIZE 32
298
299static void write_integer(
300 struct fmt_buf_state *fb_state, struct fmt_spec *fm, uacpi_u64 value
301)
302{
303 uacpi_char repr_buffer[REPR_BUFFER_SIZE];
306 uacpi_char repr;
307 uacpi_bool negative = UACPI_FALSE;
308 uacpi_size repr_size;
309
310 if (fm->is_signed) {
311 uacpi_i64 as_ll = value;
312
313 if (as_ll < 0) {
314 value = -as_ll;
315 negative = UACPI_TRUE;
316 }
317 }
318
319 if (fm->prepend || negative)
320 write_one(fb_state, negative ? '-' : fm->prepend_char);
321
322 while (value) {
323 remainder = value % fm->base;
324 value /= fm->base;
325
326 if (fm->base == 16) {
327 repr = hex_char(fm->uppercase, remainder);
328 } else if (fm->base == 8 || fm->base == 10) {
329 repr = remainder + '0';
330 } else {
331 repr = '?';
332 }
333
334 repr_buffer[--index] = repr;
335 }
336 repr_size = REPR_BUFFER_SIZE - index;
337
338 if (repr_size == 0) {
339 repr_buffer[--index] = '0';
340 repr_size = 1;
341 }
342
343 if (fm->alternate_form) {
344 if (fm->base == 16) {
345 repr_buffer[--index] = fm->uppercase ? 'X' : 'x';
346 repr_buffer[--index] = '0';
347 repr_size += 2;
348 } else if (fm->base == 8) {
349 repr_buffer[--index] = '0';
350 repr_size += 1;
351 }
352 }
353
354 if (fm->left_justify) {
355 write_many(fb_state, &repr_buffer[index], repr_size);
356 write_padding(fb_state, fm, repr_size);
357 } else {
358 write_padding(fb_state, fm, repr_size);
359 write_many(fb_state, &repr_buffer[index], repr_size);
360 }
361}
362
364 const uacpi_char *string, uacpi_size characters
365)
366{
367 while (*string) {
368 if (--characters == 0)
369 return UACPI_TRUE;
370
371 string++;
372 }
373
374 return UACPI_FALSE;
375}
376
378 const uacpi_char **string, uacpi_size *out_size
379)
380{
381 uacpi_size size = 0;
382
383 for (;;) {
384 char c = **string;
385 if (c < '0' || c > '9')
386 break;
387
388 size++;
389 *string += 1;
390 }
391
392 if (size == 0)
393 return UACPI_FALSE;
394
395 *out_size = size;
396 return UACPI_TRUE;
397}
398
402};
403
405 const uacpi_char **fmt, enum parse_number_mode mode, uacpi_u64 *out_value
406)
407{
409 uacpi_size num_digits;
410 const uacpi_char *digits = *fmt;
411
412 if (!consume_digits(fmt, &num_digits))
414
415 ret = uacpi_string_to_integer(digits, num_digits, UACPI_BASE_DEC, out_value);
416 return ret == UACPI_STATUS_OK;
417}
418
419static uacpi_bool consume(const uacpi_char **string, const uacpi_char *token)
420{
421 uacpi_size token_size;
422
423 token_size = uacpi_strlen(token);
424
425 if (!string_has_at_least(*string, token_size))
426 return UACPI_FALSE;
427
428 if (!uacpi_memcmp(*string, token, token_size)) {
429 *string += token_size;
430 return UACPI_TRUE;
431 }
432
433 return UACPI_FALSE;
434}
435
437{
438 for (; *list; list++) {
439 if (c == *list)
440 return UACPI_TRUE;
441 }
442
443 return UACPI_FALSE;
444}
445
447 const uacpi_char **string, const uacpi_char *list, uacpi_char *consumed_char
448)
449{
450 uacpi_char c = **string;
451 if (!c)
452 return UACPI_FALSE;
453
454 if (is_one_of(c, list)) {
455 *consumed_char = c;
456 *string += 1;
457 return UACPI_TRUE;
458 }
459
460 return UACPI_FALSE;
461}
462
464{
465 switch (specifier)
466 {
467 case 'x':
468 case 'X':
469 return 16;
470 case 'o':
471 return 8;
472 default:
473 return 10;
474 }
475}
476
478{
479 return specifier == 'X';
480}
481
484)
485{
486 *offset = 0;
487
488 while (*fmt) {
489 if (*fmt == '%')
490 return fmt;
491
492 fmt++;
493 *offset += 1;
494 }
495
496 return UACPI_NULL;
497}
498
500 uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt,
501 uacpi_va_list vlist
502)
503{
504 struct fmt_buf_state fb_state = { 0 };
506 const uacpi_char *next_conversion;
507 uacpi_size next_offset;
509
510 fb_state.buffer = buffer;
511 fb_state.capacity = capacity;
512 fb_state.bytes_written = 0;
513
514 while (*fmt) {
515 struct fmt_spec fm = {
516 .pad_char = ' ',
517 .base = 10,
518 };
519 next_conversion = find_next_conversion(fmt, &next_offset);
520
521 if (next_offset)
522 write_many(&fb_state, fmt, next_offset);
523
524 if (!next_conversion)
525 break;
526
527 fmt = next_conversion;
528 if (consume(&fmt, "%%")) {
529 write_one(&fb_state, '%');
530 continue;
531 }
532
533 // consume %
534 fmt++;
535
536 while (consume_one_of(&fmt, "+- 0#", &flag)) {
537 switch (flag) {
538 case '+':
539 case ' ':
540 fm.prepend = UACPI_TRUE;
541 fm.prepend_char = flag;
542 continue;
543 case '-':
545 continue;
546 case '0':
547 fm.pad_char = '0';
548 continue;
549 case '#':
551 continue;
552 default:
553 return -1;
554 }
555 }
556
557 if (consume(&fmt, "*")) {
558 fm.min_width = uacpi_va_arg(vlist, int);
560 return -1;
561 }
562
563 if (consume(&fmt, ".")) {
565
566 if (consume(&fmt, "*")) {
567 fm.precision = uacpi_va_arg(vlist, int);
568 } else {
570 return -1;
571 }
572 }
573
574 flag = 0;
575
576 if (consume(&fmt, "c")) {
577 uacpi_char c = uacpi_va_arg(vlist, int);
578 write_one(&fb_state, c);
579 continue;
580 }
581
582 if (consume(&fmt, "s")) {
583 const uacpi_char *string = uacpi_va_arg(vlist, uacpi_char*);
585
586 if (uacpi_unlikely(string == UACPI_NULL))
587 string = "<null>";
588
589 for (i = 0; (!fm.has_precision || i < fm.precision) && string[i]; ++i)
590 write_one(&fb_state, string[i]);
591 while (i++ < fm.min_width)
592 write_one(&fb_state, ' ');
593 continue;
594 }
595
596 if (consume(&fmt, "p")) {
597 value = (uacpi_uintptr)uacpi_va_arg(vlist, void*);
598 fm.base = 16;
599 fm.min_width = UACPI_POINTER_SIZE * 2;
600 fm.pad_char = '0';
601 goto write_int;
602 }
603
604 if (consume(&fmt, "hh")) {
605 if (consume(&fmt, "d") || consume(&fmt, "i")) {
606 value = (uacpi_u64)uacpi_va_arg(vlist, int);
608 } else if (consume_one_of(&fmt, "oxXu", &flag)) {
609 value = (unsigned char)uacpi_va_arg(vlist, int);
610 } else {
611 return -1;
612 }
613 goto write_int;
614 }
615
616 if (consume(&fmt, "h")) {
617 if (consume(&fmt, "d") || consume(&fmt, "i")) {
618 value = (signed short)uacpi_va_arg(vlist, int);
620 } else if (consume_one_of(&fmt, "oxXu", &flag)) {
621 value = (unsigned short)uacpi_va_arg(vlist, int);
622 } else {
623 return -1;
624 }
625 goto write_int;
626 }
627
628 if (consume(&fmt, "ll") ||
629 (sizeof(uacpi_size) == sizeof(long long) && consume(&fmt, "z"))) {
630 if (consume(&fmt, "d") || consume(&fmt, "i")) {
631 value = uacpi_va_arg(vlist, long long);
633 } else if (consume_one_of(&fmt, "oxXu", &flag)) {
634 value = uacpi_va_arg(vlist, unsigned long long);
635 } else {
636 return -1;
637 }
638 goto write_int;
639 }
640
641 if (consume(&fmt, "l") ||
642 (sizeof(uacpi_size) == sizeof(long) && consume(&fmt, "z"))) {
643 if (consume(&fmt, "d") || consume(&fmt, "i")) {
644 value = uacpi_va_arg(vlist, long);
646 } else if (consume_one_of(&fmt, "oxXu", &flag)) {
647 value = uacpi_va_arg(vlist, unsigned long);
648 } else {
649 return -1;
650 }
651 goto write_int;
652 }
653
654 if (consume(&fmt, "d") || consume(&fmt, "i")) {
655 value = uacpi_va_arg(vlist, uacpi_i32);
657 } else if (consume_one_of(&fmt, "oxXu", &flag)) {
658 value = uacpi_va_arg(vlist, uacpi_u32);
659 } else {
660 return -1;
661 }
662
663 write_int:
664 if (flag != 0) {
667 }
668
669 write_integer(&fb_state, &fm, value);
670 }
671
672 if (fb_state.capacity) {
673 uacpi_size last_char;
674
675 last_char = UACPI_MIN(fb_state.bytes_written, fb_state.capacity - 1);
676 fb_state.buffer[last_char] = '\0';
677 }
678
679 return fb_state.bytes_written;
680}
681#endif
682
683#ifndef uacpi_snprintf
685 uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt, ...
686)
687{
688 uacpi_va_list vlist;
690
691 uacpi_va_start(vlist, fmt);
692 ret = uacpi_vsnprintf(buffer, capacity, fmt, vlist);
693 uacpi_va_end(vlist);
694
695 return ret;
696}
697#endif
698
699#ifndef UACPI_FORMATTED_LOGGING
701{
703 int ret;
704
705 uacpi_va_list vlist;
706 uacpi_va_start(vlist, str);
707
708 ret = uacpi_vsnprintf(buf, sizeof(buf), str, vlist);
709 if (uacpi_unlikely(ret < 0))
710 goto out;
711
712 uacpi_kernel_log(lvl, buf);
713
714out:
715 uacpi_va_end(vlist);
716}
717#endif
InitDirComponents & cd
_STLP_MOVE_TO_STD_NAMESPACE void fill(_ForwardIter __first, _ForwardIter __last, const _Tp &__val)
Definition: _algobase.h:449
#define index(s, c)
Definition: various.h:29
Definition: list.h:37
unsigned char ch[4][2]
Definition: console.c:118
_ACRTIMP double __cdecl remainder(double, double)
Definition: remainder.c:75
unsigned char
Definition: typeof.h:29
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
Definition: typeof.h:94
#define uacpi_memzero(ptr, size)
Definition: stdlib.h:99
#define uacpi_memcmp
Definition: stdlib.h:61
#define uacpi_memcpy
Definition: stdlib.h:34
#define uacpi_memmove
Definition: stdlib.h:43
#define uacpi_memset
Definition: stdlib.h:52
#define UACPI_MIN(x, y)
Definition: stdlib.h:102
uacpi_log_level
Definition: log.h:7
#define uacpi_unlikely(expr)
Definition: compiler.h:88
#define UACPI_PLAIN_LOG_BUFFER_SIZE
Definition: config.h:161
#define uacpi_va_end
Definition: types.h:41
size_t uacpi_size
Definition: types.h:37
uint32_t uacpi_u32
Definition: types.h:21
bool uacpi_bool
Definition: types.h:31
#define UACPI_FALSE
Definition: types.h:30
va_list uacpi_va_list
Definition: types.h:39
uint64_t uacpi_u64
Definition: types.h:22
#define uacpi_va_arg
Definition: types.h:42
char uacpi_char
Definition: types.h:44
int32_t uacpi_i32
Definition: types.h:26
int64_t uacpi_i64
Definition: types.h:27
#define UACPI_NULL
Definition: types.h:33
#define uacpi_va_start
Definition: types.h:40
uint8_t uacpi_u8
Definition: types.h:19
#define UACPI_TRUE
Definition: types.h:29
uintptr_t uacpi_uintptr
Definition: types.h:35
uacpi_status
Definition: status.h:10
@ UACPI_STATUS_OK
Definition: status.h:11
return ret
Definition: mutex.c:147
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLenum src
Definition: glext.h:6340
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
GLintptr offset
Definition: glext.h:5920
const GLubyte * c
Definition: glext.h:8905
GLuint index
Definition: glext.h:6031
GLenum GLint GLuint mask
Definition: glext.h:6028
GLenum mode
Definition: glext.h:6217
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLenum GLenum dst
Definition: glext.h:6340
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
Definition: glfuncs.h:52
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
Definition: glfuncs.h:248
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
Definition: glfuncs.h:210
#define cs
Definition: i386-dis.c:442
uacpi_status uacpi_string_to_integer(const uacpi_char *str, uacpi_size max_chars, enum uacpi_base base, uacpi_u64 *out_value)
Definition: utilities.c:233
@ UACPI_BASE_DEC
Definition: utilities.h:33
__INTRIN_INLINE unsigned char _BitScanReverse64(unsigned long *Index, unsigned long long Mask)
Definition: intrin_arm64.h:124
__INTRIN_INLINE unsigned char _BitScanForward64(unsigned long *Index, unsigned long long Mask)
Definition: intrin_arm64.h:113
static const int digits[]
Definition: decode.c:71
#define c
Definition: ke_i.h:80
void * uacpi_kernel_alloc(uacpi_size size)
Definition: uacpiosl.c:111
void uacpi_kernel_log(uacpi_log_level, const uacpi_char *)
Definition: uacpiosl.c:18
char string[160]
Definition: util.h:11
static PVOID ptr
Definition: dispmode.c:27
static HANDLE PIO_APC_ROUTINE PVOID PIO_STATUS_BLOCK ULONG PVOID ULONG PVOID ULONG out_size
Definition: file.c:72
static char * dest
Definition: rtl.c:149
#define list
Definition: rosglue.h:35
const WCHAR * str
unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask)
Definition: intrin_arm.h:180
unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask)
Definition: intrin_arm.h:57
XML_HIDDEN void xmlParserErrors const char const xmlChar * str1
Definition: parser.h:35
static uacpi_bool consume(const uacpi_char **string, const uacpi_char *token)
Definition: stdlib.c:419
static void write_padding(struct fmt_buf_state *fb_state, struct fmt_spec *fm, uacpi_size repr_size)
Definition: stdlib.c:282
static uacpi_bool string_has_at_least(const uacpi_char *string, uacpi_size characters)
Definition: stdlib.c:363
static void write_many(struct fmt_buf_state *fb_state, const uacpi_char *string, uacpi_size count)
Definition: stdlib.c:256
static const uacpi_char * find_next_conversion(const uacpi_char *fmt, uacpi_size *offset)
Definition: stdlib.c:482
uacpi_i32 uacpi_snprintf(uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt,...)
Definition: stdlib.c:684
static uacpi_u32 base_from_specifier(uacpi_char specifier)
Definition: stdlib.c:463
uacpi_u8 uacpi_bit_scan_backward(uacpi_u64 value)
Definition: stdlib.c:166
uacpi_i32 uacpi_vsnprintf(uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt, uacpi_va_list vlist)
Definition: stdlib.c:499
uacpi_i32 uacpi_strcmp(const uacpi_char *lhs, const uacpi_char *rhs)
Definition: stdlib.c:96
parse_number_mode
Definition: stdlib.c:399
@ PARSE_NUMBER_MODE_MAYBE
Definition: stdlib.c:400
@ PARSE_NUMBER_MODE_MUST
Definition: stdlib.c:401
static uacpi_bool consume_one_of(const uacpi_char **string, const uacpi_char *list, uacpi_char *consumed_char)
Definition: stdlib.c:446
static void write_one(struct fmt_buf_state *fb_state, uacpi_char c)
Definition: stdlib.c:248
static uacpi_bool parse_number(const uacpi_char **fmt, enum parse_number_mode mode, uacpi_u64 *out_value)
Definition: stdlib.c:404
uacpi_size uacpi_strnlen(const uacpi_char *str, uacpi_size max)
Definition: stdlib.c:85
static uacpi_bool is_uppercase_specifier(uacpi_char specifier)
Definition: stdlib.c:477
static void write_integer(struct fmt_buf_state *fb_state, struct fmt_spec *fm, uacpi_u64 value)
Definition: stdlib.c:299
static uacpi_bool consume_digits(const uacpi_char **string, uacpi_size *out_size)
Definition: stdlib.c:377
void * uacpi_builtin_alloc_zeroed(uacpi_size size)
Definition: stdlib.c:212
uacpi_u8 uacpi_bit_scan_forward(uacpi_u64 value)
Definition: stdlib.c:124
static uacpi_bool is_one_of(uacpi_char c, const uacpi_char *list)
Definition: stdlib.c:436
void uacpi_memcpy_zerout(void *dst, const void *src, uacpi_size dst_size, uacpi_size src_size)
Definition: stdlib.c:112
static uacpi_char hex_char(uacpi_bool upper, uacpi_u64 value)
Definition: stdlib.c:274
void uacpi_log(uacpi_log_level lvl, const uacpi_char *str,...)
Definition: stdlib.c:700
#define REPR_BUFFER_SIZE
Definition: stdlib.c:297
uacpi_size uacpi_strlen(const uacpi_char *str)
Definition: stdlib.c:72
uacpi_size capacity
Definition: stdlib.c:230
uacpi_size bytes_written
Definition: stdlib.c:231
uacpi_char * buffer
Definition: stdlib.c:229
uacpi_u8 left_justify
Definition: stdlib.c:238
uacpi_u8 uppercase
Definition: stdlib.c:237
uacpi_u8 prepend
Definition: stdlib.c:236
uacpi_char prepend_char
Definition: stdlib.c:242
uacpi_u64 precision
Definition: stdlib.c:244
uacpi_u8 alternate_form
Definition: stdlib.c:239
uacpi_char pad_char
Definition: stdlib.c:241
uacpi_u8 is_signed
Definition: stdlib.c:235
uacpi_u64 min_width
Definition: stdlib.c:243
uacpi_u8 has_precision
Definition: stdlib.c:240
uacpi_u32 base
Definition: stdlib.c:245
Definition: dsound.c:943
#define max(a, b)
Definition: svc.c:63
Definition: pdh_main.c:96
wchar_t specifier
Definition: wcsftime.cpp:381
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383