1ddi_intr_hilevel(9F)     Kernel Functions for Drivers     ddi_intr_hilevel(9F)
2
3
4

NAME

6       ddi_intr_hilevel - indicate interrupt handler type
7

SYNOPSIS

9       #include <sys/ddi.h>
10       #include <sys/sunddi.h>
11
12
13
14       int ddi_intr_hilevel(dev_info_t *dip, uint_t inumber);
15
16

INTERFACE LEVEL

18       Solaris DDI specific (Solaris DDI). This interface is obsolete. Use the
19       new interrupt interfaces referenced  in  Intro(9F).  Refer  to  Writing
20       Device Drivers for more information.
21

PARAMETERS

23       dip        Pointer to dev_info structure.
24
25
26       inumber    Interrupt number.
27
28

DESCRIPTION

30       The  ddi_intr_hilevel()  function  returns  non-zero  if  the specified
31       interrupt is a "high level" interrupt.
32
33
34       High level interrupts must be handled  without  using  system  services
35       that  manipulate thread or process states, because these interrupts are
36       not blocked by the scheduler.
37
38
39       In addition, high level interrupt handlers must take care to do a mini‐
40       mum of work because they are not preemptable.
41
42
43       A  typical  high level interrupt handler would put data into a circular
44       buffer and schedule a soft interrupt by calling ddi_trigger_softintr().
45       The  circular buffer could be protected by using a mutex that was prop‐
46       erly initialized for the interrupt handler.
47
48
49       The  ddi_intr_hilevel()   function   can   be   used   before   calling
50       ddi_add_intr()  to  decide  which  type  of interrupt handler should be
51       used. Most device drivers are designed  with  the  knowledge  that  the
52       devices they support will always generate low level interrupts, however
53       some devices, for example those using SBus or VME  bus  level  6  or  7
54       interrupts must use this test because on some machines those interrupts
55       are high level (above the scheduler level) and on other  machines  they
56       are not.
57

RETURN VALUES

59       non-zero    indicates a high-level interrupt.
60
61

CONTEXT

63       These  functions can be called from useruser, interrupt, or kernel con‐
64       text.
65

ATTRIBUTES

67       See attributes(5) for descriptions of the following attributes:
68
69
70
71
72       ┌─────────────────────────────┬─────────────────────────────┐
73       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
74       ├─────────────────────────────┼─────────────────────────────┤
75       │Interface Stability          │Obsolete                     │
76       └─────────────────────────────┴─────────────────────────────┘
77

SEE ALSO

79       ddi_add_intr(9F), Intro(9F), mutex(9F)
80
81
82       Writing Device Drivers
83
84
85
86SunOS 5.11                        16 Jan 2006             ddi_intr_hilevel(9F)
Impressum