Lines Matching refs:kd_ctrl_page
32 kdebug_storage_lock(struct kd_control *kd_ctrl_page) in kdebug_storage_lock() argument
35 lck_spin_lock_grp(&kd_ctrl_page->kdc_storage_lock, &kdebug_lck_grp); in kdebug_storage_lock()
40 kdebug_storage_unlock(struct kd_control *kd_ctrl_page, int intrs_en) in kdebug_storage_unlock() argument
42 lck_spin_unlock(&kd_ctrl_page->kdc_storage_lock); in kdebug_storage_unlock()
106 struct kd_control *kd_ctrl_page, in create_buffers() argument
121 ncpus = kd_ctrl_page->alloc_cpus; in create_buffers()
142 (vm_size_t) kd_ctrl_page->kdebug_kdcopybuf_size, in create_buffers()
188 kds[n].kds_next.buffer_index = kd_ctrl_page->kds_free_list.buffer_index; in create_buffers()
189 kds[n].kds_next.offset = kd_ctrl_page->kds_free_list.offset; in create_buffers()
191 kd_ctrl_page->kds_free_list.buffer_index = i; in create_buffers()
192 kd_ctrl_page->kds_free_list.offset = n; in create_buffers()
206 kd_ctrl_page->kdc_flags |= KDBG_BUFINIT; in create_buffers()
208 kd_ctrl_page->kdc_storage_used = 0; in create_buffers()
211 delete_buffers(kd_ctrl_page, kd_data_page); in create_buffers()
218 delete_buffers(struct kd_control *kd_ctrl_page, in delete_buffers() argument
239 kmem_free(kernel_map, (vm_offset_t)kd_data_page->kdcopybuf, kd_ctrl_page->kdebug_kdcopybuf_size); in delete_buffers()
243 kd_ctrl_page->kds_free_list.raw = KDS_PTR_NULL; in delete_buffers()
246 kfree_type(struct kd_bufinfo, kd_ctrl_page->alloc_cpus, kdbip); in delete_buffers()
249 kd_ctrl_page->kdc_coprocs = NULL; in delete_buffers()
250 kd_ctrl_page->kdebug_cpus = 0; in delete_buffers()
251 kd_ctrl_page->alloc_cpus = 0; in delete_buffers()
252 kd_ctrl_page->kdc_flags &= ~KDBG_BUFINIT; in delete_buffers()
256 allocate_storage_unit(struct kd_control *kd_ctrl_page, in allocate_storage_unit() argument
266 int intrs_en = kdebug_storage_lock(kd_ctrl_page); in allocate_storage_unit()
276 if (kdsp_actual->kds_bufindx < kd_ctrl_page->kdebug_events_per_storage_unit) { in allocate_storage_unit()
281 if ((kdsp = kd_ctrl_page->kds_free_list).raw != KDS_PTR_NULL) { in allocate_storage_unit()
286 kd_ctrl_page->kds_free_list = kdsp_actual->kds_next; in allocate_storage_unit()
288 kd_ctrl_page->kdc_storage_used++; in allocate_storage_unit()
294 if (kd_ctrl_page->kdc_live_flags & KDBG_NOWRAP) { in allocate_storage_unit()
295 kd_ctrl_page->kdc_emit = KDEMIT_DISABLE; in allocate_storage_unit()
296 kd_ctrl_page->kdc_live_flags |= KDBG_WRAPPED; in allocate_storage_unit()
298 kd_ctrl_page->enabled = 0; in allocate_storage_unit()
307 for (kdbp_try = &kdbip[0]; kdbp_try < &kdbip[kd_ctrl_page->kdebug_cpus]; kdbp_try++) { in allocate_storage_unit()
317 if (kdsp_actual->kds_bufcnt < kd_ctrl_page->kdebug_events_per_storage_unit) { in allocate_storage_unit()
335 …ts = kdbg_get_timestamp(&kdsp_actual->kds_records[kd_ctrl_page->kdebug_events_per_storage_unit - 1… in allocate_storage_unit()
341 if (kdbp_vict == NULL && kd_ctrl_page->mode == KDEBUG_MODE_TRACE) { in allocate_storage_unit()
342 kd_ctrl_page->kdc_emit = KDEMIT_DISABLE; in allocate_storage_unit()
344 kd_ctrl_page->enabled = 0; in allocate_storage_unit()
360 if (kd_ctrl_page->kdc_oldest_time < oldest_ts) { in allocate_storage_unit()
361 kd_ctrl_page->kdc_oldest_time = oldest_ts; in allocate_storage_unit()
363 kd_ctrl_page->kdc_live_flags |= KDBG_WRAPPED; in allocate_storage_unit()
366 if (kd_ctrl_page->mode == KDEBUG_MODE_TRACE) { in allocate_storage_unit()
387 kdebug_storage_unlock(kd_ctrl_page, intrs_en); in allocate_storage_unit()
393 release_storage_unit(struct kd_control *kd_ctrl_page, struct kd_buffer *kd_data_page, int cpu, uint… in release_storage_unit() argument
403 int intrs_en = kdebug_storage_lock(kd_ctrl_page); in release_storage_unit()
419 kdsp_actual->kds_next = kd_ctrl_page->kds_free_list; in release_storage_unit()
420 kd_ctrl_page->kds_free_list = kdsp; in release_storage_unit()
422 kd_ctrl_page->kdc_storage_used--; in release_storage_unit()
425 kdebug_storage_unlock(kd_ctrl_page, intrs_en); in release_storage_unit()
447 _enable_wrap(struct kd_control *kd_ctrl_page, kdebug_emit_filter_t emit) in _enable_wrap() argument
449 int intrs_en = kdebug_storage_lock(kd_ctrl_page); in _enable_wrap()
450 kd_ctrl_page->kdc_live_flags &= ~KDBG_NOWRAP; in _enable_wrap()
452 kd_ctrl_page->kdc_emit = emit; in _enable_wrap()
454 kdebug_storage_unlock(kd_ctrl_page, intrs_en); in _enable_wrap()
459 kernel_debug_write(struct kd_control *kd_ctrl_page, in kernel_debug_write() argument
473 if (kd_ctrl_page->enabled == 0) { in kernel_debug_write()
498 if (kd_rec.timestamp < kd_ctrl_page->kdc_oldest_time) { in kernel_debug_write()
514 bindx = kd_ctrl_page->kdebug_events_per_storage_unit; in kernel_debug_write()
517 if (kdsp_actual == NULL || bindx >= kd_ctrl_page->kdebug_events_per_storage_unit) { in kernel_debug_write()
518 if (allocate_storage_unit(kd_ctrl_page, kd_data_page, cpu) == false) { in kernel_debug_write()
539 if (kd_ctrl_page->mode == KDEBUG_MODE_TRACE) { in kernel_debug_write()
552 if (kd_ctrl_page->kdc_flags & KDBG_DEBUGID_64) { in kernel_debug_write()
579 kernel_debug_read(struct kd_control *kd_ctrl_page, in kernel_debug_read() argument
611 if (count == 0 || !(kd_ctrl_page->kdc_flags & KDBG_BUFINIT) || kd_data_page->kdcopybuf == 0) { in kernel_debug_read()
615 if (kd_ctrl_page->mode == KDEBUG_MODE_TRIAGE) { in kernel_debug_read()
637 if (kd_ctrl_page->mode == KDEBUG_MODE_TRACE) { in kernel_debug_read()
653 wrapped = kdebug_disable_wrap(kd_ctrl_page, &old_emit, &old_live_flags); in kernel_debug_read()
659 if ((tempbuf_count = count) > kd_ctrl_page->kdebug_kdcopybuf_count) { in kernel_debug_read()
660 tempbuf_count = kd_ctrl_page->kdebug_kdcopybuf_count; in kernel_debug_read()
668 kd_ctrl_page->kdc_live_flags &= ~KDBG_WRAPPED; in kernel_debug_read()
670 for (cpu = 0, kdbp = &kdbip[0]; cpu < kd_ctrl_page->kdebug_cpus; cpu++, kdbp++) { in kernel_debug_read()
679 if (kd_ctrl_page->mode == KDEBUG_MODE_TRIAGE) { in kernel_debug_read()
690 for (cpu = 0, kdbp = &kdbip[0]; cpu < kd_ctrl_page->kdebug_cpus; cpu++, kdbp++) { in kernel_debug_read()
704 barrier_min = kd_ctrl_page->kdc_oldest_time; in kernel_debug_read()
732 for (cpu = 0, kdbp = &kdbip[0]; cpu < kd_ctrl_page->kdebug_cpus; cpu++, kdbp++) { in kernel_debug_read()
750 if (kd_ctrl_page->mode == KDEBUG_MODE_TRIAGE) { in kernel_debug_read()
777 if (kd_ctrl_page->kdc_oldest_time < lost_time) { in kernel_debug_read()
784 kd_ctrl_page->kdc_oldest_time = barrier_min = lost_time; in kernel_debug_read()
815 if (kdsp_actual->kds_readlast >= kd_ctrl_page->kdebug_events_per_storage_unit) { in kernel_debug_read()
816 release_storage_unit(kd_ctrl_page, kd_data_page, cpu, kdsp.raw); in kernel_debug_read()
895 if (kd_ctrl_page->mode == KDEBUG_MODE_TRACE) { in kernel_debug_read()
896 if (kdsp_actual->kds_readlast == kd_ctrl_page->kdebug_events_per_storage_unit) { in kernel_debug_read()
897 release_storage_unit(kd_ctrl_page, kd_data_page, min_cpu, kdsp.raw); in kernel_debug_read()
936 if (kd_ctrl_page->mode == KDEBUG_MODE_TRACE && in kernel_debug_read()
948 if (kd_ctrl_page->kdc_oldest_time < latest_time) { in kernel_debug_read()
949 kd_ctrl_page->kdc_oldest_time = latest_time; in kernel_debug_read()
952 if (kd_ctrl_page->mode == KDEBUG_MODE_TRACE) { in kernel_debug_read()
958 } else if (kd_ctrl_page->mode == KDEBUG_MODE_TRIAGE) { in kernel_debug_read()
963 panic("kdebug: invalid kdebug mode %d", kd_ctrl_page->mode); in kernel_debug_read()
977 if ((tempbuf_count = count) > kd_ctrl_page->kdebug_kdcopybuf_count) { in kernel_debug_read()
978 tempbuf_count = kd_ctrl_page->kdebug_kdcopybuf_count; in kernel_debug_read()
982 _enable_wrap(kd_ctrl_page, old_emit); in kernel_debug_read()