DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
Multithreading device drivers

Registering the driver as multithreaded

Each multithreaded driver must register itself to the kernel as multithreaded. This should be done when the driver is initialized, usually in the init(D2oddi) routine, although it can also be done in the open(D2oddi) routine as long as it is only executed once. The following kernel functions are used for this:

Function Use
all_io(D3oddi) check if CPUs can access the I/O bus
bdistributed(D3oddi) register the task-time level of a block driver as multithreaded
cdistributed(D3oddi) register the task-time level of a character driver as multithreaded
can_doio(D3oddi) check if the current CPU can access the I/O bus
idistributed(D3oddi) register the interrupt handler of a driver as multithreaded
iopolldistributed(D3oddi) register the poll(D2oddi) routine of a driver as multithreaded
intralloc(D3oddi) allocate an interprocessor interrupt used to locate the proper start(D2oddi) routine for a block driver
ldistributed(D3oddi) register a line discipline as multithreaded
scsi_distributed(D3osdi) register the task-time level of a SCSI driver as multithreaded
sdistributed(D3oddi) register the task-time level of a STREAMS driver as multithreaded
Sharegister(D3osdi) register the interrupt handler of a SCSI driver as multithreaded


© 2005 The SCO Group, Inc. All rights reserved.