Lines Matching refs:kctx
104 au_close(au_kcontext_t *kctx, caddr_t *d, int flag, au_event_t e_type, in au_close() argument
112 ASSERT(kctx != NULL); in au_close()
128 au_close_time(kctx, dchain, flag, e_type, e_mod, e_time); in au_close()
231 au_close_time(au_kcontext_t *kctx, token_t *dchain, int flag, au_event_t e_type, in au_close_time() argument
251 ASSERT(kctx != NULL); in au_close_time()
254 ? kctx->auk_auditstate in au_close_time()
277 if (kctx->auk_hostaddr_valid) in au_close_time()
279 kctx->auk_info.ai_termid.at_type; in au_close_time()
284 if (kctx->auk_policy & AUDIT_ZONENAME) { in au_close_time()
291 if (kctx->auk_policy & AUDIT_TRAIL) in au_close_time()
295 if (kctx->auk_policy & AUDIT_SEQ) in au_close_time()
299 if (kctx->auk_hostaddr_valid) in au_close_time()
312 if (kctx->auk_hostaddr_valid) in au_close_time()
314 kctx->auk_info.ai_termid.at_type; in au_close_time()
330 if (kctx->auk_policy & AUDIT_SEQ) { in au_close_time()
347 if (kctx->auk_policy & AUDIT_TRAIL) { in au_close_time()
357 au_enqueue(kctx, record, &hadr, &sadr, 1, flag & AU_DONTBLOCK); in au_close_time()
359 au_enqueue(kctx, record, &hadr, &sadr, 0, flag & AU_DONTBLOCK); in au_close_time()
361 AS_INC(as_totalsize, byte_count, kctx); in au_close_time()
366 au_enqueue(au_kcontext_t *kctx, au_buff_t *m, adr_t *hadrp, adr_t *sadrp, in au_enqueue() argument
369 if (kctx == NULL) in au_enqueue()
372 mutex_enter(&(kctx->auk_queue.lock)); in au_enqueue()
374 if (!dontblock && (kctx->auk_queue.cnt >= kctx->auk_queue.hiwater) && in au_enqueue()
375 audit_sync_block(kctx)) { in au_enqueue()
376 mutex_exit(&(kctx->auk_queue.lock)); in au_enqueue()
388 kctx->auk_sequence++; in au_enqueue()
389 adr_int32(sadrp, (int32_t *)&(kctx->auk_sequence), 1); in au_enqueue()
392 if (kctx->auk_queue.head) in au_enqueue()
393 kctx->auk_queue.tail->next_rec = m; in au_enqueue()
395 kctx->auk_queue.head = m; in au_enqueue()
397 kctx->auk_queue.tail = m; in au_enqueue()
399 if (++(kctx->auk_queue.cnt) > in au_enqueue()
400 kctx->auk_queue.lowater && kctx->auk_queue.rd_block) in au_enqueue()
401 cv_broadcast(&(kctx->auk_queue.read_cv)); in au_enqueue()
403 mutex_exit(&(kctx->auk_queue.lock)); in au_enqueue()
406 AS_INC(as_enqueue, 1, kctx); in au_enqueue()
415 au_dequeue(au_kcontext_t *kctx, au_buff_t *freeto) in au_dequeue() argument
420 ASSERT(kctx != NULL); in au_dequeue()
422 mutex_enter(&(kctx->auk_queue.lock)); in au_dequeue()
424 ASSERT(kctx->auk_queue.head != NULL); in au_dequeue()
427 l = m = kctx->auk_queue.head; in au_dequeue()
435 kctx->auk_queue.cnt -= n; in au_dequeue()
437 kctx->auk_queue.head = l; in au_dequeue()
442 if (kctx->auk_queue.cnt <= kctx->auk_queue.lowater && in au_dequeue()
443 kctx->auk_queue.wt_block) in au_dequeue()
444 cv_broadcast(&(kctx->auk_queue.write_cv)); in au_dequeue()
446 mutex_exit(&(kctx->auk_queue.lock)); in au_dequeue()
453 AS_INC(as_written, n, kctx); in au_dequeue()
465 audit_sync_block(au_kcontext_t *kctx) in audit_sync_block() argument
467 ASSERT(MUTEX_HELD(&(kctx->auk_queue.lock))); in audit_sync_block()
474 : (kctx->auk_auditstate != AUC_AUDITING)) || in audit_sync_block()
475 (kctx->auk_policy & AUDIT_CNT)) { in audit_sync_block()
478 AS_INC(as_dropped, 1, kctx); in audit_sync_block()
484 if (kctx->auk_queue.rd_block && in audit_sync_block()
485 kctx->auk_queue.cnt > kctx->auk_queue.lowater) in audit_sync_block()
486 cv_broadcast(&(kctx->auk_queue.read_cv)); in audit_sync_block()
489 AS_INC(as_wblocked, 1, kctx); in audit_sync_block()
492 kctx->auk_queue.wt_block++; in audit_sync_block()
493 cv_wait(&(kctx->auk_queue.write_cv), &(kctx->auk_queue.lock)); in audit_sync_block()
494 kctx->auk_queue.wt_block--; in audit_sync_block()
495 } while (kctx->auk_queue.cnt >= kctx->auk_queue.hiwater); in audit_sync_block()
507 audit_async_block(au_kcontext_t *kctx, caddr_t *rpp) in audit_async_block() argument
509 ASSERT(kctx != NULL); in audit_async_block()
511 mutex_enter(&(kctx->auk_queue.lock)); in audit_async_block()
513 if (kctx->auk_queue.cnt >= kctx->auk_queue.hiwater) { in audit_async_block()
514 mutex_exit(&(kctx->auk_queue.lock)); in audit_async_block()
519 mutex_exit(&(kctx->auk_queue.lock)); in audit_async_block()
531 au_door_upcall(au_kcontext_t *kctx, au_dbuf_t *aubuf) in au_door_upcall() argument
550 mutex_enter(&(kctx->auk_svc_lock)); in au_door_upcall()
551 rc = door_upcall(kctx->auk_current_vp, &darg, NULL, in au_door_upcall()
554 mutex_exit(&(kctx->auk_svc_lock)); in au_door_upcall()
560 mutex_enter(&(kctx->auk_eagain_mutex)); in au_door_upcall()
561 (void) cv_reltimedwait(&(kctx->auk_eagain_cv), in au_door_upcall()
562 &(kctx->auk_eagain_mutex), ticks_to_wait, in au_door_upcall()
564 mutex_exit(&(kctx->auk_eagain_mutex)); in au_door_upcall()
568 mutex_exit(&(kctx->auk_svc_lock)); /* no retry */ in au_door_upcall()
584 au_doormsg(au_kcontext_t *kctx, uint32_t message_code, void *message) in au_doormsg() argument
607 rc = au_door_upcall(kctx, buf); in au_doormsg()
619 au_doorio(au_kcontext_t *kctx) { in au_doorio() argument
644 if (kctx->auk_queue.bufsz != kctx->auk_queue.buflen) { in au_doorio()
645 size_t new_sz = kctx->auk_queue.bufsz; in au_doorio()
647 kmem_free(kctx->auk_dbuffer, AU_DBUF_HEADER + in au_doorio()
648 kctx->auk_queue.buflen); in au_doorio()
650 kctx->auk_dbuffer = kmem_alloc(AU_DBUF_HEADER + new_sz, in au_doorio()
654 kctx->auk_queue.buflen = new_sz; in au_doorio()
656 if (!kctx->auk_queue.head) in au_doorio()
662 cAR = kctx->auk_queue.head; /* start at head of queue */ in au_doorio()
666 bp = &(kctx->auk_dbuffer->aub_buf[0]); in au_doorio()
675 len = (ssize_t)MIN(sz, kctx->auk_queue.buflen - off); in au_doorio()
695 if ((kctx->auk_queue.buflen == off) || (part == 0)) { in au_doorio()
702 kctx->auk_dbuffer->aub_type = partial_state; in au_doorio()
703 kctx->auk_dbuffer->aub_size = off; in au_doorio()
704 error = au_door_upcall(kctx, kctx->auk_dbuffer); in au_doorio()
712 au_dequeue(kctx, sp); in au_doorio()
760 au_kcontext_t *kctx; in audit_async_drop() local
765 kctx = GET_KCTX_GZ; in audit_async_drop()
769 (kctx->auk_auditstate == AUC_INIT_AUDIT)) { in audit_async_drop()
771 AS_INC(as_dropped, 1, kctx); in audit_async_drop()
797 au_kcontext_t *kctx = GET_KCTX_GZ; in audit_async_start() local
800 if ((kctx->auk_auditstate != AUC_AUDITING) && in audit_async_start()
801 (kctx->auk_auditstate != AUC_INIT_AUDIT)) in audit_async_start()
808 estate = kctx->auk_ets[event]; in audit_async_start()
811 success = kctx->auk_info.ai_namask.as_success & estate; in audit_async_start()
813 failure = kctx->auk_info.ai_namask.as_failure & estate; in audit_async_start()
834 au_kcontext_t *kctx; in audit_async_finish() local
836 kctx = GET_KCTX_GZ; in audit_async_finish()
838 au_close(kctx, ad, AU_DONTBLOCK | AU_OK, aid, PAD_NONATTR|amod, e_time); in audit_async_finish()
850 au_kcontext_t *kctx; in audit_async_finish_backend() local
856 kctx = GET_KCTX_GZ; in audit_async_finish_backend()
858 if (audit_async_block(kctx, (caddr_t *)&attr->audi_ad)) { in audit_async_finish_backend()
872 au_close_time(kctx, (token_t *)attr->audi_ad, attr->audi_flag, in audit_async_finish_backend()
875 au_close_time(kctx, (token_t *)attr->audi_ad, attr->audi_flag, in audit_async_finish_backend()
879 AS_INC(as_generated, 1, kctx); in audit_async_finish_backend()
880 AS_INC(as_nonattrib, 1, kctx); in audit_async_finish_backend()