Changeset View
Changeset View
Standalone View
Standalone View
sys/sys/osd.h
Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | struct osd { | ||||
LIST_ENTRY(osd) osd_next; /* (l) */ | LIST_ENTRY(osd) osd_next; /* (l) */ | ||||
}; | }; | ||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
#define OSD_THREAD 0 | #define OSD_THREAD 0 | ||||
#define OSD_JAIL 1 | #define OSD_JAIL 1 | ||||
#define OSD_KHELP 2 | #define OSD_KHELP 2 | ||||
#define OSD_PROC 3 | |||||
#define OSD_FIRST OSD_THREAD | #define OSD_FIRST OSD_THREAD | ||||
#define OSD_LAST OSD_KHELP | #define OSD_LAST OSD_PROC | ||||
typedef void (*osd_destructor_t)(void *value); | typedef void (*osd_destructor_t)(void *value); | ||||
typedef int (*osd_method_t)(void *obj, void *data); | typedef int (*osd_method_t)(void *obj, void *data); | ||||
int osd_register(u_int type, osd_destructor_t destructor, | int osd_register(u_int type, osd_destructor_t destructor, | ||||
osd_method_t *methods); | osd_method_t *methods); | ||||
void osd_deregister(u_int type, u_int slot); | void osd_deregister(u_int type, u_int slot); | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | |||||
#define osd_jail_get_unlocked(pr, slot) \ | #define osd_jail_get_unlocked(pr, slot) \ | ||||
osd_get_unlocked(OSD_JAIL, &(pr)->pr_osd, (slot)) | osd_get_unlocked(OSD_JAIL, &(pr)->pr_osd, (slot)) | ||||
#define osd_jail_del(pr, slot) \ | #define osd_jail_del(pr, slot) \ | ||||
osd_del(OSD_JAIL, &(pr)->pr_osd, (slot)) | osd_del(OSD_JAIL, &(pr)->pr_osd, (slot)) | ||||
#define osd_jail_call(pr, method, data) \ | #define osd_jail_call(pr, method, data) \ | ||||
osd_call(OSD_JAIL, (method), (pr), (data)) | osd_call(OSD_JAIL, (method), (pr), (data)) | ||||
#define osd_jail_exit(pr) \ | #define osd_jail_exit(pr) \ | ||||
osd_exit(OSD_JAIL, &(pr)->pr_osd) | osd_exit(OSD_JAIL, &(pr)->pr_osd) | ||||
#define osd_proc_register(destructor) \ | |||||
osd_register(OSD_PROC, (destructor), NULL) | |||||
#define osd_proc_deregister(slot) \ | |||||
osd_deregister(OSD_PROC, (slot)) | |||||
#define osd_proc_set(p, slot, value) \ | |||||
osd_set(OSD_PROC, &(p)->p_osd, (slot), (value)) | |||||
#define osd_proc_get(p, slot) \ | |||||
osd_get(OSD_PROC, &(p)->p_osd, (slot)) | |||||
#define osd_proc_del(p, slot) do { \ | |||||
KASSERT((p) == curproc, ("Not curproc.")); \ | |||||
osd_del(OSD_PROC, &(p)->p_osd, (slot)); \ | |||||
} while (0) | |||||
#define osd_proc_call(p, method, data) \ | |||||
osd_call(OSD_PROC, (method), (p), (data)) | |||||
#define osd_proc_exit(p) \ | |||||
osd_exit(OSD_PROC, &(p)->p_osd) | |||||
#endif /* _KERNEL */ | #endif /* _KERNEL */ | ||||
#endif /* !_SYS_OSD_H_ */ | #endif /* !_SYS_OSD_H_ */ |