Mercurial > ecos
annotate packages/hal/i386/linux/current/include/plf_intr.h @ 76:435cced73e2f ecos-v1_3_1-release
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
| author | jlarmour |
|---|---|
| date | Tue, 28 Mar 2000 14:10:45 +0000 |
| parents | da3908c9cd10 |
| children |
| rev | line source |
|---|---|
|
72
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
1 #ifndef CYGONCE_HAL_PLF_INTR_H |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
2 #define CYGONCE_HAL_PLF_INTR_H |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
3 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
4 //========================================================================== |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
5 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
6 // plf_intr.h |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
7 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
8 // i386/Linux Interrupt and clock support |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
9 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
10 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
11 //========================================================================== |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
12 //####COPYRIGHTBEGIN#### |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
13 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
14 // ------------------------------------------- |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
15 // The contents of this file are subject to the Red Hat eCos Public License |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
16 // Version 1.1 (the "License"); you may not use this file except in |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
17 // compliance with the License. You may obtain a copy of the License at |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
18 // http://www.redhat.com/ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
19 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
20 // Software distributed under the License is distributed on an "AS IS" |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
21 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
22 // License for the specific language governing rights and limitations under |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
23 // the License. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
24 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
25 // The Original Code is eCos - Embedded Configurable Operating System, |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
26 // released September 30, 1998. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
27 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
28 // The Initial Developer of the Original Code is Red Hat. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
29 // Portions created by Red Hat are |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
30 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
31 // All Rights Reserved. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
32 // ------------------------------------------- |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
33 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
34 //####COPYRIGHTEND#### |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
35 //========================================================================== |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
36 //#####DESCRIPTIONBEGIN#### |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
37 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
38 // Author(s): proven |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
39 // Contributors: proven, jskov, pjo |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
40 // Date: 1999-10-15 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
41 // Purpose: Define Interrupt support |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
42 // Description: The macros defined here provide the HAL APIs for handling |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
43 // interrupts and the clock. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
44 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
45 // Usage: |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
46 // #include <cyg/hal/plf_intr.h> |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
47 // ... |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
48 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
49 //####DESCRIPTIONEND#### |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
50 // |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
51 //========================================================================== |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
52 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
53 #include <pkgconf/hal.h> |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
54 #include <pkgconf/hal_i386.h> |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
55 #include <cyg/infra/cyg_type.h> |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
56 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
57 #include <pkgconf/hal_i386_linux.h> |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
58 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
59 //-------------------------------------------------------------------------- |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
60 // Interrupt vectors. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
61 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
62 // Additional vectors on Linux. These match the Linux signals. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
63 #define CYGNUM_HAL_VECTOR_SIGHUP 1 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
64 #define CYGNUM_HAL_VECTOR_SIGINT 2 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
65 #define CYGNUM_HAL_VECTOR_SIGQUIT 3 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
66 #define CYGNUM_HAL_VECTOR_SIGILL 4 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
67 #define CYGNUM_HAL_VECTOR_SIGTRAP 5 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
68 #define CYGNUM_HAL_VECTOR_SIGIOT 6 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
69 #define CYGNUM_HAL_VECTOR_SIGBUS 7 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
70 #define CYGNUM_HAL_VECTOR_SIGFPE 8 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
71 #define CYGNUM_HAL_VECTOR_SIGKILL 9 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
72 #define CYGNUM_HAL_VECTOR_SIGUSR1 10 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
73 #define CYGNUM_HAL_VECTOR_SIGSEGV 11 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
74 #define CYGNUM_HAL_VECTOR_SIGUSR2 12 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
75 #define CYGNUM_HAL_VECTOR_SIGPIPE 13 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
76 #define CYGNUM_HAL_VECTOR_SIGALRM 14 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
77 #define CYGNUM_HAL_VECTOR_SIGTERM 15 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
78 #define CYGNUM_HAL_VECTOR_SIGCHLD 17 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
79 #define CYGNUM_HAL_VECTOR_SIGCONT 18 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
80 #define CYGNUM_HAL_VECTOR_SIGSTOP 19 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
81 #define CYGNUM_HAL_VECTOR_SIGTSTP 20 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
82 #define CYGNUM_HAL_VECTOR_SIGTTIN 21 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
83 #define CYGNUM_HAL_VECTOR_SIGTTOU 22 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
84 #define CYGNUM_HAL_VECTOR_SIGURG 23 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
85 #define CYGNUM_HAL_VECTOR_SIGXCPU 24 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
86 #define CYGNUM_HAL_VECTOR_SIGXFSZ 25 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
87 #define CYGNUM_HAL_VECTOR_SIGVTALRM 26 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
88 #define CYGNUM_HAL_VECTOR_SIGPROF 27 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
89 #define CYGNUM_HAL_VECTOR_SIGWINCH 28 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
90 #define CYGNUM_HAL_VECTOR_SIGIO 29 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
91 #define CYGNUM_HAL_VECTOR_SIGPWR 30 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
92 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
93 #define CYGNUM_HAL_ISR_MIN 0 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
94 #define CYGNUM_HAL_ISR_MAX CYGNUM_HAL_VECTOR_SIGPWR |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
95 #define CYGNUM_HAL_ISR_COUNT ( CYGNUM_HAL_ISR_MAX + 1 ) |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
96 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
97 // Generic exception vector names |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
98 #define CYGNUM_HAL_EXCEPTION_INTERRUPT CYGNUM_HAL_VECTOR_SIGINT |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
99 #define CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION CYGNUM_HAL_VECTOR_SIGILL |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
100 #define CYGNUM_HAL_EXCEPTION_TRAP CYGNUM_HAL_VECTOR_SIGTRAP |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
101 #define CYGNUM_HAL_EXCEPTION_DATA_ACCESS CYGNUM_HAL_VECTOR_SIGBUS |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
102 #define CYGNUM_HAL_EXCEPTION_FPU CYGNUM_HAL_VECTOR_SIGFPE |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
103 #define CYGNUM_HAL_EXCEPTION_STACK_OVERFLOW CYGNUM_HAL_VECTOR_SIGSEGV |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
104 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
105 #define CYGNUM_HAL_EXCEPTION_MIN 0 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
106 #define CYGNUM_HAL_EXCEPTION_MAX CYGNUM_HAL_EXCEPTION_STACK_OVERFLOW |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
107 #define CYGNUM_HAL_EXCEPTION_COUNT ( CYGNUM_HAL_EXCEPTION_MAX + 1 ) |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
108 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
109 // The vector used by the Real time clock |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
110 #ifdef CYGSEM_HAL_I386_LINUX_REAL_TIME |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
111 #define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_VECTOR_SIGALRM |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
112 #else |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
113 #define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_VECTOR_SIGVTALRM |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
114 #endif |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
115 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
116 //-------------------------------------------------------------------------- |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
117 // Static data used by HAL |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
118 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
119 // Interrupt controler emulation variables. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
120 externC volatile int cyg_hal_interrupts_disabled; |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
121 externC volatile int cyg_hal_interrupts_deferred; |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
122 externC volatile int cyg_hal_interrupts_unhandled[CYGNUM_HAL_ISR_COUNT]; |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
123 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
124 //-------------------------------------------------------------------------- |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
125 // Interrupt control macros |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
126 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
127 externC void cyg_hal_default_interrupt_vsr(int vector); |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
128 externC void cyg_hal_default_exception_vsr(int vector); |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
129 externC int cyg_hal_sys_sigprocmask(int, const long*, long*); |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
130 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
131 // FIXME: These should use block/unblock of the signals instead of |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
132 // cyg_hal_interrupts_disabled. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
133 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
134 #define HAL_ENABLE_INTERRUPTS() \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
135 CYG_MACRO_START \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
136 cyg_ucount8 _i_; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
137 cyg_hal_interrupts_disabled = 0; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
138 if (cyg_hal_interrupts_deferred) { \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
139 cyg_hal_interrupts_deferred = 0; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
140 for (_i_ = CYGNUM_HAL_ISR_MIN; _i_ <= CYGNUM_HAL_ISR_MAX; _i_++) { \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
141 if (cyg_hal_interrupts_unhandled[_i_]) { \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
142 cyg_hal_default_interrupt_vsr(_i_); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
143 } \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
144 } \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
145 } \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
146 CYG_MACRO_END |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
147 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
148 #define HAL_DISABLE_INTERRUPTS(_old_) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
149 CYG_MACRO_START \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
150 (_old_) = cyg_hal_interrupts_disabled++; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
151 CYG_MACRO_END |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
152 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
153 #define HAL_RESTORE_INTERRUPTS(_old_) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
154 CYG_MACRO_START \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
155 cyg_ucount8 _i_; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
156 cyg_hal_interrupts_disabled = (_old_); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
157 if (0 == cyg_hal_interrupts_disabled) { \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
158 if (cyg_hal_interrupts_deferred) { \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
159 cyg_hal_interrupts_deferred = 0; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
160 for (_i_ = CYGNUM_HAL_ISR_MIN; _i_ <= CYGNUM_HAL_ISR_MAX; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
161 _i_++){ \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
162 if (cyg_hal_interrupts_unhandled[_i_]) { \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
163 cyg_hal_default_interrupt_vsr(_i_); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
164 } \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
165 } \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
166 } \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
167 } \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
168 CYG_MACRO_END |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
169 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
170 #define HAL_QUERY_INTERRUPTS(_old_) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
171 CYG_MACRO_START \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
172 (_old_) = !cyg_hal_interrupts_disabled; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
173 CYG_MACRO_END |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
174 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
175 #define HAL_INTERRUPT_ACKNOWLEDGE( _vector_ ) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
176 CYG_MACRO_START \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
177 cyg_hal_interrupts_unhandled[_vector_] = 0; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
178 CYG_MACRO_END |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
179 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
180 //--------------------------------------------------------------------------- |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
181 // Translate a vector number into an ISR table index. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
182 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
183 // The native linux port doesn't support chained interrupts --proven 19981005 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
184 #define HAL_TRANSLATE_VECTOR(_vector_,_index_) (_index_) = (_vector_) |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
185 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
186 //--------------------------------------------------------------------------- |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
187 // Interrupt controller access |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
188 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
189 #define LINUX_SIG_BLOCK 0 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
190 #define LINUX_SIG_UNBLOCK 1 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
191 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
192 #define HAL_INTERRUPT_MASK( _vector_ ) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
193 CYG_MACRO_START \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
194 long _old_, _new_; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
195 _new_ = 1 << (_vector_); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
196 cyg_hal_sys_sigprocmask(LINUX_SIG_BLOCK, &_new_, &_old_); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
197 CYG_MACRO_END |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
198 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
199 #define HAL_INTERRUPT_UNMASK( _vector_ ) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
200 CYG_MACRO_START \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
201 long _old_, _new_; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
202 _new_ = 1 << (_vector_); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
203 cyg_hal_sys_sigprocmask(LINUX_SIG_UNBLOCK, &_new_, &_old_); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
204 CYG_MACRO_END |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
205 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
206 // The native linux port doesn't have configurable interrupts. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
207 #define HAL_INTERRUPT_CONFIGURE( _vector_, _level_, _up_ ) |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
208 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
209 // The native linux port doesn't have interrupt levels. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
210 #define HAL_INTERRUPT_SET_LEVEL( _vector_, _level_ ) |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
211 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
212 //--------------------------------------------------------------------------- |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
213 // Clock control |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
214 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
215 struct hal_timeval { |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
216 long tv_sec; |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
217 long tv_usec; |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
218 }; |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
219 struct hal_itimerval { |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
220 struct hal_timeval it_interval; |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
221 struct hal_timeval it_value; |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
222 }; |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
223 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
224 externC int cyg_hal_sys_setitimer(int, const struct hal_itimerval*, |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
225 struct hal_itimerval*); |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
226 externC int cyg_hal_sys_getitimer(int, struct hal_itimerval*); |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
227 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
228 #ifdef CYGSEM_HAL_I386_LINUX_REAL_TIME |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
229 #define CYGNUM_HAL_TIMER_TYPE 0 // ITIMER_REAL |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
230 #else |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
231 #define CYGNUM_HAL_TIMER_TYPE 1 // ITIMER_VIRTUAL |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
232 #endif |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
233 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
234 #define HAL_CLOCK_INITIALIZE( _period_ ) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
235 CYG_MACRO_START \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
236 struct hal_itimerval new_itimerval, old; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
237 \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
238 new_itimerval.it_interval.tv_sec = 0; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
239 new_itimerval.it_interval.tv_usec = (_period_); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
240 new_itimerval.it_value.tv_sec = 0; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
241 new_itimerval.it_value.tv_usec = (_period_); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
242 /* Use setitimer to set the realtime clock */ \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
243 cyg_hal_sys_setitimer(CYGNUM_HAL_TIMER_TYPE, &new_itimerval, &old); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
244 CYG_MACRO_END |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
245 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
246 // The sigalarm runs in one-shot mode. We have to re-enable it |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
247 #define HAL_CLOCK_RESET( _vector_, _period_ ) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
248 HAL_INTERRUPT_UNMASK( _vector_ ) |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
249 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
250 // This timer counts down, so subtract from set value. |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
251 #define HAL_CLOCK_READ( _pvalue_ ) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
252 CYG_MACRO_START \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
253 struct hal_itimerval old_itimerval; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
254 cyg_hal_sys_getitimer(CYGNUM_HAL_TIMER_TYPE, &old_itimerval); \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
255 *(_pvalue_) = old_itimerval.it_interval.tv_usec - \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
256 old_itimerval.it_value.tv_usec; \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
257 CYG_MACRO_END |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
258 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
259 #define HAL_CLOCK_LATENCY( _pvalue_ ) \ |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
260 HAL_CLOCK_READ((_pvalue_)) |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
261 |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
262 //--------------------------------------------------------------------------- |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
263 #endif // ifndef CYGONCE_HAL_PLF_INTR_H |
|
da3908c9cd10
Merge from eCos master repository on 2000-02-17-18:56:14-GMT
jlarmour
parents:
diff
changeset
|
264 // End of plf_intr.h |
