summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Updated to work with libprefix.Michael Brown2006-05-261-186/+179Star
|
* Documented the fact that the prefix can prot_call(main) withoutMichael Brown2006-05-261-0/+9
| | | | worrying about its stack being destroyed during the Etherboot run.
* relocate.o is now dragged in by the objects that require it; there is noMichael Brown2006-05-252-10/+0Star
| | | | need for a CONFIG_RELOCATE.
* Removed some obsolete INIT_XXX constants.Michael Brown2006-05-251-5/+0Star
|
* Also hide base memory region from E820 map.Michael Brown2006-05-251-2/+7
|
* init_librm() and prot_call() are now real-mode far calls.Michael Brown2006-05-254-90/+120
| | | | | install() now calls relocate(), moves the protected-mode code to the new location, and calls hide_etherboot().
* Has been obsolete for a while.Michael Brown2006-05-251-160/+0Star
|
* Update relocate() to work with get_memmap().Michael Brown2006-05-251-66/+44Star
| | | | | | Change semantics; relocate() now just finds a suitable location; it doesn't actually perform the relocation itself. Code in libprefix does the copy in flat real mode.
* Fix printf format warning errorMichael Brown2006-05-251-2/+3
|
* Why should pushal/popal put the registers on the stack in a logicalMichael Brown2006-05-251-1/+1
| | | | order?
* Typo.Michael Brown2006-05-251-1/+1
|
* Add a "count" field to struct memory_map.Michael Brown2006-05-252-6/+11
|
* Define a struct memory_map with a fixed number of entries, rather thanMichael Brown2006-05-242-13/+21
| | | | requiring each caller to decide how many entries it wants to permit.
* Remove the automatic segment register save and restore; most users ofMichael Brown2006-05-241-8/+0Star
| | | | REAL_CODE() don't need it.
* Removed REAL_EXEC(); there is no longer any code using it.Michael Brown2006-05-243-44/+14Star
|
* Added potentially required "\n\t" on the end of asm_code_strMichael Brown2006-05-241-14/+1Star
|
* NBI is due for removalMichael Brown2006-05-241-0/+5
|
* Will be replaced with a block-device implementation.Michael Brown2006-05-241-0/+5
|
* Updated to REAL_CODE()Michael Brown2006-05-241-17/+7Star
|
* Updated to REAL_CODE().Michael Brown2006-05-241-31/+38
| | | | | | int13_boot() now does its own segment register save and restore, ready for the removal of segment register restoration from the libkir generic code.
* Updated to REAL_CODE()Michael Brown2006-05-241-14/+11Star
|
* Updated to REAL_CODE().Michael Brown2006-05-241-53/+55
|
* Update to REAL_CODE()Michael Brown2006-05-241-38/+29Star
|
* Updated to REAL_CODE().Michael Brown2006-05-241-41/+36Star
|
* Set carry flag before calling INT 15,e801 and INT 15,e820.Michael Brown2006-05-241-4/+4
| | | | | Ignore carry flag for INT 15,88; the Ralf Brown interrupt list says that CF is unreliable for this call.
* Split out REAL_CODE() from REAL_EXEC(), preparatory to removing REAL_EXECMichael Brown2006-05-242-31/+35
| | | | completely.
* Remove references to obsoleted REAL_CALL from documentation.Michael Brown2006-05-242-10/+2Star
|
* Removed REAL_FRAGMENT and REAL_CALL, and left just REAL_EXEC (which isMichael Brown2006-05-242-100/+94Star
| | | | | | | | | | | | | | | | | | the only one we actually use). This allows REAL_EXEC fragments to contain proper references to constraints (e.g. "%w0"), rather than having to force the use of specific registers. Note that the "num_constraints" parameter is now completely obsolete, and that we can probably reduce the syntax to something like __asm__ __volatile__ ( REAL_CODE ( "asm statements" ) : output constraints : input constraints : clobber ); which would look much more natural, and avoid the need to always specify a clobber list. Add userptr_t to libkir.h, to allow it to at least compile.
* Replaced memsizes.c with smaller memmap.c, taking advantage of __data16,Michael Brown2006-05-244-235/+239
| | | | and creating a memory map that's easier to work with than the E820 map.
* Code to install the new E820 mangler (which doesn't require copyingMichael Brown2006-05-241-80/+78Star
| | | | | down to base memory, since it is now in the base-memory-resident .text16 section).
* Add __{text,data}16_array, since there's no way I can see to make theMichael Brown2006-05-242-4/+14
| | | | | | usual __{text,data}16 trick work with arrays. gcc seems to accept the __asm__ ( asmlabel ) only after the [] of the array declaration, not before.
* Cope with regions bigger than 4GB.Michael Brown2006-05-241-243/+370
| | | | | | | | | | We now split e820 regions around ourselves, rather than just truncating the e820 region. This avoids the worst-case scenario of losing all memory over 4GB. It's more important to get the memory map right now that we're expecting to still be loaded when the OS starts in several situations (e.g. Linux with UNDI driver, any OS with iSCSI/AoE boot, etc.).
* - implemented printw (formatted string output, a la printf)Dan Lynch2006-05-222-77/+217
| | | | | | - 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-222-38/+67
| | | | Also trim another eight bytes from vsprintf.o. :)
* - fixes to _wputch to get positioning and wrap working properlyDan Lynch2006-05-222-25/+74
| | | | | - fixes to wborder (same) - addition of a few minor functions
* Fixed debug codeMichael Brown2006-05-211-3/+3
|
* Made the LBA48 example clearer.Michael Brown2006-05-211-4/+4
|
* Added (untested) support for ATA devices. This code should be genericMichael Brown2006-05-212-0/+362
| | | | enough to support both real IDE chipsets and AoE.
* Refactored to reduce code size; now down from 1304 to 1105 bytes.Michael Brown2006-05-201-120/+98Star
| | | | | | | | Tidied up debug messages; the log now contains one line per INT 13 operation, looking like INT 13,08 (80): Get drive parameters INT 13,02 (80): Read: C/H/S 0/47/14 = LBA 0xb9e <-> 1084:0000 (count 106)
* Added missing @file blockMichael Brown2006-05-201-0/+6
|
* Use insb/outsb; it's marginally faster.Michael Brown2006-05-201-9/+2Star
|
* READ CAPACITY (16) turns out to be an optional command (even thoughMichael Brown2006-05-192-2/+84
| | | | | 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
|
* Expert advice tells me that we *do* have to explicitly state theMichael Brown2006-05-191-11/+16
| | | | options even when we want to use the defaults.
* - 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
* - made _wputch wrap lines as well as cols (wraps back to line 0, as we have ↵Dan Lynch2006-05-191-61/+220
| | | | | | | not way to scroll...) - implemented color_content, wborder, wblrtobot, wclrtoeol, wcolor_set and several small functions - added rest of expected global variables
* Add the concept of a "user pointer" (similar to the void __user * inMichael Brown2006-05-1911-54/+154
| | | | | | | | | | | | | | | | | | | | 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).
* Use typeof(sizeof(...)) to define a size_t. This stops gcc complainingMichael Brown2006-05-191-1/+1
| | | | about format errors for %zX arguments.
* Documented login parameters that we negotiate.Michael Brown2006-05-191-1/+24
|
* iSCSI writes seem to be working (at least, the ethereal trace shows noMichael Brown2006-05-193-54/+304
| | | | | | | | | 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.