128009Sdyson/*- 228009Sdyson * Copyright (c) 1997 Jonathan Lemon 328009Sdyson * All rights reserved. 428009Sdyson * 528009Sdyson * Redistribution and use in source and binary forms, with or without 628009Sdyson * modification, are permitted provided that the following conditions 728009Sdyson * are met: 828009Sdyson * 1. Redistributions of source code must retain the above copyright 928009Sdyson * notice, this list of conditions and the following disclaimer. 1028009Sdyson * 2. Redistributions in binary form must reproduce the above copyright 1128009Sdyson * notice, this list of conditions and the following disclaimer in the 1228009Sdyson * documentation and/or other materials provided with the distribution. 1328009Sdyson * 1428009Sdyson * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1528009Sdyson * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1628009Sdyson * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1728009Sdyson * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1828009Sdyson * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1928009Sdyson * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2028009Sdyson * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2128009Sdyson * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2228009Sdyson * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2328009Sdyson * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2428009Sdyson * SUCH DAMAGE. 2528009Sdyson * 2650477Speter * $FreeBSD: releng/10.2/sys/i386/include/pcb_ext.h 150173 2005-09-15 17:30:08Z jhb $ 2728009Sdyson */ 2828009Sdyson 2928009Sdyson#ifndef _I386_PCB_EXT_H_ 3028009Sdyson#define _I386_PCB_EXT_H_ 3128009Sdyson 3228009Sdyson/* 3328009Sdyson * Extension to the 386 process control block 3428009Sdyson */ 3528009Sdyson#include <machine/tss.h> 3628009Sdyson#include <machine/vm86.h> 3728009Sdyson#include <machine/segments.h> 3828009Sdyson 3928009Sdysonstruct pcb_ext { 4028009Sdyson struct segment_descriptor ext_tssd; /* tss descriptor */ 4128009Sdyson struct i386tss ext_tss; /* per-process i386tss */ 4228009Sdyson caddr_t ext_iomap; /* i/o permission bitmap */ 4328009Sdyson struct vm86_kernel ext_vm86; /* vm86 area */ 4428009Sdyson}; 4528009Sdyson 4655205Speter#ifdef _KERNEL 47150173Sjhbextern int private_tss; 4854188Sluoqi 4992761Salfredint i386_extend_pcb(struct thread *); 5054188Sluoqi 5154188Sluoqi#endif 5254188Sluoqi 5328009Sdyson#endif /* _I386_PCB_EXT_H_ */ 54