[BACK]Return to cpuvar.h CVS log [TXT][DIR] Up to [local] / sys / arch / sparc64 / sparc64

Annotation of sys/arch/sparc64/sparc64/cpuvar.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: cpuvar.h,v 1.6 2005/09/08 15:25:55 martin Exp $       */
                      2: /*     $NetBSD: cpuvar.h,v 1.2 1999/11/06 20:18:13 eeh Exp $ */
                      3:
                      4: /*
                      5:  *  Copyright (c) 1996 The NetBSD Foundation, Inc.
                      6:  *  All rights reserved.
                      7:  *
                      8:  *  This code is derived from software contributed to The NetBSD Foundation
                      9:  *  by Paul Kranenburg.
                     10:  *
                     11:  *  Redistribution and use in source and binary forms, with or without
                     12:  *  modification, are permitted provided that the following conditions
                     13:  *  are met:
                     14:  *  1. Redistributions of source code must retain the above copyright
                     15:  *     notice, this list of conditions and the following disclaimer.
                     16:  *  2. Redistributions in binary form must reproduce the above copyright
                     17:  *     notice, this list of conditions and the following disclaimer in the
                     18:  *     documentation and/or other materials provided with the distribution.
                     19:  *  3. All advertising materials mentioning features or use of this software
                     20:  *     must display the following acknowledgement:
                     21:  *         This product includes software developed by the NetBSD
                     22:  *         Foundation, Inc. and its contributors.
                     23:  *  4. Neither the name of The NetBSD Foundation nor the names of its
                     24:  *     contributors may be used to endorse or promote products derived
                     25:  *     from this software without specific prior written permission.
                     26:  *
                     27:  *  THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
                     28:  *  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
                     29:  *  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
                     30:  *  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
                     31:  *  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
                     32:  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
                     33:  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
                     34:  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
                     35:  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
                     36:  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     37:  *  POSSIBILITY OF SUCH DAMAGE.
                     38:  */
                     39:
                     40: #ifndef _sparc64_cpuvar_h
                     41: #define _sparc64_cpuvar_h
                     42:
                     43: #include <sys/device.h>
                     44:
                     45: #include <sparc64/sparc64/cache.h>     /* for cacheinfo */
                     46:
                     47: /*
                     48:  * The cpu_softc structure. This structure maintains information about one
                     49:  * currently installed CPU (there may be several of these if the machine
                     50:  * supports multiple CPUs). The information in this structure supersedes the
                     51:  * old "cpumod", "mmumod", and similar fields.
                     52:  */
                     53:
                     54: struct cpu_softc {
                     55:        struct device   dv;             /* generic device info */
                     56:
                     57:        int             node;           /* PROM node for this CPU */
                     58:
                     59:        /* CPU information */
                     60:        int             id;             /* Module ID for MP systems */
                     61:        int             bus;            /* 1 if CPU is on MBus */
                     62:
                     63: /* XXX - of these, we currently use only cpu_type */
                     64:        int             arch;           /* Architecture: CPU_SUN4x */
                     65:
                     66:        int             hz;             /* Clock speed */
                     67:
                     68:        /* Cache information */
                     69:        struct cacheinfo        cacheinfo;      /* see cache.h */
                     70:
                     71:        /*
                     72:         * The following pointers point to processes that are somehow
                     73:         * associated with this CPU--running on it, using its FPU,
                     74:         * etc.
                     75:         *
                     76:         * XXXMP: much more needs to go here
                     77:         */
                     78:        struct  proc    *fpproc;                /* FPU owner */
                     79: };
                     80:
                     81: /*
                     82:  * CPU architectures
                     83:  */
                     84: #define CPUARCH_UNKNOWN                0
                     85: #define CPUARCH_SUN4           1
                     86: #define CPUARCH_SUN4C          2
                     87: #define CPUARCH_SUN4M          3
                     88: #define        CPUARCH_SUN4D           4
                     89: #define CPUARCH_SUN4U          5
                     90:
                     91: /*
                     92:  * CPU classes
                     93:  */
                     94: #define CPUCLS_UNKNOWN         0
                     95:
                     96: /*
                     97:  * CPU busses
                     98:  */
                     99:
                    100: #define CPU_NONE               0       /* No particular bus */
                    101: #define CPU_UPA                        2       /* UPA bus attached */
                    102:
                    103: /*
                    104:  * Related function prototypes
                    105:  */
                    106: void getcpuinfo(struct cpu_softc *sc, int node);
                    107: void mmu_install_tables(struct cpu_softc *);
                    108: void pmap_alloc_cpu(struct cpu_softc *);
                    109:
                    110: #define cpuinfo        (*(struct cpu_softc *)CPUINFO_VA)
                    111:
                    112: struct cpu_softc       **cpu_info;
                    113:
                    114: #endif /* _sparc_cpuvar_h */

CVSweb