2 * Copyright (c) 2000 Doug Rabson
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 #ifndef _MACHINE_PAL_H_
30 #define _MACHINE_PAL_H_
33 * Architected static calling convention procedures.
35 #define PAL_CACHE_FLUSH 1
36 #define PAL_CACHE_INFO 2
37 #define PAL_CACHE_INIT 3
38 #define PAL_CACHE_SUMMARY 4
39 #define PAL_MEM_ATTRIB 5
40 #define PAL_PTCE_INFO 6
42 #define PAL_VM_SUMMARY 8
43 #define PAL_BUS_GET_FEATURES 9
44 #define PAL_BUS_SET_FEATURES 10
45 #define PAL_DEBUG_INFO 11
46 #define PAL_FIXED_ADDR 12
47 #define PAL_FREQ_BASE 13
48 #define PAL_FREQ_RATIOS 14
49 #define PAL_PERF_MON_INFO 15
50 #define PAL_PLATFORM_ADDR 16
51 #define PAL_PROC_GET_FEATURE 17
52 #define PAL_PROC_SET_FEATURE 18
53 #define PAL_RSE_INFO 19
54 #define PAL_VERSION 20
55 #define PAL_MC_CLEAR_LOG 21
56 #define PAL_MC_DRAIN 22
57 #define PAL_MC_DYNAMIC_STATE 24
58 #define PAL_MC_ERROR_INFO 25
59 #define PAL_MC_EXPECTED 23
60 #define PAL_MC_REGISTER_MEM 27
61 #define PAL_MC_RESUME 26
63 #define PAL_HALT_LIGHT 29
64 #define PAL_COPY_INFO 30
65 #define PAL_CACHE_LINE_INIT 31
66 #define PAL_PMI_ENTRYPOINT 32
67 #define PAL_ENTER_IA_32_ENV 33
68 #define PAL_VM_PAGE_SIZE 34
69 #define PAL_MEM_FOR_TEST 37
70 #define PAL_CACHE_PROT_INFO 38
71 #define PAL_REGISTER_INFO 39
72 #define PAL_SHUTDOWN 40
73 #define PAL_PREFETCH_VISIBILITY 41
76 * Architected stacked calling convention procedures.
78 #define PAL_COPY_PAL 256
79 #define PAL_HALT_INFO 257
80 #define PAL_TEST_PROC 258
81 #define PAL_CACHE_READ 259
82 #define PAL_CACHE_WRITE 260
83 #define PAL_VM_TR_READ 261
86 * Default physical address of the Processor Interrupt Block (PIB).
87 * See also: IA-64 SDM, rev 1.1, volume 2, page 5-31.
89 #define PAL_PIB_DEFAULT_ADDR 0x00000000FEE00000L
91 struct ia64_pal_result {
93 u_int64_t pal_result[3];
96 extern struct ia64_pal_result
97 ia64_call_pal_static(u_int64_t proc, u_int64_t arg1,
98 u_int64_t arg2, u_int64_t arg3);
99 extern struct ia64_pal_result
100 ia64_call_pal_static_physical(u_int64_t proc, u_int64_t arg1,
101 u_int64_t arg2, u_int64_t arg3);
102 extern struct ia64_pal_result
103 ia64_call_pal_stacked(u_int64_t proc, u_int64_t arg1,
104 u_int64_t arg2, u_int64_t arg3);
105 extern struct ia64_pal_result
106 ia64_call_pal_stacked_physical(u_int64_t proc, u_int64_t arg1,
107 u_int64_t arg2, u_int64_t arg3);
109 #endif /* _MACHINE_PAL_H_ */