003 File Manager
Current Path:
/usr/src/sys/i386/include
usr
/
src
/
sys
/
i386
/
include
/
📁
..
📄
_align.h
(87 B)
📄
_bus.h
(1.82 KB)
📄
_inttypes.h
(90 B)
📄
_limits.h
(88 B)
📄
_stdint.h
(88 B)
📄
_types.h
(87 B)
📄
acpica_machdep.h
(95 B)
📄
apm_bios.h
(89 B)
📄
apm_segments.h
(1.16 KB)
📄
asm.h
(4.01 KB)
📄
asmacros.h
(8.5 KB)
📄
atomic.h
(27.13 KB)
📄
bootinfo.h
(4.51 KB)
📄
bus.h
(84 B)
📄
bus_dma.h
(1.51 KB)
📄
clock.h
(853 B)
📄
counter.h
(4.78 KB)
📄
cpu.h
(2.99 KB)
📄
cpufunc.h
(15.05 KB)
📄
cputypes.h
(2.64 KB)
📄
cserial.h
(14.25 KB)
📄
db_machdep.h
(2.87 KB)
📄
dump.h
(85 B)
📄
efi.h
(322 B)
📄
elan_mmcr.h
(7.09 KB)
📄
elf.h
(84 B)
📄
endian.h
(87 B)
📄
exec.h
(1.76 KB)
📄
fdt.h
(84 B)
📄
float.h
(86 B)
📄
floatingpoint.h
(2.01 KB)
📄
fpu.h
(87 B)
📄
frame.h
(1.98 KB)
📄
gdb_machdep.h
(1.89 KB)
📄
ieeefp.h
(6.83 KB)
📄
in_cksum.h
(3.98 KB)
📄
intr_machdep.h
(93 B)
📄
iodev.h
(1.81 KB)
📄
iommu.h
(121 B)
📄
kdb.h
(1.85 KB)
📄
limits.h
(1.9 KB)
📄
md_var.h
(3.41 KB)
📄
memdev.h
(1.6 KB)
📄
metadata.h
(89 B)
📄
minidump.h
(1.71 KB)
📄
mp_watchdog.h
(1.53 KB)
📄
nexusvar.h
(1.76 KB)
📄
npx.h
(3.39 KB)
📄
ofw_machdep.h
(92 B)
📄
param.h
(5.17 KB)
📁
pc
📄
pcb.h
(3.61 KB)
📄
pcb_ext.h
(1.88 KB)
📄
pci_cfgreg.h
(91 B)
📄
pcpu.h
(7.63 KB)
📄
pcpu_aux.h
(2.3 KB)
📄
perfmon.h
(7.25 KB)
📄
pmap.h
(9.9 KB)
📄
pmap_base.h
(5.33 KB)
📄
pmap_nopae.h
(3.62 KB)
📄
pmap_pae.h
(5.18 KB)
📄
pmc_mdep.h
(5.51 KB)
📄
ppireg.h
(1.88 KB)
📄
proc.h
(2.92 KB)
📄
procctl.h
(88 B)
📄
profile.h
(5.53 KB)
📄
psl.h
(84 B)
📄
ptrace.h
(87 B)
📄
pvclock.h
(88 B)
📄
reg.h
(84 B)
📄
reloc.h
(2.26 KB)
📄
resource.h
(1.93 KB)
📄
runq.h
(1.85 KB)
📄
segments.h
(3.59 KB)
📄
setjmp.h
(87 B)
📄
sf_buf.h
(1.62 KB)
📄
sigframe.h
(2.9 KB)
📄
signal.h
(2.28 KB)
📄
smapi.h
(2.57 KB)
📄
smp.h
(1.16 KB)
📄
speaker.h
(291 B)
📄
specialreg.h
(91 B)
📄
stack.h
(85 B)
📄
stdarg.h
(87 B)
📄
sysarch.h
(88 B)
📄
timerreg.h
(2.05 KB)
📄
trap.h
(85 B)
📄
tss.h
(3.13 KB)
📄
ucontext.h
(2.34 KB)
📄
vdso.h
(85 B)
📄
vm.h
(2.02 KB)
📄
vm86.h
(4.53 KB)
📄
vmparam.h
(7.59 KB)
📁
xen
Editing: vm86.h
/*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 1997 Jonathan Lemon * All rights reserved. * * Derived from register.h, which is * Copyright (c) 1996 Michael Smith. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $FreeBSD$ */ #ifndef _MACHINE_VM86_H_ #define _MACHINE_VM86_H_ 1 /* standard register representation */ typedef union { u_int r_ex; struct { u_short r_x; u_int :16; } r_w; struct { u_char r_l; u_char r_h; u_int :16; } r_b; } reg86_t; /* layout must match definition of struct trapframe_vm86 in <machine/frame.h> */ struct vm86frame { int kernel_fs; int kernel_es; int kernel_ds; reg86_t edi; reg86_t esi; reg86_t ebp; reg86_t isp; reg86_t ebx; reg86_t edx; reg86_t ecx; reg86_t eax; int vmf_trapno; int vmf_err; reg86_t eip; reg86_t cs; reg86_t eflags; reg86_t esp; reg86_t ss; reg86_t es; reg86_t ds; reg86_t fs; reg86_t gs; #define vmf_ah eax.r_b.r_h #define vmf_al eax.r_b.r_l #define vmf_ax eax.r_w.r_x #define vmf_eax eax.r_ex #define vmf_bh ebx.r_b.r_h #define vmf_bl ebx.r_b.r_l #define vmf_bx ebx.r_w.r_x #define vmf_ebx ebx.r_ex #define vmf_ch ecx.r_b.r_h #define vmf_cl ecx.r_b.r_l #define vmf_cx ecx.r_w.r_x #define vmf_ecx ecx.r_ex #define vmf_dh edx.r_b.r_h #define vmf_dl edx.r_b.r_l #define vmf_dx edx.r_w.r_x #define vmf_edx edx.r_ex #define vmf_si esi.r_w.r_x #define vmf_di edi.r_w.r_x #define vmf_cs cs.r_w.r_x #define vmf_ds ds.r_w.r_x #define vmf_es es.r_w.r_x #define vmf_ss ss.r_w.r_x #define vmf_bp ebp.r_w.r_x #define vmf_sp esp.r_w.r_x #define vmf_ip eip.r_w.r_x #define vmf_flags eflags.r_w.r_x #define vmf_eflags eflags.r_ex }; #define VM86_PMAPSIZE 24 #define VMAP_MALLOC 1 /* page was malloced by us */ struct vm86context { int npages; struct vm86pmap { int flags; int pte_num; vm_offset_t kva; uint64_t old_pte; } pmap[VM86_PMAPSIZE]; }; #define VM_USERCHANGE (PSL_USERCHANGE) #define VME_USERCHANGE (VM_USERCHANGE | PSL_VIP | PSL_VIF) struct vm86_kernel { caddr_t vm86_intmap; /* interrupt map */ u_int vm86_eflags; /* emulated flags */ int vm86_has_vme; /* VME support */ int vm86_inited; /* we were initialized */ int vm86_debug; caddr_t vm86_sproc; /* address of sproc */ }; #define VM86_INIT 1 #define VM86_SET_VME 2 #define VM86_GET_VME 3 #define VM86_INTCALL 4 struct vm86_init_args { int debug; /* debug flag */ int cpu_type; /* cpu type to emulate */ u_char int_map[32]; /* interrupt map */ }; struct vm86_vme_args { int state; /* status */ }; struct vm86_intcall_args { int intnum; struct vm86frame vmf; }; #ifdef _KERNEL extern int vm86paddr; struct thread; extern int vm86_emulate(struct vm86frame *); extern int vm86_sysarch(struct thread *, char *); extern void vm86_trap(struct vm86frame *); extern int vm86_intcall(int, struct vm86frame *); extern int vm86_datacall(int, struct vm86frame *, struct vm86context *); extern void vm86_initialize(void); extern vm_offset_t vm86_getpage(struct vm86context *, int); extern vm_offset_t vm86_addpage(struct vm86context *, int, vm_offset_t); extern int vm86_getptr(struct vm86context *, vm_offset_t, u_short *, u_short *); extern vm_offset_t vm86_getaddr(struct vm86context *, u_short, u_short); #endif /* _KERNEL */ #endif /* _MACHINE_VM86_H_ */
Upload File
Create Folder