ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

i386.h
Go to the documentation of this file.
00001 /*
00002  *  FreeLoader
00003  *
00004  *  Copyright (C) 2003  Eric Kohl
00005  *
00006  *  This program is free software; you can redistribute it and/or modify
00007  *  it under the terms of the GNU General Public License as published by
00008  *  the Free Software Foundation; either version 2 of the License, or
00009  *  (at your option) any later version.
00010  *
00011  *  This program is distributed in the hope that it will be useful,
00012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  *  GNU General Public License for more details.
00015  *
00016  *  You should have received a copy of the GNU General Public License along
00017  *  with this program; if not, write to the Free Software Foundation, Inc.,
00018  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00019  */
00020 
00021 #pragma once
00022 
00023 // This is needed because headers define wrong one for ReactOS
00024 #undef KIP0PCRADDRESS
00025 #define KIP0PCRADDRESS                      0xffdff000
00026 
00027 /* Bits to shift to convert a Virtual Address into an Offset in the Page Table */
00028 #define PFN_SHIFT 12
00029 
00030 /* Bits to shift to convert a Virtual Address into an Offset in the Page Directory */
00031 #define PDE_SHIFT 22
00032 #define PDE_SHIFT_PAE 18
00033 
00034 /* Converts a Physical Address Pointer into a Page Frame Number */
00035 #define PaPtrToPfn(p) \
00036     (((ULONG_PTR)&p) >> PFN_SHIFT)
00037 
00038 /* Converts a Physical Address into a Page Frame Number */
00039 #define PaToPfn(p) \
00040     ((p) >> PFN_SHIFT)
00041 
00042 #define STARTUP_BASE                0xC0000000
00043 
00044 #define LowMemPageTableIndex        0
00045 #define StartupPageTableIndex       (STARTUP_BASE >> 22)
00046 #define HalPageTableIndex           (HAL_BASE >> 22)
00047 
00048 typedef struct _PAGE_DIRECTORY_X86
00049 {
00050     HARDWARE_PTE Pde[1024];
00051 } PAGE_DIRECTORY_X86, *PPAGE_DIRECTORY_X86;
00052 
00053 void i386DivideByZero(void);
00054 void i386DebugException(void);
00055 void i386NMIException(void);
00056 void i386Breakpoint(void);
00057 void i386Overflow(void);
00058 void i386BoundException(void);
00059 void i386InvalidOpcode(void);
00060 void i386FPUNotAvailable(void);
00061 void i386DoubleFault(void);
00062 void i386CoprocessorSegment(void);
00063 void i386InvalidTSS(void);
00064 void i386SegmentNotPresent(void);
00065 void i386StackException(void);
00066 void i386GeneralProtectionFault(void);
00067 void i386PageFault(void);
00068 void i386CoprocessorError(void);
00069 void i386AlignmentCheck(void);
00070 void i386MachineCheck(void);
00071 
00072 /* EOF */

Generated on Fri May 25 2012 04:17:17 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.