![]() |
|
|||
File indexing completed on 2025-05-11 08:24:09
0001 /* 0002 * Copyright (c) 2005 Jakub Jermar 0003 * All rights reserved. 0004 * 0005 * Redistribution and use in source and binary forms, with or without 0006 * modification, are permitted provided that the following conditions 0007 * are met: 0008 * 0009 * - Redistributions of source code must retain the above copyright 0010 * notice, this list of conditions and the following disclaimer. 0011 * - Redistributions in binary form must reproduce the above copyright 0012 * notice, this list of conditions and the following disclaimer in the 0013 * documentation and/or other materials provided with the distribution. 0014 * - The name of the author may not be used to endorse or promote products 0015 * derived from this software without specific prior written permission. 0016 * 0017 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 0018 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 0019 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 0020 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 0021 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 0022 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 0023 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 0024 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 0025 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 0026 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 0027 */ 0028 0029 /** @addtogroup RTEMSBSPsSPARC64mm 0030 * @{ 0031 */ 0032 /** @file 0033 */ 0034 0035 #ifndef KERN_sparc64_SUN4U_FRAME_H_ 0036 #define KERN_sparc64_SUN4U_FRAME_H_ 0037 0038 /* 0039 * Page size supported by the MMU. 0040 * For 8K there is the nasty illegal virtual aliasing problem. 0041 * Therefore, the kernel uses 8K only internally on the TLB and TSB levels. 0042 */ 0043 #define MMU_FRAME_WIDTH 13 /* 8K */ 0044 #define MMU_FRAME_SIZE (1 << MMU_FRAME_WIDTH) 0045 0046 /* 0047 * Page size exported to the generic memory management subsystems. 0048 * This page size is not directly supported by the MMU, but we can emulate 0049 * each 16K page with a pair of adjacent 8K pages. 0050 */ 0051 #define FRAME_WIDTH 14 /* 16K */ 0052 #define FRAME_SIZE (1 << FRAME_WIDTH) 0053 0054 #ifdef KERNEL 0055 #ifndef __ASM__ 0056 0057 #include <arch/types.h> 0058 0059 union frame_address { 0060 uintptr_t address; 0061 struct { 0062 #if defined (US) 0063 unsigned : 23; 0064 uint64_t pfn : 28; /**< Physical Frame Number. */ 0065 #elif defined (US3) 0066 unsigned : 21; 0067 uint64_t pfn : 30; /**< Physical Frame Number. */ 0068 #endif 0069 unsigned offset : 13; /**< Offset. */ 0070 } __attribute__ ((packed)); 0071 }; 0072 0073 typedef union frame_address frame_address_t; 0074 0075 extern uintptr_t last_frame; 0076 extern uintptr_t end_of_identity; 0077 0078 extern void frame_arch_init(void); 0079 #define physmem_print() 0080 0081 #endif 0082 #endif 0083 0084 #endif 0085 0086 /** @} 0087 */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |