Home | History | Annotate | Line # | Download | only in core
      1 /*	$NetBSD: os.h,v 1.3 2021/12/18 23:45:33 riastradh Exp $	*/
      2 
      3 /* SPDX-License-Identifier: MIT */
      4 #ifndef __NVKM_OS_H__
      5 #define __NVKM_OS_H__
      6 #include <nvif/os.h>
      7 
      8 #ifndef __NetBSD__		/* XXX ioread */
      9 #ifdef __BIG_ENDIAN
     10 #define ioread16_native ioread16be
     11 #define iowrite16_native iowrite16be
     12 #define ioread32_native  ioread32be
     13 #define iowrite32_native iowrite32be
     14 #else
     15 #define ioread16_native ioread16
     16 #define iowrite16_native iowrite16
     17 #define ioread32_native  ioread32
     18 #define iowrite32_native iowrite32
     19 #endif
     20 #endif
     21 
     22 #ifdef __NetBSD__
     23 #include <sys/bus.h>
     24 #ifndef __BUS_SPACE_HAS_STREAM_METHODS
     25 #define bus_space_read_stream_2 bus_space_read_2
     26 #define bus_space_read_stream_4 bus_space_read_4
     27 #define bus_space_write_stream_2 bus_space_write_2
     28 #define bus_space_write_stream_4 bus_space_write_4
     29 #endif
     30 #endif
     31 
     32 #define iowrite64_native(v,p) do {                                             \
     33 	u32 __iomem *_p = (u32 __iomem *)(p);				       \
     34 	u64 _v = (v);							       \
     35 	iowrite32_native(lower_32_bits(_v), &_p[0]);			       \
     36 	iowrite32_native(upper_32_bits(_v), &_p[1]);			       \
     37 } while(0)
     38 
     39 struct nvkm_blob {
     40 	void *data;
     41 	u32 size;
     42 };
     43 
     44 static inline void
     45 nvkm_blob_dtor(struct nvkm_blob *blob)
     46 {
     47 	kfree(blob->data);
     48 	blob->data = NULL;
     49 	blob->size = 0;
     50 }
     51 #endif
     52