180709Sjake/*- 280709Sjake * Copyright (c) 2001 Jake Burkholder. 380709Sjake * All rights reserved. 480709Sjake * 580709Sjake * Redistribution and use in source and binary forms, with or without 680709Sjake * modification, are permitted provided that the following conditions 780709Sjake * are met: 880709Sjake * 1. Redistributions of source code must retain the above copyright 980709Sjake * notice, this list of conditions and the following disclaimer. 1080709Sjake * 2. Redistributions in binary form must reproduce the above copyright 1180709Sjake * notice, this list of conditions and the following disclaimer in the 1280709Sjake * documentation and/or other materials provided with the distribution. 1380709Sjake * 1481334Sobrien * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1580709Sjake * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1680709Sjake * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1781334Sobrien * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1880709Sjake * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1980709Sjake * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2080709Sjake * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2180709Sjake * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2280709Sjake * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2380709Sjake * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2480709Sjake * SUCH DAMAGE. 2580709Sjake * 2680709Sjake * $FreeBSD: releng/10.3/sys/sparc64/include/pstate.h 88626 2001-12-29 07:01:34Z jake $ 2780709Sjake */ 2880709Sjake 2980709Sjake#ifndef _MACHINE_PSTATE_H_ 3080709Sjake#define _MACHINE_PSTATE_H_ 3180709Sjake 3280709Sjake#define PSTATE_AG (1<<0) 3380709Sjake#define PSTATE_IE (1<<1) 3480709Sjake#define PSTATE_PRIV (1<<2) 3580709Sjake#define PSTATE_AM (1<<3) 3680709Sjake#define PSTATE_PEF (1<<4) 3780709Sjake#define PSTATE_RED (1<<5) 3880709Sjake 3980709Sjake#define PSTATE_MM_SHIFT (6) 4088626Sjake#define PSTATE_MM_SIZE (2) 4188626Sjake#define PSTATE_MM_MASK (((1<<PSTATE_MM_SIZE)-1)<<PSTATE_MM_SHIFT) 4280709Sjake#define PSTATE_MM_TSO (0<<PSTATE_MM_SHIFT) 4380709Sjake#define PSTATE_MM_PSO (1<<PSTATE_MM_SHIFT) 4480709Sjake#define PSTATE_MM_RMO (2<<PSTATE_MM_SHIFT) 4580709Sjake 4680709Sjake#define PSTATE_TLE (1<<8) 4780709Sjake#define PSTATE_CLE (1<<9) 4880709Sjake#define PSTATE_MG (1<<10) 4980709Sjake#define PSTATE_IG (1<<11) 5080709Sjake 5182901Sjake#define PSTATE_MM PSTATE_MM_TSO 5280709Sjake 5382901Sjake#define PSTATE_NORMAL (PSTATE_MM | PSTATE_PEF | PSTATE_PRIV) 5482901Sjake#define PSTATE_ALT (PSTATE_NORMAL | PSTATE_AG) 5582901Sjake#define PSTATE_INTR (PSTATE_NORMAL | PSTATE_IG) 5682901Sjake#define PSTATE_MMU (PSTATE_NORMAL | PSTATE_MG) 5780709Sjake 5882901Sjake#define PSTATE_KERNEL (PSTATE_NORMAL | PSTATE_IE) 5980709Sjake 6088626Sjake#define PSTATE_SECURE(pstate) \ 6188626Sjake (((pstate) & ~(PSTATE_AM|PSTATE_MM_MASK)) == (PSTATE_IE|PSTATE_PEF)) 6284188Sjake 6380709Sjake#endif /* !_MACHINE_PSTATE_H_ */ 64