Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_linker.c
Show First 20 Lines • Show All 1,015 Lines • ▼ Show 20 Lines | linker_ddb_search_symbol_name(caddr_t value, char *buf, u_int buflen, | ||||
return (linker_debug_search_symbol_name(value, buf, buflen, offset)); | return (linker_debug_search_symbol_name(value, buf, buflen, offset)); | ||||
} | } | ||||
/* | /* | ||||
* stack(9) helper for non-debugging environemnts. Unlike DDB helpers, we do | * stack(9) helper for non-debugging environemnts. Unlike DDB helpers, we do | ||||
* obey locking protocols, and offer a significantly less complex interface. | * obey locking protocols, and offer a significantly less complex interface. | ||||
*/ | */ | ||||
int | int | ||||
linker_search_symbol_name(caddr_t value, char *buf, u_int buflen, | linker_search_symbol_name_flags(caddr_t value, char *buf, u_int buflen, | ||||
long *offset) | long *offset, int flags) | ||||
{ | { | ||||
int error; | int error; | ||||
KASSERT((flags & (M_NOWAIT | M_WAITOK)) != 0 && | |||||
(flags & (M_NOWAIT | M_WAITOK)) != (M_NOWAIT | M_WAITOK), | |||||
("%s: bad flags: 0x%x", __func__, flags)); | |||||
if (flags & M_NOWAIT) { | |||||
if (!sx_try_slock(&kld_sx)) | |||||
return (EWOULDBLOCK); | |||||
} else | |||||
sx_slock(&kld_sx); | sx_slock(&kld_sx); | ||||
error = linker_debug_search_symbol_name(value, buf, buflen, offset); | error = linker_debug_search_symbol_name(value, buf, buflen, offset); | ||||
sx_sunlock(&kld_sx); | sx_sunlock(&kld_sx); | ||||
return (error); | return (error); | ||||
} | |||||
int | |||||
linker_search_symbol_name(caddr_t value, char *buf, u_int buflen, | |||||
long *offset) | |||||
{ | |||||
return (linker_search_symbol_name_flags(value, buf, buflen, offset, | |||||
M_WAITOK)); | |||||
} | } | ||||
/* | /* | ||||
* Syscalls. | * Syscalls. | ||||
*/ | */ | ||||
int | int | ||||
kern_kldload(struct thread *td, const char *file, int *fileid) | kern_kldload(struct thread *td, const char *file, int *fileid) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 1,197 Lines • Show Last 20 Lines |