59#define KMP_STR_BUF_INVARIANT(b) \
61 KMP_DEBUG_ASSERT((b)->str != NULL); \
62 KMP_DEBUG_ASSERT((b)->size >= sizeof((b)->bulk)); \
63 KMP_DEBUG_ASSERT((b)->size % sizeof((b)->bulk) == 0); \
64 KMP_DEBUG_ASSERT((unsigned)(b)->used < (b)->size); \
66 (b)->size == sizeof((b)->bulk) ? (b)->str == &(b)->bulk[0] : 1); \
67 KMP_DEBUG_ASSERT((b)->size > sizeof((b)->bulk) ? (b)->str != &(b)->bulk[0] \
73 if (buffer->
used > 0) {
84 if (buffer->
size < (
unsigned int)
size) {
88 }
while (buffer->
size < (
unsigned int)
size);
91 if (buffer->
str == &buffer->
bulk[0]) {
93 if (buffer->
str == NULL) {
99 if (buffer->
str == NULL) {
114 if (buffer->
size <=
sizeof(buffer->
bulk)) {
116 if (buffer->
str == NULL) {
125 if (buffer->
size >
sizeof(buffer->
bulk)) {
129 buffer->
size =
sizeof(buffer->
bulk);
140 buffer->
str[buffer->
used] =
'\0';
154 dest->str[dest->used] =
'\0';
156 dest->used += src->
used;
167 int const free = buffer->
size - buffer->
used;
184 va_copy(_args,
args);
195 if (rc >= 0 && rc < free) {
224 va_start(
args, format);
233 char const *names[] = {
"",
"k",
"M",
"G",
"T",
"P",
"E",
"Z",
"Y"};
234 int const units =
sizeof(names) /
sizeof(
char const *);
237 while ((
size % 1024 == 0) && (u + 1 < units)) {
262 slash = strrchr(fname->
dir,
'/');
266 if (
'a' <= first && first <=
'z' && fname->
dir[1] ==
':') {
267 slash = &fname->
dir[1];
270 base = (slash == NULL ? fname->
dir : slash + 1);
287 if (pattern != NULL) {
290 dir_match = strcmp(ptrn.
dir,
"*/") == 0 ||
292 base_match = strcmp(ptrn.
base,
"*") == 0 ||
297 return dir_match && base_match;
316 Str = strchr(
CCAST(
char *, Psource),
';');
318 Str = strchr(Psource,
';');
323 Str = strchr(Str + 1,
';');
327 Str = strchr(Str + 1,
';');
331 *LineBeg = atoi(Str + 1);
333 Str = strchr(Str + 1,
';');
340 *LineEndOrCol = atoi(Str + 1);
356 if (psource != NULL) {
375 loc.line = atoi(line);
410 result = (_stricmp(lhs, rhs) == 0);
412 result = (strcmp(lhs, rhs) == 0);
459 if (buffer == NULL) {
465 va_start(
args, format);
470 if (rc >= 0 && rc <
size) {
486 if (buffer == NULL) {
515 return ((len > 0) ?
i >= len : (!
target[
i] && (len || !
data[
i])));
521 int i = 0,
j = 0, start = 0;
564 found = strchr(str, search_for);
566 *found = replace_with;
567 found = strchr(found + 1, search_for);
579 char *ptr = strchr(str, delim);
606 *
buf += strspn(*
buf, delim);
609 *
buf += strcspn(*
buf, delim);
617 token = strtok_r(str, delim,
buf);
628 for (t = str; *t !=
'\0'; ++t) {
629 if (*t <
'0' || *t >
'9')
643 for (t = str; *t !=
'\0'; ++t) {
644 if (*t <
'0' || *t >
'9')
666 factor = (1024 * 1024);
675 if (
result > (INT_MAX / factor))
680 return (*t != 0 ? 0 :
result);
707 while (str[
i] ==
' ' || str[
i] ==
'\t') {
712 if (str[
i] <
'0' || str[
i] >
'9') {
717 digit = str[
i] -
'0';
721 }
while (str[
i] >=
'0' && str[
i] <=
'9');
724 while (str[
i] ==
' ' || str[
i] ==
'\t') {
729#define _case(ch, exp) \
731 case ch - ('a' - 'A'): { \
732 size_t shift = (exp)*10; \
734 if (shift < sizeof(size_t) * 8) { \
735 factor = (size_t)(1) << shift; \
752 if (str[
i] ==
'b' || str[
i] ==
'B') {
758 if (!(str[
i] ==
' ' || str[
i] ==
'\t' || str[
i] == 0)) {
772 while (str[
i] ==
' ' || str[
i] ==
'\t') {
804 while (str[
i] ==
' ' || str[
i] ==
'\t') {
809 if (str[
i] <
'0' || str[
i] >
'9') {
814 digit = str[
i] -
'0';
818 }
while (str[
i] >=
'0' && str[
i] <=
'9');
821 while (str[
i] ==
' ' || str[
i] ==
'\t') {
void * target(void *task)
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void * data
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d __itt_event ITT_FORMAT __itt_group_mark d void const wchar_t const wchar_t int ITT_FORMAT __itt_group_sync __itt_group_fsync x void const wchar_t int const wchar_t int int ITT_FORMAT __itt_group_sync __itt_group_fsync x void ITT_FORMAT __itt_group_sync __itt_group_fsync p void ITT_FORMAT __itt_group_sync __itt_group_fsync p void size_t ITT_FORMAT lu no args __itt_obj_prop_t __itt_obj_state_t ITT_FORMAT d const char ITT_FORMAT s const char ITT_FORMAT s __itt_frame ITT_FORMAT p __itt_counter ITT_FORMAT p __itt_counter unsigned long long ITT_FORMAT lu __itt_counter unsigned long long ITT_FORMAT lu __itt_counter __itt_clock_domain unsigned long long void ITT_FORMAT p const wchar_t ITT_FORMAT S __itt_mark_type const wchar_t ITT_FORMAT S __itt_mark_type const char ITT_FORMAT s __itt_mark_type ITT_FORMAT d __itt_caller ITT_FORMAT p __itt_caller ITT_FORMAT p no args const __itt_domain __itt_clock_domain unsigned long long __itt_id ITT_FORMAT lu const __itt_domain __itt_clock_domain unsigned long long __itt_id __itt_id void ITT_FORMAT p const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_clock_domain unsigned long long __itt_id __itt_string_handle __itt_scope ITT_FORMAT d const __itt_domain __itt_scope __itt_string_handle const char size_t ITT_FORMAT lu const __itt_domain __itt_clock_domain unsigned long long __itt_relation __itt_id ITT_FORMAT lu __itt_track_group __itt_string_handle __itt_track_group_type ITT_FORMAT d __itt_track ITT_FORMAT p void int const int int const char int ITT_FORMAT d void void const char * path
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t size
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id head
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function h
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id tail
#define KMP_INTERNAL_MALLOC(sz)
#define KMP_INTERNAL_REALLOC(p, sz)
#define KMP_INTERNAL_FREE(p)
static void __kmp_type_convert(T1 src, T2 *dest)
#define KMP_DEBUG_ASSERT(cond)
unsigned long long kmp_uint64
#define KMP_STRNCAT_S(dst, bsz, src, cnt)
#define KMP_MEMCPY_S(dst, bsz, src, cnt)
int __kmp_str_to_int(char const *str, char sentinel)
void __kmp_str_fname_init(kmp_str_fname_t *fname, char const *path)
void __kmp_str_to_uint(char const *str, kmp_uint64 *out, char const **error)
void __kmp_str_to_size(char const *str, size_t *out, size_t dfactor, char const **error)
void __kmp_str_loc_numbers(char const *Psource, int *LineBeg, int *LineEndOrCol)
void __kmp_str_fname_free(kmp_str_fname_t *fname)
void __kmp_str_split(char *str, char delim, char **head, char **tail)
void __kmp_str_buf_clear(kmp_str_buf_t *buffer)
void __kmp_str_replace(char *str, char search_for, char replace_with)
void __kmp_str_buf_detach(kmp_str_buf_t *buffer)
bool __kmp_str_contains(char const *target, int len, char const *data)
int __kmp_str_eqf(char const *lhs, char const *rhs)
void __kmp_str_buf_reserve(kmp_str_buf_t *buffer, size_t size)
#define KMP_STR_BUF_INVARIANT(b)
int __kmp_str_match(char const *target, int len, char const *data)
int __kmp_str_buf_vprint(kmp_str_buf_t *buffer, char const *format, va_list args)
kmp_str_loc_t __kmp_str_loc_init(char const *psource, bool init_fname)
void __kmp_str_buf_free(kmp_str_buf_t *buffer)
int __kmp_str_fname_match(kmp_str_fname_t const *fname, char const *pattern)
char * __kmp_str_format(char const *format,...)
int __kmp_str_match_true(char const *data)
void __kmp_str_buf_cat(kmp_str_buf_t *buffer, char const *str, size_t len)
void __kmp_str_loc_free(kmp_str_loc_t *loc)
int __kmp_basic_str_to_int(char const *str)
char * __kmp_str_token(char *str, char const *delim, char **buf)
void __kmp_str_buf_catbuf(kmp_str_buf_t *dest, const kmp_str_buf_t *src)
int __kmp_str_buf_print(kmp_str_buf_t *buffer, char const *format,...)
int __kmp_str_match_false(char const *data)
void __kmp_str_free(char **str)
void __kmp_str_buf_print_size(kmp_str_buf_t *buf, size_t size)