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
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
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
5d28bae0f1
Fix up building with gcc 4.0.1 / gas 2.16.91
2006-01-17 01:47:41 +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
7d8adc25bc
In multicast operation, the client still has a unicast local port.
2005-06-02 10:15:40 +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
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
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
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
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
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
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
8becf0f65f
Rearranging PXE header files
2005-05-23 22:45:48 +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
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
4e87543c74
Synced across updates from Etherboot 5.4 tree
2005-05-19 16:47:19 +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
0e921cdd9e
More doxygen docs
2005-05-18 15:28:33 +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
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
f888bd589d
doxygen doesn't allow us to do the --include compiler.h trick...
2005-05-18 14:26:35 +00:00
Michael Brown
7f1901860d
Error numbers moved to errno.h
2005-05-18 09:55:38 +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
40c7b127aa
Added const to fill_buffer
2005-05-17 14:34:46 +00:00
Michael Brown
9c832a6a69
First version
2005-05-17 13:41:00 +00:00
Michael Brown
7205f0846c
Heap function prototypes moved to heap.h
2005-05-17 13:39:27 +00:00
Michael Brown
0571dcdb05
Added print_images() and autoload().
2005-05-17 13:38:24 +00:00
Michael Brown
3ce6504f14
Use shared symbols for heap_ptr and heap_end
2005-05-17 13:35:43 +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
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
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
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
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
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
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
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
68e90c75b6
Removed spurious semicolon
2005-05-03 09:02:24 +00:00
Michael Brown
60b82eb5cd
Moved definition of __shared into compiler.h
2005-05-02 16:21:52 +00:00
Michael Brown
734d2e9f2d
First version
2005-05-02 14:43:15 +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
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
1fdbbaa237
Removed obsolete prototypes.
2005-05-01 15:14:22 +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
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
89f4fe4a8a
Do not include etherboot.h
2005-05-01 10:40:12 +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
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
1644238813
Added debugging.
2005-04-30 14:41:37 +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
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
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
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
d2d4978f4f
Use PREFIX_OBJECT to give the init_fn table variables meaningful names.
2005-04-27 12:08:52 +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
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
fda36a0c1a
Added back in the actual call to load().
2005-04-26 17:12:07 +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
fcee25024f
BIOS floppy handling code moved to where it will really live.
2005-04-25 19:29:55 +00:00
Michael Brown
3b14360f5c
Renamed describe to describe_device for consistency
2005-04-25 19:27:25 +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
e59607bcb1
Should be an <= comparison, not a < comparison.
...
(Detected using "make symcheck" :)
2005-04-23 14:34:00 +00:00
Michael Brown
1e156f537b
Consistency
2005-04-22 11:56:27 +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
cfe3a663af
Tweaked API to minimise changes to existing drivers even further.
2005-04-21 19:04:53 +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
a95b458660
Trying to create a bus API.
2005-04-20 00:29:12 +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
a6057b4cbc
Need stddef.h to get size_t
2005-04-17 10:48:56 +00:00
Michael Brown
f08516791e
printf and sprintf now defined in vsprintf.h, drag in console.h to get
...
putchar() as well.
2005-04-17 10:45:13 +00:00
Michael Brown
664ffea697
Gave vsprintf.c its own header file, and made console.h include it.
2005-04-17 10:44:26 +00:00
Michael Brown
063140864e
Automatically drag in console.h if DBG() is being defined as printf().
2005-04-17 10:25:06 +00:00
Michael Brown
b7c55c3951
Avoid signed/unsigned warnings by explicitly making PCI_{BUS,DEV,FUNC}
...
all return unsigned quantities.
2005-04-16 17:09:52 +00:00
Michael Brown
57070797e3
Optimise ISAPNP_READ_PORT_STEP
2005-04-16 14:50:41 +00:00
Michael Brown
c659a54f70
Now known to work with an old Adaptec 1505 that I found lying around.
2005-04-16 14:41:04 +00:00
Michael Brown
e29be5e342
Speed up PCI bus scanning by skipping fns 1-7 if fn 0 is not present.
2005-04-16 11:42:56 +00:00
Michael Brown
6e5a3858bf
Read number of PCI buses returned by BIOS so that we can scan more
...
quickly.
2005-04-16 11:16:31 +00:00
Michael Brown
9f02376409
Make isa_probe_addr a simple integer rather than a struct, to facilitate
...
specification of ISA_PROBE_ADDRS.
2005-04-16 09:30:48 +00:00
Michael Brown
e6e43a2f2f
We now correctly use logical devices.
2005-04-15 15:37:39 +00:00
Michael Brown
8e375c638d
Canonicalised tag names
2005-04-15 15:20:00 +00:00
Michael Brown
05986a848f
Move the concept of logical devices inside the struct isapnp_device.
2005-04-15 15:16:03 +00:00
Michael Brown
888277d2d1
Read current ioaddr and irqno from PnP registers.
2005-04-15 14:27:49 +00:00
Michael Brown
85dd4fd8d6
Activation code now generalised as well.
2005-04-15 13:07:25 +00:00
Michael Brown
1980018b8b
Cleaned up isolation protocol.
2005-04-15 12:25:17 +00:00
Michael Brown
773d66e6dc
Typo
2005-04-14 19:10:17 +00:00
Michael Brown
9eac705dd2
Added a generalised ISA device-probing mechanism.
2005-04-14 18:46:43 +00:00
Michael Brown
2e309f9eec
Fix BOOT_DRIVER to assign unique and meaningful name to structure.
2005-04-14 14:30:03 +00:00
Michael Brown
9183f2412e
bus header files must include dev.h to get struct dev.
2005-04-14 14:26:28 +00:00
Michael Brown
104880ca19
Tweak API to allow separation of bus-scanning and device-probing logic.
2005-04-14 13:44:07 +00:00
Michael Brown
ce8dea0dff
Separate out bus-scanning and device-probing logic.
2005-04-14 13:33:03 +00:00
Michael Brown
1f26be34b8
Allow for multiple BOOT_DRIVER()s in the same file, provided that they
...
have different probe functions.
2005-04-14 12:02:19 +00:00
Michael Brown
bc85cf756d
We need the ISA product ID mask available separately for 3c509.c.
2005-04-14 11:47:30 +00:00
Michael Brown
dcd573afcb
Automatically create DBG() macro based on debug_<object> macro.
2005-04-14 11:35:45 +00:00
Michael Brown
75d864432c
Use the magic of common symbols to allow struct dev to effectively grow at
...
link time to accommodate whatever bus objects are included.
2005-04-14 10:10:54 +00:00
Michael Brown
200b39a645
Extraced from 3c509.c
2005-04-13 12:45:38 +00:00
Michael Brown
a4f1a058a4
Add EISA as a bus type.
2005-04-13 12:20:59 +00:00