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