File: rtl_stop_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 (115 lines) | stat: -rw-r--r-- 3,169 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
.\" 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_stop_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 have effect only on the interrupt flags of the current processor. 
.PP 
Be sure to only disable hardware interrupts for short periods of time. 
.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