Changeset b07c332 in mainline for kernel/arch/ia32/src/mm/frame.c


Ignore:
Timestamp:
2008-02-05T14:02:09Z (17 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b5ed4f8
Parents:
a0f6a61
Message:

convert e820list to a generic physmem command

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/mm/frame.c

    ra0f6a61 rb07c332  
    4646
    4747#include <print.h>
    48 #include <console/cmd.h>
    49 #include <console/kconsole.h>
    5048
    5149size_t hardcoded_unmapped_ktext_size = 0;
     
    5654static void init_e820_memory(pfn_t minconf)
    5755{
    58         int i;
     56        unsigned int i;
    5957        pfn_t start, conf;
    6058        size_t size;
     
    6462                        start = ADDR2PFN(ALIGN_UP(e820table[i].base_address, FRAME_SIZE));
    6563                        size = SIZE2FRAMES(ALIGN_DOWN(e820table[i].size, FRAME_SIZE));
     64                       
    6665                        if ((minconf < start) || (minconf >= start + size))
    6766                                conf = start;
    6867                        else
    6968                                conf = minconf;
     69                       
    7070                        zone_create(start, size, conf, 0);
     71                       
    7172                        if (last_frame < ALIGN_UP(e820table[i].base_address +
    7273                            e820table[i].size, FRAME_SIZE))
     
    7677        }
    7778}
    78 
    79 static int cmd_e820mem(cmd_arg_t *argv);
    80 static cmd_info_t e820_info = {
    81         .name = "e820list",
    82         .description = "List e820 memory.",
    83         .func = cmd_e820mem,
    84         .argc = 0
    85 };
    8679
    8780static char *e820names[] = {
     
    9588
    9689
    97 static int cmd_e820mem(cmd_arg_t *argv)
     90void physmem_print(void)
    9891{
    9992        unsigned int i;
     
    112105                        e820table[i].size, name);
    113106        }                       
    114         return 0;
    115107}
    116108
     
    118110void frame_arch_init(void)
    119111{
    120         static pfn_t minconf;
     112        pfn_t minconf;
    121113       
    122114        if (config.cpu_active == 1) {
    123                 cmd_initialize(&e820_info);
    124                 cmd_register(&e820_info);
    125 
    126115                minconf = 1;
    127116#ifdef CONFIG_SMP
    128117                minconf = max(minconf,
    129                     ADDR2PFN(AP_BOOT_OFFSET + hardcoded_unmapped_ktext_size +
    130                         hardcoded_unmapped_kdata_size));
     118                        ADDR2PFN(AP_BOOT_OFFSET + hardcoded_unmapped_ktext_size +
     119                        hardcoded_unmapped_kdata_size));
    131120#endif
    132121#ifdef CONFIG_SIMICS_FIX
     
    141130                /* Reserve AP real mode bootstrap memory */
    142131                frame_mark_unavailable(AP_BOOT_OFFSET >> FRAME_WIDTH,
    143                     (hardcoded_unmapped_ktext_size +
    144                     hardcoded_unmapped_kdata_size) >> FRAME_WIDTH);
     132                        (hardcoded_unmapped_ktext_size +
     133                        hardcoded_unmapped_kdata_size) >> FRAME_WIDTH);
    145134               
    146135#ifdef CONFIG_SIMICS_FIX
Note: See TracChangeset for help on using the changeset viewer.