david/ipxe
Archived
1
0
Commit Graph

871 Commits

Author SHA1 Message Date
Michael Brown
b44332eb7d Split non-TCP portions of the stack out into ip.[ch].
Added set_ipaddr().
2006-03-24 17:22:09 +00:00
Michael Brown
1c607470e3 Put in a substitute pcap_inject() function, since earlier versions of
libpcap are lacking the function.  For now, we always use the
substitute version, since there's no easy way to determine whether or
not we need it.
2006-03-24 16:43:12 +00:00
Michael Brown
7e61f38799 Moved "hello world" protocol implementation out of prototester.c and into
the first standalong uIP-based protocol module.
2006-03-23 22:37:05 +00:00
Michael Brown
508dcdb303 Added container_of(). This seems about the best place to put it, since
the definition of it uses offsetof(), and the two concepts are related.
2006-03-23 22:07:21 +00:00
Michael Brown
99032becce Pick up the gPXE include files when building prototester. 2006-03-23 21:35:20 +00:00
Michael Brown
2299435f1c Added prototype for inet_ntoa, even though we don't have the function
yet, in order to allow prototester.c to compile.  It might be worth
changing all the uses of "%@" in printf to use "%s" and inet_ntoa
instead, in order to improve the portability of our code.
2006-03-23 21:34:25 +00:00
Michael Brown
a4a0244aa3 Moved uIP wrapper out of prototester.c and into proto/tcp.c. 2006-03-23 21:32:03 +00:00
Michael Brown
17c0253ca0 Add include/gpxe as a directory to scan.
Exclude proto/uip, since uip.c and uip_arp.c both have global variables
called "c", which screws up doxygen's auto-generation of links to file
documentation when it encounters a file name such as "hello.c".
2006-03-23 21:06:36 +00:00
Michael Brown
2bc7c746a6 Updated with "doxygen -u" from doxygen 1.4.4 2006-03-23 20:39:26 +00:00
Michael Brown
05b284399e Moved old tcp.h to old_tcp.h, to avoid name clash with new (uIP-based)
tcp.h.
2006-03-23 20:34:08 +00:00
Michael Brown
af23ff8a24 Assertions are now handled via the POSIX-like <assert.h>. 2006-03-23 19:33:57 +00:00
Michael Brown
55497b3402 Added missing #endif 2006-03-23 19:23:25 +00:00
Michael Brown
cb8e89de15 Added assert.h, with assert() defined (almost) as per POSIX, and
linker_assert() defined as gPXE-specific.
2006-03-23 17:28:51 +00:00
Michael Brown
531371efa2 Removed to make way for the uIP-based tcp.c. 2006-03-23 16:59:25 +00:00
Michael Brown
dde1c5ad18 Moved include/in.h to include/gpxe/in.h, so that it can be included by
prototester.
2006-03-23 16:45:01 +00:00
Michael Brown
eaf40883ff Add Makefile for hijack and prototester utilities. 2006-03-23 13:11:41 +00:00
Michael Brown
21c58729ae Add debug symbols to objects. (They will be stripped out of the final
-Obinary build anyway, so it doesn't waste any space).
2006-03-23 13:09:29 +00:00
Michael Brown
b2c94b32fc Make the application state a void *. 2006-03-23 13:08:06 +00:00
Michael Brown
218c26ff2b Can now also print data sent by the remote side. 2006-03-23 13:06:08 +00:00
Michael Brown
0d506a5c6a Now capable of sending "Hello world!" via TCP. 2006-03-23 12:25:28 +00:00
Michael Brown
911486fe41 Added basic http-specific option parsing 2006-03-22 22:35:32 +00:00
Michael Brown
5263a5abf4 Started adding structure to allow for separate protocol tests, with
individual options.

Created the embryonic beginnings of a cleanly separated driver and
protocol stack API.
2006-03-22 21:25:35 +00:00
Michael Brown
c32e83ad8d Skeleton version: contains device driver (connecting to network via
hijack daemon) and a functional but very ugly and very primitive
wrapper around uIP.

This passes proof-of-concept testing; it successfully initiates a TCP
connection and responds to pings.
2006-03-22 02:23:20 +00:00
Michael Brown
bb37bd47f8 Added from uip-0.9/uip/uip_arp.[ch] 2006-03-22 02:14:55 +00:00
Michael Brown
417e896f0a Remove htons(); it is provided elsewhere in Etherboot 2006-03-22 01:25:43 +00:00
Michael Brown
1c7c24f21f Basic, functional-but-extremely-pessimal versions (taken from
uip-0.9/unix/uip_arch.c).
2006-03-22 01:24:13 +00:00
Michael Brown
c5a9c38606 Terminate cleanly on SIGINT or SIGHUP 2006-03-21 17:48:33 +00:00
Michael Brown
e072baeb8c Use libpcap API to send/receive packets.
Include automatic filtering (based on source MAC address of first
transmitted packet).

Proven to successfully elicit a ping response from a remote host.
2006-03-21 16:50:25 +00:00
Michael Brown
4485df516c Basic structure in place: can daemonise, listen on a Unix domain
socket, accept new connections, open a network interface using libpcap
and forward (all) traffic.
2006-03-21 02:25:30 +00:00
Michael Brown
013ee958a1 These can come back when someone wants to support them 2006-03-17 14:16:05 +00:00
Michael Brown
7be870acd3 More purging 2006-03-17 14:14:36 +00:00
Michael Brown
b2909e547d They can come back when they have someone to support them. 2006-03-17 14:13:09 +00:00
Michael Brown
a2b15fd1fe GPXE code cleanup and purge. 2006-03-17 14:09:45 +00:00
Michael Brown
cdf1511d3e Prefix semantics have changed 2006-03-16 19:28:38 +00:00
Michael Brown
0e611719d2 Add uip on HEAD; it's safe to build, since nothing links against it at the
moment.
2006-03-16 19:18:12 +00:00
Michael Brown
d08ce741a4 Build in gpxe 2006-03-16 19:09:31 +00:00
Michael Brown
0806436d99 Remove accidental duplicate arising from merge 2006-03-16 19:04:19 +00:00
Michael Brown
239579efcf Build under gpxe 2006-03-16 19:02:18 +00:00
Michael Brown
d0777627c6 Back out duplication arising from the merge 2006-03-16 18:56:16 +00:00
Michael Brown
c4f25b637c Fix to compile under gpxe 2006-03-16 18:54:57 +00:00
Michael Brown
4ee0e0f85e Merge from Etherboot 5.4 2006-03-16 18:51:23 +00:00
Michael Brown
46e7bd5b52 Merge from Etherboot 5.4 2006-03-16 18:44:31 +00:00
Michael Brown
7e0a7a2e08 Merge from Etherboot 5.4 2006-03-16 18:30:54 +00:00
Michael Brown
28cefdccc4 Merge from Etherboot 5.4 2006-03-16 18:30:46 +00:00
Michael Brown
9b18017296 Merge from Etherboot 5.4 2006-03-16 18:15:48 +00:00
Michael Brown
bb7394b041 Merge from Etherboot 5.4 2006-03-16 17:59:51 +00:00
Michael Brown
708bbc43bc Merge from Etherboot 5.4 2006-03-16 17:40:55 +00:00
Michael Brown
9c8a69b673 Merge from Etherboot 5.4 2006-03-16 17:31:29 +00:00
Michael Brown
9b320c1ca4 Merge from Etherboot 5.4 2006-03-16 17:11:36 +00:00
Michael Brown
c3d5d01832 Merge from Etherboot 5.4 2006-03-16 17:05:38 +00:00
Michael Brown
5d28bae0f1 Fix up building with gcc 4.0.1 / gas 2.16.91 2006-01-17 01:47:41 +00:00
George Baum
bd9d4e0bd7 Reorder functions to match the linux driver.
No code changes apart from commenting one unused function out.
2005-07-11 19:26:12 +00:00
Timothy Legge
4184dc5c6a Fix COMET TxUnderrun issue 2005-06-17 20:11:10 +00:00
Geert Stappers
9dc2515d7e no need for depending on build library ("blib")
when make is invoked without arguments
2005-06-14 20:16:03 +00:00
Michael Brown
df9cbc23cc Added documentation and ASSERT() statements. 2005-06-06 12:01:19 +00:00
Michael Brown
33dbdda28e Allow data blocks to be less than sizeof ( struct buffer_free_block ) in
size.  (The restriction on the size of free blocks remains.)
2005-06-06 11:42:14 +00:00
Michael Brown
65a731bed5 Reduce BACKOFF_LIMIT to a hopefully more reasonable value. 2005-06-02 10:16:05 +00:00
Michael Brown
7d8adc25bc In multicast operation, the client still has a unicast local port. 2005-06-02 10:15:40 +00:00
Michael Brown
cbed5ed9ad Always include code for sending multicast packets. 2005-06-02 10:14:26 +00:00
Timothy Legge
95967adc8c Jan Kiszka provided a patch for the smc9000 for missing phy-setup 2005-06-02 01:26:37 +00:00
Michael Brown
f242f56a73 Rewritten to use the functions in tftpcore.c.
Works with a non-multicast TFTP server (i.e. the fallback path works
fine).
2005-06-01 22:26:48 +00:00
Michael Brown
be7897523d IGMP protocol now uses the generic background protocol mechanism. 2005-06-01 22:22:14 +00:00
Michael Brown
85a380530d Add generic mechanism for background protocols (e.g. ARP, IGMP) 2005-06-01 22:18:38 +00:00
Michael Brown
e0cf144218 IGMP functions separated out from nic.c 2005-06-01 21:18:31 +00:00
Michael Brown
698e87277f Don't try to fetch another packet once we've reached EOF. 2005-06-01 19:13:06 +00:00
Michael Brown
fa17bf0917 Make rfc2090 multicast option optional 2005-06-01 19:10:25 +00:00
Michael Brown
55771a462d Re-order functions for more logical documentation 2005-06-01 18:02:24 +00:00
Michael Brown
f2198e8a65 Don't choke on duplicate OACK packets.
Make await_tftp() static and create tftp_get() for fetching the next TFTP
packet instead.
2005-06-01 18:00:01 +00:00
Michael Brown
378e922f8f Remove prototypes for obsolete functions 2005-06-01 17:57:27 +00:00
Michael Brown
c8d6c4864f Doxygenation 2005-06-01 13:28:07 +00:00
Michael Brown
53a4436d94 TFTP upgraded to use a core function library (in tftpcore.c) which will be
shared between TFTP, TFTM and MTFTP protocols.
2005-06-01 13:13:05 +00:00
Michael Brown
0b048e9cfb Now have enough functions to implement a standard TFTP client in around 50
lines of code.
2005-06-01 11:01:59 +00:00
Michael Brown
7d63b39e3d Add tftp_ack() and tftp_error() 2005-05-31 15:21:33 +00:00
Michael Brown
8ae966720d First version 2005-05-31 14:47:58 +00:00
Geert Stappers
5265975334 patch of Helge Wagner 2005-05-31 11:32:45 +00:00
Michael Brown
59582db29d Documented remainder of PXE TFTP API calls. 2005-05-27 16:47:45 +00:00
Michael Brown
92f1a5c677 Documented the purpose of the two timeout fields in
s_PXENV_TFTP_READ_FILE.
2005-05-27 16:47:16 +00:00
Michael Brown
2ffc960e67 Added diatribe about the mismatch between the PXE spec and the TFTP
protocol, and how we will work around it.
2005-05-27 11:44:46 +00:00
Michael Brown
97675c7129 Refer to implementation note on IP routing. 2005-05-27 11:37:09 +00:00
Michael Brown
6e74dc3460 Added implementation note on IP routing.
Added reason for min value of 512 on s_PXENV_TFTP_OPEN::PacketSize.
2005-05-27 11:36:36 +00:00
Michael Brown
aeb984a1a9 Thoughts on how to coerce the PXE TFTP API into something resembling
the TFTP protocol.
2005-05-26 18:52:12 +00:00
Michael Brown
572483cc59 Separate out the documentation of the PXE API from the documentation of
the Etherboot implementation (i.e. don't do what Intel did).
2005-05-24 17:00:55 +00:00
Michael Brown
2579442865 Remove the annoying #include lines 2005-05-24 00:25:50 +00:00
Michael Brown
0e494614b5 Some versions of doxygen seem to object to "@ret None" or similar. 2005-05-24 00:11:25 +00:00
Michael Brown
7b423c0988 Fixes for gcc >= 3.2 from Georg Baum 2005-05-23 23:47:54 +00:00
Michael Brown
809933d9f7 Split PXE code into preboot, udp, tftp, undi and loader units.
PXE code now compiles without errors (though it won't actually work).
2005-05-23 23:32:56 +00:00
Michael Brown
13de295b56 Added interface/pxe directory 2005-05-23 23:31:59 +00:00
Michael Brown
079b5d5527 Moved pxe_loader.c to pxe_image.c to avoid name clash 2005-05-23 23:05:45 +00:00
Michael Brown
8fcb6448bd Moved pxe_errors.c to pxe/interface/ 2005-05-23 22:47:21 +00:00
Michael Brown
8becf0f65f Rearranging PXE header files 2005-05-23 22:45:48 +00:00
George Baum
c4c05bbbf7 the uncontroversal gcc 4.0 compilation fixes 2005-05-23 19:30:37 +00:00
Michael Brown
fd49648a35 Separated out the Etherboot-specific parts of the old pxe.h header. 2005-05-23 16:37:05 +00:00
Michael Brown
b9c7468dea Added PXENV+ and !PXE structures, and the loader API. 2005-05-23 16:26:49 +00:00
Michael Brown
442ba12b9e Finished documenting the UNDI API. 2005-05-23 13:57:23 +00:00
Michael Brown
cd9742e054 Documented up to PXENV_UNDI_CLOSE 2005-05-23 11:00:09 +00:00
Michael Brown
3503941582 Documented Preboot, TFTP and UDP data structures 2005-05-23 10:02:44 +00:00
Michael Brown
eb40aac2b4 Documented PXENV_GET_CACHED_INFO structures 2005-05-22 23:00:56 +00:00
Michael Brown
acb9d42cf8 Add UDP parameter structures 2005-05-22 02:57:50 +00:00
Michael Brown
22b7f0ec74 Define PXE types in terms of other PXE types where possible 2005-05-22 02:57:14 +00:00
Michael Brown
1e0a5d8b30 Worked out a sensible doxygen grouping 2005-05-22 00:59:09 +00:00
Michael Brown
29733a153d Added all API codes and basic prototypes. 2005-05-21 17:19:57 +00:00
Michael Brown
8355ce8a32 Documented the basic PXE data types 2005-05-21 15:15:10 +00:00
Michael Brown
d8f187dc6a Documented the UDP API calls. 2005-05-20 17:50:37 +00:00
Michael Brown
6bcd74b65c Moved pxe_export.c to pxe.c, since the old pxe.c no longer exists. 2005-05-20 15:32:41 +00:00
Michael Brown
93bb763ade Documented the link stages 2005-05-20 13:35:39 +00:00
Michael Brown
a177c012c1 Documented the compilation stages 2005-05-20 12:44:14 +00:00
Michael Brown
3f4387a6db Enable latex output 2005-05-20 11:52:16 +00:00
Michael Brown
eb28a68831 Add doc/ directory and .S files. 2005-05-20 11:38:48 +00:00
Michael Brown
d5789ff4a2 Doxygenation 2005-05-20 11:28:27 +00:00
Michael Brown
d3dec7c331 Update to cope with changes in registers.h 2005-05-20 11:23:51 +00:00
Michael Brown
5231b858c9 Don't use anonymous entries in a struct; it seems to aggravate gcc 3.4.3. 2005-05-20 11:22:09 +00:00
Michael Brown
a96759f9c8 Use "#var" rather than "@c var" for doxygen. 2005-05-20 10:27:02 +00:00
Michael Brown
bf32da87f0 Doxygenation 2005-05-20 10:24:11 +00:00
Michael Brown
7a4b45d3b0 Don't include etherboot.h; we get a circular dependency 2005-05-19 23:21:18 +00:00
Michael Brown
a9fabe7546 Doxygenation 2005-05-19 19:00:21 +00:00
Michael Brown
8bc4551f5e API docs to .h 2005-05-19 18:41:54 +00:00
Michael Brown
2ddbac101e Move API docs to buffer.h, implementation to buffer.c. 2005-05-19 18:32:04 +00:00
Michael Brown
e14c739d2d Imported from Etherboot 5.4 tree 2005-05-19 16:51:32 +00:00
Michael Brown
4e87543c74 Synced across updates from Etherboot 5.4 tree 2005-05-19 16:47:19 +00:00
Michael Brown
c0a94944fc Added FSP 2005-05-19 16:10:52 +00:00
Michael Brown
1a44618859 Version increased to 5.5.0 2005-05-19 16:07:13 +00:00
Michael Brown
f88c0d42d5 Doxygenation 2005-05-19 15:35:47 +00:00
Michael Brown
d0c9183903 Doxygenation 2005-05-19 14:51:37 +00:00
Michael Brown
eff1cd867b errno.h now required in order to compile. 2005-05-19 14:49:56 +00:00
Michael Brown
dd475a9b8c Add a const to avoid a warning 2005-05-19 13:02:38 +00:00
Michael Brown
2930fe846e Add image formats (didn't check in properly to gpxe for some reason) 2005-05-19 12:58:23 +00:00
Michael Brown
c18ea5282c Doxygenated 2005-05-19 12:53:59 +00:00
Michael Brown
e911a74724 More documentation 2005-05-19 11:54:41 +00:00
Michael Brown
a135024626 load_buffer is now handled via load_buffer.h 2005-05-19 00:19:07 +00:00
Michael Brown
a2915ad06d Added preliminary doxygen documentation 2005-05-19 00:17:48 +00:00
Michael Brown
0e921cdd9e More doxygen docs 2005-05-18 15:28:33 +00:00
Michael Brown
b115d1655c Add include directories as source dirs 2005-05-18 15:24:35 +00:00
Michael Brown
a28b779e71 Only produce documentation where documentation actually exists. 2005-05-18 15:07:19 +00:00
Michael Brown
484d6e7d24 __attribute__ does not need to be treated as a variadic macro, since
it is always used as __attribute__((...)).  Since variadic macros seem
to confuse poor doxygen, change it to a single-valued macro.
2005-05-18 15:02:23 +00:00
Michael Brown
d04b607eb9 Add doxygen documentation 2005-05-18 14:44:38 +00:00
Michael Brown
127362581f Document %m 2005-05-18 14:44:05 +00:00
Michael Brown
307cf36fca Linker symbols no longer defined in etherboot.h
Use %m to print error
2005-05-18 14:43:27 +00:00
Michael Brown
5a0f1bf421 doxygen docs go in bin/doc 2005-05-18 14:43:02 +00:00
Michael Brown
75a90cb143 Hide __attribute__ from doxygen 2005-05-18 14:42:02 +00:00
Michael Brown
0eb4d9973c Add EBADIMG, EIMGRET, ETIMEDOUT and EINVAL 2005-05-18 14:41:53 +00:00
Michael Brown
8e1d7b8a4a doxygen.cfg also references ARCH 2005-05-18 14:39:31 +00:00
Michael Brown
6b01ed0c95 Working to produce reasonably pretty code 2005-05-18 14:38:26 +00:00
Michael Brown
f888bd589d doxygen doesn't allow us to do the --include compiler.h trick... 2005-05-18 14:26:35 +00:00
Michael Brown
783e9ca396 Added doxygen comments and errno values. 2005-05-18 13:22:45 +00:00
Michael Brown
8bf7902141 Added rules to generate documentation using doxygen 2005-05-18 11:13:34 +00:00
Michael Brown
2d9fa8a1d9 Add DOXYGEN definition, comment out reference to not-yet-existent "image"
directory.
2005-05-18 11:12:17 +00:00
Michael Brown
fac5f28d7e There is no arch/i386/firmware/linuxbios directory 2005-05-18 11:11:57 +00:00
Michael Brown
06b2be03c8 All files in here are auto-generated 2005-05-18 10:52:25 +00:00
Michael Brown
7f1901860d Error numbers moved to errno.h 2005-05-18 09:55:38 +00:00
Michael Brown
ab07740755 First version 2005-05-17 18:39:27 +00:00
Michael Brown
ff9104e029 Added errno, strerror and the "%m" printf metacharacter. These will allow
us to return proper PXE status codes, while simultaneously allowing for
more consistent error reporting (complete with verbose error messages as a
build-time option).
2005-05-17 18:26:41 +00:00
Michael Brown
75a5374d79 Quickly hacked to use a buffer rather than a processor.
These don't yet take advantage of the buffer functionality.
2005-05-17 14:49:46 +00:00
Michael Brown
5fce946de4 Update to use buffer rather than processor 2005-05-17 14:35:20 +00:00
Michael Brown
40c7b127aa Added const to fill_buffer 2005-05-17 14:34:46 +00:00
Michael Brown
5ae60bd95d Updated to use buffer rather than processor 2005-05-17 14:26:14 +00:00
Michael Brown
022661283a Load buffer is now handled by the autoload() function. 2005-05-17 13:44:08 +00:00
Michael Brown
205a7ad5e0 Moved NBI support to nbi.c, modified to work with new load mechanism 2005-05-17 13:42:20 +00:00
Michael Brown
9c832a6a69 First version 2005-05-17 13:41:00 +00:00
Michael Brown
510de6cb8c Restructured to allow per-object image formats 2005-05-17 13:40:31 +00:00
Michael Brown
7205f0846c Heap function prototypes moved to heap.h 2005-05-17 13:39:27 +00:00
Michael Brown
a5f2942587 Add twiddle() so that progress is visible. 2005-05-17 13:39:00 +00:00
Michael Brown
0571dcdb05 Added print_images() and autoload(). 2005-05-17 13:38:24 +00:00
Michael Brown
9968c9513e Moved find_segment into elf_loader.c 2005-05-17 13:37:29 +00:00
Michael Brown
9a413cfea1 Moved os_regs into start32.S 2005-05-17 13:37:01 +00:00
Michael Brown
a76b9c3f19 Added debug messages 2005-05-17 13:36:12 +00:00
Michael Brown
3ce6504f14 Use shared symbols for heap_ptr and heap_end 2005-05-17 13:35:43 +00:00
Michael Brown
479fb900a1 Added copy_phys_to_phys 2005-05-17 13:34:57 +00:00
Michael Brown
4f27994980 Added "image" directory 2005-05-17 13:34:25 +00:00
Michael Brown
6e8f29d3cb Image formats moved into the new config system 2005-05-17 13:33:49 +00:00
Michael Brown
3bbf5f28a3 Use __unused instead of __used for static data structures.
Remove compiler.h defines from osdep.h
2005-05-17 12:16:28 +00:00
Michael Brown
301b2d40f0 Use the heap functions to allocate a load buffer. 2005-05-13 13:30:51 +00:00
Michael Brown
c695c75b01 First version 2005-05-13 13:29:15 +00:00
Michael Brown
5c8ea0b93a Add realloc, since the load buffer code requires it. 2005-05-13 13:20:16 +00:00
Michael Brown
59a1662978 Added debugging 2005-05-13 11:24:02 +00:00
Michael Brown
42250e9b1a Tidied up init_heap() 2005-05-13 11:16:14 +00:00
Michael Brown
f0d048bf91 Added ASSERT() macro 2005-05-13 10:18:21 +00:00
Michael Brown
94d512b979 Added old allot/forget calls for backwards compatibility. 2005-05-12 16:38:07 +00:00
Michael Brown
eff4fa5a04 Merged the unaligned and aligned heap APIs and simplified the code. 2005-05-12 16:34:57 +00:00
Michael Brown
a5a14dc05d Use the global load_buffer, and the boot_image function. 2005-05-09 18:10:04 +00:00
Michael Brown
f649a4d0fd Add INIT_LOADBUF 2005-05-09 18:04:20 +00:00
Michael Brown
73429d6da1 Make "struct buffer"s reusable between sessions. 2005-05-09 18:03:44 +00:00
Michael Brown
b94def2088 Include string.h, because we need to define copy_{to,from}_phys 2005-05-09 18:03:14 +00:00
Michael Brown
9fc97f8513 First version 2005-05-09 18:02:22 +00:00
Michael Brown
58ee2c4b2e First versions 2005-05-09 18:01:50 +00:00
Michael Brown
0fe74493f4 Protocols now load data into a buffer; they don't execute it. 2005-05-09 14:27:29 +00:00
Michael Brown
116f17f605 off_t should be signed. 2005-05-09 14:26:25 +00:00
Michael Brown
bab2924e89 Return -1 to indicate buffer overflow. Allow buffer fill level to be read
easily from struct buffer.
2005-05-09 14:26:10 +00:00
Michael Brown
a89651f3bb Added debugging 2005-05-09 13:47:04 +00:00
Michael Brown
b2869ed6b8 Added explanatory comment. 2005-05-09 13:25:43 +00:00
Michael Brown
e75b7480d0 Modified to use physical addresses, and to not assume that we can directly
refer to data outside of our data or stack segments.
2005-05-09 13:24:01 +00:00
Michael Brown
e3f2aa7b4d Add off_t and physaddr_t, and the copy_{to,from}_phys helper routines. 2005-05-09 13:21:56 +00:00
Michael Brown
dc0aa58fb2 Add memcpy 2005-05-09 12:48:00 +00:00
Michael Brown
ef05a27f25 Start of an implementation using doubly-linked lists and virtual
addresses.  This will have to be reworked to use physical addresses thanks
to the PXE spec.
2005-05-09 10:11:11 +00:00
Michael Brown
462234f373 Make vga_font const to avoid warning about large symbol 2005-05-03 13:17:08 +00:00
Michael Brown
e91c65bea1 Make PCI ID tables const so as not to trigger a warning about a large
symbol.
2005-05-03 12:36:06 +00:00
Michael Brown
cc73bba7ba Allow read-only symbols to be large 2005-05-03 12:34:52 +00:00
Michael Brown
24c0498cbc Move tulip_private structure into shared data. 2005-05-03 12:29:32 +00:00
Michael Brown
7df2857248 Reduce large symbol warning threshold, now that most of the really
large symbols have been fixed.
2005-05-03 12:24:52 +00:00
Michael Brown
42eb786ced D'oh 2005-05-03 12:18:31 +00:00
Michael Brown
4bcd42699b Use __shared 2005-05-03 12:16:49 +00:00
Michael Brown
303ff86c75 Added example of how to use __shared.
Moved transmit before poll, since typically transmit will be implemented first.
2005-05-03 12:14:29 +00:00
Michael Brown
ff8e46f2f3 #if 0 out the whole file for now; it cannot be linked because the base
memory interface has changed.
2005-05-03 11:56:33 +00:00
Michael Brown
0174310f38 Re-add the "etherboot.%" all-drivers image. 2005-05-03 11:51:19 +00:00
Michael Brown
c112f12c5b Symbol fixups 2005-05-03 11:29:33 +00:00
Michael Brown
3c2851e563 Arbitrary alignment is now available.
Use shared symbols.
Correct other symbol violations.
2005-05-03 09:56:57 +00:00
Michael Brown
68e90c75b6 Removed spurious semicolon 2005-05-03 09:02:24 +00:00
Michael Brown
ee15c47cb5 Use shared symbols 2005-05-02 17:45:24 +00:00
Michael Brown
3267ca5568 Use shared symbols to save space 2005-05-02 16:35:44 +00:00
Michael Brown
60b82eb5cd Moved definition of __shared into compiler.h 2005-05-02 16:21:52 +00:00
Michael Brown
a1f50f27b0 Correct symbol violations reported by "make symcheck" 2005-05-02 15:22:32 +00:00
Michael Brown
35ab3bf808 Report on misuses of shared symbols, and excessively large static symbols. 2005-05-02 15:21:12 +00:00
Michael Brown
734d2e9f2d First version 2005-05-02 14:43:15 +00:00
Michael Brown
88baf7a383 Tweaked to read more information (including symbol size) from blib.a 2005-05-02 13:49:54 +00:00
Michael Brown
48e40e933f Add DOWNLOAD_PROTO_XXX options. 2005-05-02 12:45:23 +00:00
Michael Brown
4ed412f1c2 Updated to use new URL parser and new protocol API.
Sort of works; the HTTP stuff is fine but the TCP code seems to be
broken; it doesn't ACK the packets and just hands us the retransmitted
packets instead.
2005-05-02 12:10:14 +00:00
Michael Brown
a918abc036 Split TCP code out into proto/tcp.c 2005-05-02 12:07:47 +00:00
Michael Brown
cc980d1c94 Moved DOWNLOAD_PROTO_XXX options to config.h 2005-05-02 11:13:47 +00:00
Michael Brown
f9f1d2c84c More URL parsing moved into url.c 2005-05-01 23:58:45 +00:00
Michael Brown
d5bf9e71ea http.h obsoleted (no content) 2005-05-01 23:58:20 +00:00
Michael Brown
f14af3d95c Protocol structure can now specify the default port. 2005-05-01 23:57:09 +00:00
Michael Brown
63482e4fe9 Made parse_url do more of the processing, to avoid duplicating parts of
nic.c in http.c
2005-05-01 19:10:04 +00:00
Michael Brown
17bb10479d Protocol names are x-slam and x-tftm 2005-05-01 15:50:08 +00:00
Michael Brown
6afffc0771 Updated to protocol API 2005-05-01 15:36:39 +00:00
Michael Brown
5c2e5557f0 Updated to protocol API 2005-05-01 15:26:44 +00:00
Michael Brown
1fdbbaa237 Removed obsolete prototypes. 2005-05-01 15:14:22 +00:00
Michael Brown
3af0af65a0 Updated to new protocol API, made to compile. 2005-05-01 15:08:39 +00:00
Michael Brown
2227a711fd umountall() handled by nfs.c's reset function 2005-05-01 15:08:19 +00:00
Michael Brown
d727e144c1 nfs prototypes no longer required. 2005-05-01 15:07:55 +00:00
Michael Brown
52b3c8babe Add INIT_RPC 2005-05-01 15:07:35 +00:00
Michael Brown
85d9eae44e Moved protocols to proto/ 2005-05-01 14:04:11 +00:00
Michael Brown
0cfcd91558 Abort immediately if no nameserver is present. 2005-05-01 13:59:34 +00:00
Michael Brown
bcedad4708 Add debugging for CNAME records.
Allow routines to be called by nmb.c
2005-05-01 11:30:26 +00:00
Michael Brown
3ae7a3d1f0 NMB packets are so similar to DNS packets; we may as well add NMB as a
name resolution method.
2005-05-01 11:10:17 +00:00
Michael Brown
e1d6f3a8ac Add NMB_RESOLVER 2005-05-01 10:58:49 +00:00
Michael Brown
89f4fe4a8a Do not include etherboot.h 2005-05-01 10:40:12 +00:00
Michael Brown
552f33c663 Always request DNS server. DHCP handling will be generalised in future. 2005-04-30 19:39:50 +00:00
Michael Brown
138c987738 Straightforward A record resolution now known working. 2005-04-30 19:38:51 +00:00
Michael Brown
3b59bf559c ttl is a uint32_t 2005-04-30 19:38:31 +00:00
Michael Brown
78cdb1da8b DNS resolver rewritten, moved to proto/dns.c 2005-04-30 14:50:33 +00:00
Michael Brown
d817e60d21 "dns_resolver" changed to "dns" 2005-04-30 14:49:41 +00:00
Michael Brown
167c26c92b tftp functions moved to proto/tftp.c 2005-04-30 14:46:49 +00:00
Michael Brown
5f45f14b5f tftp moved to separate file. 2005-04-30 14:46:18 +00:00
Michael Brown
06634dc386 Protocols get passed a pointer to the filename portion as well as just the
URL.
2005-04-30 14:45:51 +00:00
Michael Brown
5bec933c66 tftp prototypes moved to tftp.h 2005-04-30 14:45:33 +00:00
Michael Brown
95946c6f56 Added "proto" directory 2005-04-30 14:45:09 +00:00
Michael Brown
1644238813 Added debugging. 2005-04-30 14:41:37 +00:00
Michael Brown
6cd0fa5807 Added DNS resolver configuration option. 2005-04-30 14:39:21 +00:00
Michael Brown
0780ecf1b6 TFTP API changed. 2005-04-30 14:27:17 +00:00
Michael Brown
56825df041 loadkernel renamed to download_url, substantially restructured, and moved
to nic.c
2005-04-30 13:52:27 +00:00
Michael Brown
e68378fd62 loadkernel renamed to download_url and moved to nic.c 2005-04-30 13:51:49 +00:00
Michael Brown
332b40b986 loadkernel no longer exists; it is now download_url and lives in nic.c. 2005-04-30 13:51:18 +00:00
Michael Brown
903ddd9878 inet_aton doesn't overwrite the IP address unless it is valid. 2005-04-30 13:50:34 +00:00
Michael Brown
55ae308821 Protocols also take a pointer to a sockaddr_in. 2005-04-30 13:50:01 +00:00
Michael Brown
00b78f73a4 Use struct in_addr rather than just "in_addr".
Add struct sockaddr_in.
2005-04-30 13:49:28 +00:00
Michael Brown
70567c51a2 Moved strtoul prototype into stdlib.h for consistency 2005-04-30 13:48:48 +00:00
Michael Brown
044b20385b parse_url() is void. 2005-04-30 13:24:26 +00:00
Michael Brown
65dc273d78 First version 2005-04-29 13:26:31 +00:00
Michael Brown
e4131ebb84 First version 2005-04-29 13:17:25 +00:00
Michael Brown
754cef922d First version 2005-04-28 13:47:36 +00:00
Michael Brown
c1253d2219 Much, much smaller. :) 2005-04-28 13:20:02 +00:00
Michael Brown
6791aeb024 First version: far too large (408 bytes!!!) 2005-04-28 12:12:11 +00:00
Michael Brown
282b6f1a1a isa.c uses the new table infrastructure. 2005-04-27 12:24:38 +00:00
Michael Brown
f37e0a06d7 dev.c uses the new tables infrastructure. 2005-04-27 12:20:54 +00:00
Michael Brown
c08671e5fc Missing include 2005-04-27 12:17:09 +00:00
Michael Brown
b9e72856b6 Post-relocation functions use the generic table mechanism. 2005-04-27 12:10:24 +00:00
Michael Brown
d2d4978f4f Use PREFIX_OBJECT to give the init_fn table variables meaningful names. 2005-04-27 12:08:52 +00:00
Michael Brown
c8fc121890 Special handling for symbols of the form "xxx_end", to make table end
markers appear before the symbols that immediately follow the table.
2005-04-27 12:08:13 +00:00
Michael Brown
1ddcdb0524 Added PREFIX_OBJECT() function to be able to easily prepend any string
to the object name in order to generate e.g. per-file variables.
2005-04-27 11:59:37 +00:00
Michael Brown
3e5bf5fb06 console.c uses the generic table mechanism 2005-04-27 11:38:43 +00:00
Michael Brown
69f09ebdd8 Linker no longer provides start and end symbols for each table; these
markers are now static labels within the objects that refer to them.
2005-04-27 11:27:38 +00:00
Michael Brown
241f426a85 Use new generic tables infrastructure 2005-04-27 11:25:21 +00:00
Michael Brown
b9c9cee8a3 Added a generalised table infrastructure, so that we don't have to
keep adding new tables to each architecture's linker scripts.
2005-04-27 11:22:46 +00:00
Michael Brown
81e4755106 Produce a sorted list of all local symbols in the map file. 2005-04-27 10:55:12 +00:00
Michael Brown
d6930e6e40 Use symbol size as a third index, mainly so that zero-length symbols
(e.g. section start indicators) show up before the symbols they're
indicating the start of.
2005-04-27 10:54:33 +00:00
Michael Brown
ac01cf4997 First version 2005-04-27 10:40:59 +00:00
Michael Brown
fda36a0c1a Added back in the actual call to load(). 2005-04-26 17:12:07 +00:00
Michael Brown
e301acc0d4 Add isapnp_max_csn to reduce scan time. 2005-04-26 14:07:30 +00:00
Michael Brown
3dbdeb588f ISA bus driver updated to report devices as present only if a driver
thinks they are.
Other bus drivers modified for consistency.
2005-04-26 12:30:14 +00:00
Michael Brown
3a7967a38a PCI_DRIVER changed 2005-04-26 12:20:05 +00:00
Michael Brown
7e534b585f Automatically updated with
perl -pi -0777 -e 's/^static struct \w+_driver (\w+) =\s*(\w+_DRIVER \()/${2} ${1},/msg' *.c
2005-04-26 12:19:39 +00:00
Michael Brown
fcee25024f BIOS floppy handling code moved to where it will really live. 2005-04-25 19:29:55 +00:00
Michael Brown
10b7b1a61f Added arch/i386/drivers/disk 2005-04-25 19:29:02 +00:00
Michael Brown
f5dde85e16 Improved debug messages 2005-04-25 19:28:49 +00:00
Michael Brown
8cd0693396 s/{name,describe}/{name,describe}_device/ 2005-04-25 19:27:53 +00:00
Michael Brown
3b14360f5c Renamed describe to describe_device for consistency 2005-04-25 19:27:25 +00:00
Michael Brown
99b857559b Added "name" field to struct bus_driver 2005-04-25 19:26:33 +00:00
Michael Brown
d281996ef8 Added DBG2 2005-04-25 19:25:45 +00:00
Michael Brown
5bace628ae Added "name" field to bus structure. 2005-04-25 18:54:15 +00:00
Michael Brown
f972f256e6 Allow for multiple debug levels 2005-04-25 16:28:07 +00:00
Michael Brown
698f86f25a Prevent hundreds of errors from "make symcheck". The prefix exit path
mechanism has changed anyway, and so must be rewritten, but at least doing
this makes the output of "make symcheck" more legible.
2005-04-23 14:57:53 +00:00
Michael Brown
d94cb57143 Fixed to properly catch multiply defined symbols. 2005-04-23 14:54:30 +00:00
Michael Brown
9dc7ebc152 Symbol errors caught by symcheck.pl 2005-04-23 14:45:37 +00:00
Michael Brown
2da3b7a38f Added "make symcheck" 2005-04-23 14:41:38 +00:00
Michael Brown
4e5f10790b First working version 2005-04-23 14:41:15 +00:00
Michael Brown
e59607bcb1 Should be an <= comparison, not a < comparison.
(Detected using "make symcheck" :)
2005-04-23 14:34:00 +00:00
Michael Brown
dbea213c27 Coerced into compiling. 2005-04-22 16:40:10 +00:00
Michael Brown
db0e056abd Make it easier to comment out individual SRC directories when things
are broken...  :)
2005-04-22 16:36:44 +00:00
Michael Brown
e8f364551a Typo 2005-04-22 16:32:29 +00:00
Michael Brown
08ff0c1d30 Ensured that all drivers call xxx_fill_nic(). 2005-04-22 16:31:52 +00:00
Michael Brown
e7c177cc33 Coerced into compiling 2005-04-22 16:27:56 +00:00
Michael Brown
628444af86 Updated to new device probing API 2005-04-22 16:24:21 +00:00
Michael Brown
49fe02e501 Coerced into compiling 2005-04-22 16:09:54 +00:00
Michael Brown
ee88aacdb6 Coerced into compiling. 2005-04-22 16:07:48 +00:00
Michael Brown
fba7f011d2 Coerced into actually compiling. 2005-04-22 16:06:46 +00:00
Michael Brown
67c9385577 Fields in struct pci_device slightly changed. 2005-04-22 16:05:05 +00:00
Michael Brown
84f43ea9cf isapnp_read_port can be set directly, rather than via a function call. 2005-04-22 16:03:25 +00:00
Michael Brown
b18e419a81 Updated debug messages 2005-04-22 16:02:12 +00:00
Michael Brown
7bd88df08d Documented where to get hold of the datasheet. 2005-04-22 16:01:51 +00:00
Michael Brown
091a579be1 Updated to new API. 2005-04-22 16:00:51 +00:00
Michael Brown
db3a44b66d Debug message fixes. 2005-04-22 15:56:57 +00:00
Michael Brown
139d0fe481 Updated to new bus API, and improved using the 3c5x9 reference manual. 2005-04-22 15:55:13 +00:00
Michael Brown
441ee4f8f3 Need to leave structure zeroed 2005-04-22 15:33:35 +00:00
Michael Brown
8af80c6b10 disable() is a void 2005-04-22 12:07:22 +00:00
Michael Brown
feb652709d Must not go beyond end of driver's probe list. 2005-04-22 12:02:34 +00:00
Michael Brown
e596c42ade Updated to current API. 2005-04-22 11:57:35 +00:00
Michael Brown
329ccfdc21 Updated to new API. 2005-04-22 11:56:49 +00:00
Michael Brown
1e156f537b Consistency 2005-04-22 11:56:27 +00:00
Michael Brown
0e2dc7aa8e Updated to new device API. 2005-04-22 11:29:40 +00:00
Michael Brown
3e8c2aa78b Fix up fill_mca_nic. 2005-04-22 02:47:39 +00:00
Michael Brown
97346a75f7 Added friendly enable/disable functions 2005-04-22 02:43:24 +00:00
Michael Brown
924143661a Updated all common buses to new API. 2005-04-22 02:28:16 +00:00
Michael Brown
4e3ebba8e6 Revert debug message prefix back to none, since we sometimes want to use
DBG() several times to build up a line.
2005-04-22 02:27:59 +00:00
Michael Brown
614c39a8a4 Automatically updated with the program
#!/usr/bin/perl -w -pi -0777

use strict;

( my $type ) = /find_(\w+?)_boot_device/ or die "Could not find type\n";

( my $disable ) = /\.disable\s*=\s*(\w+)/ or die "Could not locate disable\n";

s/(${disable}\s*\(\s*struct\s+nic\s+\*nic)(\s*\)\s*\{)(\s*)/${1}, struct ${type}_device \*${type} __unused${2}${3}nic_disable ( nic );${3}/s;

s/(${disable}\s*\(\s*struct\s+nic\s+\*nic)(\s*\)\s*;)/${1}, struct ${type}_device \*${type}${2}/g;

s/^\s*.disable\s*=\s*${disable}\s*,\s*?$//m;

s/(_probe\s*\(\s*)struct\s+dev\s+\*dev/${1}struct nic \*nic/g;

s/^\s*struct\s+nic\s+\*nic\s*=\s*nic_device\s*\(\s*dev\s*\)\s*;\s*?$//m;

s/^(\s*)(nic->(ioaddr|irqno)\s*=\s*${type})/${1}${type}_fill_nic ( nic, ${type} );\n${1}${2}/m;
2005-04-21 19:20:39 +00:00
Michael Brown
cfe3a663af Tweaked API to minimise changes to existing drivers even further. 2005-04-21 19:04:53 +00:00
Michael Brown
a713813596 Updated to current API 2005-04-21 18:31:31 +00:00
Michael Brown
8153a0fa7e Made macros more like the previous driver API, to minimise required
changes.
2005-04-21 18:30:12 +00:00
Michael Brown
98ff29345e Created a bus/device API that allows for the ROM prefix to specify an
initial device, and will also allow for e.g. a device menu to be presented
to the user.
2005-04-21 18:18:29 +00:00
Michael Brown
905ca1f21d Force a standard format upon debug messages. 2005-04-21 18:16:54 +00:00
Michael Brown
c0239ebb03 Typo 2005-04-21 18:15:31 +00:00
Michael Brown
928c388c6f bswap_16() exists; no need to use __bswap_16() 2005-04-21 16:38:28 +00:00
Michael Brown
a95b458660 Trying to create a bus API. 2005-04-20 00:29:12 +00:00
Michael Brown
e74bbaeca0 First versions 2005-04-19 14:17:42 +00:00
Michael Brown
2c7d72e11e Moved floppy.c to i386 arch, since it's i386-specific. 2005-04-18 18:56:18 +00:00
Michael Brown
e3bb65c17f Added remaining bus functions. 2005-04-18 18:54:27 +00:00
Michael Brown
7af89ccf33 Code fixed to operate correctly. 2005-04-18 15:48:20 +00:00
Michael Brown
400fd74897 Extracted from firmware/pcbios/bios.c 2005-04-18 15:39:02 +00:00
Michael Brown
d3ce66a301 Added arch/i386/drivers/bus 2005-04-18 15:37:17 +00:00
Michael Brown
c245ab75ad Moved disk functions to drivers/bus/bios_disks.c 2005-04-18 15:35:39 +00:00
Michael Brown
641596e6ba blib definition moved to Makefile.housekeeping. 2005-04-18 14:40:57 +00:00
Michael Brown
e02c699a05 Fix endianness of dhcp device id structure. 2005-04-18 14:38:51 +00:00
Michael Brown
5abc43a320 "make bin/xxx DEBUG=yyy,zzz" now works seemingly perfectly. :) 2005-04-18 14:16:13 +00:00
Michael Brown
1cdb68d116 "make xxx DEBUG=yyy,zzz" now working, but the "up to date" message is
getting suppressed.  :(
2005-04-18 13:55:57 +00:00
Michael Brown
a245c93417 Be nice to emacs 2005-04-18 12:59:50 +00:00
Michael Brown
9f5aca032c Ignore buildserial-related files. 2005-04-18 12:55:45 +00:00
Michael Brown
435fa2003b Note to self: save files before checking in. 2005-04-18 12:54:27 +00:00
Michael Brown
451ea7ffc5 Added warning about not using Config for single-object options. 2005-04-18 12:53:39 +00:00
Michael Brown
ffe77e0683 This is, of course, the neater and much more obvious way to do it. 2005-04-18 12:45:31 +00:00
Michael Brown
cf79681b80 Fix BUILD_SERIAL.
Change from using #if to #ifdef, since #if can't cope with string
constants.
2005-04-18 12:43:18 +00:00
Michael Brown
85b00c4b72 Move RELOCATE into config.h
Move ISA probe address logic from config.c into isa.c, create header file
config/isa.h.
2005-04-18 11:00:42 +00:00
Michael Brown
3c55caf24c Moved console options to config.h
Removed CONFIG_{PCI,ISA,PCMCIA}, since buses are now always compiled and
linked in only if required by the individual driver objects.
2005-04-18 10:19:36 +00:00