The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/osfmk/ppc/lowglobals.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
    3  *
    4  * @APPLE_LICENSE_HEADER_START@
    5  * 
    6  * The contents of this file constitute Original Code as defined in and
    7  * are subject to the Apple Public Source License Version 1.1 (the
    8  * "License").  You may not use this file except in compliance with the
    9  * License.  Please obtain a copy of the License at
   10  * http://www.apple.com/publicsource and read it before using this file.
   11  * 
   12  * This Original Code and all software distributed under the License are
   13  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
   14  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
   15  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
   16  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
   17  * License for the specific language governing rights and limitations
   18  * under the License.
   19  * 
   20  * @APPLE_LICENSE_HEADER_END@
   21  */
   22 /*
   23  *              Header files for the Low Memory Globals (lg) 
   24  */
   25 #ifndef _LOW_MEMORY_GLOBALS_H_
   26 #define _LOW_MEMORY_GLOBALS_H_
   27 
   28 #include <mach/mach_types.h>
   29 #include <mach/vm_types.h>
   30 #include <mach/machine/vm_types.h>
   31 #include <mach/vm_prot.h>
   32 #include <ppc/proc_reg.h>
   33 #include <ppc/savearea.h>
   34 #include <ppc/low_trace.h>
   35 #include <ppc/Diagnostics.h>
   36 #include <ppc/mappings.h>
   37 
   38 /*
   39  * Don't change these structures unless you change the corresponding assembly code
   40  * which is in lowmem_vectors.s
   41  */
   42  
   43 /* 
   44  *      This is where we put constants, pointers, and data areas that must be accessed
   45  *      quickly through assembler.  They are designed to be accessed directly with 
   46  *      absolute addresses, not via a base register.  This is a global area, and not
   47  *      per processor.
   48  */
   49  
   50 #pragma pack(4)                                                         /* Make sure the structure stays as we defined it */
   51 typedef struct lowglo {
   52 
   53         unsigned long   lgForceAddr[5*1024];    /* 0000 Force to page 5 */
   54         unsigned char   lgVerCode[8];                   /* 5000 System verification code */
   55         unsigned long long lgZero;                              /* 5008 Double constant 0 */
   56         unsigned int    lgPPStart;                              /* 5010 Start of per_proc blocks */
   57         unsigned int    lgCHUDXNUfnStart;               /* 5014 CHUD XNU function glue table */
   58         unsigned int    lgMckFlags;                             /* 5018 Machine check flags */
   59         unsigned int    lgVersion;                              /* 501C Pointer to kernel version string */
   60         uint64_t                lgPMWvaddr;                             /* 5020 physical memory window virtual address */
   61         uint64_t                lgUMWvaddr;                             /* 5028 user memory window virtual address */
   62         unsigned int    lgVMMforcedFeats;               /* 5030 VMM boot-args forced feature flags */
   63         unsigned int    lgMaxDec;                               /* 5034 Maximum decrementer we can set */
   64         unsigned int    lgPmsCtlp;                              /* 5038 Pointer to power management stepper control */
   65         unsigned int    lgRsv03C[17];                   /* 503C reserved */
   66         traceWork               lgTrcWork;                              /* 5080 Tracing control block - trcWork */
   67         unsigned int    lgRsv0A0[24];                   /* 50A0 reserved */
   68         struct Saveanchor       lgSaveanchor;           /* 5100 Savearea anchor - saveanchor */
   69         unsigned int    lgRsv140[16];                   /* 5140 reserved */
   70         unsigned int    lgTlbieLck;                             /* 5180 TLBIE lock */
   71         unsigned int    lgRsv184[31];                   /* 5184 reserved - push to next line */
   72         struct diagWork lgdgWork;                               /* 5200 Start of diagnostic work area */
   73         unsigned int    lglcksWork;                             /* 5220 lcks option */
   74         unsigned int    lgRsv224[23];                   /* 5224 reserved */
   75         pcfg                    lgpPcfg[8];                             /* 5280 Page configurations */
   76         unsigned int    lgRst2A0[24];                   /* 52A0 reserved */
   77         unsigned int    lgKillResv;                             /* 5300 line used to kill reservations */
   78         unsigned int    lgKillResvpad[31];              /* 5304 pad reservation kill line */
   79 
   80         unsigned int    lgRsv380[32];                   /* 5380 - 5400 reserved  */
   81 
   82         unsigned int    lgRsv400[32];                   /* 5400 - 5480 reserved  */
   83 
   84         uint32_t                lgRsv480[704];                  /* 5480 reserved - push to 1 page */
   85 
   86 } lowglo;
   87 
   88 extern lowglo lowGlo;
   89 
   90 #endif /* _LOW_MEMORY_GLOBALS_H_ */

Cache object: 55f44b8d41a770c23df929c1fa340170


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.