File: rtl_allow_interrupts.3

package info (click to toggle)
rtlinux 3.1pre3-2
  • links: PTS
  • area: non-free
  • in suites: sarge, woody
  • size: 4,892 kB
  • ctags: 4,228
  • sloc: ansic: 26,204; sh: 2,069; makefile: 1,414; perl: 855; tcl: 489; asm: 380; cpp: 42
file content (116 lines) | stat: -rw-r--r-- 3,266 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
.\" This -*- nroff -*- file has been generated from
.\" DocBook SGML with docbook-to-man on Debian GNU/Linux.
...\"
...\"	transcript compatibility for postscript use.
...\"
...\"	synopsis:  .P! <file.ps>
...\"
.de P!
\\&.
.fl			\" force out current output buffer
\\!%PB
\\!/showpage{}def
...\" the following is from Ken Flowers -- it prevents dictionary overflows
\\!/tempdict 200 dict def tempdict begin
.fl			\" prolog
.sy cat \\$1\" bring in postscript file
...\" the following line matches the tempdict above
\\!end % tempdict %
\\!PE
\\!.
.sp \\$2u	\" move below the image
..
.de pF
.ie     \\*(f1 .ds f1 \\n(.f
.el .ie \\*(f2 .ds f2 \\n(.f
.el .ie \\*(f3 .ds f3 \\n(.f
.el .ie \\*(f4 .ds f4 \\n(.f
.el .tm ? font overflow
.ft \\$1
..
.de fP
.ie     !\\*(f4 \{\
.	ft \\*(f4
.	ds f4\"
'	br \}
.el .ie !\\*(f3 \{\
.	ft \\*(f3
.	ds f3\"
'	br \}
.el .ie !\\*(f2 \{\
.	ft \\*(f2
.	ds f2\"
'	br \}
.el .ie !\\*(f1 \{\
.	ft \\*(f1
.	ds f1\"
'	br \}
.el .tm ? font underflow
..
.ds f1\"
.ds f2\"
.ds f3\"
.ds f4\"
'\" t 
.ta 8n 16n 24n 32n 40n 48n 56n 64n 72n  
.TH "rtl_allow_interrupts" "3" 
.SH "NAME" 
rtl_no_interrupts, rtl_restore_interruptsrtl_restore_interrupts, rtl_stop_interruptsrtl_stop_interrupts, rtl_allow_interruptsrtl_allow_interrupts \(em control the CPU interrupt state 
.SH "SYNOPSIS" 
.PP 
.nf 
.ta 8n 16n 24n 32n 40n 48n 56n 64n 72n 
#include <rtl_sync.h> 
 
void \fBrtl_no_interrupts\fP(rtl_irqstate_t \fBstate\fR); 
 
void \fBrtl_restore_interrupts\fP(rtl_irqstate_t \fBstate\fR); 
 
void \fBrtl_stop_interrupts\fP(); 
 
void \fBrtl_allow_interrupts\fP(); 
.fi 
.SH "DESCRIPTION" 
.PP 
These functions are non-portable Realtime Linux extensions. 
.PP 
\fBrtl_no_interrupts\fP saves the current state of the processor interrupt flags in the variable \fBstate\fR and then disables the interrupts on this processor. 
.PP 
\fBrtl_restore_interrupts\fP is defined as a macro.  It uses its argument to restore the interrupt state previously saved with \fBrtl_no_interrupts\fP. 
.PP 
\fBrtl_stop_interrupts\fP disables the interrupts. 
.PP 
\fBrtl_allow_interrupts\fP enables the interrupts. 
.SH "EXAMPLE" 
.PP 
The following example demonstrates a typical usage. 
.PP 
.nf 
.ta 8n 16n 24n 32n 40n 48n 56n 64n 72n 
\f(CW    { 
rtl_irqstate_t irqstate; 
 
rtl_no_interrupts(irqstate); 
/* this code runs with interrupts disabled! */ 
rtl_restore_interrupts(irqstate); 
 
/* interrupt state is back to what it was before */ 
}\fR 
.fi 
.PP 
.SH "NOTES" 
.PP 
These functions only affect the interrupt flags of the current processor. 
.PP 
Be sure to disable hardware interrupts for short periods of time only. Do not enable interrupts in a hard signal/interrupt handler unless you 
really know what you are doing. 
.SH "AUTHOR" 
.PP 
Michael Barabanov (\fIbaraban@fsmlabs.com (link to URL mailto:baraban@fsmlabs.com) \fR) 
.SH "SEE ALSO" 
\fIrtl_request_irq(3) (link to URL rtl_request_irq.3.html) \fR, \fIrtl_free_irq(3) (link to URL rtl_free_irq.3.html) \fR, \fIrtl_hard_enable_irq(3) (link to URL rtl_hard_enable_irq.3.html) \fR, \fIrtl_hard_disable_irq(3) (link to URL rtl_hard_disable_irq.3.html) \fR 
.PP 
\(co2001 FSMLabs Inc. 
.PP 
All rights reserved. 
...\" created by instant / docbook-to-man, Wed 13 Jun 2001, 17:58