Lines Matching refs:str

48 	asl_string_t *str = (asl_string_t *)calloc(1, sizeof(asl_string_t));  in asl_string_new()  local
49 if (str == NULL) return NULL; in asl_string_new()
51 str->asl_type = ASL_TYPE_STRING; in asl_string_new()
52 str->refcount = 1; in asl_string_new()
54 str->encoding = encoding; in asl_string_new()
55 str->delta = ASL_STRING_QUANTUM; in asl_string_new()
56 if (encoding & ASL_STRING_VM) str->delta = PAGE_SIZE; in asl_string_new()
57 str->bufsize = 0; in asl_string_new()
58 str->cursor = 0; in asl_string_new()
60 if (encoding & ASL_STRING_LEN) asl_string_append_no_encoding(str, " 0 "); in asl_string_new()
61 return str; in asl_string_new()
65 asl_string_retain(asl_string_t *str) in asl_string_retain() argument
67 if (str == NULL) return NULL; in asl_string_retain()
69 OSAtomicIncrement32Barrier(&(str->refcount)); in asl_string_retain()
70 return str; in asl_string_retain()
74 asl_string_release(asl_string_t *str) in asl_string_release() argument
76 if (str == NULL) return; in asl_string_release()
77 if (OSAtomicDecrement32Barrier(&(str->refcount)) != 0) return; in asl_string_release()
79 if (str->encoding & ASL_STRING_VM) in asl_string_release()
81 vm_deallocate(mach_task_self(), (vm_address_t)str->buf, str->bufsize); in asl_string_release()
85 free(str->buf); in asl_string_release()
88 free(str); in asl_string_release()
92 asl_string_release_return_bytes(asl_string_t *str) in asl_string_release_return_bytes() argument
95 if (str == NULL) return NULL; in asl_string_release_return_bytes()
97 if (OSAtomicDecrement32Barrier(&(str->refcount)) != 0) in asl_string_release_return_bytes()
100 if (str->encoding & ASL_STRING_VM) in asl_string_release_return_bytes()
102 if (str->bufsize == 0) return NULL; in asl_string_release_return_bytes()
105 kern_return_t kstatus = vm_allocate(mach_task_self(), &new, str->bufsize, TRUE); in asl_string_release_return_bytes()
108 memcpy((void *)new, str->buf, str->bufsize); in asl_string_release_return_bytes()
113 if (str->cursor == 0) return NULL; in asl_string_release_return_bytes()
114 return strdup(str->buf); in asl_string_release_return_bytes()
118 out = str->buf; in asl_string_release_return_bytes()
119 free(str); in asl_string_release_return_bytes()
124 asl_string_bytes(asl_string_t *str) in asl_string_bytes() argument
126 if (str == NULL) return NULL; in asl_string_bytes()
127 return str->buf; in asl_string_bytes()
132 asl_string_length(asl_string_t *str) in asl_string_length() argument
134 if (str == NULL) return 0; in asl_string_length()
135 if (str->cursor == 0) return 0; in asl_string_length()
137 return str->cursor + 1; in asl_string_length()
141 asl_string_allocated_size(asl_string_t *str) in asl_string_allocated_size() argument
143 if (str == NULL) return 0; in asl_string_allocated_size()
144 return str->bufsize; in asl_string_allocated_size()
148 _asl_string_grow(asl_string_t *str, size_t len) in _asl_string_grow() argument
152 if (str == NULL) return -1; in _asl_string_grow()
155 if (str->bufsize == 0) in _asl_string_grow()
157 newlen = ((len + str->delta - 1) / str->delta) * str->delta; in _asl_string_grow()
162 if (len <= (str->bufsize - (str->cursor + 1))) return 0; in _asl_string_grow()
165 newlen = ((str->cursor + len + str->delta) / str->delta) * str->delta; in _asl_string_grow()
168 if (str->encoding & ASL_STRING_VM) in _asl_string_grow()
181 if (str->buf != NULL) in _asl_string_grow()
183 memcpy((void *)new, str->buf, str->bufsize); in _asl_string_grow()
184 vm_deallocate(mach_task_self(), (vm_address_t)str->buf, str->bufsize); in _asl_string_grow()
187 str->buf = (char *)new; in _asl_string_grow()
188 str->bufsize = newlen; in _asl_string_grow()
192 str->buf = reallocf(str->buf, newlen); in _asl_string_grow()
193 if (str->buf == NULL) in _asl_string_grow()
195 str->cursor = 0; in _asl_string_grow()
196 str->bufsize = 0; in _asl_string_grow()
200 str->bufsize = newlen; in _asl_string_grow()
207 asl_string_append_char_no_encoding(asl_string_t *str, const char c) in asl_string_append_char_no_encoding() argument
211 if (str == NULL) return NULL; in asl_string_append_char_no_encoding()
214 if (str->bufsize == 0) len++; in asl_string_append_char_no_encoding()
216 if (_asl_string_grow(str, len) < 0) return str; in asl_string_append_char_no_encoding()
218 str->buf[str->cursor] = c; in asl_string_append_char_no_encoding()
219 str->cursor++; in asl_string_append_char_no_encoding()
220 str->buf[str->cursor] = '\0'; in asl_string_append_char_no_encoding()
222 if (str->encoding & ASL_STRING_LEN) in asl_string_append_char_no_encoding()
225 snprintf(tmp, sizeof(tmp), "%10lu", str->cursor - 10); in asl_string_append_char_no_encoding()
226 memcpy(str->buf, tmp, 10); in asl_string_append_char_no_encoding()
229 return str; in asl_string_append_char_no_encoding()
233 asl_string_append_no_encoding(asl_string_t *str, const char *app) in asl_string_append_no_encoding() argument
237 if (str == NULL) return NULL; in asl_string_append_no_encoding()
238 if (app == NULL) return str; in asl_string_append_no_encoding()
242 if (str->bufsize == 0) len++; in asl_string_append_no_encoding()
244 if (_asl_string_grow(str, len) < 0) return str; in asl_string_append_no_encoding()
246 memcpy(str->buf + str->cursor, app, applen); in asl_string_append_no_encoding()
248 str->cursor += applen; in asl_string_append_no_encoding()
249 str->buf[str->cursor] = '\0'; in asl_string_append_no_encoding()
251 if (str->encoding & ASL_STRING_LEN) in asl_string_append_no_encoding()
254 snprintf(tmp, sizeof(tmp), "%10lu", str->cursor - 10); in asl_string_append_no_encoding()
255 memcpy(str->buf, tmp, 10); in asl_string_append_no_encoding()
258 return str; in asl_string_append_no_encoding()
262 asl_string_append_internal(asl_string_t *str, const char *app, int encode_space) in asl_string_append_internal() argument
267 if (str == NULL) return NULL; in asl_string_append_internal()
268 if (app == NULL) return str; in asl_string_append_internal()
270 switch (str->encoding & ASL_ENCODE_MASK) in asl_string_append_internal()
274 return asl_string_append_no_encoding(str, app); in asl_string_append_internal()
285 asl_string_append_no_encoding(str, "\n\t"); in asl_string_append_internal()
289 asl_string_append_no_encoding(str, "^H"); in asl_string_append_internal()
293 asl_string_append_char_no_encoding(str, *p); in asl_string_append_internal()
297 return str; in asl_string_append_internal()
313 asl_string_append_no_encoding(str, "\\240"); in asl_string_append_internal()
317 asl_string_append_no_encoding(str, "\\M"); in asl_string_append_internal()
327 asl_string_append_char_no_encoding(str, ' '); in asl_string_append_internal()
331 asl_string_append_no_encoding(str, "\\s"); in asl_string_append_internal()
338 asl_string_append_no_encoding(str, "\\\\"); in asl_string_append_internal()
343 if ((str->encoding & ASL_ENCODE_ASL) && (meta == 0) && ((*p == 91) || (*p == 93))) in asl_string_append_internal()
345 if (*p == '[') asl_string_append_no_encoding(str, "\\["); in asl_string_append_internal()
346 else asl_string_append_no_encoding(str, "\\]"); in asl_string_append_internal()
355 asl_string_append_char_no_encoding(str, '\\'); in asl_string_append_internal()
358 asl_string_append_no_encoding(str, "^?"); in asl_string_append_internal()
367 asl_string_append_char_no_encoding(str, '-'); in asl_string_append_internal()
370 asl_string_append_char_no_encoding(str, x); in asl_string_append_internal()
377 asl_string_append_char_no_encoding(str, '\\'); in asl_string_append_internal()
378 asl_string_append_char_no_encoding(str, cvis_7_13[x - 7]); in asl_string_append_internal()
387 asl_string_append_char_no_encoding(str, '\\'); in asl_string_append_internal()
390 asl_string_append_char_no_encoding(str, '^'); in asl_string_append_internal()
391 asl_string_append_char_no_encoding(str, 64 + x); in asl_string_append_internal()
395 asl_string_append_char_no_encoding(str, x); in asl_string_append_internal()
398 return str; in asl_string_append_internal()
408 asl_string_append_no_encoding(str, "&amp;"); in asl_string_append_internal()
412 asl_string_append_no_encoding(str, "&lt;"); in asl_string_append_internal()
416 asl_string_append_no_encoding(str, "&gt;"); in asl_string_append_internal()
420 asl_string_append_no_encoding(str, "&quot;"); in asl_string_append_internal()
424 asl_string_append_no_encoding(str, "&apos;"); in asl_string_append_internal()
430 asl_string_append_no_encoding(str, tmp); in asl_string_append_internal()
434 asl_string_append_char_no_encoding(str, x); in asl_string_append_internal()
440 return str; in asl_string_append_internal()
444 return str; in asl_string_append_internal()
448 asl_string_append(asl_string_t *str, const char *app) in asl_string_append() argument
450 return asl_string_append_internal(str, app, 0); in asl_string_append()
454 asl_string_append_asl_key(asl_string_t *str, const char *app) in asl_string_append_asl_key() argument
456 return asl_string_append_internal(str, app, 1); in asl_string_append_asl_key()
460 asl_string_append_op(asl_string_t *str, uint32_t op) in asl_string_append_op() argument
465 if (str == NULL) return NULL; in asl_string_append_op()
469 return asl_string_append_char_no_encoding(str, '.'); in asl_string_append_op()
517 return asl_string_append_char_no_encoding(str, '.'); in asl_string_append_op()
521 return asl_string_append_no_encoding(str, opstr); in asl_string_append_op()
525 asl_string_append_xml_tag(asl_string_t *str, const char *tag, const char *s) in asl_string_append_xml_tag() argument
527 asl_string_append_no_encoding(str, "\t\t<"); in asl_string_append_xml_tag()
528 asl_string_append_no_encoding(str, tag); in asl_string_append_xml_tag()
529 asl_string_append_no_encoding(str, ">"); in asl_string_append_xml_tag()
530 asl_string_append_internal(str, s, 0); in asl_string_append_xml_tag()
531 asl_string_append_no_encoding(str, "</"); in asl_string_append_xml_tag()
532 asl_string_append_no_encoding(str, tag); in asl_string_append_xml_tag()
533 asl_string_append_no_encoding(str, ">\n"); in asl_string_append_xml_tag()
534 return str; in asl_string_append_xml_tag()