FreeBSD/sys/security/audit/audit_arg.c
/*
 * Calls to manipulate elements of the audit record structure from system
 * call code.  Macro wrappers will prevent this functions from being entered
 * if auditing is disabled, avoiding the function call cost.  We check the
 * thread audit record pointer anyway, as the audit condition could change,
 * and pre-selection may not have allocated an audit record for this event.
 *
 * XXXAUDIT: Should we assert, in each case, that this field of the record
 * hasn't already been filled in?
 */
Calls to manipulate elements of the audit record structure from system
call code.  Macro wrappers will prevent this functions from being entered
if auditing is disabled, avoiding the function call cost.  We check the
thread audit record pointer anyway, as the audit condition could change,
and pre-selection may not have allocated an audit record for this event.


Calls to manipulate elements of the audit record structure from system call code . Macro wrappers will prevent this functions from being entered if auditing is disabled avoiding the function call cost . We check the thread audit record pointer anyway as the audit condition could change and pre - selection may not have allocated an audit record for this event .
void
audit_arg_addr(void *addr)
{
	struct kaudit_record *ar;
	ar = currecord();
	if (ar == NULL)
		return;
	ar->k_ar.ar_arg_addr = addr;
	ARG_SET_VALID(ar, ARG_ADDR);
}
void audit_arg_addr ( void * addr ) { struct kaudit_record * ar ; ar = currecord ( ) ; if ( ar == NULL ) return ; ar -> k_ar . ar_arg_addr = addr ; ARG_SET_VALID ( ar , ARG_ADDR ) ; }
Calls to manipulate elements of the audit record structure from system
 call code.
Calls to manipulate elements of the audit record structure from system call code .