Subversion Repositories HelenOS-historic

Compare Revisions

No changes between revisions

Ignore whitespace Rev 565 → Rev 566

/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();