Michael Brown
824d6ffa7f
Header rearrangement.
...
I want to get to the point where any header in include/ reflects a
standard user-level header (e.g. a POSIX header), while everything that's
specific to gPXE lives in include/gpxe/. Headers that reflect a Linux
header (e.g. if_ether.h) should also be in include/gpxe/, with the same
name as the Linux header and, preferably, the same names used for the
definitions.
2006-04-24 15:42:49 +00:00
Michael Brown
53f78346bf
Network API now allows for multiple network devices (although the
...
implementation allows for only one, and does so without compromising on
the efficiency of static allocation).
Link-layer protocols are cleanly separated from the device drivers.
Network-layer protocols are cleanly separated from individual network
devices.
Link-layer and network-layer protocols are cleanly separated from each
other.
2006-04-24 15:38:53 +00:00
Michael Brown
fdc2ee79db
Network API now allows for multiple network devices (although the
...
implementation allows for only one, and does so without compromising on
the efficiency of static allocation).
Link-layer protocols are cleanly separated from the device drivers.
Network-layer protocols are cleanly separated from individual network
devices.
Link-layer and network-layer protocols are cleanly separated from each
other.
2006-04-24 15:33:06 +00:00
Michael Brown
0d97f0d482
Obviate uip_init(); our bss is zeroed at startup already.
2006-04-24 15:31:02 +00:00
Michael Brown
5423f876fb
Don't bother poisoning lists; it costs code size.
2006-04-24 15:28:56 +00:00
Michael Brown
1d7cfd5acf
Prototype now clashes with the macro in arch/i386.
2006-04-24 15:27:58 +00:00
Michael Brown
510ccb2900
Added __constant_memcpy() based on version in Linux's string.h.
...
Added memswap().
2006-04-24 15:25:25 +00:00
Michael Brown
b6b6a0b5fe
First draft of a dynamic memory allocator
2006-04-24 15:21:18 +00:00
Michael Brown
e323d1a29b
Add "net" directory.
...
Avoid including debug information in bin/%.s output, since the whole
point is to have easy-to-read assembler.
2006-04-24 15:20:01 +00:00
Michael Brown
6209bd873a
First sketch of a new net device API.
2006-04-19 12:07:46 +00:00
Michael Brown
bdc8190c8d
Remove the concept of the media-independent link-layer header and replace
...
it with metadata in the pkb structure. This is required since UNDI will
want to be able to parse the link-layer header without destroying it.
2006-04-19 11:32:24 +00:00
Michael Brown
b89ccac02d
Updated to remove obsolete constants
2006-04-19 02:11:56 +00:00
Michael Brown
3ca7dbe7ca
Added the concept of a network interface (a network-layer concept) as
...
separate from a network device (a link-layer concept).
2006-04-19 02:09:08 +00:00
Michael Brown
d65a66606b
Typo
2006-04-19 02:08:27 +00:00
Michael Brown
2558439ce4
First version, based on include/linux/list.h, stripped down to just
...
those functions we are likely to need.
Still need to come up with a way of getting the linker to create
static lists using this linking mechanism.
2006-04-19 02:05:50 +00:00
Michael Brown
d24042f0bb
Update now that if_ether.h has moved.
2006-04-19 01:56:10 +00:00
Michael Brown
4f3581e99c
Added ENOENT and EAFNOSUPPORT
2006-04-19 01:54:53 +00:00
Michael Brown
ab139ceda9
Added pkb_unput() and pkb_len().
2006-04-19 01:54:24 +00:00
Michael Brown
744b895077
Make flags more efficient.
...
Add 'raw' net_addr facility (needed for ARP).
2006-04-19 01:53:49 +00:00
Michael Brown
49f933fbc3
Moved if_ether.h and if_arp.h to include/gpxe, for consistency with Linux
...
kernel.
Removed obsolete struct arprequest from if_arp.h and put it in nic.c so
that nic.c will still compile. ARP will very shortly be handled by
net/arp.c instead.
2006-04-19 01:52:41 +00:00
Michael Brown
9f67ad9db0
First version. ARP protocol independence in less than the size of uIP's
...
Ethernet-and-IPv4-only ARP module. :)
2006-04-19 01:43:56 +00:00
Michael Brown
363905e1b6
Add missing prototype
2006-04-19 01:42:33 +00:00
Michael Brown
02d342f38f
First version
2006-04-19 01:42:03 +00:00
Michael Brown
0b561ce972
First sketch
2006-04-18 17:52:51 +00:00
Michael Brown
42b659f926
First version
2006-04-18 17:49:51 +00:00
Michael Brown
0864a73347
First version, based on the concepts in linux/skbuff.h
2006-04-18 17:47:01 +00:00
Michael Brown
1a60444fe4
Added netmask and gateway global options.
...
Added iSCSI testing.
2006-04-05 11:46:18 +00:00
Michael Brown
6446767258
First draft of iSCSI protocol support. Is capable of retrieving disk
...
blocks.
2006-04-05 11:44:56 +00:00
Michael Brown
9ea782d339
Make pcap_inject non-static, so that its prototype doesn't conflict with
...
the real pcap_inject in the case where we do have it.
2006-04-05 11:44:05 +00:00
Michael Brown
c8a7133e9f
Added tcp_buffer, to give applications a zero-cost place to build data to
...
be transmitted.
2006-04-05 11:43:01 +00:00
Michael Brown
988bb50979
Added set_netmask() and set_gateway()
2006-04-05 11:41:15 +00:00
Michael Brown
ee058362fa
We don't need to know anything about ARP
2006-03-24 17:39:05 +00:00
Michael Brown
90892d5ec7
Allow specifying the local IP address via --from.
2006-03-24 17:28:40 +00:00
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