mirror of
https://github.com/ipxe/ipxe
synced 2025-12-22 04:50:25 +03:00
[iSCSI] Support Windows Server 2008 direct iSCSI installation
Add yet another ugly hack to iscsiboot.c, this time to allow the user to inhibit the shutdown/removal of the iSCSI INT13 device (and the network devices, since they are required for the iSCSI device to function). On the plus side, the fact that shutdown() now takes flags to differentiate between shutdown-for-exit and shutdown-for-boot means that another ugly hack (to allow returning via the PXE stack on BIOSes that have broken INT 18 calls) will be easier. I feel dirty.
This commit is contained in:
@@ -128,7 +128,7 @@ static void hide_etherboot ( void ) {
|
||||
* Uninstalls the INT 15 handler installed by hide_etherboot(), if
|
||||
* possible.
|
||||
*/
|
||||
static void unhide_etherboot ( void ) {
|
||||
static void unhide_etherboot ( int flags __unused ) {
|
||||
|
||||
/* If we have more than one hooked interrupt at this point, it
|
||||
* means that some other vector is still hooked, in which case
|
||||
|
||||
@@ -348,7 +348,7 @@ static int bzimage_exec ( struct image *image ) {
|
||||
sizeof ( bzhdr ) );
|
||||
|
||||
/* Prepare for exiting */
|
||||
shutdown();
|
||||
shutdown ( SHUTDOWN_BOOT );
|
||||
|
||||
DBGC ( image, "bzImage %p jumping to RM kernel at %04x:0000 "
|
||||
"(stack %04x:%04zx)\n", image,
|
||||
|
||||
@@ -46,7 +46,7 @@ static int elfboot_exec ( struct image *image ) {
|
||||
/* An ELF image has no callback interface, so we need to shut
|
||||
* down before invoking it.
|
||||
*/
|
||||
shutdown();
|
||||
shutdown ( SHUTDOWN_BOOT );
|
||||
|
||||
/* Jump to OS with flat physical addressing */
|
||||
__asm__ __volatile__ ( PHYS_CODE ( "call *%%edi\n\t" )
|
||||
|
||||
@@ -277,7 +277,7 @@ static int multiboot_exec ( struct image *image ) {
|
||||
/* Multiboot images may not return and have no callback
|
||||
* interface, so shut everything down prior to booting the OS.
|
||||
*/
|
||||
shutdown();
|
||||
shutdown ( SHUTDOWN_BOOT );
|
||||
|
||||
/* Jump to OS with flat physical addressing */
|
||||
__asm__ __volatile__ ( PHYS_CODE ( "call *%%edi\n\t" )
|
||||
|
||||
@@ -429,7 +429,7 @@ static int nbi_exec ( struct image *image ) {
|
||||
/* Shut down now if NBI image will not return */
|
||||
may_return = NBI_PROGRAM_RETURNS ( imgheader.flags );
|
||||
if ( ! may_return )
|
||||
shutdown();
|
||||
shutdown ( SHUTDOWN_BOOT );
|
||||
|
||||
/* Execute NBI image */
|
||||
if ( NBI_LINEAR_EXEC_ADDR ( imgheader.flags ) ) {
|
||||
|
||||
Reference in New Issue
Block a user