Loading tools/virtio/linux/dma-mapping.h +16 −0 Original line number Diff line number Diff line Loading @@ -14,4 +14,20 @@ enum dma_data_direction { DMA_NONE = 3, }; #define dma_alloc_coherent(d, s, hp, f) ({ \ void *__dma_alloc_coherent_p = kmalloc((s), (f)); \ *(hp) = (unsigned long)__dma_alloc_coherent_p; \ __dma_alloc_coherent_p; \ }) #define dma_free_coherent(d, s, p, h) kfree(p) #define dma_map_page(d, p, o, s, dir) (page_to_phys(p) + (o)) #define dma_map_single(d, p, s, dir) (virt_to_phys(p)) #define dma_mapping_error(...) (0) #define dma_unmap_single(...) do { } while (0) #define dma_unmap_page(...) do { } while (0) #endif tools/virtio/linux/kernel.h +14 −0 Original line number Diff line number Diff line Loading @@ -20,7 +20,9 @@ #define PAGE_SIZE getpagesize() #define PAGE_MASK (~(PAGE_SIZE-1)) #define PAGE_ALIGN(x) ((x + PAGE_SIZE - 1) & PAGE_MASK) typedef unsigned long long phys_addr_t; typedef unsigned long long dma_addr_t; typedef size_t __kernel_size_t; typedef unsigned int __wsum; Loading Loading @@ -57,6 +59,11 @@ static inline void *kzalloc(size_t s, gfp_t gfp) return p; } static inline void *alloc_pages_exact(size_t s, gfp_t gfp) { return kmalloc(s, gfp); } static inline void kfree(void *p) { if (p >= __kfree_ignore_start && p < __kfree_ignore_end) Loading @@ -64,6 +71,11 @@ static inline void kfree(void *p) free(p); } static inline void free_pages_exact(void *p, size_t s) { kfree(p); } static inline void *krealloc(void *p, size_t s, gfp_t gfp) { return realloc(p, s); Loading Loading @@ -105,6 +117,8 @@ static inline void free_page(unsigned long addr) #define dev_err(dev, format, ...) fprintf (stderr, format, ## __VA_ARGS__) #define dev_warn(dev, format, ...) fprintf (stderr, format, ## __VA_ARGS__) #define WARN_ON_ONCE(cond) ((cond) && fprintf (stderr, "WARNING\n")) #define min(x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \ Loading tools/virtio/linux/slab.h +4 −0 Original line number Diff line number Diff line #ifndef LINUX_SLAB_H #define GFP_KERNEL 0 #define GFP_ATOMIC 0 #define __GFP_NOWARN 0 #define __GFP_ZERO 0 #endif tools/virtio/linux/virtio.h +5 −1 Original line number Diff line number Diff line Loading @@ -3,8 +3,12 @@ #include <linux/scatterlist.h> #include <linux/kernel.h> struct device { void *parent; }; struct virtio_device { void *dev; struct device dev; u64 features; }; Loading tools/virtio/linux/virtio_config.h +13 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,19 @@ static inline void __virtio_clear_bit(struct virtio_device *vdev, #define virtio_has_feature(dev, feature) \ (__virtio_test_bit((dev), feature)) /** * virtio_has_iommu_quirk - determine whether this device has the iommu quirk * @vdev: the device */ static inline bool virtio_has_iommu_quirk(const struct virtio_device *vdev) { /* * Note the reverse polarity of the quirk feature (compared to most * other features), this is for compatibility with legacy systems. */ return !virtio_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM); } static inline bool virtio_is_little_endian(struct virtio_device *vdev) { return virtio_has_feature(vdev, VIRTIO_F_VERSION_1) || Loading Loading
tools/virtio/linux/dma-mapping.h +16 −0 Original line number Diff line number Diff line Loading @@ -14,4 +14,20 @@ enum dma_data_direction { DMA_NONE = 3, }; #define dma_alloc_coherent(d, s, hp, f) ({ \ void *__dma_alloc_coherent_p = kmalloc((s), (f)); \ *(hp) = (unsigned long)__dma_alloc_coherent_p; \ __dma_alloc_coherent_p; \ }) #define dma_free_coherent(d, s, p, h) kfree(p) #define dma_map_page(d, p, o, s, dir) (page_to_phys(p) + (o)) #define dma_map_single(d, p, s, dir) (virt_to_phys(p)) #define dma_mapping_error(...) (0) #define dma_unmap_single(...) do { } while (0) #define dma_unmap_page(...) do { } while (0) #endif
tools/virtio/linux/kernel.h +14 −0 Original line number Diff line number Diff line Loading @@ -20,7 +20,9 @@ #define PAGE_SIZE getpagesize() #define PAGE_MASK (~(PAGE_SIZE-1)) #define PAGE_ALIGN(x) ((x + PAGE_SIZE - 1) & PAGE_MASK) typedef unsigned long long phys_addr_t; typedef unsigned long long dma_addr_t; typedef size_t __kernel_size_t; typedef unsigned int __wsum; Loading Loading @@ -57,6 +59,11 @@ static inline void *kzalloc(size_t s, gfp_t gfp) return p; } static inline void *alloc_pages_exact(size_t s, gfp_t gfp) { return kmalloc(s, gfp); } static inline void kfree(void *p) { if (p >= __kfree_ignore_start && p < __kfree_ignore_end) Loading @@ -64,6 +71,11 @@ static inline void kfree(void *p) free(p); } static inline void free_pages_exact(void *p, size_t s) { kfree(p); } static inline void *krealloc(void *p, size_t s, gfp_t gfp) { return realloc(p, s); Loading Loading @@ -105,6 +117,8 @@ static inline void free_page(unsigned long addr) #define dev_err(dev, format, ...) fprintf (stderr, format, ## __VA_ARGS__) #define dev_warn(dev, format, ...) fprintf (stderr, format, ## __VA_ARGS__) #define WARN_ON_ONCE(cond) ((cond) && fprintf (stderr, "WARNING\n")) #define min(x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \ Loading
tools/virtio/linux/slab.h +4 −0 Original line number Diff line number Diff line #ifndef LINUX_SLAB_H #define GFP_KERNEL 0 #define GFP_ATOMIC 0 #define __GFP_NOWARN 0 #define __GFP_ZERO 0 #endif
tools/virtio/linux/virtio.h +5 −1 Original line number Diff line number Diff line Loading @@ -3,8 +3,12 @@ #include <linux/scatterlist.h> #include <linux/kernel.h> struct device { void *parent; }; struct virtio_device { void *dev; struct device dev; u64 features; }; Loading
tools/virtio/linux/virtio_config.h +13 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,19 @@ static inline void __virtio_clear_bit(struct virtio_device *vdev, #define virtio_has_feature(dev, feature) \ (__virtio_test_bit((dev), feature)) /** * virtio_has_iommu_quirk - determine whether this device has the iommu quirk * @vdev: the device */ static inline bool virtio_has_iommu_quirk(const struct virtio_device *vdev) { /* * Note the reverse polarity of the quirk feature (compared to most * other features), this is for compatibility with legacy systems. */ return !virtio_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM); } static inline bool virtio_is_little_endian(struct virtio_device *vdev) { return virtio_has_feature(vdev, VIRTIO_F_VERSION_1) || Loading