1276772Smarkj/*-
2276772Smarkj * Copyright (c) 2014 EMC Corp.
3276772Smarkj * Author: Conrad Meyer <conrad.meyer@isilon.com>
4276772Smarkj * All rights reserved.
5276772Smarkj *
6276772Smarkj * Redistribution and use in source and binary forms, with or without
7276772Smarkj * modification, are permitted provided that the following conditions
8276772Smarkj * are met:
9276772Smarkj * 1. Redistributions of source code must retain the above copyright
10276772Smarkj *    notice, this list of conditions and the following disclaimer.
11276772Smarkj * 2. Redistributions in binary form must reproduce the above copyright
12276772Smarkj *    notice, this list of conditions and the following disclaimer in the
13276772Smarkj *    documentation and/or other materials provided with the distribution.
14276772Smarkj *
15276772Smarkj * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16276772Smarkj * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17276772Smarkj * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18276772Smarkj * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19276772Smarkj * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20276772Smarkj * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21276772Smarkj * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22276772Smarkj * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23276772Smarkj * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24276772Smarkj * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25276772Smarkj * SUCH DAMAGE.
26276772Smarkj *
27276772Smarkj * $FreeBSD$
28276772Smarkj */
29276772Smarkj
30276772Smarkj#ifndef _MACHINE_DUMP_H_
31276772Smarkj#define	_MACHINE_DUMP_H_
32276772Smarkj
33276772Smarkj#ifdef __amd64__
34276772Smarkj#define	KERNELDUMP_ARCH_VERSION	KERNELDUMP_AMD64_VERSION
35276772Smarkj#define	EM_VALUE		EM_X86_64
36276772Smarkj#else
37276772Smarkj#define	KERNELDUMP_ARCH_VERSION	KERNELDUMP_I386_VERSION
38276772Smarkj#define	EM_VALUE		EM_386
39276772Smarkj#endif
40276772Smarkj
41276772Smarkj/* 20 phys_avail entry pairs correspond to 10 pa's */
42276772Smarkj#define	DUMPSYS_MD_PA_NPAIRS	10
43276772Smarkj#define	DUMPSYS_NUM_AUX_HDRS	0
44276772Smarkj
45276772Smarkjstatic inline void
46276772Smarkjdumpsys_pa_init(void)
47276772Smarkj{
48276772Smarkj
49276772Smarkj	dumpsys_gen_pa_init();
50276772Smarkj}
51276772Smarkj
52276772Smarkjstatic inline struct dump_pa *
53276772Smarkjdumpsys_pa_next(struct dump_pa *p)
54276772Smarkj{
55276772Smarkj
56276772Smarkj	return (dumpsys_gen_pa_next(p));
57276772Smarkj}
58276772Smarkj
59276772Smarkjstatic inline void
60276772Smarkjdumpsys_wbinv_all(void)
61276772Smarkj{
62276772Smarkj
63276772Smarkj	dumpsys_gen_wbinv_all();
64276772Smarkj}
65276772Smarkj
66276772Smarkjstatic inline void
67276772Smarkjdumpsys_unmap_chunk(vm_paddr_t pa, size_t s, void *va)
68276772Smarkj{
69276772Smarkj
70276772Smarkj	dumpsys_gen_unmap_chunk(pa, s, va);
71276772Smarkj}
72276772Smarkj
73276772Smarkjstatic inline int
74276772Smarkjdumpsys_write_aux_headers(struct dumperinfo *di)
75276772Smarkj{
76276772Smarkj
77276772Smarkj	return (dumpsys_gen_write_aux_headers(di));
78276772Smarkj}
79276772Smarkj
80276772Smarkjstatic inline int
81276772Smarkjdumpsys(struct dumperinfo *di)
82276772Smarkj{
83276772Smarkj
84276772Smarkj	return (dumpsys_generic(di));
85276772Smarkj}
86276772Smarkj
87276772Smarkj#endif  /* !_MACHINE_DUMP_H_ */
88