annotate packages/redboot/current/include/redboot.h @ 1223:dbcfe4e0dbd2

New platform - TAMS MOAB - and generic changes to support it
author gthomas
date Fri, 19 Sep 2003 17:11:18 +0000
parents 92e31da869cc
children 13ba50dd5a8e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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.
1122
92e31da869cc Add ^C abort functionality to BOOTP and PING operations.
gthomas
parents: 307
diff changeset
12 // Copyright (C) 2002, 2003 Gary Thomas
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
13 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
14 // 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
15 // 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
16 // 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
17 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
18 // 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
19 // 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
20 // 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
21 // for more details.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
22 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
23 // 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
24 // 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
25 // 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
26 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
27 // 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
28 // 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
29 // 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
30 // 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
31 // 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
32 // 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
33 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
34 // 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
35 // 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
36 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
37 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
210
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
38 // at http://sources.redhat.com/ecos/ecos-license/
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
39 // -------------------------------------------
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
40 //####ECOSGPLCOPYRIGHTEND####
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
41 //==========================================================================
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
42 //#####DESCRIPTIONBEGIN####
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
43 //
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
44 // Author(s): gthomas
307
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 284
diff changeset
45 // Contributors: gthomas, tkoeller
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
46 // Date: 2000-07-14
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
47 // Purpose:
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
48 // Description:
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
49 //
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
50 // 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
51 //
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
52 //####DESCRIPTIONEND####
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
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
56 #ifndef _REDBOOT_H_
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
57 #define _REDBOOT_H_
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
58
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
59 #include <pkgconf/redboot.h>
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
60 #include <pkgconf/hal.h>
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
61 #include <cyg/hal/hal_if.h>
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
62 #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
63 #include <cyg/infra/diag.h>
284
3e80ecaaa3f8 * src/crc.c: Removed. Replaced with the CRC package.
asl
parents: 245
diff changeset
64 #include <cyg/crc/crc.h>
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 165
diff changeset
65 #include <string.h>
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
66
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
67 #ifdef CYGPKG_REDBOOT_NETWORKING
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
68 #include <net/net.h>
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
69 #include <net/bootp.h>
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
70 // 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
71 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
72 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
73
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
74 #ifdef DEFINE_VARS
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
75 #define EXTERN
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
76 #else
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
77 #define EXTERN extern
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
78 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
79
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
80 // Global variables
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
81 EXTERN int argc;
161
ac086aa3217e Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents: 159
diff changeset
82 #define MAX_ARGV 16
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
83 EXTERN char *argv[MAX_ARGV];
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
84 EXTERN unsigned char *ram_start, *ram_end;
1223
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
85 EXTERN struct _mem_segment {
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
86 unsigned char *start, *end;
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
87 } mem_segments[CYGBLD_REDBOOT_MAX_MEM_SEGMENTS];
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
88 #define NO_MEMORY (unsigned char *)0xFFFFFFFF
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
89 EXTERN bool valid_address(unsigned char *addr);
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
90 EXTERN void cyg_plf_memory_segment(int seg, unsigned char **start, unsigned char **end);
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
91 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
92 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
93
9b55e9c69693 Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents: 195
diff changeset
94 // 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
95 EXTERN unsigned long entry_address;
9b55e9c69693 Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents: 195
diff changeset
96 EXTERN unsigned long load_address;
9b55e9c69693 Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents: 195
diff changeset
97 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
98
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
99
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
100 #ifdef CYGPKG_REDBOOT_ANY_CONSOLE
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
101 EXTERN bool console_selected;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
102 #endif
128
0c2b7be0d798 Merge from eCos master repository on 2000-10-12-08:46:24-BST
jlarmour
parents: 126
diff changeset
103 EXTERN bool console_echo;
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 149
diff changeset
104 EXTERN bool gdb_active;
195
67850532eebb Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents: 192
diff changeset
105 #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
106 EXTERN bool cmd_history;
67850532eebb Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents: 192
diff changeset
107 #endif
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
108
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
109 #ifdef CYGPKG_REDBOOT_NETWORKING
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
110 EXTERN bool have_net, use_bootp;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
111 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
112 EXTERN int gdb_port;
192
9dd39c51f7a7 Fix net_debug bug
jlarmour
parents: 184
diff changeset
113 EXTERN bool net_debug;
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
114 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
115
159
511f4dc167f6 Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents: 156
diff changeset
116 #ifdef CYGFUN_REDBOOT_BOOT_SCRIPT
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
117 EXTERN unsigned char *script;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
118 EXTERN int script_timeout;
165
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 161
diff changeset
119 #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
120 EXTERN int console_baud_rate;
511f4dc167f6 Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents: 156
diff changeset
121 #endif
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
122 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
123
307
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 284
diff changeset
124 #ifdef CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 284
diff changeset
125 EXTERN unsigned char *fis_zlib_common_buffer;
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 284
diff changeset
126 #endif
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 284
diff changeset
127
1223
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
128 #ifdef CYGSEM_REDBOOT_PLF_STARTUP
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
129 EXTERN void cyg_plf_redboot_startup(void);
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
130 #endif
dbcfe4e0dbd2 New platform - TAMS MOAB - and generic changes to support it
gthomas
parents: 1122
diff changeset
131
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
132 // Prototypes
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 165
diff changeset
133 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
134 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
135 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
136
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 165
diff changeset
137 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
138 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
139 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
140
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 130
diff changeset
141 // 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
142 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
143 // 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
144 // 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
145 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
146 // Result codes from 'gets()'
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 130
diff changeset
147 #define _GETS_TIMEOUT -1
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 130
diff changeset
148 #define _GETS_CTRLC -2
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 130
diff changeset
149 #define _GETS_GDB 0
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 130
diff changeset
150 #define _GETS_OK 1
1122
92e31da869cc Add ^C abort functionality to BOOTP and PING operations.
gthomas
parents: 307
diff changeset
151 // Test for ^C on the console. This function should only be used if any
92e31da869cc Add ^C abort functionality to BOOTP and PING operations.
gthomas
parents: 307
diff changeset
152 // other console input can be discarded, e.g. while performing some long
92e31da869cc Add ^C abort functionality to BOOTP and PING operations.
gthomas
parents: 307
diff changeset
153 // computation, waiting for the network, etc. Returns 'true' if ^C typed.
92e31da869cc Add ^C abort functionality to BOOTP and PING operations.
gthomas
parents: 307
diff changeset
154 externC bool _rb_break(int timeout);
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
155
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
156 // "console" selection
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 165
diff changeset
157 externC int start_console(void);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 165
diff changeset
158 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
159
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
160 // Alias functions
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
161 #ifdef CYGSEM_REDBOOT_FLASH_ALIASES
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
162 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
163 #endif
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
164 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
165
228
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
166 //
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
167 // Stream I/O support
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
168 //
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
169
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
170 typedef struct {
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
171 char *filename;
245
a6660704f7a6 Fix problem with x/y-modem load.
gthomas
parents: 228
diff changeset
172 int mode;
228
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
173 int chan;
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
174 #ifdef CYGPKG_REDBOOT_NETWORKING
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
175 struct sockaddr_in *server;
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
176 #endif
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
177 } connection_info_t;
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
178
228
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
179 typedef struct {
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
180 int (*open)(connection_info_t *info, int *err);
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
181 void (*close)(int *err);
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
182 void (*terminate)(bool abort, int (*getc)(void));
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
183 int (*read)(char *buf, int size, int *err);
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
184 char *(*error)(int err);
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
185 } getc_io_funcs_t;
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
186
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
187 #define GETC_IO_FUNCS(_label_, _open_, _close_, _terminate_, _read_, _error_) \
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
188 getc_io_funcs_t _label_ = { \
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
189 _open_, _close_, _terminate_, _read_, _error_ \
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
190 };
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
191
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
192 struct load_io_entry {
245
a6660704f7a6 Fix problem with x/y-modem load.
gthomas
parents: 228
diff changeset
193 char *name;
228
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
194 getc_io_funcs_t *funcs;
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
195 bool can_verbose;
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
196 bool need_filename;
245
a6660704f7a6 Fix problem with x/y-modem load.
gthomas
parents: 228
diff changeset
197 int mode;
228
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
198 } CYG_HAL_TABLE_TYPE;
245
a6660704f7a6 Fix problem with x/y-modem load.
gthomas
parents: 228
diff changeset
199 #define _RedBoot_load(_name_,_funcs_,_verbose_,_filename_,_mode_) \
a6660704f7a6 Fix problem with x/y-modem load.
gthomas
parents: 228
diff changeset
200 struct load_io_entry _load_tab_##_funcs_##_name_ \
a6660704f7a6 Fix problem with x/y-modem load.
gthomas
parents: 228
diff changeset
201 CYG_HAL_TABLE_QUALIFIED_ENTRY(RedBoot_load,_funcs_##_name) = \
a6660704f7a6 Fix problem with x/y-modem load.
gthomas
parents: 228
diff changeset
202 { #_name_, &_funcs_, _verbose_, _filename_, _mode_ };
a6660704f7a6 Fix problem with x/y-modem load.
gthomas
parents: 228
diff changeset
203 #define RedBoot_load(_name_,_funcs_,_verbose_,_filename_, _mode_) \
a6660704f7a6 Fix problem with x/y-modem load.
gthomas
parents: 228
diff changeset
204 _RedBoot_load(_name_,_funcs_,_verbose_,_filename_,_mode_)
228
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
205
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
206 #ifdef CYGPKG_COMPRESS_ZLIB
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
207 // Decompression support
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
208 typedef struct _pipe {
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
209 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
210 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
211 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
212 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
213 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
214 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
215 void* priv; // handler's data
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
216 } _pipe_t;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
217
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
218 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
219 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
220 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
221
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
222 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
223 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
224 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
225 #endif // CYGPKG_COMPRESS_ZLIB
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
226
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
227 // CLI support functions
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 165
diff changeset
228 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
229 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
230
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
231 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
232 struct cmd {
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
233 char *str;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
234 char *help;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
235 char *usage;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
236 cmd_fun *fun;
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
237 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
238 } CYG_HAL_TABLE_TYPE;
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 165
diff changeset
239 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
240 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
241 #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
242 #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
243 #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
244 cmd_fun _f_; \
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
245 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
246 #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
247 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
248 #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
249 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
250
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
251 // Initialization functions
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
252 #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
253 // 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
254 #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
255 #define RedBoot_INIT_LAST 9999
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
256 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
257 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
258 struct init_tab_entry {
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
259 void_fun_ptr fun;
518f42066aba Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents: 124
diff changeset
260 } CYG_HAL_TABLE_TYPE;
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
261 #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
262 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
263 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
264 #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
265
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 149
diff changeset
266 // 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
267 #define RedBoot_IDLE_FIRST 0000
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 149
diff changeset
268 #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
269 #define RedBoot_IDLE_NETIO 5000
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 149
diff changeset
270 #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
271 #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
272 typedef void idle_fun(bool);
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
273 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
274 struct idle_tab_entry {
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
275 idle_fun_ptr fun;
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 149
diff changeset
276 } CYG_HAL_TABLE_TYPE;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 149
diff changeset
277 #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
278 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
279 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
280 #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
281
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 154
diff changeset
282 // 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
283 // 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
284 void do_idle(bool state);
228
e1b642d73533 Improve load command - make I/O methods table driven.
gthomas
parents: 210
diff changeset
285
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
286 // Option processing support
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
287
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
288 struct option_info {
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
289 char flag;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
290 bool takes_arg;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
291 int arg_type;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
292 void **arg;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
293 bool *arg_set;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
294 char *name;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
295 };
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
296
117
bd1a71e3e476 Merge from eCos master repository on 2000-08-25-19:22:58-BST
jlarmour
parents: 115
diff changeset
297 #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
298 #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
299 #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
300
130
eb9fd8c04db3 Merge from eCos master repository on 2000-10-23-17:01:37-BST
jlarmour
parents: 128
diff changeset
301 // Command line parsing
183
9160a8005d76 Merge from eCos master repository on 2001-09-12-03:52:30-BST
jlarmour
parents: 182
diff changeset
302 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
303
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 165
diff changeset
304 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
305 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
306 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
307 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
308 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
309
165
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 161
diff changeset
310 #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
311 #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
312 (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
313 #else
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 161
diff changeset
314 #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
315 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
316 #endif
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 161
diff changeset
317
184
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
318 #ifdef CYGPKG_REDBOOT_NETWORKING
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
319 //-----------------------------------------------------------------------------
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
320 // DNS wrapper
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
321 #ifdef CYGPKG_REDBOOT_NETWORKING_DNS
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
322
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
323 // 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
324 // 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
325
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
326 // Host name / IP mapping
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
327 struct hostent {
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
328 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
329 char **h_aliases; /* alias list */
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
330 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
331 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
332 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
333 };
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
334 #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
335
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
336 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
337 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
338 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
339 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
340
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
341 // Error reporting
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
342 externC int h_errno;
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
343
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
344 #define DNS_SUCCESS 0
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
345 #define HOST_NOT_FOUND 1
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
346 #define TRY_AGAIN 2
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
347 #define NO_RECOVERY 3
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
348 #define NO_DATA 4
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
349
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
350 static inline bool
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
351 _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
352 {
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
353 struct hostent* hent = gethostbyname(name);
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
354 if (hent) {
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
355 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
356 return true;
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
357 }
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
358 // 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
359 // 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
360 // valid, preventing the inet_aton).
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
361 return inet_aton(name, host);
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
362 }
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
363 #else
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
364 static inline bool
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
365 _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
366 {
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
367 return inet_aton(name, host);
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
368 }
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
369 #endif // CYGPKG_REDBOOT_NETWORKING_DNS
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
370 #endif // CYGPKG_REDBOOT_NETWORKING
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
371
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 // 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
374 // the I18N package.
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
375
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
376 // Validate a hex character
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
377 __inline__ static bool
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
378 _is_hex(char c)
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
379 {
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
380 return (((c >= '0') && (c <= '9')) ||
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
381 ((c >= 'A') && (c <= 'F')) ||
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
382 ((c >= 'a') && (c <= 'f')));
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
383 }
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
384
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
385 // Convert a single hex nibble
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
386 __inline__ static int
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
387 _from_hex(char c)
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
388 {
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
389 int ret = 0;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
390
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
391 if ((c >= '0') && (c <= '9')) {
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
392 ret = (c - '0');
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
393 } else if ((c >= 'a') && (c <= 'f')) {
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
394 ret = (c - 'a' + 0x0a);
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
395 } else if ((c >= 'A') && (c <= 'F')) {
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
396 ret = (c - 'A' + 0x0A);
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
397 }
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
398 return ret;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
399 }
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
400
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
401 // Convert a character to lower case
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
402 __inline__ static char
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 165
diff changeset
403 _tolower(char c)
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
404 {
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
405 if ((c >= 'A') && (c <= 'Z')) {
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
406 c = (c - 'A') + 'a';
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
407 }
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
408 return c;
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
409 }
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
410
184
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
411 // Validate alpha
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
412 __inline__ static bool
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
413 isalpha(int c)
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
414 {
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
415 return (((c >= 'a') && (c <= 'z')) ||
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
416 ((c >= 'A') && (c <= 'Z')));
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
417 }
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
418
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
419 // Validate digit
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
420 __inline__ static bool
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
421 isdigit(int c)
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
422 {
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
423 return ((c >= '0') && (c <= '9'));
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
424 }
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
425
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
426 // Validate alphanum
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
427 __inline__ static bool
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
428 isalnum(int c)
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
429 {
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
430 return (isalpha(c) || isdigit(c));
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
431 }
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 183
diff changeset
432
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
433 //----------------------------------------------------------------------------
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
434 // syscall values
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
435 #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
436
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
437 // 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
438 // course).
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
439 #define SYS_exit 1
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
440 #define SYS_open 2
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
441 #define SYS_close 3
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
442 #define SYS_read 4
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
443 #define SYS_write 5
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
444 #define SYS_lseek 6
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
445 #define SYS_unlink 7
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
446 #define SYS_getpid 8
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
447 #define SYS_kill 9
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
448 #define SYS_fstat 10
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
449 //#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
450
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
451 // ARGV support.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
452 #define SYS_argvlen 12
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
453 #define SYS_argv 13
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
454
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
455 // 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
456 #define SYS_chdir 14
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
457 #define SYS_stat 15
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
458 #define SYS_chmod 16
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
459 #define SYS_utime 17
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
460 #define SYS_time 18
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
461 #define SYS_gettimeofday 19
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
462 #define SYS_times 20
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
463
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
464 #define SYS_interrupt 1000
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
465 #define SYS_meminfo 1001
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
466
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
467 #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
468
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
469 #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
470
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
471 #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
472 #define SYS_timer_frequency 2002
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
473 #define SYS_timer_reset 2003
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
474
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
475 #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
476 #define SYS_rename 3001
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
477 #define SYS_isatty 3002
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
478 #define SYS_system 3003
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
479
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
480 #endif // CYGSEM_REDBOOT_BSP_SYSCALLS
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 196
diff changeset
481
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff changeset
482 #endif // _REDBOOT_H_