/kernel/trunk/tools/amd64/decpt.py |
---|
0,0 → 1,25 |
#!/usr/bin/env python |
""" |
Decode 64-bit address into components |
""" |
import sys |
def main(): |
if len(sys.argv) != 2 or not sys.argv[1].startswith('0x'): |
print "%s 0x..." % sys.argv[0] |
sys.exit(1) |
address = int(sys.argv[1],16) |
offset = address & 0xfff |
ptl3 = (address >> 12) & 0x1ff |
ptl2 = (address >> 21) & 0x1ff |
ptl1 = (address >> 30) & 0x1ff |
ptl0 = (address >> 39) & 0x1ff |
print "Ptl0: %3d" % ptl0 |
print "Ptl1: %3d" % ptl1 |
print "Ptl2: %3d" % ptl2 |
print "Ptl3: %3d" % ptl3 |
print "Offset: 0x%x" % offset |
if __name__ == '__main__': |
main() |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/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(): |
def ask_the_question(dialog): |
"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 dlg.yesno(comment, default) |
return dialog.yesno(comment, default) |
elif vartype == 'n/y': |
return dlg.noyes(comment, default) |
return dialog.noyes(comment, default) |
elif vartype == 'choice': |
defopt = None |
if default is not None: |
280,7 → 280,7 |
if key == default: |
defopt = i |
break |
return dlg.choice(comment, choices, defopt) |
return dialog.choice(comment, choices, defopt) |
else: |
raise RuntimeError("Bad method: %s" % vartype) |
316,12 → 316,10 |
for i,arg in enumerate(args): |
if arg.startswith('$'): |
args[i] = defaults[arg[1:]] |
subc = os.popen(' '.join(args),'r') |
data = subc.read().strip() |
if subc.close(): |
data,status = commands.getstatusoutput(' '.join(args)) |
if status: |
raise RuntimeError('Error running: %s' % ' '.join(args)) |
outf.write('%s = %s\n' % (varname,data)) |
outf.write('%s = %s\n' % (varname,data.strip())) |
continue |
if line.startswith('!'): |
347,7 → 345,9 |
asked_names.append((varname,comment)) |
if default is None or not askonly or askonly == varname: |
default = ask_the_question() |
default = ask_the_question(dlg) |
else: |
default = ask_the_question(DefaultDialog(dlg)) |
outf.write('%s = %s\n' % (varname, default)) |
# Remeber the selected value |
/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=mips] "fpu/mips1" Mips FPU test 1 |
@ [ARCH=mips32&MIPS_MACHINE!=msim&MIPS_MACHINE!=msim4kc] "fpu/mips1" Mips FPU test 1 |
@ "print/print1" Printf test 1 |
@ "thread/trhead1" Thread test 1 |
@ "mm/mapping1" Mapping test 1 |
/kernel/trunk/arch/amd64/src/mm/page.c |
---|
35,7 → 35,7 |
#include <config.h> |
#include <memstr.h> |
__address bootstrap_dba; |
static __address bootstrap_dba; |
void page_arch_init(void) |
{ |
59,15 → 59,6 |
write_cr3(KA2PA(dba)); |
} |
else { |
/* |
* 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)); |
write_cr3(KA2PA(bootstrap_dba)); |
} |
} |
/kernel/trunk/arch/ia32/include/mm/frame.h |
---|
33,7 → 33,6 |
#define FRAME_SIZE 4096 |
extern __address bootstrap_dba; |
extern __address last_frame; |
extern void frame_arch_init(void); |
/kernel/trunk/arch/ia32/src/mm/page.c |
---|
40,7 → 40,7 |
#include <memstr.h> |
#include <print.h> |
__address bootstrap_dba; |
static __address bootstrap_dba; |
void page_arch_init(void) |
{ |
63,16 → 63,7 |
write_cr3(KA2PA(dba)); |
} |
else { |
/* |
* 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)); |
write_cr3(KA2PA(bootstrap_dba)); |
} |
paging_on(); |