summaryrefslogtreecommitdiffstats
path: root/sys/sys/osd.h
diff options
context:
space:
mode:
authorjamie <jamie@FreeBSD.org>2016-03-30 16:57:28 +0000
committerjamie <jamie@FreeBSD.org>2016-03-30 16:57:28 +0000
commit34616151309c88ab10085007b6383af1e501adbb (patch)
tree861be6d6da8012c5ef361947157a97f30be471e3 /sys/sys/osd.h
parent06c88b0e22baa899ca63e6e61eb2157803cb8067 (diff)
downloadFreeBSD-src-34616151309c88ab10085007b6383af1e501adbb.zip
FreeBSD-src-34616151309c88ab10085007b6383af1e501adbb.tar.gz
Add osd_reserve() and osd_set_reserved(), which allow M_WAITOK allocation
of an OSD array,
Diffstat (limited to 'sys/sys/osd.h')
-rw-r--r--sys/sys/osd.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/sys/osd.h b/sys/sys/osd.h
index 14316ae..820e0f4 100644
--- a/sys/sys/osd.h
+++ b/sys/sys/osd.h
@@ -59,6 +59,10 @@ int osd_register(u_int type, osd_destructor_t destructor,
void osd_deregister(u_int type, u_int slot);
int osd_set(u_int type, struct osd *osd, u_int slot, void *value);
+void *osd_reserve(u_int slot);
+int osd_set_reserved(u_int type, struct osd *osd, u_int slot, void *rsv,
+ void *value);
+void osd_free_reserved(void *rsv);
void *osd_get(u_int type, struct osd *osd, u_int slot);
void osd_del(u_int type, struct osd *osd, u_int slot);
int osd_call(u_int type, u_int method, void *obj, void *data);
@@ -71,6 +75,8 @@ void osd_exit(u_int type, struct osd *osd);
osd_deregister(OSD_THREAD, (slot))
#define osd_thread_set(td, slot, value) \
osd_set(OSD_THREAD, &(td)->td_osd, (slot), (value))
+#define osd_thread_set_reserved(td, slot, rsv, value) \
+ osd_set_reserved(OSD_THREAD, &(td)->td_osd, (slot), (rsv), (value))
#define osd_thread_get(td, slot) \
osd_get(OSD_THREAD, &(td)->td_osd, (slot))
#define osd_thread_del(td, slot) do { \
@@ -88,6 +94,8 @@ void osd_exit(u_int type, struct osd *osd);
osd_deregister(OSD_JAIL, (slot))
#define osd_jail_set(pr, slot, value) \
osd_set(OSD_JAIL, &(pr)->pr_osd, (slot), (value))
+#define osd_jail_set_reserved(pr, slot, rsv, value) \
+ osd_set_reserved(OSD_JAIL, &(pr)->pr_osd, (slot), (rsv), (value))
#define osd_jail_get(pr, slot) \
osd_get(OSD_JAIL, &(pr)->pr_osd, (slot))
#define osd_jail_del(pr, slot) \
OpenPOWER on IntegriCloud