1129198Scognet/*-
2129198Scognet * Copyright (c) 1995 Bruce D. Evans.
3129198Scognet * All rights reserved.
4129198Scognet *
5129198Scognet * Redistribution and use in source and binary forms, with or without
6129198Scognet * modification, are permitted provided that the following conditions
7129198Scognet * are met:
8129198Scognet * 1. Redistributions of source code must retain the above copyright
9129198Scognet *    notice, this list of conditions and the following disclaimer.
10129198Scognet * 2. Redistributions in binary form must reproduce the above copyright
11129198Scognet *    notice, this list of conditions and the following disclaimer in the
12129198Scognet *    documentation and/or other materials provided with the distribution.
13129198Scognet * 3. Neither the name of the author nor the names of contributors
14129198Scognet *    may be used to endorse or promote products derived from this software
15129198Scognet *    without specific prior written permission.
16129198Scognet *
17129198Scognet * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18129198Scognet * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19129198Scognet * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20129198Scognet * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21129198Scognet * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22129198Scognet * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23129198Scognet * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24129198Scognet * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25129198Scognet * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26129198Scognet * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27129198Scognet * SUCH DAMAGE.
28129198Scognet *
29129198Scognet *	from: FreeBSD: src/sys/i386/include/md_var.h,v 1.40 2001/07/12
30129198Scognet * $FreeBSD: stable/11/sys/arm/include/md_var.h 325810 2017-11-14 16:03:07Z jhb $
31129198Scognet */
32129198Scognet
33129198Scognet#ifndef	_MACHINE_MD_VAR_H_
34129198Scognet#define	_MACHINE_MD_VAR_H_
35129198Scognet
36277533Sianextern long Maxmem;
37135663Scognetextern char sigcode[];
38135663Scognetextern int szsigcode;
39184728Srajextern uint32_t *vm_page_dump;
40184728Srajextern int vm_page_dump_size;
41325810Sjhbextern u_long elf_hwcap;
42325810Sjhbextern u_long elf_hwcap2;
43135663Scognet
44150864Scognetextern int (*_arm_memcpy)(void *, void *, int, int);
45150864Scognetextern int (*_arm_bzero)(void *, int, int);
46150864Scognet
47150864Scognetextern int _min_memcpy_size;
48150864Scognetextern int _min_bzero_size;
49150864Scognet
50150864Scognet#define DST_IS_USER	0x1
51150864Scognet#define SRC_IS_USER	0x2
52150864Scognet#define IS_PHYSICAL	0x4
53150864Scognet
54197523Srpauloenum cpu_class {
55197523Srpaulo	CPU_CLASS_NONE,
56197523Srpaulo	CPU_CLASS_ARM9TDMI,
57197523Srpaulo	CPU_CLASS_ARM9ES,
58197523Srpaulo	CPU_CLASS_ARM9EJS,
59197523Srpaulo	CPU_CLASS_ARM10E,
60197523Srpaulo	CPU_CLASS_ARM10EJ,
61239268Sgonzo	CPU_CLASS_CORTEXA,
62259640Sganbold	CPU_CLASS_KRAIT,
63197523Srpaulo	CPU_CLASS_XSCALE,
64197523Srpaulo	CPU_CLASS_ARM11J,
65197523Srpaulo	CPU_CLASS_MARVELL
66197523Srpaulo};
67197523Srpauloextern enum cpu_class cpu_class;
68197523Srpaulo
69184728Srajstruct dumperinfo;
70166063Scognetextern int busdma_swi_pending;
71166063Scognetvoid busdma_swi(void);
72184728Srajvoid dump_add_page(vm_paddr_t);
73184728Srajvoid dump_drop_page(vm_paddr_t);
74272766Smarkjint minidumpsys(struct dumperinfo *);
75166063Scognet
76288983Skibextern uint32_t initial_fpscr;
77288983Skib
78129198Scognet#endif /* !_MACHINE_MD_VAR_H_ */
79