Commit Graph

  • 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
  • 6446767258 First draft of iSCSI protocol support. Is capable of retrieving disk blocks. Michael Brown 2006-04-05 11:44:56 +00:00
  • 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. Michael Brown 2006-04-05 11:44:05 +00:00
  • c8a7133e9f Added tcp_buffer, to give applications a zero-cost place to build data to be transmitted. Michael Brown 2006-04-05 11:43:01 +00:00
  • 988bb50979 Added set_netmask() and set_gateway() Michael Brown 2006-04-05 11:41:15 +00:00
  • ee058362fa We don't need to know anything about ARP Michael Brown 2006-03-24 17:39:05 +00:00
  • 90892d5ec7 Allow specifying the local IP address via --from. Michael Brown 2006-03-24 17:28:40 +00:00
  • b44332eb7d Split non-TCP portions of the stack out into ip.[ch]. Michael Brown 2006-03-24 17:22:09 +00:00
  • 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. Michael Brown 2006-03-24 16:43:12 +00:00
  • 7e61f38799 Moved "hello world" protocol implementation out of prototester.c and into the first standalong uIP-based protocol module. Michael Brown 2006-03-23 22:37:05 +00:00
  • 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. Michael Brown 2006-03-23 22:07:21 +00:00
  • 99032becce Pick up the gPXE include files when building prototester. Michael Brown 2006-03-23 21:35:20 +00:00
  • 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. Michael Brown 2006-03-23 21:34:25 +00:00
  • a4a0244aa3 Moved uIP wrapper out of prototester.c and into proto/tcp.c. Michael Brown 2006-03-23 21:32:03 +00:00
  • 17c0253ca0 Add include/gpxe as a directory to scan. Michael Brown 2006-03-23 21:06:36 +00:00
  • 2bc7c746a6 Updated with "doxygen -u" from doxygen 1.4.4 Michael Brown 2006-03-23 20:39:26 +00:00
  • 05b284399e Moved old tcp.h to old_tcp.h, to avoid name clash with new (uIP-based) tcp.h. Michael Brown 2006-03-23 20:34:08 +00:00
  • af23ff8a24 Assertions are now handled via the POSIX-like <assert.h>. Michael Brown 2006-03-23 19:33:57 +00:00
  • 55497b3402 Added missing #endif Michael Brown 2006-03-23 19:23:25 +00:00
  • cb8e89de15 Added assert.h, with assert() defined (almost) as per POSIX, and linker_assert() defined as gPXE-specific. Michael Brown 2006-03-23 17:28:51 +00:00
  • 531371efa2 Removed to make way for the uIP-based tcp.c. Michael Brown 2006-03-23 16:59:25 +00:00
  • dde1c5ad18 Moved include/in.h to include/gpxe/in.h, so that it can be included by prototester. Michael Brown 2006-03-23 16:45:01 +00:00
  • eaf40883ff Add Makefile for hijack and prototester utilities. Michael Brown 2006-03-23 13:11:41 +00:00
  • 21c58729ae Add debug symbols to objects. (They will be stripped out of the final -Obinary build anyway, so it doesn't waste any space). Michael Brown 2006-03-23 13:09:29 +00:00