Commit Graph

  • d822b3d4cd Define BIOS data segment in bios.h Michael Brown 2006-05-13 11:43:07 +00:00
  • a27defa483 Add flag definitions. Michael Brown 2006-05-13 11:42:07 +00:00
  • d2c22ec9bb Add INT 13 emulation layer (which provides an interface to gPXE block devices). Michael Brown 2006-05-13 11:41:36 +00:00
  • 1ad72e0e79 Add 64-bit byte-swapping operations. Michael Brown 2006-05-13 11:40:39 +00:00
  • 5009f8d6a2 Provide a SCSI device interface to the iSCSI protocol Michael Brown 2006-05-13 11:39:46 +00:00
  • f33f01c126 Defined SCSI device interface, and added SCSI block device implementation. Michael Brown 2006-05-13 11:37:50 +00:00
  • 8638a5e471 Defined a block device interface. Michael Brown 2006-05-13 11:36:30 +00:00
  • 1838b58c3f Add drivers/block and arch/i386/interface/pcbios Michael Brown 2006-05-13 11:35:29 +00:00
  • 568cad0ddc (Redoing check-in lost by SourceForge's failure.) Michael Brown 2006-05-13 11:30:03 +00:00
  • 8a229a16f6 (Redoing check-in lost by SourceForge's failure.) Michael Brown 2006-05-13 11:24:25 +00:00
  • 847f38f4ac (Redoing check-in lost by SourceForge's failure.) Michael Brown 2006-05-13 11:19:06 +00:00
  • f7b963da51 (Redoing check-in lost by SourceForge's failure.) Michael Brown 2006-05-13 11:11:55 +00:00
  • 97d265f8dc (Redoing check-in lost by SourceForge's failure.) Michael Brown 2006-05-13 11:10:24 +00:00
  • 10606e95b3 Added tunctl (since it is difficult to find for many distros). Michael Brown 2006-05-13 09:27:54 +00:00
  • fdb983d473 Preserve the whole of %esp across prot_call(). We have to split this between the low half stored in the static variable rm_sp, and the high half stored on the prot_call() stack, because: Michael Brown 2006-05-06 19:44:23 +00:00
  • f8e087767b Allow access to variables in .text16 as well as .data16. Chained interrupt vectors, for example, will be easiest to handle if placed in .text16. Michael Brown 2006-05-06 18:57:31 +00:00
  • c10d1aa9d7 Preserve GDT across prot_call(). Michael Brown 2006-05-06 18:52:27 +00:00
  • dcc1b0054e This line should not have been checked in Michael Brown 2006-05-04 23:22:42 +00:00
  • 832807726a Add infrastructure to support access to .data16 (and .text16) variables from protected-mode code. Michael Brown 2006-05-04 23:14:06 +00:00
  • f4429533a6 Added methods for efficiently declaring and accessing variables in .data16. librm will need to supply "char *data16", i.e. the virtual address of the start of .data16. Michael Brown 2006-05-04 17:00:20 +00:00
  • f8f75cef5b BSS is now zeroed by libprefix (along with the otherwise non-zeroable portions such as the stack) during the installation process. Michael Brown 2006-05-02 21:10:45 +00:00
  • cc23057b59 Typo Michael Brown 2006-05-02 21:09:29 +00:00
  • 10c28a51bd Create two easy-to-use entry points in libprefix: install and install_prealloc. I *think* these will suffice for all the 16-bit prefixes. Michael Brown 2006-05-02 20:51:07 +00:00
  • 9e1dd6402d <name>_size variable is no longer needed, since we don't copy the code. However, it's worth adding a .size directive so that objdump reports the correct sizes for the code fragments. Michael Brown 2006-05-02 16:38:46 +00:00
  • 9fcded3d23 Towards a(nother) new real-mode infrastructure, in which we take advantage of the fact that we have to have a permanently-resident block in base memory. Michael Brown 2006-05-02 15:41:21 +00:00
  • 8f62b39c03 Move stack out to separate object, so that having a stack doesn't drag in setup.S. Michael Brown 2006-05-02 14:57:48 +00:00
  • 5463169c1a Verified as working Michael Brown 2006-05-02 14:04:21 +00:00
  • d081d65d48 This should be much more elegant: we use flat real mode for the highmem data, so decompress16 will be able to unpack blocks bigger than 64kB. Michael Brown 2006-05-01 22:35:19 +00:00
  • cc8821a443 Checking in because I don't want to lose this rather neat code for running the decompresser in 16:16 protected mode using the real-mode stack. However, there's an even simpler way to do it... Michael Brown 2006-05-01 21:26:44 +00:00
  • 2462047128 Typo Michael Brown 2006-04-30 18:19:39 +00:00
  • 9e1becaf8a Merge TCP aborted(), timedout() and closed() methods into a single closed() method with a reason code. Michael Brown 2006-04-30 16:59:45 +00:00
  • 8afb6303fb Half-way tidy Michael Brown 2006-04-30 15:23:29 +00:00
  • 04b6a1e004 Make all TCP methods optional; at least FTP data is a read-only connection and so legitimately ignores acked() and senddata(). Michael Brown 2006-04-30 13:20:40 +00:00
  • aec0e127d2 Proof-of-concept FTP implementation Michael Brown 2006-04-30 12:02:07 +00:00
  • a42092d2a0 Add a temporary snprintf, so that safely-written code can at least compile, even if it won't yet be safe. Michael Brown 2006-04-30 12:01:31 +00:00
  • 8df7e74990 Fix up prototype of strtoul() to match POSIX. Michael Brown 2006-04-30 11:45:38 +00:00
  • 01bd78d62a Created net/tcp and moved hello.c there Michael Brown 2006-04-30 09:34:11 +00:00
  • 7af478b30d Make tcp_connect() void; it will eventually have no failure case. Michael Brown 2006-04-30 02:13:52 +00:00
  • 9c9208a132 Put the TCP connection periodic processing in tcp.c, where it belongs. Michael Brown 2006-04-30 02:08:42 +00:00
  • 178b0a7e5e Consistency Michael Brown 2006-04-30 01:35:01 +00:00
  • 592a5a99c8 Moved uIP and tcp.c from proto/ to net/ Michael Brown 2006-04-30 01:16:37 +00:00
  • 352bf1bda2 Move init.h to gpxe/init.h. Michael Brown 2006-04-30 01:08:52 +00:00
  • bac97eb979 Change semantics of network API so that packet-absorbing calls *always* take ownership of the packet, rather than doing so only if they return success. This breaks semantic compatibility with Linux's hard_start_xmit() method, but means that we don't have to worry so much about error cases. Michael Brown 2006-04-29 17:17:43 +00:00
  • 23c494d14e Added basic code for implementing co-operative multitasking. Michael Brown 2006-04-29 16:42:09 +00:00
  • 5fe31f1014 Give uIP a static IP address for proof-of-concept testing Michael Brown 2006-04-28 14:15:21 +00:00
  • 129c6c3968 Network layer now works as a proof of concept Michael Brown 2006-04-28 14:13:50 +00:00
  • 1488cd3b73 Fix a couple of broken assertions, and align the buffer correctly. Michael Brown 2006-04-28 14:09:31 +00:00
  • 79f64eea55 Transmit the buffer contents, not the buffer descriptor... Michael Brown 2006-04-28 14:08:41 +00:00
  • 51feeab445 Add an explicit failure debug message Michael Brown 2006-04-28 14:07:41 +00:00
  • 084f6b18f7 Exclude bin directory from tags generation. Michael Brown 2006-04-28 14:07:08 +00:00
  • d8e99bf28f Gave up on adding POSIX errno's as required, and just added (almost) all of them in one go. Michael Brown 2006-04-28 13:44:34 +00:00
  • 82c4afcb32 Updated instructions to reflect current reality. Michael Brown 2006-04-26 00:40:27 +00:00
  • 0eb0dd0437 Hardcoded paths to ../../src/bin avoid one step in the instructions. Michael Brown 2006-04-26 00:31:04 +00:00
  • c67d81bd13 Avoid the need for a symlink to the BIOS directory; just use the locally checked-out copy. Michael Brown 2006-04-26 00:25:28 +00:00
  • c378213387 Much safer to use a TAP device statically allocated with tunctl. Michael Brown 2006-04-26 00:15:41 +00:00
  • 297ae0f8d5 Updated to syntax required by latest bochs CVS. Michael Brown 2006-04-26 00:14:19 +00:00
  • 18f620ca5d Updated to current bochs CVS Michael Brown 2006-04-26 00:09:52 +00:00
  • cfae86f6c8 Glenn managed to shrink .text by 5 more bytes. Michael Brown 2006-04-25 21:48:16 +00:00
  • fee8b91015 D'oh Michael Brown 2006-04-25 12:56:18 +00:00
  • 7a82c3eca3 Added missing ssize_t Michael Brown 2006-04-25 12:55:23 +00:00
  • cf3783b4ca Actually, it's probably a good idea to have packet buffers avoid 4kB crossings. Michael Brown 2006-04-25 12:11:36 +00:00
  • 00a1de964d Update to use POSIX-like API. Michael Brown 2006-04-25 12:04:07 +00:00
  • face774c4c Fixed erroneous comparison Michael Brown 2006-04-25 11:54:58 +00:00
  • 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. Michael Brown 2006-04-25 10:41:49 +00:00
  • 4e92f29c9e Now passes trivial tests. free_memblock() needs neatening up. Michael Brown 2006-04-25 04:01:58 +00:00
  • b601a7d355 Updated memory allocator to improve support for unaligned or partially aligned blocks. Michael Brown 2006-04-25 03:30:46 +00:00
  • 2f0d412210 Add __constant_flsl(), because it's useful for finding out the next power-of-two up from a given constant via ( 1 << fls ( constant - 1 ) ) Michael Brown 2006-04-24 23:00:32 +00:00
  • a81f96998b Added missing headers required for compilation in Etherboot. Michael Brown 2006-04-24 19:35:10 +00:00
  • 455b76980f Added pkb_reserve(). Michael Brown 2006-04-24 19:34:51 +00:00
  • 26749951dc We have our own ARP layer now. Michael Brown 2006-04-24 19:19:13 +00:00
  • fcf765e42d Add missing {register,free}_netdev(). Michael Brown 2006-04-24 18:44:50 +00:00
  • 832e86246b gcc is rather over-aggressive about optimising out static data structures even when __atribute__ (( unused )) is correctly set... Michael Brown 2006-04-24 18:31:37 +00:00
  • 4c4e4de18f (librm_base-1b) is already an offset; no need to apply OFFSET(). Doing so, in fact, seems to expose an assembler bug; (a-b-0) is apparently not the same as (a-b). Go figure. Michael Brown 2006-04-24 18:29:47 +00:00
  • 824d6ffa7f Header rearrangement. Michael Brown 2006-04-24 15:42:49 +00:00
  • 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). Michael Brown 2006-04-24 15:38:53 +00:00
  • 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). Michael Brown 2006-04-24 15:33:06 +00:00
  • 0d97f0d482 Obviate uip_init(); our bss is zeroed at startup already. Michael Brown 2006-04-24 15:31:02 +00:00
  • 5423f876fb Don't bother poisoning lists; it costs code size. Michael Brown 2006-04-24 15:28:56 +00:00
  • 1d7cfd5acf Prototype now clashes with the macro in arch/i386. Michael Brown 2006-04-24 15:27:58 +00:00
  • 510ccb2900 Added __constant_memcpy() based on version in Linux's string.h. Michael Brown 2006-04-24 15:25:25 +00:00
  • b6b6a0b5fe First draft of a dynamic memory allocator Michael Brown 2006-04-24 15:21:18 +00:00
  • e323d1a29b Add "net" directory. Michael Brown 2006-04-24 15:20:01 +00:00
  • 6209bd873a First sketch of a new net device API. Michael Brown 2006-04-19 12:07:46 +00:00
  • 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. Michael Brown 2006-04-19 11:32:24 +00:00
  • b89ccac02d Updated to remove obsolete constants Michael Brown 2006-04-19 02:11:56 +00:00
  • 3ca7dbe7ca Added the concept of a network interface (a network-layer concept) as separate from a network device (a link-layer concept). Michael Brown 2006-04-19 02:09:08 +00:00
  • d65a66606b Typo Michael Brown 2006-04-19 02:08:27 +00:00
  • 2558439ce4 First version, based on include/linux/list.h, stripped down to just those functions we are likely to need. Michael Brown 2006-04-19 02:05:50 +00:00
  • d24042f0bb Update now that if_ether.h has moved. Michael Brown 2006-04-19 01:56:10 +00:00
  • 4f3581e99c Added ENOENT and EAFNOSUPPORT Michael Brown 2006-04-19 01:54:53 +00:00
  • ab139ceda9 Added pkb_unput() and pkb_len(). Michael Brown 2006-04-19 01:54:24 +00:00
  • 744b895077 Make flags more efficient. Michael Brown 2006-04-19 01:53:49 +00:00
  • 49f933fbc3 Moved if_ether.h and if_arp.h to include/gpxe, for consistency with Linux kernel. Michael Brown 2006-04-19 01:52:41 +00:00
  • 9f67ad9db0 First version. ARP protocol independence in less than the size of uIP's Ethernet-and-IPv4-only ARP module. :) Michael Brown 2006-04-19 01:43:56 +00:00
  • 363905e1b6 Add missing prototype Michael Brown 2006-04-19 01:42:33 +00:00
  • 02d342f38f First version Michael Brown 2006-04-19 01:42:03 +00:00
  • 0b561ce972 First sketch Michael Brown 2006-04-18 17:52:51 +00:00
  • 42b659f926 First version Michael Brown 2006-04-18 17:49:51 +00:00
  • 0864a73347 First version, based on the concepts in linux/skbuff.h Michael Brown 2006-04-18 17:47:01 +00:00
  • 1a60444fe4 Added netmask and gateway global options. Michael Brown 2006-04-05 11:46:18 +00:00