191 size_t window_count,
const struct xlate_window *window_arr,
194 memset(xdev, 0,
sizeof(*xdev));
201 size_t window_count,
const struct xlate_window *window_arr,
209 size_t window_count,
const struct xlate_window *window_arr,
217 size_t sub_region_offset,
size_t sub_region_size)
241 size_t offset,
size_t size)
253 size_t offset,
size_t size)
384 size_t offset,
size_t size)
405 size_t offset,
size_t size)
426 size_t offset,
size_t size)
480 size_t offset,
size_t size)
490 size_t offset,
size_t size)
533 irdev->
write = write;
void * memcpy(void *dest, const void *src, size_t n)
void * memset(void *dstpp, int c, size_t len)
static struct mmap_helper_region_device mdev
static struct region_device rdev
#define container_of(ptr, type, member)
container_of - cast a member of a structure out to the containing structure
static struct device_operations ops
void * mem_pool_alloc(struct mem_pool *mp, size_t sz)
void mem_pool_free(struct mem_pool *mp, void *alloc)
ssize_t rdev_eraseat(const struct region_device *rd, size_t offset, size_t size)
static const struct region_device * rdev_root(const struct region_device *rdev)
ssize_t rdev_relative_offset(const struct region_device *p, const struct region_device *c)
int rdev_munmap(const struct region_device *rd, void *mapping)
static ssize_t xlate_writeat(const struct region_device *rd, const void *b, size_t offset, size_t size)
static const struct xlate_window * xlate_find_window(const struct xlate_region_device *xldev, const struct region *req)
static void * incoherent_mmap(const struct region_device *rd, size_t offset, size_t size)
int region_is_subregion(const struct region *p, const struct region *c)
int rdev_chain_mem(struct region_device *child, const void *base, size_t size)
static void mem_region_device_init(struct mem_region_device *mdev, const struct region_device_ops *ops, void *base, size_t size)
static ssize_t mdev_writeat(const struct region_device *rd, const void *b, size_t offset, size_t size)
static int mdev_munmap(const struct region_device *rd __unused, void *mapping __unused)
const struct region_device_ops mem_rdev_rw_ops
ssize_t rdev_writeat(const struct region_device *rd, const void *b, size_t offset, size_t size)
static void xlate_region_device_init(struct xlate_region_device *xdev, const struct region_device_ops *ops, size_t window_count, const struct xlate_window *window_arr, size_t parent_size)
static const struct region_device_ops incoherent_rdev_ops
static ssize_t xlate_eraseat(const struct region_device *rd, size_t offset, size_t size)
static const struct mem_region_device mem_rdev
void xlate_window_init(struct xlate_window *window, const struct region_device *access_dev, size_t sub_region_offset, size_t sub_region_size)
static ssize_t xlate_readat(const struct region_device *rd, void *b, size_t offset, size_t size)
void * mmap_helper_rdev_mmap(const struct region_device *rd, size_t offset, size_t size)
void mem_region_device_ro_init(struct mem_region_device *mdev, void *base, size_t size)
const struct region_device_ops xlate_rdev_rw_ops
void * rdev_mmap(const struct region_device *rd, size_t offset, size_t size)
int rdev_chain_mem_rw(struct region_device *child, void *base, size_t size)
void xlate_region_device_rw_init(struct xlate_region_device *xdev, size_t window_count, const struct xlate_window *window_arr, size_t parent_size)
static ssize_t mdev_readat(const struct region_device *rd, void *b, size_t offset, size_t size)
static ssize_t incoherent_writeat(const struct region_device *rd, const void *b, size_t offset, size_t size)
void mem_region_device_rw_init(struct mem_region_device *mdev, void *base, size_t size)
static void * xlate_mmap(const struct region_device *rd, size_t offset, size_t size)
int rdev_chain(struct region_device *child, const struct region_device *parent, size_t offset, size_t size)
void region_device_init(struct region_device *rdev, const struct region_device_ops *ops, size_t offset, size_t size)
const struct region_device_ops xlate_rdev_ro_ops
int mmap_helper_rdev_munmap(const struct region_device *rd, void *mapping)
const struct region_device_ops mem_rdev_ro_ops
void xlate_region_device_ro_init(struct xlate_region_device *xdev, size_t window_count, const struct xlate_window *window_arr, size_t parent_size)
ssize_t rdev_readat(const struct region_device *rd, void *b, size_t offset, size_t size)
static void * mdev_mmap(const struct region_device *rd, size_t offset, size_t size __unused)
static int xlate_munmap(const struct region_device *rd __unused, void *mapping __unused)
static ssize_t incoherent_readat(const struct region_device *rd, void *b, size_t offset, size_t size)
const struct region_device * incoherent_rdev_init(struct incoherent_rdev *irdev, const struct region *r, const struct region_device *read, const struct region_device *write)
static const struct mem_region_device mem_rdev_rw
static int normalize_and_ok(const struct region *outer, struct region *inner)
static int incoherent_munmap(const struct region_device *rd, void *mapping)
static ssize_t incoherent_eraseat(const struct region_device *rd, size_t offset, size_t size)
static ssize_t mdev_eraseat(const struct region_device *rd, size_t offset, size_t size)
static size_t region_sz(const struct region *r)
static size_t region_device_sz(const struct region_device *rdev)
#define MEM_REGION_DEV_RW_INIT(base_, size_)
#define MEM_REGION_DEV_RO_INIT(base_, size_)
static size_t region_end(const struct region *r)
static size_t region_offset(const struct region *r)
static size_t region_device_offset(const struct region_device *rdev)
const struct region_device * write
const struct region_device * read
struct region_device rdev
struct region_device rdev
struct region_device rdev
ssize_t(* eraseat)(const struct region_device *, size_t, size_t)
ssize_t(* readat)(const struct region_device *, void *, size_t, size_t)
void *(* mmap)(const struct region_device *, size_t, size_t)
int(* munmap)(const struct region_device *, void *)
ssize_t(* writeat)(const struct region_device *, const void *, size_t, size_t)
const struct region_device * root
const struct region_device_ops * ops
struct region_device rdev
const struct xlate_window * window_arr
const struct region_device * access_dev
#define c(value, pmcreg, dst_bits)