Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
0002 #ifndef __NVKM_OS_H__
0003 #define __NVKM_OS_H__
0004 #include <nvif/os.h>
0005 
0006 #ifdef __BIG_ENDIAN
0007 #define ioread16_native ioread16be
0008 #define iowrite16_native iowrite16be
0009 #define ioread32_native  ioread32be
0010 #define iowrite32_native iowrite32be
0011 #else
0012 #define ioread16_native ioread16
0013 #define iowrite16_native iowrite16
0014 #define ioread32_native  ioread32
0015 #define iowrite32_native iowrite32
0016 #endif
0017 
0018 #define iowrite64_native(v,p) do {                                             \
0019     u32 __iomem *_p = (u32 __iomem *)(p);                      \
0020     u64 _v = (v);                                  \
0021     iowrite32_native(lower_32_bits(_v), &_p[0]);                   \
0022     iowrite32_native(upper_32_bits(_v), &_p[1]);                   \
0023 } while(0)
0024 
0025 struct nvkm_blob {
0026     void *data;
0027     u32 size;
0028 };
0029 
0030 static inline void
0031 nvkm_blob_dtor(struct nvkm_blob *blob)
0032 {
0033     kfree(blob->data);
0034     blob->data = NULL;
0035     blob->size = 0;
0036 }
0037 #endif