pal.h revision 84122
1/*-
2 * Copyright (c) 2000 Doug Rabson
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
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.
13 *
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
24 * SUCH DAMAGE.
25 *
26 *	$FreeBSD: head/sys/ia64/include/pal.h 84122 2001-09-29 11:01:24Z dfr $
27 */
28
29#ifndef _MACHINE_PAL_H_
30#define _MACHINE_PAL_H_
31
32/*
33 * Architected static calling convention procedures.
34 */
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
41#define PAL_VM_INFO		7
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
62#define PAL_HALT		28
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
74
75/*
76 * Architected stacked calling convention procedures.
77 */
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
84
85struct ia64_pal_result {
86	int64_t		pal_status;
87	u_int64_t	pal_result[3];
88};
89
90extern struct ia64_pal_result
91	ia64_call_pal_static(u_int64_t proc, u_int64_t arg1,
92			     u_int64_t arg2, u_int64_t arg3);
93extern struct ia64_pal_result
94	ia64_call_pal_static_physical(u_int64_t proc, u_int64_t arg1,
95				      u_int64_t arg2, u_int64_t arg3);
96extern struct ia64_pal_result
97	ia64_call_pal_stacked(u_int64_t proc, u_int64_t arg1,
98			      u_int64_t arg2, u_int64_t arg3);
99extern struct ia64_pal_result
100	ia64_call_pal_stacked_physical(u_int64_t proc, u_int64_t arg1,
101				       u_int64_t arg2, u_int64_t arg3);
102
103
104#endif /* _MACHINE_PAL_H_ */
105