PATH 
ADC Home > Documentation > Hardware > Device Managers and Drivers > PCI Card Services > Designing PCI Cards and Drivers for Power Macintosh Computers


  

Interrupt-Safe Functions

Open Transport provides many STREAMS services for module and driver writers, but not all of these services may be used at interrupt time.

The following STREAMS functions may be safely called at interrupt time:

allocb          adjmsg          copyb           copymsg         dupb dupmsg          esballoc        freeb           freemsg         linkb msgdsize        msgpullup       pullupmsg       rmbv            testb unlinkb         datamsg         OTHERQ          RD              WR bzero           bcopy           bcmp            putq

IMPORTANT

The putq function may be used only to put a packet onto its lower (read) queue. No other put operation is allows at interrupt time. In particular, the canput function and its variants, as well as the queue enabling and put functions, cannot be called at primary interrupt time.

The following Open Transport functions may be safely called at interrupt time:

OTCreateDeferredTask                OTDestroyDeferredTask OTScheduleDeferredTask              OTGetClockTimeInSecs OTGetTimeStamp                      OTSubtractTimeStamps OTTimeStampInMilliseconds           OTTimeStampInMicroseconds OTElapsedMilliseconds               OTElapsedMicroseconds cmn_err             OTAllocMsg              OTAllocMem OTFreeMem           mi_timer_alloc          mi_timer_free mi_timer            mi_timer_cancel

In addition, all functions described in Atomic Services may be called at interrupt time.


© 1999 Apple Computer, Inc. – (Last Updated 26 March 99)