Skip to content

Commit

Permalink
Place command-line inline, to save on memory allocation hassles.
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Brown committed Jan 12, 2007
1 parent f15482d commit 9debfed
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 8 deletions.
11 changes: 4 additions & 7 deletions src/arch/i386/image/multiboot.c
Expand Up @@ -119,8 +119,7 @@ multiboot_build_module_list ( struct image *image,
module->mod_start = user_to_phys ( module_image->data, 0 );
module->mod_end = user_to_phys ( module_image->data,
module_image->len );
if ( image->cmdline )
module->string = virt_to_phys ( image->cmdline );
module->string = virt_to_phys ( image->cmdline );

/* We promise to page-align modules, so at least check */
assert ( ( module->mod_start & 0xfff ) == 0 );
Expand Down Expand Up @@ -154,11 +153,9 @@ static int multiboot_exec ( struct image *image ) {
mbinfo.mmap_addr = virt_to_phys ( &mbmemmap[0].base_addr );
mbinfo.flags |= ( MBI_FLAG_MEM | MBI_FLAG_MMAP );

/* Set command line, if present */
if ( image->cmdline ) {
mbinfo.cmdline = virt_to_phys ( image->cmdline );
mbinfo.flags |= MBI_FLAG_CMDLINE;
}
/* Set command line */
mbinfo.cmdline = virt_to_phys ( image->cmdline );
mbinfo.flags |= MBI_FLAG_CMDLINE;

/* Construct module list */
num_modules = multiboot_build_module_list ( image, NULL );
Expand Down
13 changes: 12 additions & 1 deletion src/include/gpxe/image.h
Expand Up @@ -14,6 +14,9 @@

struct image_type;

/** Maximum length of a command line */
#define CMDLINE_MAX 128

/** An executable or loadable image */
struct image {
/** Name */
Expand All @@ -22,12 +25,20 @@ struct image {
struct list_head list;

/** Command line to pass to image */
const char *cmdline;
char cmdline[CMDLINE_MAX];

/** Raw file image */
userptr_t data;
/** Length of raw file image */
size_t len;
/**
* Free raw file image
*
* @v data Raw file image
*
* Call this method before freeing up the @c struct @c image.
*/
void ( * free ) ( userptr_t data );

/** Entry point */
physaddr_t entry;
Expand Down

0 comments on commit 9debfed

Please sign in to comment.