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$
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