david/ipxe
Archived
1
0
Commit Graph

666 Commits

Author SHA1 Message Date
Michael Brown
5c72d9c4e0 Print image physical location in registration message. 2007-01-12 16:20:51 +00:00
Michael Brown
9952df9b52 Add "dhcp" command 2007-01-12 09:53:28 +00:00
Michael Brown
e2c0055e23 Let ifmgmt.c take care of calling efree(), since it's the once which
took out the contract to eventually call efree() when it called fetch().

Maintain the most recently loaded image at the start of the list, so that
imgautoselect() will pick it.
2007-01-12 09:46:10 +00:00
Michael Brown
67aedf34fa Use systematic names for XXX_IMAGE.
Add scripts as an image format (since it's trivial to do).
2007-01-12 09:00:48 +00:00
Michael Brown
eba3609e7f Add debug message 2007-01-12 08:57:51 +00:00
Michael Brown
5162f30028 Ignore comment lines.
Avoid returning errors for comments and empty lines.
2007-01-12 08:56:48 +00:00
Michael Brown
475d6d1f7c fetch() now knows nothing about struct image; it simply loads a file and
returns the allocated buffer.
2007-01-12 08:02:27 +00:00
Michael Brown
742f242863 Add free_image 2007-01-12 06:26:59 +00:00
Michael Brown
9817f93094 Add basic "fetch" and "imgstat" commands. 2007-01-12 06:05:27 +00:00
Michael Brown
b9fea9cbac Added IMAGE_LOADED flag and find_image() 2007-01-12 06:03:02 +00:00
Michael Brown
f15482d85f Added basename() to make automatically naming images easier. 2007-01-12 05:24:51 +00:00
Michael Brown
29dadc5ec6 Build automatically expanding buffers from struct buffer and erealloc(). 2007-01-12 03:51:04 +00:00
Michael Brown
6c894c2a2e Fix typo 2007-01-12 01:37:38 +00:00
Michael Brown
7bf94b5ad6 Allow for named images. 2007-01-11 23:45:18 +00:00
Michael Brown
f59ad50504 Provide registration mechanism for loaded images, so that we can e.g.
refer to them by name from the command line, or build them into a
multiboot module list.

Use setting image->type to disambiguate between "not my image" and "bad
image"; this avoids relying on specific values of the error code.
2007-01-11 23:43:29 +00:00
Michael Brown
4fc9333159 Move include/image.h to include/gpxe/image.h 2007-01-11 16:04:36 +00:00
Michael Brown
d9204ef676 Use physical address in debug messages; they make more sense to read. 2007-01-11 15:08:58 +00:00
Michael Brown
3634e705b7 Remove osloader.c and replace with a prep_segment() that uses userptr_t
and get_memmap() in image/segment.c
2007-01-11 14:32:26 +00:00
Michael Brown
fbfed96965 buffer.c should be using copy_{to,from}_user, rather than
copy_{to,from}_phys.
2007-01-11 05:42:06 +00:00
Michael Brown
c0ef730ec4 Fix bug in buffer.c, add buffer mini-unit test. 2007-01-11 04:46:41 +00:00
Michael Brown
e2dcd05b67 Update buffer-handling code to enable expandable buffers. 2007-01-11 03:50:47 +00:00
Michael Brown
bb2024c6d6 Move include/buffer.h to include/gpxe/buffer.h 2007-01-11 01:47:26 +00:00
Michael Brown
d45c5e7ce7 Add "route" command (which currently only displays the routing table; it
can't modify it).
2007-01-10 20:51:14 +00:00
Michael Brown
77bb7b13a7 Having forced __table() to natural structure alignment, it now seems
that we *can* place arrays in tables, which means we can force the
order within a table without having to resort to explicitly numbered
sections on everything.
2007-01-10 05:08:05 +00:00
Michael Brown
dad5274522 Add "name" field to struct device to allow human-readable hardware device
names.

Add "dev" pointer in struct net_device to tie network interfaces back to a
hardware device.

Force natural alignment of data types in __table() macros.  This seems to
prevent gcc from taking the unilateral decision to occasionally increase
their alignment (which screws up the table packing).
2007-01-10 04:22:09 +00:00
Michael Brown
55e590ab3a Move header file for usr/autoboot.c to include/usr 2007-01-10 02:03:20 +00:00
Michael Brown
d24b80acf2 Added network interface management commands 2007-01-10 01:55:07 +00:00
Michael Brown
7b9617f5df Add device to hierarchy before calling the driver's probe() function; this
way everything remains consistent if the probe() ends up creating child
devices.
2007-01-08 01:29:51 +00:00
Michael Brown
0063725d28 Minimal hotplug support: provide a facility for notifying persistent
reference holders that their reference is about to become invalid.
2007-01-04 03:08:16 +00:00
Michael Brown
2494625702 Added auto-colourising DBGC() macro 2006-12-29 03:05:21 +00:00
Michael Brown
b6def29f2b Keep running the main processing loop while waiting for input. 2006-12-27 22:59:40 +00:00
Michael Brown
73e3e02367 Fix prototype of random() and move to stdlib.h 2006-12-22 01:44:51 +00:00
Michael Brown
fbc7b4dfa8 Add iSCSI initiator IQN as a setting 2006-12-21 16:08:37 +00:00
Michael Brown
839d425c6e Added missing header 2006-12-20 23:43:44 +00:00
Michael Brown
ae728f8d23 Some key sequences seem to end with a tilde 2006-12-20 22:12:25 +00:00
Michael Brown
791c7d3bf4 Added code to interpret ANSI keypress sequences into KEY_XXX constants. 2006-12-20 21:56:50 +00:00
Michael Brown
c21502acad No longer needed 2006-12-20 07:13:46 +00:00
Michael Brown
84202d89f0 Split the (quick hack) boot logic out from main.c to autoboot.c, add a
"boot" command to attempt booting from within the command shell, fall back
to shell if boot fails for any reason.
2006-12-20 07:04:08 +00:00
Michael Brown
8f9336e0c1 Add "config" command to access config UI 2006-12-20 05:37:33 +00:00
Michael Brown
2b97d2ebc5 8-bit integers are 1 byte long, not 8... 2006-12-20 05:04:17 +00:00
Michael Brown
b93ff48173 Added descriptive text for settings and setting types, and display it in
the option config UI.
2006-12-20 04:58:26 +00:00
Michael Brown
35edecac34 Move {show,set,clear}_setting() to {show,set,clear}_named_setting().
Introduce new {show,set,clear}_setting() that take a struct setting *
rather than a const char *.

set_setting() handles calling clear_setting() when appropriate, so that
individual setting types don't have to check for empty strings.
2006-12-20 04:20:13 +00:00
Michael Brown
7766e34ed1 Split strerror() out from errno.c 2006-12-20 03:49:36 +00:00
Michael Brown
84a2b886e1 Split error-message table portions of errno.h out to gpxe/errortab.h 2006-12-20 03:40:48 +00:00
Michael Brown
4f506328ad Use -ENOSPC rather than -ENOMEM, to distinguish the cases "generic out of
memory" and "no space left for DHCP options"
2006-12-20 03:33:37 +00:00
Michael Brown
637a891264 Fix prototype of sleep() and move it to unistd.h 2006-12-20 03:14:59 +00:00
Michael Brown
ec5789bf0c Select required commands via config.h 2006-12-20 00:39:06 +00:00
Michael Brown
38ad706b08 Use new minimal shell 2006-12-20 00:26:01 +00:00
Michael Brown
19e1d674d3 Catch attempts to print NULL strings 2006-12-19 22:33:42 +00:00
Michael Brown
70d20c4e7a Use common symbols to avoid dragging in getopt.o unless a getopt-using
command is linked in.
2006-12-19 16:27:15 +00:00
Michael Brown
1cd45decc4 Added support for interpreting ANSI escape sequences on behalf of
non-ANSI-capable consoles.
2006-12-18 00:01:30 +00:00
Michael Brown
007ca97f25 Added clear_setting() 2006-12-12 15:49:46 +00:00
Michael Brown
0a26cd2933 Cope with system(""). 2006-12-08 17:07:12 +00:00
Michael Brown
69b9048e1a Added "priority" and "root-path" options 2006-12-08 16:30:14 +00:00
Michael Brown
a77b32aaf6 D'oh d'oh d'oh d'oh d'oh d'oh d'oh d'oh d'oh 2006-12-08 03:07:15 +00:00
Michael Brown
f3d817d512 Added execv() and system(). 2006-12-08 01:23:11 +00:00
Michael Brown
496563071d Added strdup() 2006-12-08 00:34:47 +00:00
Michael Brown
be0cd1cddd Added a functional version of getopt() and getopt_long(), ready for use
in our commands.
2006-12-07 03:54:57 +00:00
Michael Brown
2863d1a1de inet_aton() has a non-traditional return value 2006-12-06 20:44:29 +00:00
Michael Brown
d041d74054 Tied NVO commands into the human-interactable settings code that I
completely forgot I'd written ages ago.
2006-12-05 02:40:03 +00:00
Michael Brown
16b81e442f Added more debug messages 2006-12-04 23:47:44 +00:00
Michael Brown
d9f32726b4 Added quick and dirty commands for testing the new NVO code. 2006-12-04 23:40:35 +00:00
Michael Brown
ab4e1dba3f Added nvo_save() 2006-12-04 22:04:10 +00:00
Michael Brown
cc9bcb99a0 Add the concept of a fragment list for non-volatile stored options. 2006-12-04 21:46:13 +00:00
Michael Brown
946967f09c Abstracted out part of the concept of an SPI device to a generalised NVS
device.

Separated the mechanisms of non-volatile storage access and non-volatile
stored options.
2006-12-04 18:23:06 +00:00
Michael Brown
4cd56820ea Basic non-volatile storage support 2006-11-29 02:41:08 +00:00
Michael Brown
c4677c7e73 Implemented realloc(), and changed the semantics of malloc(0) to allow
for realloc(0) being a valid way to free memory.
2006-11-24 16:51:18 +00:00
Michael Brown
6a18721ce8 Fixed off-by-one error 2006-11-22 04:54:17 +00:00
Michael Brown
ea97fe42dd Note to self: do not write code late at night 2006-11-15 04:16:26 +00:00
Michael Brown
5753f2c58b May as well add octal support to strtoul() 2006-11-15 02:57:24 +00:00
Michael Brown
bbfb2e02fd Fixed endp bug in strtoul() 2006-11-15 02:54:28 +00:00
Michael Brown
65ff5357f1 Extend strtoul() to cope with hex as well as decimal. Doesn't cope
with octal yet, but we can probably live without that.
2006-11-15 02:52:06 +00:00
Michael Brown
88e38fa148 We don't actually have a stdio.h header file. Our printf() functions are
defined in vsprintf.h.  (This may change, since vsprintf.h is a
non-standard name, but for now it's the one to use.)

There should be no need to include vsprintf.h just for DBG() statements,
since include/compiler.h forces it in for a debug build anyway.
2006-09-27 10:58:14 +00:00
Marty Connor
6ac78f6aff added stdio.h to includes for DBG compilation 2006-09-27 05:57:06 +00:00
Marty Connor
1da4faa896 include stdio.h to suppress printf warning, general warnings fixups 2006-09-27 04:04:55 +00:00
Michael Brown
1a944a894e Killed 2006-09-18 21:57:59 +00:00
Michael Brown
2f60aa42e7 Killed 2006-09-18 21:55:27 +00:00
Marty Connor
be0b19a690 commented out contents of core/nic.c, which should now be obsolete. 2006-09-18 15:08:08 +00:00
Michael Brown
69d2261016 Check that serial port init actually happens 2006-09-01 00:26:32 +00:00
Michael Brown
66dcd22f61 Added debug to catch initialisation failures 2006-09-01 00:19:09 +00:00
Michael Brown
c399e88aa3 Hopefully fix gcc3 build issue 2006-08-30 13:55:52 +00:00
Michael Brown
22511400c7 Added generic function for calculating ACPI table checksum 2006-08-27 22:02:08 +00:00
Michael Brown
27ba2d7527 Take out unused cleanup() function so that we can remove the link
dependency on dev.o.
2006-08-14 22:52:35 +00:00
Michael Brown
dbf3482ef5 Removed obsolete print_config() 2006-08-14 22:45:22 +00:00
Michael Brown
97439cb6eb Kill off poll_interruptions(); it is lethal when we're acting as a PXE
stack or INT 13 emulator etc.
2006-08-14 22:29:51 +00:00
Michael Brown
3c35a0b16d Added cmdl_show proof-of-concept 2006-08-11 18:40:27 +00:00
Michael Brown
dd9399f527 Added "hostname" and "ip" as sample settings 2006-08-11 18:29:20 +00:00
Michael Brown
fe774fe356 Added ipv4 configuration type 2006-08-11 18:22:41 +00:00
Michael Brown
7029fb8eff Add string configuration type 2006-08-11 18:16:57 +00:00
Michael Brown
db46972349 Added basic infrastructure for manipulating settings. 2006-08-11 18:00:22 +00:00
Michael Brown
0dd0a8366e Removed obsolete line merged in with the cmdline stuff 2006-08-09 03:22:29 +00:00
Michael Brown
56c995ff60 Aborted 2006-08-09 02:37:05 +00:00
Marty Connor
41af7457a8 Merge of Fredrik Hultin command_line 2006-08-09 02:30:35 +00:00
Michael Brown
6e3e5efaed Accept '%i' as a synonym for '%d'. 2006-07-25 14:33:20 +00:00
Michael Brown
e74e20cb55 Remove the static IP address hack from netdevice.c, and change the
default test to the DHCP test.
2006-07-20 02:51:52 +00:00
Michael Brown
35b0233baa Tidy up hex_dump() output. 2006-07-17 13:04:29 +00:00
Michael Brown
3acbff4f00 How did this ever work properly before? 2006-07-13 18:27:23 +00:00
Marty Connor
eb091f03e3 fix printf format args 2006-06-29 19:04:25 +00:00
Marty Connor
e8cc1c4333 Removed vestigal FILO code 2006-06-29 18:07:02 +00:00
Dan Lynch
446c1a3372 - deprecated in favour of a split library model 2006-06-27 11:05:13 +00:00
Michael Brown
3c8aafa209 Simplify RX data path.
Kill off the static single net device and move to proper dynamic
registration (which we need with the new device model).

Break the (flawed) assumption that all network-layer protocols can use
ARP; such network-layer protocols (i.e. IPv4) must now register as an ARP
protocol using ARP_NET_PROTOCOL() and provide a single method for checking
the existence of a local network-layer address.
2006-06-17 22:36:27 +00:00
Michael Brown
8aeead7c1c Remove dependency on arptable[] (which is no longer used). 2006-06-16 14:48:31 +00:00
Michael Brown
c10698b8b4 Add NULL_TRAP as a config option 2006-06-11 01:55:43 +00:00
Michael Brown
286bf68faf Added a very quick and dirty compatibility layer, to allow
not-yet-updated drivers to at least function.
2006-06-05 15:45:21 +00:00
Dan Lynch
34cfbf55a4 - added most slk functions 2006-06-05 15:03:11 +00:00
Michael Brown
6ab4b99f41 Quick hack to avoid trying to use an uninitialised net device. 2006-06-01 15:53:05 +00:00
Michael Brown
d6866202f9 Until we have a functioning UDP stack and PXE API again, there's not much
point trying to use the old boot sequence.  Replaced with a call to the
AoE demo code, so that people can at least build and try something useful.
2006-06-01 11:07:31 +00:00
Michael Brown
cf96d325d8 Missing from previous checkin.
This is the core portion of the async I/O interface.
2006-05-31 18:45:43 +00:00
Michael Brown
1dbafa8950 Tidied up debugging messages 2006-05-27 13:38:49 +00:00
Michael Brown
0479e9f541 relocate.o is now dragged in by the objects that require it; there is no
need for a CONFIG_RELOCATE.
2006-05-25 01:34:13 +00:00
Dan Lynch
bef8874842 - implemented printw (formatted string output, a la printf)
- implemented hline/vline (part of wborder family)
- screen cursor now relocates at same time as window cursor when
  restoring after a non-wrapping function
2006-05-22 17:03:41 +00:00
Michael Brown
84a493b88d Allow vcprintf() to be called by external code such as the curses library.
Also trim another eight bytes from vsprintf.o.  :)
2006-05-22 15:41:01 +00:00
Dan Lynch
f778500739 - fixes to _wputch to get positioning and wrap working properly
- fixes to wborder (same)
- addition of a few minor functions
2006-05-22 13:10:19 +00:00
Dan Lynch
d166dc57ab - made _wputch wrap lines as well as cols (wraps back to line 0, as we have not way to scroll...)
- implemented color_content, wborder, wblrtobot, wclrtoeol, wcolor_set and several small functions
- added rest of expected global variables
2006-05-19 16:18:08 +00:00
Dan Lynch
2814681d20 all window primitives implemented 2006-05-18 17:51:19 +00:00
Michael Brown
a4143e8c87 Split debug functions out into core/debug.c, so that they can be
automatically linked in on demand.

Corrected warnings in misc.c.  strtoul() really should be
  unsigned long strtoul ( const char *p, const char **endp, int base )
but such is not the ANSI standard.
2006-05-17 17:16:24 +00:00
Michael Brown
15ee09ed10 Restructured PCI subsystem to fit the new device model.
Generic PCI code now handles 64-bit BARs correctly when setting
"membase"; drivers should need to call pci_bar_start() only if they want
to use BARs other than the first memory or I/O BAR.

Split rarely-used PCI functions out into pciextra.c.

Core PCI code is now 662 bytes (down from 1308 bytes in Etherboot 5.4).
284 bytes of this saving comes from the pci/pciextra split.

Cosmetic changes to lots of drivers (e.g. vendor_id->vendor in order to
match the names used in Linux).
2006-05-16 15:12:06 +00:00
Michael Brown
0afa9db2de Tear out old heap code, replace with code that simply allocates memory
for use by malloc().

This breaks the image-loading code (which previously used the heap to
allocate the buffer for downloading the image), but that's not a major
concern since I'm going to tear out all the image formats within the next
couple of days anyway.  Byebye, NBI!  :)
2006-05-16 15:00:36 +00:00
Michael Brown
689218618f Fix typo 2006-05-16 14:42:43 +00:00
Michael Brown
ceba6ecb75 Added generic device model. 2006-05-16 14:10:21 +00:00
Dan Lynch
a2799051b0 fixed build error (danjlynch, repeat: this is *not* perl, this is *not* perl...) 2006-05-15 09:34:27 +00:00
Dan Lynch
dccc6aed3a lightweight xcurses implementation for etherboot (Michael made me do it...) 2006-05-15 09:29:48 +00:00
Michael Brown
eb6b8e8d70 Handle the '"%c", 0' case correctly. 2006-05-14 11:55:30 +00:00
Michael Brown
efd6281a35 Correctly handle zero-length buffers. 2006-05-14 11:18:42 +00:00
Michael Brown
25f5d114a0 Updated documentation.
Shaved around 100 bytes off vsprintf.o.  It's now 50 bytes smaller than
the old implementation and provides much more conformant semantics,
including the ability to return the number of characters that would have
been printed to the string had the buffer been big enough.  (iSCSI needs
this functionality).
2006-05-14 03:31:20 +00:00
Michael Brown
2421723a15 Rewrote printf and friends to better support standard C semantics. 2006-05-14 02:51:55 +00:00
Michael Brown
f99e7a375e At least cope with "%llx" by reading the correct-sized va_arg from the
stack, even if we don't yet print it out.

At some point, vsprintf() needs to be fixed up so that it can correctly
cope with limited-sized buffers (i.e. vsnprintf), long longs, and
standard format specifiers (e.g. "%04x").  We should also remove the
special types (MAC addresses and IP addresses).  This would then enable
us to use gcc's ability to type-check printf format strings.
2006-05-13 11:50:52 +00:00
Michael Brown
f8f75cef5b BSS is now zeroed by libprefix (along with the otherwise non-zeroable
portions such as the stack) during the installation process.

init_fns() are called from main().  We need to think about initial
control flow some more.
2006-05-02 21:10:45 +00:00
Michael Brown
a42092d2a0 Add a temporary snprintf, so that safely-written code can at least
compile, even if it won't yet be safe.
2006-04-30 12:01:31 +00:00
Michael Brown
8df7e74990 Fix up prototype of strtoul() to match POSIX. 2006-04-30 11:45:38 +00:00
Michael Brown
352bf1bda2 Move init.h to gpxe/init.h. 2006-04-30 01:08:52 +00:00
Michael Brown
23c494d14e Added basic code for implementing co-operative multitasking.
Yes, you really can do it in 65 bytes.
2006-04-29 16:42:09 +00:00
Michael Brown
51feeab445 Add an explicit failure debug message 2006-04-28 14:07:41 +00:00
Michael Brown
cfae86f6c8 Glenn managed to shrink .text by 5 more bytes. 2006-04-25 21:48:16 +00:00
Michael Brown
face774c4c Fixed erroneous comparison 2006-04-25 11:54:58 +00:00
Michael Brown
95f8a42930 Removed incorrect comment; malloc() is inefficient only when the
alignment and size are both powers of two, and there's no way to
specify an alignment through the malloc() interface anyway.
2006-04-25 10:41:49 +00:00
Michael Brown
4e92f29c9e Now passes trivial tests. free_memblock() needs neatening up. 2006-04-25 04:01:58 +00:00
Michael Brown
b601a7d355 Updated memory allocator to improve support for unaligned or partially
aligned blocks.

Moved header to include/malloc.h, since we now also provide the
POSIX-like malloc()/free() pair.

Not yet tested.
2006-04-25 03:30:46 +00:00
Michael Brown
832e86246b gcc is rather over-aggressive about optimising out static data structures
even when __atribute__ (( unused )) is correctly set...
2006-04-24 18:31:37 +00:00
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
b6b6a0b5fe First draft of a dynamic memory allocator 2006-04-24 15:21:18 +00:00
Michael Brown
d24042f0bb Update now that if_ether.h has moved. 2006-04-19 01:56:10 +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
af23ff8a24 Assertions are now handled via the POSIX-like <assert.h>. 2006-03-23 19:33:57 +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
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
cbed5ed9ad Always include code for sending multicast packets. 2005-06-02 10:14:26 +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
Geert Stappers
5265975334 patch of Helge Wagner 2005-05-31 11:32:45 +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
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
8fcb6448bd Moved pxe_errors.c to pxe/interface/ 2005-05-23 22:47:21 +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
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
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
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
e911a74724 More documentation 2005-05-19 11:54:41 +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
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
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
40c7b127aa Added const to fill_buffer 2005-05-17 14:34:46 +00:00
Michael Brown
022661283a Load buffer is now handled by the autoload() function. 2005-05-17 13:44:08 +00:00
Michael Brown
510de6cb8c Restructured to allow per-object image formats 2005-05-17 13:40:31 +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
3ce6504f14 Use shared symbols for heap_ptr and heap_end 2005-05-17 13:35:43 +00:00
Michael Brown
6e8f29d3cb Image formats moved into the new config system 2005-05-17 13:33:49 +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
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
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
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
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
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
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
2227a711fd umountall() handled by nfs.c's reset function 2005-05-01 15:08:19 +00:00
Michael Brown
85d9eae44e Moved protocols to proto/ 2005-05-01 14:04:11 +00:00
Michael Brown
e1d6f3a8ac Add NMB_RESOLVER 2005-05-01 10:58:49 +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
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
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
903ddd9878 inet_aton doesn't overwrite the IP address unless it is valid. 2005-04-30 13:50:34 +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
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
f37e0a06d7 dev.c uses the new tables infrastructure. 2005-04-27 12:20:54 +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
fda36a0c1a Added back in the actual call to load(). 2005-04-26 17:12:07 +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
b18e419a81 Updated debug messages 2005-04-22 16:02: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
e02c699a05 Fix endianness of dhcp device id structure. 2005-04-18 14:38:51 +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
de965fde64 Whoops 2005-04-17 16:16:02 +00:00
Michael Brown
64e1df4af6 Allow serial port options to be specified in a relatively friendly format. 2005-04-17 16:15:46 +00:00
Michael Brown
c9d35daffe Re-add the "." progress indicator. 2005-04-17 11:40:24 +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
f25383f4c4 Add ISA_PROBE_ADDRS list. 2005-04-16 09:35:17 +00:00
Michael Brown
f04b9cd3ea Leave some time to see what's going on. 2005-04-15 17:06:54 +00:00
Michael Brown
c41e89af41 Fixed debug message 2005-04-15 16:58:08 +00:00
Michael Brown
f78fd79c16 Moved core/isapnp.c to drivers/bus/isapnp.c 2005-04-14 22:42:57 +00:00
Michael Brown
ce8dea0dff Separate out bus-scanning and device-probing logic. 2005-04-14 13:33:03 +00:00
Michael Brown
44c7cc8c12 Standardised debug mechanism in place now. 2005-04-14 11:55:57 +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
e27ebad4b2 Whoops 2005-04-13 02:05:43 +00:00
Michael Brown
f16ac2d87e Fix type of dummy_irq() 2005-04-13 01:28:43 +00:00
Michael Brown
6e8878c1fa Avoid compiler warnings. 2005-04-13 00:19:01 +00:00
Michael Brown
266dae4034 Use NIC's connect method. 2005-04-13 00:18:35 +00:00
Michael Brown
241fb0f3cd Use dev's print_info method to print standardised information about
the boot device.
2005-04-12 22:44:02 +00:00
Michael Brown
d9f34bfdfc Add dummy_connect and dummy_irq 2005-04-12 19:11:13 +00:00
Michael Brown
762fa9a478 Fix up find_pci_device so that it can be used for scanning for devices
*other* than the main boot device.
2005-04-12 18:04:03 +00:00
Michael Brown
1434e8d68d struct nic is now part of struct dev, rather than the other way around.
Tie into new boot device framework.
2005-04-12 16:52:59 +00:00
Michael Brown
31410b1b5d Needs to be updated to new probe logic. 2005-04-12 16:51:26 +00:00
Michael Brown
236a195257 All code related to the device probe logic is ifdeffed 0 out. 2005-04-12 16:49:59 +00:00
Michael Brown
bb293ca5c2 Global struct dev is now in main.c 2005-04-12 16:49:11 +00:00
Michael Brown
6f37dc410a print_drivers() is now unified. 2005-04-12 16:48:45 +00:00
Michael Brown
daad093c40 Now obsolete. :) 2005-04-12 16:46:57 +00:00
Michael Brown
3901d197f7 Replaced main loop with a trivial implementation so that we can try
out the new probing logic.
2005-04-12 16:43:18 +00:00
Michael Brown
5e807dffe6 Obsoleted by new device probing mechanism. 2005-04-12 16:38:38 +00:00
Michael Brown
17c1ca90e7 New device probing mechanism 2005-04-12 16:38:23 +00:00
Michael Brown
67f122c645 Removed pci_find_device_x; it was too ugly to live. 2005-04-12 12:59:21 +00:00
Michael Brown
7172d4abfb Moved functions that we want to keep to drivers/bus/pci.c 2005-04-11 13:45:00 +00:00
Michael Brown
95f755ad7f Renamed pci.c to pci_legacy.c in preparation for new bus managment
infrastructure.
2005-04-11 13:25:41 +00:00
Michael Brown
87508aa0b2 arch_initialise() is now sufficiently generic that we may as well just
call it initialise() and place it in main.c.  :)
2005-04-10 18:30:34 +00:00
Michael Brown
1937b39079 Drag in relocate unless NORELOCATE is defined, since it's now called
only via the initialisation function table.
2005-04-10 18:19:05 +00:00
Michael Brown
9abceef561 Removed obsolete initialisation calls. 2005-04-10 18:13:24 +00:00
Michael Brown
64d3886c1d relocate() is called by arch_initialise(). 2005-04-09 13:23:49 +00:00
Michael Brown
a4920c16bd Moved relocate.c to arch-specific dir, since it involves arch-specific
logic (e.g. avoiding memory regions with A20=0).
2005-04-09 10:49:26 +00:00
Michael Brown
0ff80b477d Merged mcb30-realmode-redesign back to HEAD 2005-04-08 15:01:17 +00:00
Michael Brown
3d6123e69a Initial revision 2005-03-08 18:53:11 +00:00