Mercurial > flash_v2
annotate packages/redboot/current/include/redboot.h @ 208:e0c0827131d1 ecos
Merge from eCos master repository on 2002-05-20-20:11:54-BST
| author | jlarmour |
|---|---|
| date | Mon, 20 May 2002 22:19:26 +0000 |
| parents | 9b55e9c69693 |
| children | d2c90368aeef |
| rev | line source |
|---|---|
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
1 //========================================================================== |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
2 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
3 // redboot.h |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
4 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
5 // Standard interfaces for RedBoot |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
6 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
7 //========================================================================== |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
8 //####ECOSGPLCOPYRIGHTBEGIN#### |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
9 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
10 // This file is part of eCos, the Embedded Configurable Operating System. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
12 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
13 // eCos is free software; you can redistribute it and/or modify it under |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
14 // the terms of the GNU General Public License as published by the Free |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
15 // Software Foundation; either version 2 or (at your option) any later version. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
16 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
17 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
18 // WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
19 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
20 // for more details. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
21 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
22 // You should have received a copy of the GNU General Public License along |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
23 // with eCos; if not, write to the Free Software Foundation, Inc., |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
24 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
25 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
26 // As a special exception, if other files instantiate templates or use macros |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
27 // or inline functions from this file, or you compile this file and link it |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
28 // with other works to produce a work based on this file, this file does not |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
29 // by itself cause the resulting work to be covered by the GNU General Public |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
30 // License. However the source code for this file must still be made available |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
31 // in accordance with section (3) of the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
32 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
33 // This exception does not invalidate any other reasons why a work based on |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
34 // this file might be covered by the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
35 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
36 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
37 // at http://sources.redhat.com/ecos/ecos-license |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
38 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
39 //####ECOSGPLCOPYRIGHTEND#### |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
40 //========================================================================== |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
41 //#####DESCRIPTIONBEGIN#### |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
42 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
43 // Author(s): gthomas |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
44 // Contributors: gthomas |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
45 // Date: 2000-07-14 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
46 // Purpose: |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
47 // Description: |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
48 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
49 // This code is part of RedBoot (tm). |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
50 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
51 //####DESCRIPTIONEND#### |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
52 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
53 //========================================================================== |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
54 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
55 #ifndef _REDBOOT_H_ |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
56 #define _REDBOOT_H_ |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
57 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
58 #include <pkgconf/redboot.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
59 #include <pkgconf/hal.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
60 #include <cyg/hal/hal_if.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
61 #include <cyg/hal/hal_tables.h> |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
62 #include <cyg/infra/diag.h> |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
63 #include <string.h> |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
64 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
65 #ifdef CYGPKG_REDBOOT_NETWORKING |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
66 #include <net/net.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
67 #include <net/tftp_support.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
68 #include <net/bootp.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
69 // Determine an IP address for this node, using BOOTP |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
70 extern int __bootp_find_local_ip(bootp_header_t *info); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
71 #endif |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
72 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
73 #ifdef DEFINE_VARS |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
74 #define EXTERN |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
75 #else |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
76 #define EXTERN extern |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
77 #endif |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
78 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
79 // Global variables |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
80 EXTERN int argc; |
|
161
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
159
diff
changeset
|
81 #define MAX_ARGV 16 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
82 EXTERN char *argv[MAX_ARGV]; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
83 EXTERN unsigned char *ram_start, *ram_end; |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
84 EXTERN unsigned char *user_ram_start, *user_ram_end; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
85 EXTERN unsigned char *workspace_start, *workspace_end; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
86 EXTERN unsigned long workspace_size; |
|
196
9b55e9c69693
Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents:
195
diff
changeset
|
87 |
|
9b55e9c69693
Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents:
195
diff
changeset
|
88 // Data squirreled away after a load operation |
|
9b55e9c69693
Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents:
195
diff
changeset
|
89 EXTERN unsigned long entry_address; |
|
9b55e9c69693
Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents:
195
diff
changeset
|
90 EXTERN unsigned long load_address; |
|
9b55e9c69693
Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents:
195
diff
changeset
|
91 EXTERN unsigned long load_address_end; |
|
9b55e9c69693
Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents:
195
diff
changeset
|
92 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
93 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
94 #ifdef CYGPKG_REDBOOT_ANY_CONSOLE |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
95 EXTERN bool console_selected; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
96 #endif |
|
128
0c2b7be0d798
Merge from eCos master repository on 2000-10-12-08:46:24-BST
jlarmour
parents:
126
diff
changeset
|
97 EXTERN bool console_echo; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
98 EXTERN bool gdb_active; |
|
195
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
192
diff
changeset
|
99 #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
192
diff
changeset
|
100 EXTERN bool cmd_history; |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
192
diff
changeset
|
101 #endif |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
102 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
103 #ifdef CYGPKG_REDBOOT_NETWORKING |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
104 EXTERN bool have_net, use_bootp; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
105 EXTERN bootp_header_t my_bootp_info; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
106 EXTERN int gdb_port; |
| 192 | 107 EXTERN bool net_debug; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
108 #endif |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
109 |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
156
diff
changeset
|
110 #ifdef CYGFUN_REDBOOT_BOOT_SCRIPT |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
111 EXTERN unsigned char *script; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
112 EXTERN int script_timeout; |
|
165
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
113 #ifdef CYGSEM_REDBOOT_VARIABLE_BAUD_RATE |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
156
diff
changeset
|
114 EXTERN int console_baud_rate; |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
156
diff
changeset
|
115 #endif |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
116 #endif |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
117 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
118 // Prototypes |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
119 typedef int _printf_fun(const char *fmt, ...); |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
120 externC int strcasecmp(const char *s1, const char *s2); |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
121 externC int strncasecmp(const char *s1, const char *s2, size_t len); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
122 |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
123 externC void mon_write_char(char c); |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
124 externC bool verify_action(char *fmt, ...); |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
125 externC bool verify_action_with_timeout(int timeout, char *fmt, ...); |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
130
diff
changeset
|
126 |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
130
diff
changeset
|
127 // Read a single line of input from the console, possibly with timeout |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
128 externC int _rb_gets(char *line, int len, int timeout); |
|
195
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
192
diff
changeset
|
129 // Just like _rb_gets(), except that the line buffer is assumed to contain |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
192
diff
changeset
|
130 // valid input data. This provides an easy mechanism for edit-in-place. |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
192
diff
changeset
|
131 externC int _rb_gets_preloaded(char *line, int len, int timeout); |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
130
diff
changeset
|
132 // Result codes from 'gets()' |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
130
diff
changeset
|
133 #define _GETS_TIMEOUT -1 |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
130
diff
changeset
|
134 #define _GETS_CTRLC -2 |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
130
diff
changeset
|
135 #define _GETS_GDB 0 |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
130
diff
changeset
|
136 #define _GETS_OK 1 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
137 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
138 // "console" selection |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
139 externC int start_console(void); |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
140 externC void end_console(int old_console); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
141 |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
142 // CRC support |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
143 unsigned short crc16(unsigned char *buf, int len); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
144 unsigned long crc32(unsigned char *buf, int len); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
145 |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
146 // Alias functions |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
147 #ifdef CYGSEM_REDBOOT_FLASH_ALIASES |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
148 externC char *flash_lookup_alias(char *alias, char *alias_buf); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
149 #endif |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
150 externC void expand_aliases(char *line, int len); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
151 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
152 typedef int (*getc_t)(void); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
153 typedef void (*terminate_t)(int method, getc_t get_c); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
154 |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
155 #ifdef CYGPKG_COMPRESS_ZLIB |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
156 // Decompression support |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
157 typedef struct _pipe { |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
158 unsigned char* in_buf; // only changed by producer |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
159 int in_avail; // only changed by producer |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
160 unsigned char* out_buf; // only changed by consumer (init by producer) |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
161 int out_size; // only changed by consumer (init by producer) |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
162 int out_max; // set by producer |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
163 const char* msg; // message from consumer |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
164 void* priv; // handler's data |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
165 } _pipe_t; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
166 |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
167 typedef int _decompress_fun_init(_pipe_t*); |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
168 typedef int _decompress_fun_inflate(_pipe_t*); |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
169 typedef int _decompress_fun_close(_pipe_t*, int); |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
170 |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
171 externC _decompress_fun_init* _dc_init; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
172 externC _decompress_fun_inflate* _dc_inflate; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
173 externC _decompress_fun_close* _dc_close; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
174 #endif // CYGPKG_COMPRESS_ZLIB |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
175 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
176 // CLI support functions |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
177 externC bool parse_num(char *s, unsigned long *val, char **es, char *delim); |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
178 externC bool parse_bool(char *s, bool *val); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
179 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
180 typedef void cmd_fun(int argc, char *argv[]); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
181 struct cmd { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
182 char *str; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
183 char *help; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
184 char *usage; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
185 cmd_fun *fun; |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
186 struct cmd *sub_cmds, *sub_cmds_end; |
|
121
6bd9d475ed4b
Merge from eCos master repository on 2000-09-04-20:50:20-BST
jlarmour
parents:
117
diff
changeset
|
187 } CYG_HAL_TABLE_TYPE; |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
188 externC struct cmd *cmd_search(struct cmd *tab, struct cmd *tabend, char *arg); |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
189 externC void cmd_usage(struct cmd *tab, struct cmd *tabend, char *prefix); |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
190 #define RedBoot_cmd(_s_,_h_,_u_,_f_) cmd_entry(_s_,_h_,_u_,_f_,0,0,RedBoot_commands) |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
191 #define RedBoot_nested_cmd(_s_,_h_,_u_,_f_,_subs_,_sube_) cmd_entry(_s_,_h_,_u_,_f_,_subs_,_sube_,RedBoot_commands) |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
192 #define _cmd_entry(_s_,_h_,_u_,_f_,_subs_,_sube_,_n_) \ |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
193 cmd_fun _f_; \ |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
194 struct cmd _cmd_tab_##_f_ CYG_HAL_TABLE_QUALIFIED_ENTRY(_n_,_f_) = {_s_, _h_, _u_, _f_, _subs_, _sube_}; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
195 #define cmd_entry(_s_,_h_,_u_,_f_,_subs_,_sube_,_n_) \ |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
196 extern _cmd_entry(_s_,_h_,_u_,_f_,_subs_,_sube_,_n_) |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
197 #define local_cmd_entry(_s_,_h_,_u_,_f_,_n_) \ |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
198 static _cmd_entry(_s_,_h_,_u_,_f_,0,0,_n_) |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
199 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
200 // Initialization functions |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
201 #define RedBoot_INIT_FIRST 0000 |
|
154
e2d866e32dac
Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
151
diff
changeset
|
202 // Specify a 3 digit numeric value for proper prioritizing |
|
e2d866e32dac
Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
151
diff
changeset
|
203 #define RedBoot_INIT_PRIO(_n_) 1##_n_ |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
204 #define RedBoot_INIT_LAST 9999 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
205 typedef void void_fun(void); |
|
126
518f42066aba
Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents:
124
diff
changeset
|
206 typedef void_fun *void_fun_ptr; |
|
518f42066aba
Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents:
124
diff
changeset
|
207 struct init_tab_entry { |
|
518f42066aba
Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents:
124
diff
changeset
|
208 void_fun_ptr fun; |
|
518f42066aba
Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents:
124
diff
changeset
|
209 } CYG_HAL_TABLE_TYPE; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
210 #define _RedBoot_init(_f_,_p_) \ |
|
154
e2d866e32dac
Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
151
diff
changeset
|
211 struct init_tab_entry _init_tab_##_p_##_f_ \ |
|
e2d866e32dac
Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
151
diff
changeset
|
212 CYG_HAL_TABLE_QUALIFIED_ENTRY(RedBoot_inits,_p_##_f_) = { _f_ }; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
213 #define RedBoot_init(_f_,_p_) _RedBoot_init(_f_,_p_) |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
214 |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
215 // Main loop [idle] call-back functions |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
216 #define RedBoot_IDLE_FIRST 0000 |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
217 #define RedBoot_IDLE_BEFORE_NETIO 3000 |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
218 #define RedBoot_IDLE_NETIO 5000 |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
219 #define RedBoot_IDLE_AFTER_NETIO 7000 |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
220 #define RedBoot_IDLE_LAST 9999 |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
221 typedef void idle_fun(bool); |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
222 typedef idle_fun *idle_fun_ptr; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
223 struct idle_tab_entry { |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
224 idle_fun_ptr fun; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
225 } CYG_HAL_TABLE_TYPE; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
226 #define _RedBoot_idle(_f_,_p_) \ |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
227 struct idle_tab_entry _idle_tab_##_p_##_f_ \ |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
228 CYG_HAL_TABLE_QUALIFIED_ENTRY(RedBoot_idle,_p_##_f_) = { _f_ }; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
229 #define RedBoot_idle(_f_,_p_) _RedBoot_idle(_f_,_p_) |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
230 |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
231 // This function called when changing idle/not - mostly used by I/O |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
232 // to support idle when timeout, etc. |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
154
diff
changeset
|
233 void do_idle(bool state); |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
149
diff
changeset
|
234 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
235 // Option processing support |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
236 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
237 struct option_info { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
238 char flag; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
239 bool takes_arg; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
240 int arg_type; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
241 void **arg; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
242 bool *arg_set; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
243 char *name; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
244 }; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
245 |
|
117
bd1a71e3e476
Merge from eCos master repository on 2000-08-25-19:22:58-BST
jlarmour
parents:
115
diff
changeset
|
246 #define OPTION_ARG_TYPE_NUM 0 // Numeric data |
|
bd1a71e3e476
Merge from eCos master repository on 2000-08-25-19:22:58-BST
jlarmour
parents:
115
diff
changeset
|
247 #define OPTION_ARG_TYPE_STR 1 // Generic string |
|
bd1a71e3e476
Merge from eCos master repository on 2000-08-25-19:22:58-BST
jlarmour
parents:
115
diff
changeset
|
248 #define OPTION_ARG_TYPE_FLG 2 // Flag only |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
249 |
|
130
eb9fd8c04db3
Merge from eCos master repository on 2000-10-23-17:01:37-BST
jlarmour
parents:
128
diff
changeset
|
250 // Command line parsing |
|
183
9160a8005d76
Merge from eCos master repository on 2001-09-12-03:52:30-BST
jlarmour
parents:
182
diff
changeset
|
251 externC struct cmd *parse(char **line, int *argc, char **argv); |
|
130
eb9fd8c04db3
Merge from eCos master repository on 2000-10-23-17:01:37-BST
jlarmour
parents:
128
diff
changeset
|
252 |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
253 externC void init_opts(struct option_info *opts, char flag, bool takes_arg, |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
254 int arg_type, void **arg, bool *arg_set, char *name); |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
255 externC bool scan_opts(int argc, char *argv[], int first, |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
256 struct option_info *opts, int num_opts, |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
257 void **def_arg, int def_arg_type, char *def_descr); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
258 |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
259 externC int redboot_getc(void); |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
260 externC void redboot_getc_init(int (*fun)(char *, int, int *), |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
261 int verbose, int decompress); |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
262 externC void redboot_getc_rewind(void); |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
263 externC void redboot_getc_close(void); |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
121
diff
changeset
|
264 |
|
165
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
265 #ifdef CYGNUM_HAL_VIRTUAL_VECTOR_AUX_CHANNELS |
|
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
266 #define CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS \ |
|
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
267 (CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS+CYGNUM_HAL_VIRTUAL_VECTOR_AUX_CHANNELS) |
|
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
268 #else |
|
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
269 #define CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS \ |
|
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
270 CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS |
|
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
271 #endif |
|
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
272 |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
273 #ifdef CYGPKG_REDBOOT_NETWORKING |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
274 //----------------------------------------------------------------------------- |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
275 // DNS wrapper |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
276 #ifdef CYGPKG_REDBOOT_NETWORKING_DNS |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
277 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
278 // I would really like if we could just pull in cyg/ns/dns/dns.h, but |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
279 // that would require adding dummy <network.h> and <netinet/in.h> files. |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
280 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
281 // Host name / IP mapping |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
282 struct hostent { |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
283 char *h_name; /* official name of host */ |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
284 char **h_aliases; /* alias list */ |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
285 int h_addrtype; /* host address type */ |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
286 int h_length; /* length of address */ |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
287 char **h_addr_list; /* list of addresses */ |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
288 }; |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
289 #define h_addr h_addr_list[0] /* for backward compatibility */ |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
290 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
291 externC int redboot_dns_res_init(void); |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
292 externC void set_dns(char* new_ip); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
293 externC void show_dns(void); |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
294 externC struct hostent *gethostbyname(const char *host); |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
295 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
296 // Error reporting |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
297 externC int h_errno; |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
298 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
299 #define DNS_SUCCESS 0 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
300 #define HOST_NOT_FOUND 1 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
301 #define TRY_AGAIN 2 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
302 #define NO_RECOVERY 3 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
303 #define NO_DATA 4 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
304 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
305 static inline bool |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
306 _gethostbyname(const char* name, in_addr_t* host) |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
307 { |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
308 struct hostent* hent = gethostbyname(name); |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
309 if (hent) { |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
310 memcpy(host, hent->h_addr_list[0], sizeof(in_addr_t)); |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
311 return true; |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
312 } |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
313 // Fall back to inet_aton - gethostbyname may already have tried |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
314 // it, but we can't know for sure (the DNS IP may not have been |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
315 // valid, preventing the inet_aton). |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
316 return inet_aton(name, host); |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
317 } |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
318 #else |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
319 static inline bool |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
320 _gethostbyname(const char* name, in_addr_t* host) |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
321 { |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
322 return inet_aton(name, host); |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
323 } |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
324 #endif // CYGPKG_REDBOOT_NETWORKING_DNS |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
325 #endif // CYGPKG_REDBOOT_NETWORKING |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
326 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
327 //----------------------------------------------------------------------------- |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
328 // String functions. Some of these are duplicates of the same functions in |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
329 // the I18N package. |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
330 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
331 // Validate a hex character |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
332 __inline__ static bool |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
333 _is_hex(char c) |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
334 { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
335 return (((c >= '0') && (c <= '9')) || |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
336 ((c >= 'A') && (c <= 'F')) || |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
337 ((c >= 'a') && (c <= 'f'))); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
338 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
339 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
340 // Convert a single hex nibble |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
341 __inline__ static int |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
342 _from_hex(char c) |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
343 { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
344 int ret = 0; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
345 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
346 if ((c >= '0') && (c <= '9')) { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
347 ret = (c - '0'); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
348 } else if ((c >= 'a') && (c <= 'f')) { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
349 ret = (c - 'a' + 0x0a); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
350 } else if ((c >= 'A') && (c <= 'F')) { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
351 ret = (c - 'A' + 0x0A); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
352 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
353 return ret; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
354 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
355 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
356 // Convert a character to lower case |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
357 __inline__ static char |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
165
diff
changeset
|
358 _tolower(char c) |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
359 { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
360 if ((c >= 'A') && (c <= 'Z')) { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
361 c = (c - 'A') + 'a'; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
362 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
363 return c; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
364 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
365 |
|
184
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
366 // Validate alpha |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
367 __inline__ static bool |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
368 isalpha(int c) |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
369 { |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
370 return (((c >= 'a') && (c <= 'z')) || |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
371 ((c >= 'A') && (c <= 'Z'))); |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
372 } |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
373 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
374 // Validate digit |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
375 __inline__ static bool |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
376 isdigit(int c) |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
377 { |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
378 return ((c >= '0') && (c <= '9')); |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
379 } |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
380 |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
381 // Validate alphanum |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
382 __inline__ static bool |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
383 isalnum(int c) |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
384 { |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
385 return (isalpha(c) || isdigit(c)); |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
386 } |
|
022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents:
183
diff
changeset
|
387 |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
388 //---------------------------------------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
389 // syscall values |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
390 #if defined(CYGSEM_REDBOOT_BSP_SYSCALLS) |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
391 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
392 // These are required by the ANSI C part of newlib (excluding system() of |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
393 // course). |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
394 #define SYS_exit 1 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
395 #define SYS_open 2 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
396 #define SYS_close 3 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
397 #define SYS_read 4 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
398 #define SYS_write 5 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
399 #define SYS_lseek 6 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
400 #define SYS_unlink 7 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
401 #define SYS_getpid 8 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
402 #define SYS_kill 9 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
403 #define SYS_fstat 10 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
404 //#define SYS_sbrk 11 - not currently a system call, but reserved. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
405 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
406 // ARGV support. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
407 #define SYS_argvlen 12 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
408 #define SYS_argv 13 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
409 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
410 // These are extras added for one reason or another. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
411 #define SYS_chdir 14 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
412 #define SYS_stat 15 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
413 #define SYS_chmod 16 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
414 #define SYS_utime 17 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
415 #define SYS_time 18 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
416 #define SYS_gettimeofday 19 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
417 #define SYS_times 20 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
418 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
419 #define SYS_interrupt 1000 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
420 #define SYS_meminfo 1001 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
421 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
422 #define __GET_SHARED 0xbaad // 47789 decimal |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
423 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
424 #ifdef CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
425 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
426 #define SYS_timer_call_back 2001 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
427 #define SYS_timer_frequency 2002 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
428 #define SYS_timer_reset 2003 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
429 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
430 #endif // CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
431 #define SYS_rename 3001 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
432 #define SYS_isatty 3002 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
433 #define SYS_system 3003 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
434 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
435 #endif // CYGSEM_REDBOOT_BSP_SYSCALLS |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
196
diff
changeset
|
436 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
437 #endif // _REDBOOT_H_ |
