people/lynusvaz/gpxe.git
14 years agoNeed write permission to /dev/net/tun, not just read.
Michael Brown [Fri, 26 May 2006 08:15:31 +0000 (08:15 +0000)]
Need write permission to /dev/net/tun, not just read.

14 years agoUpdated to work with libprefix.
Michael Brown [Thu, 25 May 2006 22:04:47 +0000 (22:04 +0000)]
Updated to work with libprefix.

14 years agoDocumented the fact that the prefix can prot_call(main) without
Michael Brown [Thu, 25 May 2006 22:04:17 +0000 (22:04 +0000)]
Documented the fact that the prefix can prot_call(main) without
worrying about its stack being destroyed during the Etherboot run.

14 years agorelocate.o is now dragged in by the objects that require it; there is no
Michael Brown [Thu, 25 May 2006 01:34:13 +0000 (01:34 +0000)]
relocate.o is now dragged in by the objects that require it; there is no
need for a CONFIG_RELOCATE.

14 years agoRemoved some obsolete INIT_XXX constants.
Michael Brown [Thu, 25 May 2006 01:09:06 +0000 (01:09 +0000)]
Removed some obsolete INIT_XXX constants.

14 years agoAlso hide base memory region from E820 map.
Michael Brown [Thu, 25 May 2006 00:10:58 +0000 (00:10 +0000)]
Also hide base memory region from E820 map.

14 years agoinit_librm() and prot_call() are now real-mode far calls.
Michael Brown [Thu, 25 May 2006 00:06:45 +0000 (00:06 +0000)]
init_librm() and prot_call() are now real-mode far calls.

install() now calls relocate(), moves the protected-mode code to the new
location, and calls hide_etherboot().

14 years agoHas been obsolete for a while.
Michael Brown [Thu, 25 May 2006 00:04:37 +0000 (00:04 +0000)]
Has been obsolete for a while.

14 years agoUpdate relocate() to work with get_memmap().
Michael Brown [Thu, 25 May 2006 00:04:13 +0000 (00:04 +0000)]
Update relocate() to work with get_memmap().

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.

14 years agoFix printf format warning error
Michael Brown [Thu, 25 May 2006 00:02:27 +0000 (00:02 +0000)]
Fix printf format warning error

14 years agoWhy should pushal/popal put the registers on the stack in a logical
Michael Brown [Thu, 25 May 2006 00:01:46 +0000 (00:01 +0000)]
Why should pushal/popal put the registers on the stack in a logical
order?

14 years agoTypo.
Michael Brown [Thu, 25 May 2006 00:00:53 +0000 (00:00 +0000)]
Typo.

14 years agoAdd a "count" field to struct memory_map.
Michael Brown [Thu, 25 May 2006 00:00:30 +0000 (00:00 +0000)]
Add a "count" field to struct memory_map.

14 years agoDefine a struct memory_map with a fixed number of entries, rather than
Michael Brown [Wed, 24 May 2006 14:41:27 +0000 (14:41 +0000)]
Define a struct memory_map with a fixed number of entries, rather than
requiring each caller to decide how many entries it wants to permit.

14 years agoRemove the automatic segment register save and restore; most users of
Michael Brown [Wed, 24 May 2006 14:11:36 +0000 (14:11 +0000)]
Remove the automatic segment register save and restore; most users of
REAL_CODE() don't need it.

14 years agoRemoved REAL_EXEC(); there is no longer any code using it.
Michael Brown [Wed, 24 May 2006 14:10:15 +0000 (14:10 +0000)]
Removed REAL_EXEC(); there is no longer any code using it.

14 years agoAdded potentially required "\n\t" on the end of asm_code_str
Michael Brown [Wed, 24 May 2006 14:06:28 +0000 (14:06 +0000)]
Added potentially required "\n\t" on the end of asm_code_str

14 years agoNBI is due for removal
Michael Brown [Wed, 24 May 2006 13:53:35 +0000 (13:53 +0000)]
NBI is due for removal

14 years agoWill be replaced with a block-device implementation.
Michael Brown [Wed, 24 May 2006 13:52:46 +0000 (13:52 +0000)]
Will be replaced with a block-device implementation.

14 years agoUpdated to REAL_CODE()
Michael Brown [Wed, 24 May 2006 13:50:40 +0000 (13:50 +0000)]
Updated to REAL_CODE()

14 years agoUpdated to REAL_CODE().
Michael Brown [Wed, 24 May 2006 13:48:16 +0000 (13:48 +0000)]
Updated to REAL_CODE().

int13_boot() now does its own segment register save and restore, ready
for the removal of segment register restoration from the libkir
generic code.

14 years agoUpdated to REAL_CODE()
Michael Brown [Wed, 24 May 2006 13:28:39 +0000 (13:28 +0000)]
Updated to REAL_CODE()

14 years agoUpdated to REAL_CODE().
Michael Brown [Wed, 24 May 2006 13:24:22 +0000 (13:24 +0000)]
Updated to REAL_CODE().

14 years agoUpdate to REAL_CODE()
Michael Brown [Wed, 24 May 2006 12:45:50 +0000 (12:45 +0000)]
Update to REAL_CODE()

14 years agoUpdated to REAL_CODE().
Michael Brown [Wed, 24 May 2006 12:32:57 +0000 (12:32 +0000)]
Updated to REAL_CODE().

14 years agoSet carry flag before calling INT 15,e801 and INT 15,e820.
Michael Brown [Wed, 24 May 2006 12:19:16 +0000 (12:19 +0000)]
Set carry flag before calling INT 15,e801 and INT 15,e820.

Ignore carry flag for INT 15,88; the Ralf Brown interrupt list says
that CF is unreliable for this call.

14 years agoSplit out REAL_CODE() from REAL_EXEC(), preparatory to removing REAL_EXEC
Michael Brown [Wed, 24 May 2006 09:51:04 +0000 (09:51 +0000)]
Split out REAL_CODE() from REAL_EXEC(), preparatory to removing REAL_EXEC
completely.

14 years agoRemove references to obsoleted REAL_CALL from documentation.
Michael Brown [Wed, 24 May 2006 09:16:48 +0000 (09:16 +0000)]
Remove references to obsoleted REAL_CALL from documentation.

14 years agoRemoved REAL_FRAGMENT and REAL_CALL, and left just REAL_EXEC (which is
Michael Brown [Wed, 24 May 2006 09:14:44 +0000 (09:14 +0000)]
Removed REAL_FRAGMENT and REAL_CALL, and left just REAL_EXEC (which is
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.

14 years agoReplaced memsizes.c with smaller memmap.c, taking advantage of __data16,
Michael Brown [Wed, 24 May 2006 01:37:46 +0000 (01:37 +0000)]
Replaced memsizes.c with smaller memmap.c, taking advantage of __data16,
and creating a memory map that's easier to work with than the E820 map.

14 years agoCode to install the new E820 mangler (which doesn't require copying
Michael Brown [Tue, 23 May 2006 23:47:05 +0000 (23:47 +0000)]
Code to install the new E820 mangler (which doesn't require copying
down to base memory, since it is now in the base-memory-resident
.text16 section).

14 years agoAdd __{text,data}16_array, since there's no way I can see to make the
Michael Brown [Tue, 23 May 2006 23:42:45 +0000 (23:42 +0000)]
Add __{text,data}16_array, since there's no way I can see to make the
usual __{text,data}16 trick work with arrays.  gcc seems to accept the
__asm__ ( asmlabel ) only after the [] of the array declaration, not
before.

14 years agoCope with regions bigger than 4GB.
Michael Brown [Tue, 23 May 2006 23:33:37 +0000 (23:33 +0000)]
Cope with regions bigger than 4GB.

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.).

14 years ago- implemented printw (formatted string output, a la printf)
Dan Lynch [Mon, 22 May 2006 17:03:41 +0000 (17:03 +0000)]
- implemented printw (formatted string output, a la printf)
- implemented hline/vline (part of wborder family)
- screen cursor now relocates at same time as window cursor when
  restoring after a non-wrapping function

14 years agoAllow vcprintf() to be called by external code such as the curses library.
Michael Brown [Mon, 22 May 2006 15:41:01 +0000 (15:41 +0000)]
Allow vcprintf() to be called by external code such as the curses library.

Also trim another eight bytes from vsprintf.o.  :)

14 years ago- fixes to _wputch to get positioning and wrap working properly
Dan Lynch [Mon, 22 May 2006 13:10:19 +0000 (13:10 +0000)]
- fixes to _wputch to get positioning and wrap working properly
- fixes to wborder (same)
- addition of a few minor functions

14 years agoFixed debug code
Michael Brown [Sun, 21 May 2006 16:04:41 +0000 (16:04 +0000)]
Fixed debug code

14 years agoMade the LBA48 example clearer.
Michael Brown [Sun, 21 May 2006 16:02:38 +0000 (16:02 +0000)]
Made the LBA48 example clearer.

14 years agoAdded (untested) support for ATA devices. This code should be generic
Michael Brown [Sun, 21 May 2006 16:01:23 +0000 (16:01 +0000)]
Added (untested) support for ATA devices.  This code should be generic
enough to support both real IDE chipsets and AoE.

14 years agoRefactored to reduce code size; now down from 1304 to 1105 bytes.
Michael Brown [Sat, 20 May 2006 15:33:32 +0000 (15:33 +0000)]
Refactored to reduce code size; now down from 1304 to 1105 bytes.

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)

14 years agoAdded missing @file block
Michael Brown [Sat, 20 May 2006 13:25:07 +0000 (13:25 +0000)]
Added missing @file block

14 years agoUse insb/outsb; it's marginally faster.
Michael Brown [Sat, 20 May 2006 12:28:44 +0000 (12:28 +0000)]
Use insb/outsb; it's marginally faster.

14 years agoREAD CAPACITY (16) turns out to be an optional command (even though
Michael Brown [Fri, 19 May 2006 18:54:38 +0000 (18:54 +0000)]
READ CAPACITY (16) turns out to be an optional command (even though
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".

14 years agoAdd EOVERFLOW==ERANGE
Michael Brown [Fri, 19 May 2006 18:53:12 +0000 (18:53 +0000)]
Add EOVERFLOW==ERANGE

14 years agoExpert advice tells me that we *do* have to explicitly state the
Michael Brown [Fri, 19 May 2006 17:50:49 +0000 (17:50 +0000)]
Expert advice tells me that we *do* have to explicitly state the
options even when we want to use the defaults.

14 years ago- made some of the bit shifting attribute access simpler (in my mind)
Dan Lynch [Fri, 19 May 2006 16:22:10 +0000 (16:22 +0000)]
- made some of the bit shifting attribute access simpler (in my mind)
- 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

14 years ago- made _wputch wrap lines as well as cols (wraps back to line 0, as we have not way...
Dan Lynch [Fri, 19 May 2006 16:18:08 +0000 (16:18 +0000)]
- made _wputch wrap lines as well as cols (wraps back to line 0, as we have not way to scroll...)
- implemented color_content, wborder, wblrtobot, wclrtoeol, wcolor_set and several small functions
- added rest of expected global variables

14 years agoAdd the concept of a "user pointer" (similar to the void __user * in
Michael Brown [Fri, 19 May 2006 15:06:51 +0000 (15:06 +0000)]
Add the concept of a "user pointer" (similar to the void __user * in
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).

14 years agoUse typeof(sizeof(...)) to define a size_t. This stops gcc complaining
Michael Brown [Fri, 19 May 2006 14:51:59 +0000 (14:51 +0000)]
Use typeof(sizeof(...)) to define a size_t.  This stops gcc complaining
about format errors for %zX arguments.

14 years agoDocumented login parameters that we negotiate.
Michael Brown [Fri, 19 May 2006 00:31:42 +0000 (00:31 +0000)]
Documented login parameters that we negotiate.

14 years agoiSCSI writes seem to be working (at least, the ethereal trace shows no
Michael Brown [Fri, 19 May 2006 00:20:08 +0000 (00:20 +0000)]
iSCSI writes seem to be working (at least, the ethereal trace shows no
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.

14 years agoAll uses iscsi_state were removed some time ago; removing the
Michael Brown [Thu, 18 May 2006 21:38:16 +0000 (21:38 +0000)]
All uses iscsi_state were removed some time ago; removing the
declaration.

14 years agoRe-enable -Wformat, since our printf() is now more standards-conformant.
Michael Brown [Thu, 18 May 2006 21:23:38 +0000 (21:23 +0000)]
Re-enable -Wformat, since our printf() is now more standards-conformant.

14 years agoall window primitives implemented
Dan Lynch [Thu, 18 May 2006 17:51:19 +0000 (17:51 +0000)]
all window primitives implemented

14 years agoUpdated to new SourceForge CVS locations, and fix a couple of minor
Michael Brown [Thu, 18 May 2006 13:22:32 +0000 (13:22 +0000)]
Updated to new SourceForge CVS locations, and fix a couple of minor
mistakes.

14 years agoSet ErrorRecoveryLevel=0 (we don't want to have to handle it).
Michael Brown [Wed, 17 May 2006 17:41:50 +0000 (17:41 +0000)]
Set ErrorRecoveryLevel=0 (we don't want to have to handle it).

14 years agoAdded missing drivers/scsi
Michael Brown [Wed, 17 May 2006 17:31:18 +0000 (17:31 +0000)]
Added missing drivers/scsi

14 years agoSplit debug functions out into core/debug.c, so that they can be
Michael Brown [Wed, 17 May 2006 17:16:24 +0000 (17:16 +0000)]
Split debug functions out into core/debug.c, so that they can be
automatically linked in on demand.

Corrected warnings in misc.c.  strtoul() really should be
  unsigned long strtoul ( const char *p, const char **endp, int base )
but such is not the ANSI standard.

14 years agoStrip down i386 PCI configuration space I/O to the bare minimum. A
Michael Brown [Wed, 17 May 2006 01:12:11 +0000 (01:12 +0000)]
Strip down i386 PCI configuration space I/O to the bare minimum.  A
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.)

14 years agoRestructured PCI subsystem to fit the new device model.
Michael Brown [Tue, 16 May 2006 15:12:06 +0000 (15:12 +0000)]
Restructured PCI subsystem to fit the new device model.

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).

14 years agoMissed a reference to heap.h.
Michael Brown [Tue, 16 May 2006 15:01:26 +0000 (15:01 +0000)]
Missed a reference to heap.h.

14 years agoTear out old heap code, replace with code that simply allocates memory
Michael Brown [Tue, 16 May 2006 15:00:36 +0000 (15:00 +0000)]
Tear out old heap code, replace with code that simply allocates memory
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!  :)

14 years agoFix typo
Michael Brown [Tue, 16 May 2006 14:42:43 +0000 (14:42 +0000)]
Fix typo

14 years agoKill off the "all devices are boot devices" idea
Michael Brown [Tue, 16 May 2006 14:42:15 +0000 (14:42 +0000)]
Kill off the "all devices are boot devices" idea

14 years agoAdd list_for_each_entry_safe.
Michael Brown [Tue, 16 May 2006 14:14:31 +0000 (14:14 +0000)]
Add list_for_each_entry_safe.

14 years agoAdded generic device model.
Michael Brown [Tue, 16 May 2006 14:10:21 +0000 (14:10 +0000)]
Added generic device model.

14 years agoChange movetoyx(), putc() and getc() to methods of the screen.
Michael Brown [Mon, 15 May 2006 09:51:18 +0000 (09:51 +0000)]
Change movetoyx(), putc() and getc() to methods of the screen.

14 years agofixed build error (danjlynch, repeat: this is *not* perl, this is *not* perl...)
Dan Lynch [Mon, 15 May 2006 09:34:27 +0000 (09:34 +0000)]
fixed build error (danjlynch, repeat: this is *not* perl, this is *not* perl...)

14 years agolightweight xcurses implementation for etherboot (Michael made me do it...)
Dan Lynch [Mon, 15 May 2006 09:29:48 +0000 (09:29 +0000)]
lightweight xcurses implementation for etherboot (Michael made me do it...)

14 years agoAdd INT 13,41 (extensions installation check). LILO's MBR now uses
Michael Brown [Sun, 14 May 2006 23:46:28 +0000 (23:46 +0000)]
Add INT 13,41 (extensions installation check).  LILO's MBR now uses
linear calls to load the MS-DOS boot sector in my test setup.

14 years agoSplit "iSCSI as a SCSI device" out from "iSCSI as a TCP protocol".
Michael Brown [Sun, 14 May 2006 23:29:16 +0000 (23:29 +0000)]
Split "iSCSI as a SCSI device" out from "iSCSI as a TCP protocol".

14 years agoFix a couple of minor typos.
Michael Brown [Sun, 14 May 2006 18:17:29 +0000 (18:17 +0000)]
Fix a couple of minor typos.

14 years agoAlso capture INT 19 as a failure path, to allow for boot sectors that
Michael Brown [Sun, 14 May 2006 14:13:55 +0000 (14:13 +0000)]
Also capture INT 19 as a failure path, to allow for boot sectors that
don't conform to BBS (e.g. the one created by mkdosfs).

14 years agoAdd int13_boot(), to allow booting from INT 13 emulated drives.
Michael Brown [Sun, 14 May 2006 13:44:47 +0000 (13:44 +0000)]
Add int13_boot(), to allow booting from INT 13 emulated drives.

14 years agoSpecify attributes on .text16.
Michael Brown [Sun, 14 May 2006 13:39:27 +0000 (13:39 +0000)]
Specify attributes on .text16.

14 years agoHandle the '"%c", 0' case correctly.
Michael Brown [Sun, 14 May 2006 11:55:30 +0000 (11:55 +0000)]
Handle the '"%c", 0' case correctly.

14 years agoCorrectly handle zero-length buffers.
Michael Brown [Sun, 14 May 2006 11:18:42 +0000 (11:18 +0000)]
Correctly handle zero-length buffers.

14 years agoUpdated documentation.
Michael Brown [Sun, 14 May 2006 03:31:20 +0000 (03:31 +0000)]
Updated documentation.

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).

14 years agoRewrote printf and friends to better support standard C semantics.
Michael Brown [Sun, 14 May 2006 02:51:55 +0000 (02:51 +0000)]
Rewrote printf and friends to better support standard C semantics.

14 years agoAt least cope with "%llx" by reading the correct-sized va_arg from the
Michael Brown [Sat, 13 May 2006 11:50:52 +0000 (11:50 +0000)]
At least cope with "%llx" by reading the correct-sized va_arg from the
stack, even if we don't yet print it out.

At some point, vsprintf() needs to be fixed up so that it can correctly
cope with limited-sized buffers (i.e. vsnprintf), long longs, and
standard format specifiers (e.g. "%04x").  We should also remove the
special types (MAC addresses and IP addresses).  This would then enable
us to use gcc's ability to type-check printf format strings.

14 years agoMoved to net/tcp/iscsi.c.
Michael Brown [Sat, 13 May 2006 11:45:49 +0000 (11:45 +0000)]
Moved to net/tcp/iscsi.c.

14 years agoProvide access to rm_cs and rm_ds from protected-mode code.
Michael Brown [Sat, 13 May 2006 11:45:31 +0000 (11:45 +0000)]
Provide access to rm_cs and rm_ds from protected-mode code.

14 years agoProvide a global counter for the number of interrupts hooked.
Michael Brown [Sat, 13 May 2006 11:44:53 +0000 (11:44 +0000)]
Provide a global counter for the number of interrupts hooked.

14 years agoAllow re-entrancy and provide a global counter of the number of
Michael Brown [Sat, 13 May 2006 11:44:11 +0000 (11:44 +0000)]
Allow re-entrancy and provide a global counter of the number of
interrupts hooked.

14 years agoDefine BIOS data segment in bios.h
Michael Brown [Sat, 13 May 2006 11:43:07 +0000 (11:43 +0000)]
Define BIOS data segment in bios.h

14 years agoAdd flag definitions.
Michael Brown [Sat, 13 May 2006 11:42:07 +0000 (11:42 +0000)]
Add flag definitions.

14 years agoAdd INT 13 emulation layer (which provides an interface to gPXE block
Michael Brown [Sat, 13 May 2006 11:41:36 +0000 (11:41 +0000)]
Add INT 13 emulation layer (which provides an interface to gPXE block
devices).

14 years agoAdd 64-bit byte-swapping operations.
Michael Brown [Sat, 13 May 2006 11:40:39 +0000 (11:40 +0000)]
Add 64-bit byte-swapping operations.

14 years agoProvide a SCSI device interface to the iSCSI protocol
Michael Brown [Sat, 13 May 2006 11:39:46 +0000 (11:39 +0000)]
Provide a SCSI device interface to the iSCSI protocol

14 years agoDefined SCSI device interface, and added SCSI block device
Michael Brown [Sat, 13 May 2006 11:37:50 +0000 (11:37 +0000)]
Defined SCSI device interface, and added SCSI block device
implementation.

14 years agoDefined a block device interface.
Michael Brown [Sat, 13 May 2006 11:36:30 +0000 (11:36 +0000)]
Defined a block device interface.

14 years agoAdd drivers/block and arch/i386/interface/pcbios
Michael Brown [Sat, 13 May 2006 11:35:29 +0000 (11:35 +0000)]
Add drivers/block and arch/i386/interface/pcbios

14 years ago(Redoing check-in lost by SourceForge's failure.)
Michael Brown [Sat, 13 May 2006 11:30:03 +0000 (11:30 +0000)]
(Redoing check-in lost by SourceForge's failure.)

14 years ago(Redoing check-in lost by SourceForge's failure.)
Michael Brown [Sat, 13 May 2006 11:24:25 +0000 (11:24 +0000)]
(Redoing check-in lost by SourceForge's failure.)

Moved to net/

14 years ago(Redoing check-in lost by SourceForge's failure.)
Michael Brown [Sat, 13 May 2006 11:19:06 +0000 (11:19 +0000)]
(Redoing check-in lost by SourceForge's failure.)

Add method for hooking real-mode interrupt vectors.

14 years ago(Redoing check-in lost by SourceForge's failure.)
Michael Brown [Sat, 13 May 2006 11:11:55 +0000 (11:11 +0000)]
(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}.

14 years ago(Redoing check-in lost by SourceForge's failure.)
Michael Brown [Sat, 13 May 2006 11:10:24 +0000 (11:10 +0000)]
(Redoing check-in lost by SourceForge's failure.)

Avoid optimisation errors under -fstrict-aliasing.

14 years agoAdded tunctl (since it is difficult to find for many distros).
Michael Brown [Sat, 13 May 2006 09:27:54 +0000 (09:27 +0000)]
Added tunctl (since it is difficult to find for many distros).

14 years agoPreserve the whole of %esp across prot_call(). We have to split this
Michael Brown [Sat, 6 May 2006 19:44:23 +0000 (19:44 +0000)]
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.

14 years agoAllow access to variables in .text16 as well as .data16. Chained
Michael Brown [Sat, 6 May 2006 18:57:31 +0000 (18:57 +0000)]
Allow access to variables in .text16 as well as .data16.  Chained
interrupt vectors, for example, will be easiest to handle if placed in
.text16.