NetBurner 3.1
device.h
1 /*NB_REVISION*/
2 
3 /*NB_COPYRIGHT*/
4 
5 #ifndef _DEVICE_H
6 #define _DEVICE_H
7 
8 /*
9  ******************************************************************************
10  *
11  * Constants
12  *
13  ******************************************************************************
14  */
15 /* Fixed interrupt sources */
16 #define DEVICE_INTERRUPT_MAXIMUM (8)
17 
18 /*
19  ******************************************************************************
20  *
21  * Enumerations
22  *
23  ******************************************************************************
24  */
25 /*
26  DeviceSetupIsr interrupt trigger
27 
28  InterruptTriggerNone - No interrupt level
29  InterruptTriggerSensitive - Trigger-sensitive interrupt
30  InterruptTriggerRisingEdge - Rising edge triggered interrupt
31  InterruptTriggerFallingEdge - Falling edge triggered interrupt
32  InterruptTriggerBothEdges - Both rising and falling edge triggered
33 
34 */
35 typedef enum _DeviceInterruptTrigger
36 {
37  InterruptTriggerNone,
38  InterruptTriggerSensitive,
39  InterruptTriggerRisingEdge,
40  InterruptTriggerFallingEdge,
41  InterruptTriggerBothEdge
42 
43 } DeviceInterruptTrigger;
44 
45 /*
46  ******************************************************************************
47  *
48  * C++ definitions
49  *
50  ******************************************************************************
51  */
52 
53 /*
54  ******************************************************************************
55  *
56  * Routine Prototypes
57  *
58  ******************************************************************************
59  */
60 /* ISR function */
61 typedef void(DeviceIsrFn)();
62 typedef DeviceIsrFn *DeviceIsrFnPtr;
63 
64 /*
65  ******************************************************************************
66 
67  Verify availability and support for device.
68 
69 
70  Parameters:
71  irq - Fixed level interrupt source
72 
73 
74  Return:
75  TRUE - Support and available on module, FALSE option not supported
76 
77  Note:
78  Only verifies irq is valid
79 
80  ******************************************************************************
81  */
82 BOOL DeviceIsValid(int irq);
83 
84 /*
85  *****************************************************************************-
86 
87  Set interrupt controller and attach function to interrupt
88 
89  Parameters:
90  irq - Fixed level interrupt source
91  trigger - Triggering edge level
92  isrPtr - ISR function
93 
94  Return:
95  TRUE - Set, FALSE - Not valid interrupt source
96 
97  Notes:
98  None
99 
100  *****************************************************************************-
101  */
102 BOOL DeviceSetupIsr(int irq, DeviceInterruptTrigger trigger, DeviceIsrFnPtr isrPtr);
103 
104 /*
105  *****************************************************************************-
106 
107  Acknowledge interrupt
108 
109  Parameters:
110  irq - Fixed level interrupt source
111 
112  Return:
113  None
114 
115  Notes:
116  None
117 
118  *****************************************************************************-
119  */
120 void DeviceAckInterrupt(int irq);
121 
122 /*
123  *****************************************************************************-
124 
125  Disable interrupt
126 
127  Parameters:
128  irq - Fixed level interrupt source
129 
130  Return:
131  None
132 
133  Notes:
134  None
135 
136  *****************************************************************************-
137  */
138 void DeviceDisableInterrupt(int irq);
139 
140 /*
141  *****************************************************************************-
142 
143  Enable interrupt
144 
145  Parameters:
146  irq - Fixed level interrupt source
147 
148  Return:
149  None
150 
151  Notes:
152  None
153 
154  *****************************************************************************-
155  */
156 void DeviceEnableInterrupt(int irq);
157 
158 /*
159  ******************************************************************************
160  *
161  * Runtime Libraries Routine Prototypes
162  *
163  ******************************************************************************
164  */
165 
166 /*
167  ******************************************************************************
168 
169  Acquire QSPI semaphore for sharing access to SPI devices.
170 
171  Parameters:
172  None
173 
174  Return:
175  Semaphore, NULL for non-existent device
176 
177  Notes:
178  None
179 
180  ******************************************************************************
181  */
182 OS_SEM *DeviceGetQspiSem(void);
183 
184 /*
185  ******************************************************************************
186 
187  Acquire I2C semaphore for sharing access to I2C devices.
188 
189  Parameters:
190  None
191 
192  Return:
193  Semaphore, NULL for non-existent device
194 
195  Notes:
196  None
197 
198  ******************************************************************************
199  */
200 OS_SEM *DeviceGetI2cSem(void);
201 
202 #endif /* _DEVICE_H */
Semaphores are used to control access to shared resource critical section, or to communicate between ...
Definition: nbrtos.h:318