FreeCalypso > hg > fc-selenite
annotate src/nucleus/iod.c @ 9:6da1d56a96a3
cdg-hybrid: import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 21:08:11 +0000 |
parents | 0f80e1e4dce4 |
children |
rev | line source |
---|---|
7
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*************************************************************************/ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 /* Copyright Mentor Graphics Corporation 2002 */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 /* All Rights Reserved. */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 /* THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 /* THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 /* SUBJECT TO LICENSE TERMS. */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 /*************************************************************************/ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 /*************************************************************************/ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 /* FILE NAME VERSION */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 /* iod.c Nucleus PLUS 1.14 */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 /* COMPONENT */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 /* IO - Input/Output Driver Management */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 /* DESCRIPTION */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 /* This file contains global data structures for use within the */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 /* Input/Output Driver Management component. */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 /* DATA STRUCTURES */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 /* IOD_Created_Drivers_List Pointer to the linked-list */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 /* of created I/O drivers */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 /* IOD_Total_Drivers Total number of created */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 /* I/O drivers */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 /* IOD_List_Protect I/O driver list protection */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 /* FUNCTIONS */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 /* None */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 /* DEPENDENCIES */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /* io_defs.h I/O Driver Management consts */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 /* tc_defs.h Thread Control constants */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 /* HISTORY */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 /* DATE REMARKS */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 /* 03-01-1993 Created initial version 1.0 */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 /* 04-19-1993 Verified version 1.0 */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 /* 03-01-1994 Updated copyright notice, */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 /* resulting in version 1.1 */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 /* */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 /* 03-18-1994 Verified version 1.1 */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 /* 04-17-1996 updated to version 1.2 */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 /* 03-24-1998 Released version 1.3 */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 /* 03-26-1999 Released 1.11m (new release */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 /* numbering scheme) */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 /* 04-17-2002 Released version 1.13m */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 /* 11-07-2002 Released version 1.14 */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 /*************************************************************************/ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 #define NU_SOURCE_FILE |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 #include "io_defs.h" /* I/O Driver constants */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 #include "tc_defs.h" /* Thread control constants */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 /* IOD_Created_Drivers_List is the head pointer of the linked list of |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 created I/O drivers. If the list is NU_NULL, there are no I/O drivers |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 created. */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 CS_NODE *IOD_Created_Drivers_List; |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 /* IOD_Total_Drivers contains the number of currently created |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 I/O drivers. */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 UNSIGNED IOD_Total_Drivers; |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 /* IOD_List_Protect is a list protection structure used to block any other |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 thread from access to the created drivers list. */ |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 TC_PROTECT IOD_List_Protect; |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 |
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 |