From 6d2e4e719c346aa519d63099475c0a81b70f758c Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 16 Jul 2007 13:22:12 +0100 Subject: [PATCH] Move uninitialised .data16 variables to .bss16; saves around 2000 bytes of useless zeroes in the final image. --- src/arch/i386/core/basemem_packet.c | 2 +- src/arch/i386/drivers/net/undiload.c | 4 ++-- src/arch/i386/drivers/net/undinet.c | 4 ++-- src/arch/i386/firmware/pcbios/memmap.c | 2 +- src/arch/i386/image/multiboot.c | 6 +++--- src/arch/i386/include/basemem_packet.h | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/arch/i386/core/basemem_packet.c b/src/arch/i386/core/basemem_packet.c index eedfaba4..64e0bcc1 100644 --- a/src/arch/i386/core/basemem_packet.c +++ b/src/arch/i386/core/basemem_packet.c @@ -27,4 +27,4 @@ #include #undef basemem_packet -char __data16_array ( basemem_packet, [BASEMEM_PACKET_LEN] ); +char __bss16_array ( basemem_packet, [BASEMEM_PACKET_LEN] ); diff --git a/src/arch/i386/drivers/net/undiload.c b/src/arch/i386/drivers/net/undiload.c index fc8d9194..a3284f80 100644 --- a/src/arch/i386/drivers/net/undiload.c +++ b/src/arch/i386/drivers/net/undiload.c @@ -36,11 +36,11 @@ */ /** Parameter block for calling UNDI loader */ -static struct s_UNDI_LOADER __data16 ( undi_loader ); +static struct s_UNDI_LOADER __bss16 ( undi_loader ); #define undi_loader __use_data16 ( undi_loader ) /** UNDI loader entry point */ -static SEGOFF16_t __data16 ( undi_loader_entry ); +static SEGOFF16_t __bss16 ( undi_loader_entry ); #define undi_loader_entry __use_data16 ( undi_loader_entry ) /** diff --git a/src/arch/i386/drivers/net/undinet.c b/src/arch/i386/drivers/net/undinet.c index 6b2e0c9d..38032ab1 100644 --- a/src/arch/i386/drivers/net/undinet.c +++ b/src/arch/i386/drivers/net/undinet.c @@ -136,7 +136,7 @@ undinet_function_name ( unsigned int function ) { * Used as the paramter block for all UNDI API calls. Resides in base * memory. */ -static union u_PXENV_ANY __data16 ( undinet_params ); +static union u_PXENV_ANY __bss16 ( undinet_params ); #define undinet_params __use_data16 ( undinet_params ) /** UNDI entry point @@ -144,7 +144,7 @@ static union u_PXENV_ANY __data16 ( undinet_params ); * Used as the indirection vector for all UNDI API calls. Resides in * base memory. */ -SEGOFF16_t __data16 ( undinet_entry_point ); +SEGOFF16_t __bss16 ( undinet_entry_point ); #define undinet_entry_point __use_data16 ( undinet_entry_point ) /** diff --git a/src/arch/i386/firmware/pcbios/memmap.c b/src/arch/i386/firmware/pcbios/memmap.c index 7c1f3602..318ba091 100644 --- a/src/arch/i386/firmware/pcbios/memmap.c +++ b/src/arch/i386/firmware/pcbios/memmap.c @@ -49,7 +49,7 @@ struct e820_entry { #define E820_TYPE_NVS 4 /**< ACPI NVS memory */ /** Buffer for INT 15,e820 calls */ -static struct e820_entry __data16 ( e820buf ); +static struct e820_entry __bss16 ( e820buf ); #define e820buf __use_data16 ( e820buf ) /** diff --git a/src/arch/i386/image/multiboot.c b/src/arch/i386/image/multiboot.c index 71202460..ab0b55ac 100644 --- a/src/arch/i386/image/multiboot.c +++ b/src/arch/i386/image/multiboot.c @@ -195,7 +195,7 @@ multiboot_build_module_list ( struct image *image, * along with the other structures belonging to the Multiboot * information table. */ -static struct multiboot_info __data16 ( mbinfo ); +static struct multiboot_info __bss16 ( mbinfo ); #define mbinfo __use_data16 ( mbinfo ) /** The multiboot bootloader name */ @@ -204,11 +204,11 @@ static char __data16_array ( mb_bootloader_name, [] ) = "gPXE " VERSION; /** The multiboot memory map */ static struct multiboot_memory_map - __data16_array ( mbmemmap, [MAX_MEMORY_REGIONS] ); + __bss16_array ( mbmemmap, [MAX_MEMORY_REGIONS] ); #define mbmemmap __use_data16 ( mbmemmap ) /** The multiboot module list */ -static struct multiboot_module __data16_array ( mbmodules, [MAX_MODULES] ); +static struct multiboot_module __bss16_array ( mbmodules, [MAX_MODULES] ); #define mbmodules __use_data16 ( mbmodules ) /** diff --git a/src/arch/i386/include/basemem_packet.h b/src/arch/i386/include/basemem_packet.h index 2f7212dc..e4d4f49c 100644 --- a/src/arch/i386/include/basemem_packet.h +++ b/src/arch/i386/include/basemem_packet.h @@ -7,7 +7,7 @@ #define BASEMEM_PACKET_LEN 1514 /** Base memory packet buffer */ -extern char __data16_array ( basemem_packet, [BASEMEM_PACKET_LEN] ); +extern char __bss16_array ( basemem_packet, [BASEMEM_PACKET_LEN] ); #define basemem_packet __use_data16 ( basemem_packet ) #endif /* BASEMEM_PACKET_H */