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 39typedef uint8_t u8; 40typedef uint16_t u16; 41typedef uint32_t u32; 42typedef uint64_t u64; 43 44typedef uint8_t __u8; 45typedef uint16_t __u16; 46typedef uint32_t __u32; 47typedef uint64_t __u64; 48 49typedef int8_t s8; 50typedef int16_t s16; 51typedef int32_t s32; 52typedef int64_t s64; 53 54typedef int8_t __s8; 55typedef int16_t __s16; 56typedef int32_t __s32; 57typedef int64_t __s64; 58 59typedef uint16_t __le16; 60typedef uint32_t __le32; 61typedef uint64_t __le64; 62 63typedef uint16_t __be16; 64typedef uint32_t __be32; 65typedef 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 */ 81typedef bus_addr_t resource_size_t; 82 83typedef paddr_t phys_addr_t; 84 85typedef bus_addr_t dma_addr_t; 86 87/* XXX Is this the right type? */ 88typedef unsigned long long cycles_t; 89 90/* XXX Not sure this is correct. */ 91typedef 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 100struct list_head { 101 struct list_head *prev; 102 struct list_head *next; 103}; 104 105#endif /* _LINUX_TYPES_H_ */ 106