182901Sjake/*- 282901Sjake * Copyright (c) 2001 Jake Burkholder. 382901Sjake * All rights reserved. 482901Sjake * 582901Sjake * Redistribution and use in source and binary forms, with or without 682901Sjake * modification, are permitted provided that the following conditions 782901Sjake * are met: 882901Sjake * 1. Redistributions of source code must retain the above copyright 982901Sjake * notice, this list of conditions and the following disclaimer. 1082901Sjake * 2. Redistributions in binary form must reproduce the above copyright 1182901Sjake * notice, this list of conditions and the following disclaimer in the 1282901Sjake * documentation and/or other materials provided with the distribution. 1382901Sjake * 1482901Sjake * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1582901Sjake * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1682901Sjake * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1782901Sjake * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1882901Sjake * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1982901Sjake * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2082901Sjake * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2182901Sjake * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2282901Sjake * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2382901Sjake * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2482901Sjake * SUCH DAMAGE. 2582901Sjake * 2682901Sjake * $FreeBSD$ 2782901Sjake */ 2882901Sjake 2982901Sjake#ifndef _MACHINE_VER_H_ 3082901Sjake#define _MACHINE_VER_H_ 3182901Sjake 3282901Sjake#define VER_MANUF_SHIFT (48) 3382901Sjake#define VER_IMPL_SHIFT (32) 3482901Sjake#define VER_MASK_SHIFT (24) 3582901Sjake#define VER_MAXTL_SHIFT (8) 3682901Sjake#define VER_MAXWIN_SHIFT (0) 3782901Sjake 3882901Sjake#define VER_MANUF_SIZE (16) 3982901Sjake#define VER_IMPL_SIZE (16) 4082901Sjake#define VER_MASK_SIZE (8) 4182901Sjake#define VER_MAXTL_SIZE (8) 4282901Sjake#define VER_MAXWIN_SIZE (5) 4382901Sjake 44182730Smarius#ifndef LOCORE 45182730Smarius 46204152Smarius#define VER_MANUF_MASK \ 47204152Smarius (((1UL << VER_MANUF_SIZE) - 1) << VER_MANUF_SHIFT) 48204152Smarius#define VER_IMPL_MASK \ 49204152Smarius (((1UL << VER_IMPL_SIZE) - 1) << VER_IMPL_SHIFT) 50204152Smarius#define VER_MASK_MASK \ 51204152Smarius (((1UL << VER_MASK_SIZE) - 1) << VER_MASK_SHIFT) 52204152Smarius#define VER_MAXTL_MASK \ 53204152Smarius (((1UL << VER_MAXTL_SIZE) - 1) << VER_MAXTL_SHIFT) 54204152Smarius#define VER_MAXWIN_MASK \ 55204152Smarius (((1UL << VER_MAXWIN_SIZE) - 1) << VER_MAXWIN_SHIFT) 5682901Sjake 57204152Smarius#define VER_MANUF(ver) \ 5882901Sjake (((ver) & VER_MANUF_MASK) >> VER_MANUF_SHIFT) 59204152Smarius#define VER_IMPL(ver) \ 6082901Sjake (((ver) & VER_IMPL_MASK) >> VER_IMPL_SHIFT) 61204152Smarius#define VER_MASK(ver) \ 6282901Sjake (((ver) & VER_MASK_MASK) >> VER_MASK_SHIFT) 63204152Smarius#define VER_MAXTL(ver) \ 6482901Sjake (((ver) & VER_MAXTL_MASK) >> VER_MAXTL_SHIFT) 65204152Smarius#define VER_MAXWIN(ver) \ 6682901Sjake (((ver) & VER_MAXWIN_MASK) >> VER_MAXWIN_SHIFT) 6782901Sjake 68106555Stmmextern char sparc64_model[]; 6990614Stmm 70182730Smarius#endif /* !LOCORE */ 71182730Smarius 72205263Smarius/* Known implementations */ 73169795Smarius#define CPU_IMPL_SPARC64 0x01 74205263Smarius#define CPU_IMPL_SPARC64II 0x02 75205263Smarius#define CPU_IMPL_SPARC64III 0x03 76205263Smarius#define CPU_IMPL_SPARC64IV 0x04 77205263Smarius#define CPU_IMPL_SPARC64V 0x05 78205263Smarius#define CPU_IMPL_SPARC64VI 0x06 79205263Smarius#define CPU_IMPL_SPARC64VII 0x07 80205263Smarius#define CPU_IMPL_SPARC64VIIIfx 0x08 81169795Smarius#define CPU_IMPL_ULTRASPARCI 0x10 82169795Smarius#define CPU_IMPL_ULTRASPARCII 0x11 83169795Smarius#define CPU_IMPL_ULTRASPARCIIi 0x12 84169795Smarius#define CPU_IMPL_ULTRASPARCIIe 0x13 85169795Smarius#define CPU_IMPL_ULTRASPARCIII 0x14 86169795Smarius#define CPU_IMPL_ULTRASPARCIIIp 0x15 87169795Smarius#define CPU_IMPL_ULTRASPARCIIIi 0x16 88169795Smarius#define CPU_IMPL_ULTRASPARCIV 0x18 89169795Smarius#define CPU_IMPL_ULTRASPARCIVp 0x19 90169795Smarius#define CPU_IMPL_ULTRASPARCIIIip 0x22 9190614Stmm 9282901Sjake#endif /* !_MACHINE_VER_H_ */ 93