www.pudn.com > tcpipsim.rar > psl.h


/*- 
 * Copyright (c) 1990, 1993 
 *	The Regents of the University of California.  All rights reserved. 
 * 
 * This code is derived from software contributed to Berkeley by 
 * William Jolitz. 
 * 
 * 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. 
 * 3. All advertising materials mentioning features or use of this software 
 *    must display the following acknowledgement: 
 *	This product includes software developed by the University of 
 *	California, Berkeley and its contributors. 
 * 4. Neither the name of the University nor the names of its contributors 
 *    may be used to endorse or promote products derived from this software 
 *    without specific prior written permission. 
 * 
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. 
 * 
 *	@(#)psl.h	8.1 (Berkeley) 6/11/93 
 */ 
 
/* 
 * 386 processor status longword. 
 */ 
#define	PSL_C		0x00000001	/* carry bit */ 
#define	PSL_PF		0x00000004	/* parity bit */ 
#define	PSL_AF		0x00000010	/* bcd carry bit */ 
#define	PSL_Z		0x00000040	/* zero bit */ 
#define	PSL_N		0x00000080	/* negative bit */ 
#define	PSL_ALLCC	0x000000d5	/* all cc bits - unlikely */ 
#define	PSL_T		0x00000100	/* trace enable bit */ 
#define	PSL_I		0x00000200	/* interrupt enable bit */ 
#define	PSL_D		0x00000400	/* string instruction direction bit */ 
#define	PSL_V		0x00000800	/* overflow bit */ 
#define	PSL_IOPL	0x00003000	/* i/o priviledge level enable */ 
#define	PSL_NT		0x00004000	/* nested task bit */ 
#define	PSL_RF		0x00010000	/* restart flag bit */ 
#define	PSL_VM		0x00020000	/* virtual 8086 mode bit */ 
 
#define	PSL_MBZ		0xfffc7fb7	/* must be zero bits */ 
#define	PSL_MBO		0x00000002	/* must be one bits */ 
 
#define	PSL_USERSET	(PSL_IOPL) 
#define	PSL_USERCLR	(PSL_I|PSL_NT) 
#define	PSL_LOWIPL	(PSL_S) 
#define	PSL_HIGHIPL	(PSL_S | PSL_RF) 
#define PSL_IPL		(PSL_RF) 
#define	PSL_USER	(0) 
 
//#define	PSL_MBZ		0xFFFF58E0	/* must be zero bits */ 
 
//#define	PSL_USERSET	(0) 
//#define	PSL_USERCLR	(PSL_S | PSL_IPL7 | PSL_MBZ) 
 
#define	USERMODE(ps)	(((ps) & PSL_S) == 0)