summaryrefslogtreecommitdiffstats
path: root/src/include
Commit message (Collapse)AuthorAgeFilesLines
* - implemented printw (formatted string output, a la printf)Dan Lynch2006-05-221-70/+114
| | | | | | - implemented hline/vline (part of wborder family) - screen cursor now relocates at same time as window cursor when restoring after a non-wrapping function
* Allow vcprintf() to be called by external code such as the curses library.Michael Brown2006-05-221-0/+29
| | | | Also trim another eight bytes from vsprintf.o. :)
* - fixes to _wputch to get positioning and wrap working properlyDan Lynch2006-05-221-18/+30
| | | | | - fixes to wborder (same) - addition of a few minor functions
* Made the LBA48 example clearer.Michael Brown2006-05-211-4/+4
|
* Added (untested) support for ATA devices. This code should be genericMichael Brown2006-05-211-0/+193
| | | | enough to support both real IDE chipsets and AoE.
* Added missing @file blockMichael Brown2006-05-201-0/+6
|
* READ CAPACITY (16) turns out to be an optional command (even thoughMichael Brown2006-05-191-0/+27
| | | | | READ(16) is mandatory); we must use READ CAPACITY (10) first and then use READ CAPACITY (16) if the READ CAPACITY (10) returns "out of range".
* Add EOVERFLOW==ERANGEMichael Brown2006-05-191-4/+6
|
* - made some of the bit shifting attribute access simpler (in my mind)Dan Lynch2006-05-191-248/+50Star
| | | | | | | | | - added extern declarations for global vars - removed comments from static inlines (too time consuming to do them all, considering all so far have been due to the ridiculous amount of redundancy within the API spec) - removed a few more extern func decls for funcs that cannot be implemented at this time
* Add the concept of a "user pointer" (similar to the void __user * inMichael Brown2006-05-193-4/+33
| | | | | | | | | | | | | | | | | | | | the kernel), which encapsulates the information needed to refer to an external buffer. Under normal operation, this can just be a void * equivalent, but under -DKEEP_IT_REAL it would be a segoff_t equivalent. Use this concept to avoid the need for bounce buffers in int13.c, which reduces memory usage and opens up the possibility of using multi-sector reads. Extend the block-device API and the SCSI block device implementation to support multi-sector reads. Update iscsi.c to use user buffers. Move the obsolete portions of realmode.h to old_realmode.h. MS-DOS now boots an order of magnitude faster over iSCSI (~10 seconds from power-up to C:> prompt in bochs).
* iSCSI writes seem to be working (at least, the ethereal trace shows noMichael Brown2006-05-192-32/+116
| | | | | | | | | errors; still need to verify data integrity). SCSI response PDUs are handled: status and sense data (if available) are returned via the scsi_command structure. Updated iSCSI session parameter usage.
* All uses iscsi_state were removed some time ago; removing theMichael Brown2006-05-181-8/+0Star
| | | | declaration.
* all window primitives implementedDan Lynch2006-05-181-30/+9Star
|
* Strip down i386 PCI configuration space I/O to the bare minimum. AMichael Brown2006-05-171-13/+1Star
| | | | | | | | | | typical build will now include 880 bytes of PCI support code, compared to 2327 bytes in Etherboot 5.4. (There is a slight cost of around 5 extra bytes per access to a non-constant config space address; this should be an overall win. Driver-specific accesses will usually be to constant addresses, for which there is no additional cost.)
* Restructured PCI subsystem to fit the new device model.Michael Brown2006-05-161-112/+107Star
| | | | | | | | | | | | | | Generic PCI code now handles 64-bit BARs correctly when setting "membase"; drivers should need to call pci_bar_start() only if they want to use BARs other than the first memory or I/O BAR. Split rarely-used PCI functions out into pciextra.c. Core PCI code is now 662 bytes (down from 1308 bytes in Etherboot 5.4). 284 bytes of this saving comes from the pci/pciextra split. Cosmetic changes to lots of drivers (e.g. vendor_id->vendor in order to match the names used in Linux).
* Tear out old heap code, replace with code that simply allocates memoryMichael Brown2006-05-162-92/+15Star
| | | | | | | | | for use by malloc(). This breaks the image-loading code (which previously used the heap to allocate the buffer for downloading the image), but that's not a major concern since I'm going to tear out all the image formats within the next couple of days anyway. Byebye, NBI! :)
* Kill off the "all devices are boot devices" ideaMichael Brown2006-05-161-0/+4
|
* Add list_for_each_entry_safe.Michael Brown2006-05-161-1/+16
|
* Added generic device model.Michael Brown2006-05-161-0/+70
|
* Change movetoyx(), putc() and getc() to methods of the screen.Michael Brown2006-05-151-26/+23Star
|
* lightweight xcurses implementation for etherboot (Michael made me do it...)Dan Lynch2006-05-151-0/+871
|
* Split "iSCSI as a SCSI device" out from "iSCSI as a TCP protocol".Michael Brown2006-05-151-0/+3
|
* Updated documentation.Michael Brown2006-05-141-35/+22Star
| | | | | | | | Shaved around 100 bytes off vsprintf.o. It's now 50 bytes smaller than the old implementation and provides much more conformant semantics, including the ability to return the number of characters that would have been printed to the string had the buffer been big enough. (iSCSI needs this functionality).
* Rewrote printf and friends to better support standard C semantics.Michael Brown2006-05-141-3/+35
|
* Add 64-bit byte-swapping operations.Michael Brown2006-05-133-0/+10
|
* Provide a SCSI device interface to the iSCSI protocolMichael Brown2006-05-131-35/+101
|
* Defined SCSI device interface, and added SCSI block deviceMichael Brown2006-05-131-7/+137
| | | | implementation.
* Defined a block device interface.Michael Brown2006-05-131-0/+39
|
* (Redoing check-in lost by SourceForge's failure.)Michael Brown2006-05-131-66/+0Star
|
* Towards a(nother) new real-mode infrastructure, in which we takeMichael Brown2006-05-021-5/+0Star
| | | | | advantage of the fact that we have to have a permanently-resident block in base memory.
* Merge TCP aborted(), timedout() and closed() methods into a singleMichael Brown2006-04-302-15/+17
| | | | closed() method with a reason code.
* Proof-of-concept FTP implementationMichael Brown2006-04-301-0/+68
|
* Add a temporary snprintf, so that safely-written code can at leastMichael Brown2006-04-301-0/+1
| | | | compile, even if it won't yet be safe.
* Fix up prototype of strtoul() to match POSIX.Michael Brown2006-04-301-1/+1
|
* Make tcp_connect() void; it will eventually have no failure case.Michael Brown2006-04-302-2/+2
|
* Put the TCP connection periodic processing in tcp.c, where it belongs.Michael Brown2006-04-301-8/+2Star
|
* ConsistencyMichael Brown2006-04-301-3/+3
|
* Move init.h to gpxe/init.h.Michael Brown2006-04-301-0/+66
|
* Change semantics of network API so that packet-absorbing calls *always*Michael Brown2006-04-291-10/+9Star
| | | | | | | | | | | 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-291-0/+32
| | | | Yes, you really can do it in 65 bytes.
* Network layer now works as a proof of conceptMichael Brown2006-04-282-28/+83
|
* Fix a couple of broken assertions, and align the buffer correctly.Michael Brown2006-04-281-2/+2
|
* Gave up on adding POSIX errno's as required, and just added (almost) allMichael Brown2006-04-281-12/+52
| | | | | | of them in one go. EBADIMG has been replaced by ENOEXEC, and EIMGRET by ECANCELED.
* Actually, it's probably a good idea to have packet buffers avoid 4kBMichael Brown2006-04-251-0/+11
| | | | crossings.
* Updated memory allocator to improve support for unaligned or partiallyMichael Brown2006-04-252-36/+66
| | | | | | | | | 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 pkb_reserve().Michael Brown2006-04-241-0/+14
|
* gcc is rather over-aggressive about optimising out static data structuresMichael Brown2006-04-243-9/+9
| | | | even when __atribute__ (( unused )) is correctly set...
* Header rearrangement.Michael Brown2006-04-2419-45/+63
| | | | | | | | | I want to get to the point where any header in include/ reflects a standard user-level header (e.g. a POSIX header), while everything that's specific to gPXE lives in include/gpxe/. Headers that reflect a Linux header (e.g. if_ether.h) should also be in include/gpxe/, with the same name as the Linux header and, preferably, the same names used for the definitions.
* Network API now allows for multiple network devices (although theMichael Brown2006-04-241-0/+28
| | | | | | | | | | | | | implementation allows for only one, and does so without compromising on the efficiency of static allocation). Link-layer protocols are cleanly separated from the device drivers. Network-layer protocols are cleanly separated from individual network devices. Link-layer and network-layer protocols are cleanly separated from each other.