Michael Brown
21493646c2
Moved to net/tcp/iscsi.c.
il y a 18 ans
Michael Brown
5080668704
Provide access to rm_cs and rm_ds from protected-mode code.
il y a 18 ans
Michael Brown
dc8d429ec6
Provide a global counter for the number of interrupts hooked.
il y a 18 ans
Michael Brown
63499e9cfd
Allow re-entrancy and provide a global counter of the number of
interrupts hooked.
il y a 18 ans
Michael Brown
d822b3d4cd
Define BIOS data segment in bios.h
il y a 18 ans
Michael Brown
a27defa483
Add flag definitions.
il y a 18 ans
Michael Brown
d2c22ec9bb
Add INT 13 emulation layer (which provides an interface to gPXE block
devices).
il y a 18 ans
Michael Brown
1ad72e0e79
Add 64-bit byte-swapping operations.
il y a 18 ans
Michael Brown
5009f8d6a2
Provide a SCSI device interface to the iSCSI protocol
il y a 18 ans
Michael Brown
f33f01c126
Defined SCSI device interface, and added SCSI block device
implementation.
il y a 18 ans
Michael Brown
8638a5e471
Defined a block device interface.
il y a 18 ans
Michael Brown
1838b58c3f
Add drivers/block and arch/i386/interface/pcbios
il y a 18 ans
Michael Brown
568cad0ddc
(Redoing check-in lost by SourceForge's failure.)
il y a 18 ans
Michael Brown
8a229a16f6
(Redoing check-in lost by SourceForge's failure.)
Moved to net/
il y a 18 ans
Michael Brown
847f38f4ac
(Redoing check-in lost by SourceForge's failure.)
Add method for hooking real-mode interrupt vectors.
il y a 18 ans
Michael Brown
f7b963da51
(Redoing check-in lost by SourceForge's failure.)
Use .text16.data section with "aw" attributes, to avoid section type
conflicts when placing both code and data into .text16.
Add __from_{text16,data16}.
il y a 18 ans
Michael Brown
97d265f8dc
(Redoing check-in lost by SourceForge's failure.)
Avoid optimisation errors under -fstrict-aliasing.
il y a 18 ans
Michael Brown
10606e95b3
Added tunctl (since it is difficult to find for many distros).
il y a 18 ans
Michael Brown
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:
Just using the stack would screw up when a prot_call()ed routine
executes a real_call(); it would have no way to find the current top of
the RM stack.
Extending rm_sp to rm_esp would not be safe, because the guarantee that
rm_sp must return to the correct value by the time an external
real-mode call returns applies only to %sp, not to %esp.
il y a 18 ans
Michael Brown
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.
il y a 18 ans
Michael Brown
c10d1aa9d7
Preserve GDT across prot_call().
il y a 18 ans
Michael Brown
dcc1b0054e
This line should not have been checked in
il y a 18 ans
Michael Brown
832807726a
Add infrastructure to support access to .data16 (and .text16) variables
from protected-mode code.
Set up %ds to point to .data16 in prot_to_real, so that code specified
via REAL_EXEC() and friends can access variables in .data16.
Move most real-mode librm variables from .text16 to .data16.
il y a 18 ans
Michael Brown
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.
il y a 18 ans
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.
il y a 18 ans
Michael Brown
cc23057b59
Typo
il y a 18 ans
Michael Brown
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.
il y a 18 ans
Michael Brown
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.
il y a 18 ans
Michael Brown
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.
il y a 18 ans
Michael Brown
8f62b39c03
Move stack out to separate object, so that having a stack doesn't drag in
setup.S.
il y a 18 ans
Michael Brown
5463169c1a
Verified as working
il y a 18 ans
Michael Brown
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.
il y a 18 ans
Michael Brown
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...
il y a 18 ans
Michael Brown
2462047128
Typo
il y a 18 ans
Michael Brown
9e1becaf8a
Merge TCP aborted(), timedout() and closed() methods into a single
closed() method with a reason code.
il y a 18 ans
Michael Brown
8afb6303fb
Half-way tidy
il y a 18 ans
Michael Brown
04b6a1e004
Make all TCP methods optional; at least FTP data is a read-only
connection and so legitimately ignores acked() and senddata().
il y a 18 ans
Michael Brown
aec0e127d2
Proof-of-concept FTP implementation
il y a 18 ans
Michael Brown
a42092d2a0
Add a temporary snprintf, so that safely-written code can at least
compile, even if it won't yet be safe.
il y a 18 ans
Michael Brown
8df7e74990
Fix up prototype of strtoul() to match POSIX.
il y a 18 ans
Michael Brown
01bd78d62a
Created net/tcp and moved hello.c there
il y a 18 ans
Michael Brown
7af478b30d
Make tcp_connect() void; it will eventually have no failure case.
il y a 18 ans
Michael Brown
9c9208a132
Put the TCP connection periodic processing in tcp.c, where it belongs.
il y a 18 ans
Michael Brown
178b0a7e5e
Consistency
il y a 18 ans
Michael Brown
592a5a99c8
Moved uIP and tcp.c from proto/ to net/
il y a 18 ans
Michael Brown
352bf1bda2
Move init.h to gpxe/init.h.
il y a 18 ans
Michael Brown
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.
Split mechanism of processing received packets (net_rx_process()) out
from policy (net_step()), preparatory to putting net_step() in a separate
object.
il y a 18 ans
Michael Brown
23c494d14e
Added basic code for implementing co-operative multitasking.
Yes, you really can do it in 65 bytes.
il y a 18 ans
Michael Brown
5fe31f1014
Give uIP a static IP address for proof-of-concept testing
il y a 18 ans
Michael Brown
129c6c3968
Network layer now works as a proof of concept
il y a 18 ans