EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index

StdLib/Include/Ipf/machine/pal.h

Go to the documentation of this file.
00001 /*      $NetBSD: pal.h,v 1.1 2006/04/07 14:21:18 cherry Exp $   */
00002 
00003 /*-
00004  * Copyright (c) 2000 Doug Rabson
00005  * All rights reserved.
00006  *
00007  * Redistribution and use in source and binary forms, with or without
00008  * modification, are permitted provided that the following conditions
00009  * are met:
00010  * 1. Redistributions of source code must retain the above copyright
00011  *    notice, this list of conditions and the following disclaimer.
00012  * 2. Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
00017  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00018  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00019  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
00020  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00021  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
00022  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00023  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00024  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
00025  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00026  * SUCH DAMAGE.
00027  *
00028  *      $FreeBSD$
00029  */
00030 
00031 #ifndef _MACHINE_PAL_H_
00032 #define _MACHINE_PAL_H_
00033 
00034 /*
00035  * Architected static calling convention procedures.
00036  */
00037 #define PAL_CACHE_FLUSH         1
00038 #define PAL_CACHE_INFO          2
00039 #define PAL_CACHE_INIT          3
00040 #define PAL_CACHE_SUMMARY       4
00041 #define PAL_MEM_ATTRIB          5
00042 #define PAL_PTCE_INFO           6
00043 #define PAL_VM_INFO             7
00044 #define PAL_VM_SUMMARY          8
00045 #define PAL_BUS_GET_FEATURES    9
00046 #define PAL_BUS_SET_FEATURES    10
00047 #define PAL_DEBUG_INFO          11
00048 #define PAL_FIXED_ADDR          12
00049 #define PAL_FREQ_BASE           13
00050 #define PAL_FREQ_RATIOS         14
00051 #define PAL_PERF_MON_INFO       15
00052 #define PAL_PLATFORM_ADDR       16
00053 #define PAL_PROC_GET_FEATURE    17
00054 #define PAL_PROC_SET_FEATURE    18
00055 #define PAL_RSE_INFO            19
00056 #define PAL_VERSION             20
00057 #define PAL_MC_CLEAR_LOG        21
00058 #define PAL_MC_DRAIN            22
00059 #define PAL_MC_DYNAMIC_STATE    24
00060 #define PAL_MC_ERROR_INFO       25
00061 #define PAL_MC_EXPECTED         23
00062 #define PAL_MC_REGISTER_MEM     27
00063 #define PAL_MC_RESUME           26
00064 #define PAL_HALT                28
00065 #define PAL_HALT_LIGHT          29
00066 #define PAL_COPY_INFO           30
00067 #define PAL_CACHE_LINE_INIT     31
00068 #define PAL_PMI_ENTRYPOINT      32
00069 #define PAL_ENTER_IA_32_ENV     33
00070 #define PAL_VM_PAGE_SIZE        34
00071 #define PAL_MEM_FOR_TEST        37
00072 #define PAL_CACHE_PROT_INFO     38
00073 #define PAL_REGISTER_INFO       39
00074 #define PAL_SHUTDOWN            40
00075 #define PAL_PREFETCH_VISIBILITY 41
00076 
00077 /*
00078  * Architected stacked calling convention procedures.
00079  */
00080 #define PAL_COPY_PAL            256
00081 #define PAL_HALT_INFO           257
00082 #define PAL_TEST_PROC           258
00083 #define PAL_CACHE_READ          259
00084 #define PAL_CACHE_WRITE         260
00085 #define PAL_VM_TR_READ          261
00086 
00087 /*
00088  * Default physical address of the Processor Interrupt Block (PIB).
00089  * See also: IA-64 SDM, rev 1.1, volume 2, page 5-31.
00090  */
00091 #define PAL_PIB_DEFAULT_ADDR    0x00000000FEE00000L
00092 
00093 struct ia64_pal_result {
00094         int64_t         pal_status;
00095         u_int64_t       pal_result[3];
00096 };
00097 
00098 extern struct ia64_pal_result
00099         ia64_call_pal_static(u_int64_t proc, u_int64_t arg1,
00100                              u_int64_t arg2, u_int64_t arg3);
00101 extern struct ia64_pal_result
00102         ia64_call_pal_static_physical(u_int64_t proc, u_int64_t arg1,
00103                                       u_int64_t arg2, u_int64_t arg3);
00104 extern struct ia64_pal_result
00105         ia64_call_pal_stacked(u_int64_t proc, u_int64_t arg1,
00106                               u_int64_t arg2, u_int64_t arg3);
00107 extern struct ia64_pal_result
00108         ia64_call_pal_stacked_physical(u_int64_t proc, u_int64_t arg1,
00109                                        u_int64_t arg2, u_int64_t arg3);
00110 
00111 #endif /* _MACHINE_PAL_H_ */
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines