Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 650 → Rev 651

/kernel/trunk/generic/include/config.h
40,15 → 40,20
#define CONFIG_STACK_SIZE STACK_SIZE
 
struct config {
count_t cpu_count;
volatile count_t cpu_active;
 
__address base;
size_t memory_size;
size_t kernel_size;
__address init_addr;
size_t init_size;
 
count_t cpu_count;
volatile count_t cpu_active;
__address heap_addr;
size_t heap_size;
size_t heap_delta; /**< Extra space between heap and stack (enforced by alignment requirements) */
size_t kernel_size; /**< Size of memory in bytes taken by kernel, heap and stack */
};
 
extern config_t config;
/kernel/trunk/generic/include/arch.h
42,10 → 42,6
#define VM THE->vm
#define PREEMPTION_DISABLED THE->preemption_disabled
 
#ifndef early_mapping
#define early_mapping(stack, size)
#endif /* early_mapping */
 
/**
* For each possible kernel stack, structure
* of the following type will be placed at
/kernel/trunk/generic/src/main/main.c
82,7 → 82,6
char *timestamp = "";
#endif
 
 
config_t config;
context_t ctx;
 
98,23 → 97,6
__address init_addr = 0;
size_t init_size = 0;
 
/**
* Size of memory in bytes taken by kernel and heap.
*/
static size_t kernel_size;
 
/**
* Size of heap.
*/
static size_t heap_size;
 
 
/**
* Extra space between heap and stack
* enforced by alignment requirements.
*/
static size_t heap_delta;
 
void main_bsp(void);
void main_ap(void);
 
140,20 → 122,25
{
config.cpu_count = 1;
config.cpu_active = 1;
config.base = hardcoded_load_address;
config.memory_size = get_memory_size();
config.init_addr = init_addr;
config.init_size = init_size;
 
heap_size = CONFIG_HEAP_SIZE + (config.memory_size/FRAME_SIZE)*sizeof(frame_t);
kernel_size = ALIGN_UP(hardcoded_ktext_size + hardcoded_kdata_size + heap_size, PAGE_SIZE);
heap_delta = kernel_size - (hardcoded_ktext_size + hardcoded_kdata_size + heap_size);
config.kernel_size = kernel_size + CONFIG_STACK_SIZE;
if (init_size > 0)
config.heap_addr = init_addr + init_size;
else
config.heap_addr = hardcoded_load_address + hardcoded_ktext_size + hardcoded_kdata_size;
config.heap_size = CONFIG_HEAP_SIZE + (config.memory_size / FRAME_SIZE) * sizeof(frame_t);
config.kernel_size = ALIGN_UP(config.heap_addr - hardcoded_load_address + config.heap_size, PAGE_SIZE);
config.heap_delta = config.kernel_size - (config.heap_addr - hardcoded_load_address + config.heap_size);
config.kernel_size = config.kernel_size + CONFIG_STACK_SIZE;
context_save(&ctx);
early_mapping(config.base + hardcoded_ktext_size + hardcoded_kdata_size, CONFIG_STACK_SIZE + heap_size + heap_delta);
context_set(&ctx, FADDR(main_bsp_separated_stack), config.base + kernel_size, CONFIG_STACK_SIZE);
context_set(&ctx, FADDR(main_bsp_separated_stack), config.base + config.kernel_size, CONFIG_STACK_SIZE);
context_restore(&ctx);
/* not reached */
}
185,12 → 172,12
exc_init();
arch_pre_mm_init();
early_heap_init(config.base + hardcoded_ktext_size + hardcoded_kdata_size, heap_size + heap_delta);
early_heap_init(config.heap_addr, config.heap_size + config.heap_delta);
frame_init();
page_init();
tlb_init();
arch_post_mm_init();
 
printf("%s, release %s (%s)%s\nBuilt%s for %s\n%s\n", project, release, name, revision, timestamp, arch, copyright);
printf("%P: hardcoded_ktext_size=%dK, hardcoded_kdata_size=%dK\n",
config.base, hardcoded_ktext_size/1024, hardcoded_kdata_size/1024);
/kernel/trunk/Makefile
177,8 → 177,7
ln -sfn ../../genarch/include/ generic/include/genarch
 
depend: archlinks
-makedepend $(DEFS) $(CFLAGS) -f - $(ARCH_SOURCES) $(GENARCH_SOURCES) $(GENERIC_SOURCES) >Makefile.depend 2>/dev/null
#$(CC) $(DEFS) $(CFLAGS) -M $(ARCH_SOURCES) $(GENARCH_SOURCES) $(GENERIC_SOURCES) > Makefile.depend
-makedepend $(DEFS) $(CFLAGS) -f - $(ARCH_SOURCES) $(GENARCH_SOURCES) $(GENERIC_SOURCES) > Makefile.depend 2> /dev/null
 
arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in
$(CC) $(DEFS) $(CFLAGS) -E -x c $< | grep -v "^\#" > $@
194,7 → 193,6
$(LD) -T arch/$(ARCH)/_link.ld $(LFLAGS) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) generic/src/debug/sizeok_map.o -o $@ -Map kernel.map.pre
$(OBJDUMP) -t $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) > kernel.objdump
tools/genmap.py kernel.map.pre kernel.objdump generic/src/debug/real_map.bin
 
generic/src/debug/real_map.o: generic/src/debug/real_map.bin
$(OBJCOPY) -I binary -O $(BFD_NAME) -B $(BFD_ARCH) --prefix-sections=symtab $< $@
206,7 → 204,7
$(OBJCOPY) -O $(BFD) kernel.raw kernel.bin
 
boot: kernel.bin
$(MAKE) -C arch/$(ARCH)/boot build KERNEL_SIZE="`cat kernel.bin | wc -c`" CC=$(CC) AS=$(AS) LD=$(LD)
if [ -d arch/$(ARCH)/boot ] ; then $(MAKE) -C arch/$(ARCH)/boot build KERNEL_SIZE="`cat kernel.bin | wc -c`" CC=$(CC) AS=$(AS) LD=$(LD) ; fi
 
disasm: kernel.raw
$(OBJDUMP) -d kernel.raw > kernel.disasm
/kernel/trunk/arch/sparc64/boot/Makefile
File deleted
/kernel/trunk/arch/ppc32/include/arch.h
31,11 → 31,4
 
#include <genarch/ofw/ofw.h>
 
#ifdef early_mapping
#undef early_mapping
#endif
 
#define early_mapping(stack, size) \
ofw_claim((void *) stack, size, 0);
 
#endif
/kernel/trunk/arch/ia32/boot/Makefile
File deleted