Annotation of src/sys/arch/amd64/include/types.h, Revision 1.45.6.1
1.45.6.1! skrll 1: /* $NetBSD: types.h,v 1.46 2015/04/27 07:03:57 knakahara Exp $ */
1.1 fvdl 2:
3: /*-
4: * Copyright (c) 1990 The Regents of the University of California.
5: * All rights reserved.
6: *
7: * Redistribution and use in source and binary forms, with or without
8: * modification, are permitted provided that the following conditions
9: * are met:
10: * 1. Redistributions of source code must retain the above copyright
11: * notice, this list of conditions and the following disclaimer.
12: * 2. Redistributions in binary form must reproduce the above copyright
13: * notice, this list of conditions and the following disclaimer in the
14: * documentation and/or other materials provided with the distribution.
1.3 agc 15: * 3. Neither the name of the University nor the names of its contributors
1.1 fvdl 16: * may be used to endorse or promote products derived from this software
17: * without specific prior written permission.
18: *
19: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29: * SUCH DAMAGE.
30: *
31: * @(#)types.h 7.5 (Berkeley) 3/9/91
32: */
33:
1.27 mrg 34: #ifndef _X86_64_MACHTYPES_H_
35: #define _X86_64_MACHTYPES_H_
36:
37: #ifdef __x86_64__
1.1 fvdl 38:
39: #include <sys/cdefs.h>
1.2 bjh21 40: #include <sys/featuretest.h>
1.1 fvdl 41: #include <machine/int_types.h>
42:
43: #if defined(_KERNEL)
44: typedef struct label_t {
45: long val[8];
46: } label_t;
47: #endif
48:
49: /* NB: This should probably be if defined(_KERNEL) */
1.2 bjh21 50: #if defined(_NETBSD_SOURCE)
1.1 fvdl 51: typedef unsigned long paddr_t;
52: typedef unsigned long psize_t;
53: typedef unsigned long vaddr_t;
54: typedef unsigned long vsize_t;
1.33 matt 55: #define PRIxPADDR "lx"
56: #define PRIxPSIZE "lx"
57: #define PRIuPSIZE "lu"
58: #define PRIxVADDR "lx"
59: #define PRIxVSIZE "lx"
60: #define PRIuVSIZE "lu"
1.1 fvdl 61: #endif
62:
1.44 christos 63: typedef int pmc_evid_t;
64: typedef __uint64_t pmc_ctr_t;
1.33 matt 65: typedef long int register_t;
66: typedef int register32_t;
67: #define PRIxREGISTER "lx"
68: #define PRIxREGISTER32 "x"
1.4 nathanw 69:
1.15 ad 70: typedef volatile unsigned char __cpu_simple_lock_t;
71:
72: /* __cpu_simple_lock_t used to be a full word. */
73: #define __CPU_SIMPLE_LOCK_PAD
1.4 nathanw 74:
75: #define __SIMPLELOCK_LOCKED 1
76: #define __SIMPLELOCK_UNLOCKED 0
1.1 fvdl 77:
78: /* The amd64 does not have strict alignment requirements. */
79: #define __NO_STRICT_ALIGNMENT
80:
1.39 dyoung 81: #define __HAVE_NEW_STYLE_BUS_H
1.1 fvdl 82: #define __HAVE_CPU_COUNTER
1.35 njoly 83: #define __HAVE_CPU_DATA_FIRST
1.45 christos 84: #define __HAVE_CPU_BOOTCONF
1.43 christos 85: #define __HAVE_MD_CPU_OFFLINE
1.1 fvdl 86: #define __HAVE_SYSCALL_INTERN
87: #define __HAVE_MINIMAL_EMUL
1.21 ad 88: #define __HAVE_ATOMIC64_OPS
1.38 rmind 89: #define __HAVE_MM_MD_KERNACC
1.26 ad 90: #define __HAVE_ATOMIC_AS_MEMBAR
1.31 tsutsui 91: #define __HAVE_CPU_LWP_SETPRIVATE
1.36 joerg 92: #define __HAVE___LWP_GETPRIVATE_FAST
1.37 joerg 93: #define __HAVE_TLS_VARIANT_II
94: #define __HAVE_COMMON___TLS_GET_ADDR
1.32 ad 95: #define __HAVE_INTR_CONTROL
1.1 fvdl 96:
1.20 bouyer 97: #ifdef _KERNEL_OPT
1.40 chs 98: #define __HAVE_RAS
99:
1.18 bouyer 100: #include "opt_xen.h"
1.40 chs 101: #if defined(__x86_64__) && !defined(XEN)
102: #define __HAVE_DIRECT_MAP 1
103: #define __HAVE_MM_MD_DIRECT_MAPPED_IO
104: #define __HAVE_MM_MD_DIRECT_MAPPED_PHYS
1.41 chs 105: #define __HAVE_CPU_UAREA_ROUTINES
1.45.6.1! skrll 106: #define __HAVE_PCI_MSI_MSIX
1.40 chs 107: #endif
1.18 bouyer 108: #endif
1.6 martin 109:
1.27 mrg 110: #else /* !__x86_64__ */
111:
112: #include <i386/types.h>
113:
114: #endif /* __x86_64__ */
115:
116: #endif /* _X86_64_MACHTYPES_H_ */
CVSweb <webmaster@jp.NetBSD.org>