|
|
coherent
ddeeffeerr() -- Accessible Kernel Routine vvooiidd ddeeffeerr(_f_u_n_c, _a_r_g) vvooiidd (*_f_u_n_c)(); cchhaarr *_a_r_g; ddeeffeerr() defers execution of function _f_u_n_c with argument _a_r_g. Execution of _f_u_n_c remains deferred until the next context switch, transition from kernel to user mode, or invocation of the function ddeeffeenndd. Deferred functions should never call sleep or access the uu area, because the kernel can switch uu areas as part of context switching. Up to 127 functions can be deferred at any one time. Exceeding this limit may lose all deferred functions. ddeeffeerr() is normally used to minimize interrupt latency by deferring operations from interrupt level, where lower priority interrupts are disabled, to background level, where all interrupts are normally enabled. It is also useful in eliminating critical race conditions between task- and interrupt-related operations, because deferred functions execute synchronously with each other, with timed functions, and with system calls. _S_e_e _A_l_s_o aacccceessssiibbllee kkeerrnneell rroouuttiinneess
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.