diff options
author | Hans J. Koch <hjk@linutronix.de> | 2008-09-18 23:53:18 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-10-16 18:24:53 +0200 |
commit | e2b39df119712ea5184562a6a14696a5cea8ef18 (patch) | |
tree | b855a7b4e8893df122c96c69976d37a1a563492e /drivers/uio | |
parent | Driver core: add bus_sort_breadthfirst() function (diff) | |
download | linux-e2b39df119712ea5184562a6a14696a5cea8ef18.tar.xz linux-e2b39df119712ea5184562a6a14696a5cea8ef18.zip |
UIO: Add alignment warnings for uio-mem
This patch adds an "offset" attribute for UIO mappings. It shows the
difference between the actual start address of the memory and the start
address of the page.
Signed-off-by: Hans J. Koch <hjk@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/uio')
-rw-r--r-- | drivers/uio/uio.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c index 9ac22c7c3854..557e73ef5884 100644 --- a/drivers/uio/uio.c +++ b/drivers/uio/uio.c @@ -67,6 +67,11 @@ static ssize_t map_size_show(struct uio_mem *mem, char *buf) return sprintf(buf, "0x%lx\n", mem->size); } +static ssize_t map_offset_show(struct uio_mem *mem, char *buf) +{ + return sprintf(buf, "0x%lx\n", mem->addr & ~PAGE_MASK); +} + struct uio_sysfs_entry { struct attribute attr; ssize_t (*show)(struct uio_mem *, char *); @@ -77,10 +82,13 @@ static struct uio_sysfs_entry addr_attribute = __ATTR(addr, S_IRUGO, map_addr_show, NULL); static struct uio_sysfs_entry size_attribute = __ATTR(size, S_IRUGO, map_size_show, NULL); +static struct uio_sysfs_entry offset_attribute = + __ATTR(offset, S_IRUGO, map_offset_show, NULL); static struct attribute *attrs[] = { &addr_attribute.attr, &size_attribute.attr, + &offset_attribute.attr, NULL, /* need to NULL terminate the list of attributes */ }; |