xref: /netbsd-src/sys/external/bsd/common/include/linux/types.h (revision 34b5d86a3eb7acafceba403c6d826046ee286836)
1 /*	$NetBSD: types.h,v 1.3 2021/12/19 01:42:09 riastradh Exp $	*/
2 
3 /*-
4  * Copyright (c) 2013 The NetBSD Foundation, Inc.
5  * All rights reserved.
6  *
7  * This code is derived from software contributed to The NetBSD Foundation
8  * by Taylor R. Campbell.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifndef _LINUX_TYPES_H_
33 #define _LINUX_TYPES_H_
34 
35 #include <sys/types.h>
36 #include <sys/bus.h>
37 #include <sys/stdint.h>
38 
39 typedef uint8_t u8;
40 typedef uint16_t u16;
41 typedef uint32_t u32;
42 typedef uint64_t u64;
43 
44 typedef uint8_t __u8;
45 typedef uint16_t __u16;
46 typedef uint32_t __u32;
47 typedef uint64_t __u64;
48 
49 typedef int8_t s8;
50 typedef int16_t s16;
51 typedef int32_t s32;
52 typedef int64_t s64;
53 
54 typedef int8_t __s8;
55 typedef int16_t __s16;
56 typedef int32_t __s32;
57 typedef int64_t __s64;
58 
59 typedef uint16_t __le16;
60 typedef uint32_t __le32;
61 typedef uint64_t __le64;
62 
63 typedef uint16_t __be16;
64 typedef uint32_t __be32;
65 typedef uint64_t __be64;
66 
67 #define	S8_C	INT8_C
68 #define	S16_C	INT16_C
69 #define	S32_C	INT32_C
70 #define	S64_C	INT64_C
71 
72 #define	U8_C	UINT8_C
73 #define	U16_C	UINT16_C
74 #define	U32_C	UINT32_C
75 #define	U64_C	UINT64_C
76 
77 /*
78  * This is used for absolute bus addresses, so it has to be bus_addr_t
79  * and not bus_size_t; bus_addr_t is sometimes wider than bus_size_t.
80  */
81 typedef bus_addr_t resource_size_t;
82 
83 typedef paddr_t phys_addr_t;
84 
85 typedef bus_addr_t dma_addr_t;
86 
87 /* XXX Is this the right type?  */
88 typedef unsigned long long cycles_t;
89 
90 /* XXX Not sure this is correct.  */
91 typedef off_t loff_t;
92 
93 #define DECLARE_BITMAP(NAME, BITS)					      \
94 	unsigned long NAME[((BITS) + ((NBBY*sizeof(unsigned long)) - 1)) /    \
95 		(NBBY*sizeof(unsigned long))]
96 
97 /* Definition copied in <linux/kernel.h> for convenience.  */
98 #define	__user
99 
100 struct list_head {
101 	struct list_head *prev;
102 	struct list_head *next;
103 };
104 
105 #endif  /* _LINUX_TYPES_H_ */
106