Lines Matching +full:magic +full:- +full:string
29 #include <string.h>
44 uint32_t magic; member
54 uint32_t magic; member
71 DEBUG_ASSERT(klog_buf->magic == KLOG_BUFFER_HEADER_MAGIC); in find_nth_log()
72 DEBUG_ASSERT(log < klog_buf->log_count); in find_nth_log()
76 DEBUG_ASSERT(k->magic == KLOG_HEADER_MAGIC); in find_nth_log()
78 uint8_t *ptr = (uint8_t *)k->data; in find_nth_log()
79 ptr += k->size; in find_nth_log()
82 log--; in find_nth_log()
91 DEBUG_ASSERT(kb->magic == KLOG_BUFFER_HEADER_MAGIC); in get_checksum_klog_buffer_header()
93 return crc32(0, (const void *)(&kb->header_crc32 + 1), sizeof(*kb) - 8); in get_checksum_klog_buffer_header()
99 DEBUG_ASSERT(k->magic == KLOG_HEADER_MAGIC); in get_checksum_klog_data()
102 for (uint i = 0; i < k->size; i++) { in get_checksum_klog_data()
103 sum += k->data[i]; in get_checksum_klog_data()
112 DEBUG_ASSERT(kb->magic == KLOG_BUFFER_HEADER_MAGIC); in checksum_klog_buffer_header()
114 kb->header_crc32 = get_checksum_klog_buffer_header(kb); in checksum_klog_buffer_header()
120 DEBUG_ASSERT(k->magic == KLOG_HEADER_MAGIC); in checksum_klog_data()
122 k->data_checksum = get_checksum_klog_data(k); in checksum_klog_data()
146 klog_buf->magic = KLOG_BUFFER_HEADER_MAGIC; in klog_create()
147 klog_buf->log_count = count; in klog_create()
148 klog_buf->current_log = 0; in klog_create()
149 klog_buf->total_size = len; in klog_create()
154 uint bufsize = len - sizeof(struct klog_buffer_header) - sizeof(struct klog_header) * count; in klog_create()
159 klog->magic = KLOG_HEADER_MAGIC; in klog_create()
160 klog->size = bufsize; in klog_create()
161 klog->head = 0; in klog_create()
162 klog->tail = 0; in klog_create()
163 klog->data_checksum = 0; in klog_create()
167 count--; in klog_create()
188 if (kbuf->magic != KLOG_BUFFER_HEADER_MAGIC) in klog_recover()
191 if (crc != kbuf->header_crc32) in klog_recover()
195 if (kbuf->total_size > MAX_KLOG_SIZE) in klog_recover()
197 if (kbuf->current_log >= kbuf->log_count) in klog_recover()
202 for (uint i = 0; i < kbuf->log_count; i++) { in klog_recover()
206 if (k->magic != KLOG_HEADER_MAGIC) in klog_recover()
210 if ((k->size > 0) && (k->size & 3)) in klog_recover()
212 if (k->size > MAX_KLOG_SIZE) in klog_recover()
214 if (k->head >= k->size) in klog_recover()
216 if (k->tail >= k->size) in klog_recover()
220 if (k->data_checksum) { in klog_recover()
222 if (crc != k->data_checksum) in klog_recover()
226 ptr += sizeof(struct klog_header) + k->size; in klog_recover()
231 klog_set_current_buffer(klog_buf->current_log); in klog_recover()
234 klog_buf, klog_buf->current_log, klog, klog->head, klog->tail, klog->size); in klog_recover()
245 DEBUG_ASSERT(klog_buf->magic == KLOG_BUFFER_HEADER_MAGIC); in klog_buffer_count()
247 return klog_buf->log_count; in klog_buffer_count()
256 DEBUG_ASSERT(klog_buf->magic == KLOG_BUFFER_HEADER_MAGIC); in klog_current_buffer()
258 return klog_buf->current_log; in klog_current_buffer()
267 DEBUG_ASSERT(klog_buf->magic == KLOG_BUFFER_HEADER_MAGIC); in klog_set_current_buffer()
269 if (buffer >= klog_buf->log_count) in klog_set_current_buffer()
276 if (buffer != klog_buf->current_log) { in klog_set_current_buffer()
277 klog_buf->current_log = buffer; in klog_set_current_buffer()
294 DEBUG_ASSERT(klog->magic == KLOG_HEADER_MAGIC); in klog_read()
307 len -= tmp_len; in klog_read()
316 klog->tail += offset; in klog_read()
317 if (klog->tail >= klog->size) in klog_read()
318 klog->tail -= klog->size; in klog_read()
333 return klog_getc(-1); in klog_getchar()
341 return (klog->head != klog->tail); in klog_has_data()
349 DEBUG_ASSERT(klog->magic == KLOG_HEADER_MAGIC); in klog_puts_len()
351 LTRACEF("before write head %u tail %u size %u\n", klog->head, klog->tail, klog->size); in klog_puts_len()
356 deltasum += *str - klog->data[klog->head]; in klog_puts_len()
359 klog->data[klog->head] = *str; in klog_puts_len()
362 uint newhead = klog->head + 1; in klog_puts_len()
363 if (newhead >= klog->size) in klog_puts_len()
364 newhead -= klog->size; in klog_puts_len()
365 DEBUG_ASSERT(newhead < klog->size); in klog_puts_len()
368 if (klog->tail == newhead) { in klog_puts_len()
369 uint newtail = klog->tail + 1; in klog_puts_len()
370 if (newtail >= klog->size) in klog_puts_len()
371 newtail -= klog->size; in klog_puts_len()
372 DEBUG_ASSERT(newtail < klog->size); in klog_puts_len()
373 klog->tail = newtail; in klog_puts_len()
377 klog->head = newhead; in klog_puts_len()
382 LTRACEF("after write head %u tail %u\n", klog->head, klog->tail); in klog_puts_len()
384 klog->data_checksum += deltasum; in klog_puts_len()
434 if (buffer >= 0 && (uint)buffer >= klog_buf->log_count) in klog_get_buffer()
444 DEBUG_ASSERT(k->magic == KLOG_HEADER_MAGIC); in klog_get_buffer()
446 vec[0].iov_base = &k->data[k->tail]; in klog_get_buffer()
447 if (k->head == k->tail) { in klog_get_buffer()
449 } else if (k->head > k->tail) { in klog_get_buffer()
451 vec[0].iov_len = k->head - k->tail; in klog_get_buffer()
455 vec[0].iov_len = k->size - k->tail; in klog_get_buffer()
458 vec[1].iov_base = &k->data[0]; in klog_get_buffer()
459 vec[1].iov_len = k->head; in klog_get_buffer()
509 printf("usage: %s puts <string>\n", argv[0].str); in cmd_klog()
514 return -1; in cmd_klog()
526 return -1; in cmd_klog()
563 return -1; in cmd_klog()
581 klog_printf("a plain string\n"); in cmd_klog()
583 klog_printf("strings: '%s' '%s'\n", "a little string", "another one"); in cmd_klog()
585 int buffer = -1; in cmd_klog()
592 int buffer = -1; in cmd_klog()