Home | History | Annotate | Line # | Download | only in linux
      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