資源簡介
KQEMU[QEMU Accelerator]: QEMU加速器KQEMU是一操作系統(tǒng)驅(qū)動開源軟件,可以幫助QEMU PC仿真器運行更快. QEMU可以在x86體系的主機上仿真PC.KQEMU現(xiàn)可運行在基于x86或x86_64的Linux2.4或Linux 2.6主機上.對FreBSD和Windows NT/2000/2003/XP的支持也在開發(fā)中.

代碼片段和文件信息
/*?$Id:?kqemu-freebsd.cv?1.6?2006/04/25?22:16:42?bellard?Exp?$?*/
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#if?__FreeBSD_version?>=?500000
#include?
#endif
#include?
#include?
#if?__FreeBSD_version?>=?500000
#include?
#endif
#include?
#include?
#include?
#include?
#if?__FreeBSD_version?500000
#include?
#endif
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“kqemu-kernel.h“
#ifndef?KQEMU_MAJOR
#define?KQEMU_MAJOR?250
#endif
MALLOC_DECLARE(M_KQEMU);
MALLOC_DEFINE(M_KQEMU?“kqemu“?“kqemu?buffers“);
int?kqemu_debug;
SYSCTL_INT(_debug?OID_AUTO?kqemu_debug?CTLFLAG_RW?&kqemu_debug?0
????????“kqemu?debug?flag“);
#define USER_base 0x1000
/*?lock?the?page?at?virtual?address?‘user_addr‘?and?return?its
???physical?page?index.?Return?NULL?if?error?*/
struct?kqemu_user_page?*CDECL?kqemu_lock_user_page(unsigned?long?*ppage_index
???????????????????????????????????????????????????unsigned?long?user_addr)
{
????struct?vmspace?*vm?=?curproc->p_vmspace;
????vm_offset_t?va?=?user_addr;
????vm_paddr_t?pa?=?0;
????int?ret;
????pmap_t?pmap;
#if?__FreeBSD_version?>=?500000
????ret?=?vm_map_wire(&vm->vm_map?va?va+PAGE_SIZE?VM_MAP_WIRE_USER);
#else
????ret?=?vm_map_user_pageable(&vm->vm_map?va?va+PAGE_SIZE?FALSE);
#endif
????if?(ret?!=?KERN_SUCCESS)?{
kqemu_log(“kqemu_lock_user_page(%08lx)?failed?ret=%d\n“?user_addr?ret);
return?NULL;
????}
????pmap?=?vm_map_pmap(&vm->vm_map);
????pa?=?pmap_extract(pmap?va);
????/*?kqemu_log(“kqemu_lock_user_page(%08lx)?va=%08x?pa=%08x\n“?user_addr?va?pa);?*/
????*ppage_index?=?pa?>>?PAGE_SHIFT;
????return?(struct?kqemu_user_page?*)va;
}
void?CDECL?kqemu_unlock_user_page(struct?kqemu_user_page?*page)
{
????struct?vmspace?*vm?=?curproc->p_vmspace;
????vm_offset_t?va;
????int?ret;
????/*?kqemu_log(“kqemu_unlock_user_page(%08lx)\n“?page_index);?*/
????va?=?(vm_offset_t)page;
#if?__FreeBSD_version?>=?500000
????ret?=?vm_map_unwire(&vm->vm_map?va?va+PAGE_SIZE?VM_MAP_WIRE_USER);
#else
????ret?=?vm_map_user_pageable(&vm->vm_map?va?va+PAGE_SIZE?TRUE);
#endif
#if?0
????if?(ret?!=?KERN_SUCCESS)?{
kqemu_log(“kqemu_unlock_user_page(%08lx)?failed?ret=%d\n“?page_index?ret);
????}
#endif
}
/*
?*?Allocate?a?new?page.?The?page?must?be?mapped?in?the?kernel?space.
?*?Return?the?page_index?or?-1?if?error.
?*/
struct?kqemu_page?*CDECL?kqemu_alloc_zeroed_page(unsigned?long?*ppage_index)
{
????pmap_t?pmap;
????vm_offset_t?va;
????vm_paddr_t?pa;
????va?=?kmem_alloc(kernel_map?PAGE_SIZE);
????if?(va?==?0)?{
kqemu_log(“kqemu_alloc_zeroed_page:?NULL\n“);
return?NULL;
????}
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1733??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\Changelog
?????文件??????23393??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\common.c
?????文件???????1090??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\genmon.c
?????文件???????2503??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\genoffsets.c
?????文件???????1223??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\i386\kernel_asm.S
?????文件????????393??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\i386\monitor.ld
?????文件??????10372??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\i386\monitor_asm.S
?????文件???????5580??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\i386\nexus_asm.S
?????目錄??????????0??2008-07-09?10:10??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\i386
?????文件???????7743??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\insn_table.h
?????文件?????160346??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\interp.c
?????文件??????41004??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\kernel.c
?????文件??????37470??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\kqemu_int.h
?????文件???????3617??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\Makefile
?????文件???????4847??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\monitor-utils.c
?????文件??????64510??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\monitor.c
?????文件???????1223??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\x86_64\kernel_asm.S
?????文件????????426??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\x86_64\monitor.ld
?????文件???????8992??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\x86_64\monitor_asm.S
?????文件???????5662??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\x86_64\nexus_asm.S
?????目錄??????????0??2008-07-09?10:10??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common\x86_64
?????目錄??????????0??2008-07-09?10:10??kqemu-1.3.0pre11\kqemu-1.3.0pre11\common
?????文件???????7274??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\configure
?????文件??????17976??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\COPYING
?????文件????????287??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\install.sh
?????文件???????8243??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\kqemu-doc.html
?????文件???????6524??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\kqemu-doc.texi
?????文件??????12380??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\kqemu-freebsd.c
?????文件???????1586??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\kqemu-kernel.h
?????文件???????9905??2007-02-07?05:02??kqemu-1.3.0pre11\kqemu-1.3.0pre11\kqemu-linux.c
............此處省略27個文件信息
- 上一篇:完美破解word文檔打開密碼
- 下一篇:使xp支持syn掃描
評論
共有 條評論