Lines Matching refs:console_ring
96 } console_ring; variable
195 if (console_ring.len != 0) { in console_init()
199 kmem_alloc(kernel_map, (vm_offset_t *)&console_ring.buffer, in console_init()
204 console_ring.buffer += PAGE_SIZE; /* Skip past the first guard page. */ in console_init()
205 console_ring.len = KERN_CONSOLE_RING_SIZE; in console_init()
206 console_ring.used = 0; in console_init()
207 console_ring.nreserved = 0; in console_init()
208 console_ring.read_ptr = console_ring.buffer; in console_init()
209 console_ring.write_ptr = console_ring.buffer; in console_init()
211 lck_mtx_init(&console_ring.flush_lock, &console_lck_grp, LCK_ATTR_NULL); in console_init()
212 lck_ticket_init(&console_ring.write_lock, &console_lck_grp); in console_init()
221 return console_ring.len == KERN_CONSOLE_RING_SIZE; in is_console_initialized()
314 lck_ticket_lock(&console_ring.write_lock, &console_lck_grp); in console_ring_reserve_space()
315 if ((console_ring.len - console_ring.used) >= nchars) { in console_ring_reserve_space()
316 console_ring.used += nchars; in console_ring_reserve_space()
318 os_atomic_inc(&console_ring.nreserved, relaxed); in console_ring_reserve_space()
321 write_ptr = console_ring.write_ptr; in console_ring_reserve_space()
324 const ptrdiff_t write_index = console_ring.write_ptr - console_ring.buffer; in console_ring_reserve_space()
325 console_ring.write_ptr = console_ring.buffer + ((write_index + nchars) % console_ring.len); in console_ring_reserve_space()
327 lck_ticket_unlock(&console_ring.write_lock); in console_ring_reserve_space()
341 assert(console_ring.nreserved > 0); in console_ring_unreserve_space()
343 os_atomic_dec(&console_ring.nreserved, relaxed); in console_ring_unreserve_space()
363 assert(console_ring.nreserved > 0); in console_ring_put()
366 if ((*write_ptr - console_ring.buffer) == console_ring.len) { in console_ring_put()
367 *write_ptr = console_ring.buffer; in console_ring_put()
408 if (__probable(!in_debugger) && fail_fast && !lck_mtx_try_lock(&console_ring.flush_lock)) { in console_ring_try_empty()
411 lck_mtx_lock(&console_ring.flush_lock); in console_ring_try_empty()
415 lck_ticket_lock(&console_ring.write_lock, &console_lck_grp); in console_ring_try_empty()
422 while (os_atomic_load(&console_ring.nreserved, relaxed) > 0) { in console_ring_try_empty()
428 nchars_out = MIN(console_ring.used, (int)sizeof(flush_buf)); in console_ring_try_empty()
431 size_before_wrap = (int)((console_ring.buffer + console_ring.len) - console_ring.read_ptr); in console_ring_try_empty()
442 memcpy(flush_buf, console_ring.read_ptr, nchars_out); in console_ring_try_empty()
443 const ptrdiff_t read_index = console_ring.read_ptr - console_ring.buffer; in console_ring_try_empty()
444 console_ring.read_ptr = console_ring.buffer + ((read_index + nchars_out) % console_ring.len); in console_ring_try_empty()
445 console_ring.used -= nchars_out; in console_ring_try_empty()
449 lck_ticket_unlock(&console_ring.write_lock); in console_ring_try_empty()
462 lck_mtx_unlock(&console_ring.flush_lock); in console_ring_try_empty()
764 T_ASSERT_EQ_INT(console_ring.len, KERN_CONSOLE_RING_SIZE, "Console ring size is not correct."); in console_serial_test()