/kernel/trunk/arch/ia32/src/mm/page.c |
---|
40,7 → 40,7 |
#include <memstr.h> |
#include <print.h> |
static __address bootstrap_dba; |
__address bootstrap_dba; |
void page_arch_init(void) |
{ |
63,7 → 63,16 |
write_cr3(KA2PA(dba)); |
} |
else { |
write_cr3(KA2PA(bootstrap_dba)); |
/* |
* Application processors need to create their own view of the |
* virtual address space. Because of that, each AP copies |
* already-initialized paging information from the bootstrap |
* processor and adjusts it to fulfill its needs. |
*/ |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
write_cr3(KA2PA(dba)); |
} |
paging_on(); |
/kernel/trunk/arch/ia32/include/mm/frame.h |
---|
33,6 → 33,7 |
#define FRAME_SIZE 4096 |
extern __address bootstrap_dba; |
extern __address last_frame; |
extern void frame_arch_init(void); |
/kernel/trunk/arch/amd64/src/mm/page.c |
---|
35,7 → 35,7 |
#include <config.h> |
#include <memstr.h> |
static __address bootstrap_dba; |
__address bootstrap_dba; |
void page_arch_init(void) |
{ |
59,6 → 59,15 |
write_cr3(KA2PA(dba)); |
} |
else { |
write_cr3(KA2PA(bootstrap_dba)); |
/* |
* Application processors need to create their own view of the |
* virtual address space. Because of that, each AP copies |
* already-initialized paging information from the bootstrap |
* processor and adjusts it to fulfill its needs. |
*/ |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
write_cr3(KA2PA(dba)); |
} |
} |
/kernel/trunk/tools/config.py |
---|
265,14 → 265,14 |
def parse_config(input, output, dlg, defaults={}, askonly=None): |
"Parse configuration file and create Makefile.config on the fly" |
def ask_the_question(dialog): |
def ask_the_question(): |
"Ask question based on the type of variables to ask" |
# This is quite a hack, this thingy is written just to |
# have access to local variables.. |
if vartype == 'y/n': |
return dialog.yesno(comment, default) |
return dlg.yesno(comment, default) |
elif vartype == 'n/y': |
return dialog.noyes(comment, default) |
return dlg.noyes(comment, default) |
elif vartype == 'choice': |
defopt = None |
if default is not None: |
280,7 → 280,7 |
if key == default: |
defopt = i |
break |
return dialog.choice(comment, choices, defopt) |
return dlg.choice(comment, choices, defopt) |
else: |
raise RuntimeError("Bad method: %s" % vartype) |
316,10 → 316,12 |
for i,arg in enumerate(args): |
if arg.startswith('$'): |
args[i] = defaults[arg[1:]] |
data,status = commands.getstatusoutput(' '.join(args)) |
if status: |
subc = os.popen(' '.join(args),'r') |
data = subc.read().strip() |
if subc.close(): |
raise RuntimeError('Error running: %s' % ' '.join(args)) |
outf.write('%s = %s\n' % (varname,data.strip())) |
outf.write('%s = %s\n' % (varname,data)) |
continue |
if line.startswith('!'): |
345,9 → 347,7 |
asked_names.append((varname,comment)) |
if default is None or not askonly or askonly == varname: |
default = ask_the_question(dlg) |
else: |
default = ask_the_question(DefaultDialog(dlg)) |
default = ask_the_question() |
outf.write('%s = %s\n' % (varname, default)) |
# Remeber the selected value |
/kernel/trunk/tools/amd64/decpt.py |
---|
File deleted |
Property changes: |
Deleted: svn:executable |
-* |
\ No newline at end of property |
/kernel/trunk/kernel.config |
---|
78,7 → 78,7 |
@ "synch/semaphore2" Sempahore test 2 |
@ [ARCH=ia32|ARCH=amd64] "fpu/fpu1" Intel fpu test 1 |
@ [ARCH=ia32|ARCH=amd64] "fpu/sse1" Intel Sse test 1 |
@ [ARCH=mips32&MIPS_MACHINE!=msim&MIPS_MACHINE!=msim4kc] "fpu/mips1" Mips FPU test 1 |
@ [ARCH=mips] "fpu/mips1" Mips FPU test 1 |
@ "print/print1" Printf test 1 |
@ "thread/trhead1" Thread test 1 |
@ "mm/mapping1" Mapping test 1 |