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