OSD_THREAD
osd_deregister(OSD_THREAD, osd_slot_id);
return (osd_get(OSD_THREAD, &td->td_osd, osd_slot_id));
if (osd_set(OSD_THREAD, &td->td_osd, osd_slot_id, nlp) == 0)
osd_set_reserved(OSD_THREAD, &td->td_osd, osd_slot_id, rsv, nlp);
osd_slot_id = osd_register(OSD_THREAD, NULL, NULL);
#define OSD_FIRST OSD_THREAD
osd_register(OSD_THREAD, (destructor), NULL)
osd_deregister(OSD_THREAD, (slot))
osd_set(OSD_THREAD, &(td)->td_osd, (slot), (value))
osd_set_reserved(OSD_THREAD, &(td)->td_osd, (slot), (rsv), (value))
osd_get(OSD_THREAD, &(td)->td_osd, (slot))
osd_get_unlocked(OSD_THREAD, &(td)->td_osd, (slot))
osd_del(OSD_THREAD, &(td)->td_osd, (slot)); \
osd_call(OSD_THREAD, (method), (td), (data))
osd_exit(OSD_THREAD, &(td)->td_osd)