Lines Matching refs:console_ring
96 } console_ring; variable
189 if (console_ring.len != 0) { in console_init()
193 kmem_alloc(kernel_map, (vm_offset_t *)&console_ring.buffer, in console_init()
198 console_ring.buffer += PAGE_SIZE; /* Skip past the first guard page. */ in console_init()
199 console_ring.len = KERN_CONSOLE_RING_SIZE; in console_init()
200 console_ring.used = 0; in console_init()
201 console_ring.nreserved = 0; in console_init()
202 console_ring.read_ptr = console_ring.buffer; in console_init()
203 console_ring.write_ptr = console_ring.buffer; in console_init()
205 lck_mtx_init(&console_ring.flush_lock, &console_lck_grp, LCK_ATTR_NULL); in console_init()
206 lck_ticket_init(&console_ring.write_lock, &console_lck_grp); in console_init()
215 return console_ring.len == KERN_CONSOLE_RING_SIZE; in is_console_initialized()
307 lck_ticket_lock(&console_ring.write_lock, &console_lck_grp); in console_ring_reserve_space()
308 if ((console_ring.len - console_ring.used) >= nchars) { in console_ring_reserve_space()
309 console_ring.used += nchars; in console_ring_reserve_space()
311 os_atomic_inc(&console_ring.nreserved, relaxed); in console_ring_reserve_space()
314 write_ptr = console_ring.write_ptr; in console_ring_reserve_space()
317 const ptrdiff_t write_index = console_ring.write_ptr - console_ring.buffer; in console_ring_reserve_space()
318 console_ring.write_ptr = console_ring.buffer + ((write_index + nchars) % console_ring.len); in console_ring_reserve_space()
320 lck_ticket_unlock(&console_ring.write_lock); in console_ring_reserve_space()
334 assert(console_ring.nreserved > 0); in console_ring_unreserve_space()
336 os_atomic_dec(&console_ring.nreserved, relaxed); in console_ring_unreserve_space()
356 assert(console_ring.nreserved > 0); in console_ring_put()
359 if ((*write_ptr - console_ring.buffer) == console_ring.len) { in console_ring_put()
360 *write_ptr = console_ring.buffer; in console_ring_put()
401 if (__probable(!in_debugger) && fail_fast && !lck_mtx_try_lock(&console_ring.flush_lock)) { in console_ring_try_empty()
404 lck_mtx_lock(&console_ring.flush_lock); in console_ring_try_empty()
408 lck_ticket_lock(&console_ring.write_lock, &console_lck_grp); in console_ring_try_empty()
415 while (os_atomic_load(&console_ring.nreserved, relaxed) > 0) { in console_ring_try_empty()
421 nchars_out = MIN(console_ring.used, (int)sizeof(flush_buf)); in console_ring_try_empty()
424 size_before_wrap = (int)((console_ring.buffer + console_ring.len) - console_ring.read_ptr); in console_ring_try_empty()
435 memcpy(flush_buf, console_ring.read_ptr, nchars_out); in console_ring_try_empty()
436 const ptrdiff_t read_index = console_ring.read_ptr - console_ring.buffer; in console_ring_try_empty()
437 console_ring.read_ptr = console_ring.buffer + ((read_index + nchars_out) % console_ring.len); in console_ring_try_empty()
438 console_ring.used -= nchars_out; in console_ring_try_empty()
442 lck_ticket_unlock(&console_ring.write_lock); in console_ring_try_empty()
455 lck_mtx_unlock(&console_ring.flush_lock); in console_ring_try_empty()
742 T_ASSERT_EQ_INT(console_ring.len, KERN_CONSOLE_RING_SIZE, "Console ring size is not correct."); in console_serial_test()