summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* (Redoing check-in lost by SourceForge's failure.)Michael Brown2006-05-131-11/+21
| | | | Avoid optimisation errors under -fstrict-aliasing.
* Preserve the whole of %esp across prot_call(). We have to split thisMichael Brown2006-05-061-7/+14
| | | | | | | | | | | | | 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.
* Allow access to variables in .text16 as well as .data16. ChainedMichael Brown2006-05-063-2/+16
| | | | | interrupt vectors, for example, will be easiest to handle if placed in .text16.
* Preserve GDT across prot_call().Michael Brown2006-05-061-6/+12
|
* This line should not have been checked inMichael Brown2006-05-051-1/+0Star
|
* Add infrastructure to support access to .data16 (and .text16) variablesMichael Brown2006-05-052-76/+125
| | | | | | | | | 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.
* Added methods for efficiently declaring and accessing variables inMichael Brown2006-05-043-0/+59
| | | | | .data16. librm will need to supply "char *data16", i.e. the virtual address of the start of .data16.
* BSS is now zeroed by libprefix (along with the otherwise non-zeroableMichael Brown2006-05-022-18/+3Star
| | | | | | | 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.
* TypoMichael Brown2006-05-021-2/+2
|
* Create two easy-to-use entry points in libprefix: install andMichael Brown2006-05-024-35/+122
| | | | | install_prealloc. I *think* these will suffice for all the 16-bit prefixes.
* <name>_size variable is no longer needed, since we don't copy the code.Michael Brown2006-05-021-3/+1Star
| | | | | However, it's worth adding a .size directive so that objdump reports the correct sizes for the code fragments.
* Towards a(nother) new real-mode infrastructure, in which we takeMichael Brown2006-05-0210-1182/+460Star
| | | | | advantage of the fact that we have to have a permanently-resident block in base memory.
* Move stack out to separate object, so that having a stack doesn't drag inMichael Brown2006-05-022-9/+13
| | | | setup.S.
* Verified as workingMichael Brown2006-05-021-6/+9
|
* This should be much more elegant: we use flat real mode for theMichael Brown2006-05-021-130/+219
| | | | | highmem data, so decompress16 will be able to unpack blocks bigger than 64kB.
* Checking in because I don't want to lose this rather neat code forMichael Brown2006-05-011-0/+178
| | | | | running the decompresser in 16:16 protected mode using the real-mode stack. However, there's an even simpler way to do it...
* TypoMichael Brown2006-04-301-1/+7
|
* Merge TCP aborted(), timedout() and closed() methods into a singleMichael Brown2006-04-306-102/+131
| | | | closed() method with a reason code.
* Half-way tidyMichael Brown2006-04-301-116/+159
|
* Make all TCP methods optional; at least FTP data is a read-onlyMichael Brown2006-04-302-46/+11Star
| | | | connection and so legitimately ignores acked() and senddata().
* Proof-of-concept FTP implementationMichael Brown2006-04-302-0/+331
|
* Add a temporary snprintf, so that safely-written code can at leastMichael Brown2006-04-302-0/+12
| | | | compile, even if it won't yet be safe.
* Fix up prototype of strtoul() to match POSIX.Michael Brown2006-04-302-2/+2
|
* Created net/tcp and moved hello.c thereMichael Brown2006-04-302-1/+134
|
* Make tcp_connect() void; it will eventually have no failure case.Michael Brown2006-04-304-17/+7Star
|
* Put the TCP connection periodic processing in tcp.c, where it belongs.Michael Brown2006-04-303-8/+66
|
* ConsistencyMichael Brown2006-04-301-3/+3
|
* Moved uIP and tcp.c from proto/ to net/Michael Brown2006-04-308-3/+3512
|
* Move init.h to gpxe/init.h.Michael Brown2006-04-3016-19/+83
|
* Change semantics of network API so that packet-absorbing calls *always*Michael Brown2006-04-294-53/+94
| | | | | | | | | | | 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.
* Added basic code for implementing co-operative multitasking.Michael Brown2006-04-292-0/+88
| | | | Yes, you really can do it in 65 bytes.
* Give uIP a static IP address for proof-of-concept testingMichael Brown2006-04-281-0/+11
|
* Network layer now works as a proof of conceptMichael Brown2006-04-286-92/+272
|
* Fix a couple of broken assertions, and align the buffer correctly.Michael Brown2006-04-282-3/+6
|
* Transmit the buffer contents, not the buffer descriptor...Michael Brown2006-04-281-2/+4
|
* Add an explicit failure debug messageMichael Brown2006-04-281-0/+2
|
* Exclude bin directory from tags generation.Michael Brown2006-04-281-1/+6
| | | | | Create something that might be usable as a symbol list for bochs' internal debugger.
* Gave up on adding POSIX errno's as required, and just added (almost) allMichael Brown2006-04-282-27/+67
| | | | | | of them in one go. EBADIMG has been replaced by ENOEXEC, and EIMGRET by ECANCELED.
* Glenn managed to shrink .text by 5 more bytes.Michael Brown2006-04-251-3/+6
|
* D'ohMichael Brown2006-04-251-1/+1
|
* Added missing ssize_tMichael Brown2006-04-251-0/+1
|
* Actually, it's probably a good idea to have packet buffers avoid 4kBMichael Brown2006-04-252-7/+30
| | | | crossings.
* Update to use POSIX-like API.Michael Brown2006-04-251-19/+8Star
|
* Fixed erroneous comparisonMichael Brown2006-04-251-1/+1
|
* Removed incorrect comment; malloc() is inefficient only when theMichael Brown2006-04-251-5/+0Star
| | | | | alignment and size are both powers of two, and there's no way to specify an alignment through the malloc() interface anyway.
* Now passes trivial tests. free_memblock() needs neatening up.Michael Brown2006-04-251-15/+34
|
* Updated memory allocator to improve support for unaligned or partiallyMichael Brown2006-04-253-154/+224
| | | | | | | | | aligned blocks. Moved header to include/malloc.h, since we now also provide the POSIX-like malloc()/free() pair. Not yet tested.
* Add __constant_flsl(), because it's useful for finding out the nextMichael Brown2006-04-251-0/+54
| | | | | | | | power-of-two up from a given constant via ( 1 << fls ( constant - 1 ) ) fls(), flsl(), ffs() and ffsl() appear in strings.h according to POSIX.
* Added missing headers required for compilation in Etherboot.Michael Brown2006-04-241-0/+2
|
* Added pkb_reserve().Michael Brown2006-04-241-0/+14
|