annotate packages/io/common/current/include/devtab.h @ 3292:7f8e529b4d82 default tip

Fix FREESCALE_EDMA_NBYTES_MLOFFYES_MLOFF() so it works with negative offsets.
author vae
date Wed, 29 Apr 2015 23:31:48 +0000
parents 74dbf4c3f2e1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
1 #ifndef CYGONCE_IO_DEVTAB_H
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
2 #define CYGONCE_IO_DEVTAB_H
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
3 // ====================================================================
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
4 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
5 // devtab.h
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
6 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
7 // Device I/O Table
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
8 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
9 // ====================================================================
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
10 // ####ECOSGPLCOPYRIGHTBEGIN####
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
11 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
12 // This file is part of eCos, the Embedded Configurable Operating System.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
13 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
14 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
15 // eCos is free software; you can redistribute it and/or modify it under
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
16 // the terms of the GNU General Public License as published by the Free
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
17 // Software Foundation; either version 2 or (at your option) any later
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
18 // version.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
19 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
20 // eCos is distributed in the hope that it will be useful, but WITHOUT
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
21 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
22 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
23 // for more details.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
24 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
25 // You should have received a copy of the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
26 // along with eCos; if not, write to the Free Software Foundation, Inc.,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
27 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
28 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
29 // As a special exception, if other files instantiate templates or use
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
30 // macros or inline functions from this file, or you compile this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
31 // and link it with other works to produce a work based on this file,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
32 // this file does not by itself cause the resulting work to be covered by
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
33 // the GNU General Public License. However the source code for this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
34 // must still be made available in accordance with section (3) of the GNU
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
35 // General Public License v2.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
36 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
37 // This exception does not invalidate any other reasons why a work based
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
38 // on this file might be covered by the GNU General Public License.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
39 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2112
diff changeset
40 // ####ECOSGPLCOPYRIGHTEND####
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
41 // ====================================================================
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
42 //#####DESCRIPTIONBEGIN####
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
43 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
44 // Author(s): gthomas
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
45 // Contributors: gthomas
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
46 // Date: 1999-02-04
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
47 // Purpose: Describe low level I/O interfaces.
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
48 // Description:
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
49 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
50 //####DESCRIPTIONEND####
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
51 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
52 // ====================================================================
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
53
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
54 // Private include file. This file should only be used by device
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
55 // drivers, not application code.
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
56
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
57 #include <pkgconf/system.h>
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
58 #include <cyg/io/io.h>
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
59 #include <cyg/hal/drv_api.h>
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
60 #include <cyg/hal/hal_tables.h>
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
61
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
62 // Set of functions which handle top level I/O functions
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
63 typedef struct {
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
64 Cyg_ErrNo (*write)(cyg_io_handle_t handle,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
65 const void *buf,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
66 cyg_uint32 *len);
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
67 Cyg_ErrNo (*read)(cyg_io_handle_t handle,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
68 void *buf,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
69 cyg_uint32 *len);
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
70 Cyg_ErrNo (*bwrite)(cyg_io_handle_t handle,
2112
44d250ab3b3a * src/iosys.c:
asl
parents: 210
diff changeset
71 const void *buf,
44d250ab3b3a * src/iosys.c:
asl
parents: 210
diff changeset
72 cyg_uint32 *len, // in blocks
44d250ab3b3a * src/iosys.c:
asl
parents: 210
diff changeset
73 cyg_uint32 pos); // in blocks
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
74 Cyg_ErrNo (*bread)(cyg_io_handle_t handle,
2112
44d250ab3b3a * src/iosys.c:
asl
parents: 210
diff changeset
75 void *buf,
44d250ab3b3a * src/iosys.c:
asl
parents: 210
diff changeset
76 cyg_uint32 *len, // in blocks
44d250ab3b3a * src/iosys.c:
asl
parents: 210
diff changeset
77 cyg_uint32 pos); // in blocks
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
78 cyg_bool (*select)(cyg_io_handle_t handle,
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
79 cyg_uint32 which,
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
80 CYG_ADDRWORD info);
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
81 Cyg_ErrNo (*get_config)(cyg_io_handle_t handle,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
82 cyg_uint32 key,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
83 void *buf,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
84 cyg_uint32 *len);
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
85 Cyg_ErrNo (*set_config)(cyg_io_handle_t handle,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
86 cyg_uint32 key,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
87 const void *buf,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
88 cyg_uint32 *len);
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
89 } cyg_devio_table_t;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
90
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
91
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
92 // Default functions
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
93
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
94 __externC Cyg_ErrNo cyg_devio_cwrite(cyg_io_handle_t handle,
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
95 const void *buf, cyg_uint32 *len);
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
96 __externC Cyg_ErrNo cyg_devio_cread(cyg_io_handle_t handle,
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
97 void *buf, cyg_uint32 *len);
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
98 __externC Cyg_ErrNo cyg_devio_bwrite(cyg_io_handle_t handle,
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
99 const void *buf, cyg_uint32 *len,
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
100 cyg_uint32 pos);
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
101 __externC Cyg_ErrNo cyg_devio_bread(cyg_io_handle_t handle,
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
102 void *buf, cyg_uint32 *len,
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
103 cyg_uint32 pos);
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
104
138
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
105 __externC Cyg_ErrNo cyg_devio_select(cyg_io_handle_t handle,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
106 cyg_uint32 which,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
107 CYG_ADDRWORD info);
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
108
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
109 __externC Cyg_ErrNo cyg_devio_get_config(cyg_io_handle_t handle,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
110 cyg_uint32 key,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
111 void* buf,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
112 cyg_uint32* len);
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
113
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
114 __externC Cyg_ErrNo cyg_devio_set_config(cyg_io_handle_t handle,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
115 cyg_uint32 key,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
116 void* buf,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 124
diff changeset
117 cyg_uint32* len);
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
118
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
119 // Initialization macros
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
120
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
121 #define CHAR_DEVIO_TABLE(_l,_write,_read,_select,_get_config,_set_config) \
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
122 cyg_devio_table_t _l = { \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
123 _write, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
124 _read, \
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
125 cyg_devio_bwrite, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
126 cyg_devio_bread, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
127 _select, \
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
128 _get_config, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
129 _set_config, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
130 };
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
131
2112
44d250ab3b3a * src/iosys.c:
asl
parents: 210
diff changeset
132 // Note: _bwrite and _bread pass len and pos in terms of blocks, not
44d250ab3b3a * src/iosys.c:
asl
parents: 210
diff changeset
133 // bytes.
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
134 #define BLOCK_DEVIO_TABLE(_l,_bwrite,_bread,_select,_get_config,_set_config) \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
135 cyg_devio_table_t _l = { \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
136 cyg_devio_cwrite, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
137 cyg_devio_cread, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
138 _bwrite, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
139 _bread, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
140 _select, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
141 _get_config, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
142 _set_config, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
143 };
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
144
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
145 #define DEVIO_TABLE(_l,_write,_read,_select,_get_config,_set_config) \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
146 CHAR_DEVIO_TABLE(_l,_write,_read,_select,_get_config,_set_config)
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
147
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
148 typedef struct cyg_devtab_entry {
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
149 const char *name;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
150 const char *dep_name;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
151 cyg_devio_table_t *handlers;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
152 bool (*init)(struct cyg_devtab_entry *tab);
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
153 Cyg_ErrNo (*lookup)(struct cyg_devtab_entry **tab,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
154 struct cyg_devtab_entry *sub_tab,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
155 const char *name);
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
156 void *priv;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
157 unsigned long status;
124
0ec04793409a Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents: 121
diff changeset
158 } CYG_HAL_TABLE_TYPE cyg_devtab_entry_t;
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
159
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
160 #define CYG_DEVTAB_STATUS_AVAIL 0x0001
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
161 #define CYG_DEVTAB_STATUS_CHAR 0x1000
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
162 #define CYG_DEVTAB_STATUS_BLOCK 0x2000
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
163
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
164 extern cyg_devtab_entry_t __DEVTAB__[], __DEVTAB_END__;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
165
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
166 #define CHAR_DEVTAB_ENTRY(_l,_name,_dep_name,_handlers,_init,_lookup,_priv) \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
167 cyg_devtab_entry_t _l CYG_HAL_TABLE_ENTRY(devtab) = { \
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
168 _name, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
169 _dep_name, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
170 _handlers, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
171 _init, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
172 _lookup, \
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
173 _priv, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
174 CYG_DEVTAB_STATUS_CHAR \
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
175 };
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
176
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
177 #define BLOCK_DEVTAB_ENTRY(_l,_name,_dep_name,_handlers,_init,_lookup,_priv) \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
178 cyg_devtab_entry_t _l CYG_HAL_TABLE_ENTRY(devtab) = { \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
179 _name, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
180 _dep_name, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
181 _handlers, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
182 _init, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
183 _lookup, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
184 _priv, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
185 CYG_DEVTAB_STATUS_BLOCK \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
186 };
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
187
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
188 #define DEVTAB_ENTRY(_l,_name,_dep_name,_handlers,_init,_lookup,_priv) \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
189 CHAR_DEVTAB_ENTRY(_l,_name,_dep_name,_handlers,_init,_lookup,_priv)
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
190
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
191
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
192 #define DEVTAB_ENTRY_NO_INIT(_l,_name,_dep_name,_handlers,_init,_lookup,_priv) \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
193 cyg_devtab_entry_t _l = { \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
194 _name, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
195 _dep_name, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
196 _handlers, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
197 _init, \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
198 _lookup, \
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
199 _priv, \
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
200 CYG_DEVTAB_STATUS_CHAR \
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
201 };
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
202
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
203 #endif // CYGONCE_IO_DEVTAB_H