Michael Brown
5a54225aef
Added support for INT 13,15; NTLDR calls it (though it may not
actually do anything with the result, since it carried on using us
even when we returned failure).
18 年之前
Michael Brown
40724431e8
Added support for INT 13,15; NTLDR calls it (though it may not
actually do anything with the result, since it carried on using us
even when we returned failure).
18 年之前
Michael Brown
19883779ba
Use TEXT16_CODE() rather than manually specifying ".code16" etc, since
our manual ".code32" will break a KEEP_IT_REAL build.
18 年之前
Michael Brown
6abfaa153b
Towards making KEEP_IT_REAL work again.
Fix bug that caused over-allocation of .text16 and .data16 memory areas
by a factor of 16.
18 年之前
Michael Brown
4afc494b83
Both the !PXE and PXENV+ structures must be paragraph-aligned
18 年之前
Michael Brown
fd07f56f0d
Note to self: learn to count.
18 年之前
Michael Brown
843bcc291d
Added missing __from_text16()s when passing pointers to PXE NBP.
18 年之前
Michael Brown
751ae718bd
pxe_int_1a is needed by pxe_call.c
18 年之前
Michael Brown
18c112d205
Added (not yet tested) PXE API entry point and support functions.
18 年之前
Michael Brown
a0a872f7f1
Updated PXE UDP implementation to use the new Etherboot UDP API.
Updated PXE API dispatcher to use copy_{to,from}_user, and moved to
arch/i386 since the implementation is quite architecture-dependent.
(The individual PXE API calls can be largely
architecture-independent.)
18 年之前
Michael Brown
2138db36ca
Add "addr32" required explicitly by older gas.
18 年之前
Michael Brown
df4b503a8c
Added null trap code for debugging. (Must be included by adding
--nulltrap to the make target at the moment.)
18 年之前
Michael Brown
476d02051f
Windows Server 2003 sulks if we feed it an empty region in base memory
as a result of our memory map editing, so strip out any empty regions.
18 年之前
Michael Brown
6fd1bd0510
Added missing check-in
18 年之前
Michael Brown
17eea9f933
Fix bug with >256 cylinders.
Allow our functions to return a non-zero, non-error status (since the
INT 13 Extensions Check has to return the API version in the register
that is otherwise always used for the error code).
Report a non-zero API version from the INT 13 Extensions Check; GRUB
now uses extended reads.
18 年之前
Michael Brown
fdf62528ca
It's astonishing how long really fundamental bugs can survive without
being noticed...
18 年之前
Michael Brown
191a906338
Fix some remarkably obvious mistakes in pcidirect.h
18 年之前
Michael Brown
763b7e2ef9
We now have just romprefix, rather than having isaprefix and pciprefix
18 年之前
Michael Brown
ef37f78cbe
Cut out almost all the optional code paths, drastically simplifying the
flow of control through this code.
We now always add PCI and PnP headers even for ISA ROMs; there's no harm
in doing so.
UNDI loader is still missing.
18 年之前
Michael Brown
e7eca7b7cb
Code segment may not be writable; create the temporary pointer to the GDT
on the stack.
18 年之前
Michael Brown
46253ba618
Calculate _rom_size for the ROM prefix
18 年之前
Michael Brown
35b04b1514
Tidy up comment
18 年之前
Michael Brown
041a04335e
Fixed assembly on old versions of gas
18 年之前
Michael Brown
9f86754f90
Updated to work with libprefix.
18 年之前
Michael Brown
29340d7728
Documented the fact that the prefix can prot_call(main) without
worrying about its stack being destroyed during the Etherboot run.
18 年之前
Michael Brown
d82f71efd0
Also hide base memory region from E820 map.
18 年之前
Michael Brown
89da833c5d
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().
18 年之前
Michael Brown
4d81b48504
Has been obsolete for a while.
18 年之前
Michael Brown
1966945a5d
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.
18 年之前
Michael Brown
f939ff7cb5
Fix printf format warning error
18 年之前
Michael Brown
3bd3c13c7b
Why should pushal/popal put the registers on the stack in a logical
order?
18 年之前
Michael Brown
dd75965057
Typo.
18 年之前
Michael Brown
e4f8d6eed7
Add a "count" field to struct memory_map.
18 年之前
Michael Brown
986f6ffff1
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.
18 年之前
Michael Brown
edcf89e2b0
Remove the automatic segment register save and restore; most users of
REAL_CODE() don't need it.
18 年之前
Michael Brown
02cf755f3f
Removed REAL_EXEC(); there is no longer any code using it.
18 年之前
Michael Brown
103aff3ae2
Added potentially required "\n\t" on the end of asm_code_str
18 年之前
Michael Brown
190276a8b6
NBI is due for removal
18 年之前
Michael Brown
52125e158c
Will be replaced with a block-device implementation.
18 年之前
Michael Brown
8110f9b082
Updated to REAL_CODE()
18 年之前
Michael Brown
595f161b51
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.
18 年之前
Michael Brown
e8550035af
Updated to REAL_CODE()
18 年之前
Michael Brown
c4d688c005
Updated to REAL_CODE().
18 年之前
Michael Brown
04d6005d77
Update to REAL_CODE()
18 年之前
Michael Brown
6631f46999
Updated to REAL_CODE().
18 年之前
Michael Brown
53935e9dc6
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.
18 年之前
Michael Brown
7a53d07027
Split out REAL_CODE() from REAL_EXEC(), preparatory to removing REAL_EXEC
completely.
18 年之前
Michael Brown
83d80d9e79
Remove references to obsoleted REAL_CALL from documentation.
18 年之前
Michael Brown
3b525385af
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.
18 年之前
Michael Brown
77a65075a6
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.
18 年之前