From: Michal Wajdeczko <michal.wajdeczko@intel.com>
To: intel-xe@lists.freedesktop.org
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>,
linux-fsdevel@vger.kernel.org, dri-devel@lists.freedesktop.org,
Lucas De Marchi <lucas.demarchi@intel.com>
Subject: [PATCH 2/4] iosys-map: add iosys_map_read_from() helper
Date: Sun, 12 May 2024 17:36:04 +0200 [thread overview]
Message-ID: <20240512153606.1996-3-michal.wajdeczko@intel.com> (raw)
In-Reply-To: <20240512153606.1996-1-michal.wajdeczko@intel.com>
It allows to copy data from iosys_map into the user memory,
regardless whether iosys_map points to memory or I/O memory.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
Cc: linux-fsdevel@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
---
include/linux/iosys-map.h | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/include/linux/iosys-map.h b/include/linux/iosys-map.h
index 4696abfd311c..eb79da976211 100644
--- a/include/linux/iosys-map.h
+++ b/include/linux/iosys-map.h
@@ -7,6 +7,7 @@
#define __IOSYS_MAP_H__
#include <linux/compiler_types.h>
+#include <linux/fs.h>
#include <linux/io.h>
#include <linux/string.h>
@@ -312,6 +313,29 @@ static inline void iosys_map_memcpy_from(void *dst, const struct iosys_map *src,
memcpy(dst, src->vaddr + src_offset, len);
}
+/**
+ * iosys_map_read_from - Copy data from iosys_map into user memory
+ * @to: the user space buffer to read to
+ * @count: the maximum number of bytes to read
+ * @ppos: the current position in the buffer
+ * @map: the iosys_map structure to read from
+ * @available: the size of the data in iosys_map
+ *
+ * Copies up to @count bytes from a iosys_map @map at offset @ppos into the user
+ * space address starting at @to.
+ *
+ * Return: On success, the number of bytes read is returned and the offset
+ * @ppos is advanced by this number, or negative value is returned on error.
+ */
+static inline ssize_t iosys_map_read_from(void __user *to, size_t count, loff_t *ppos,
+ const struct iosys_map *map, size_t available)
+{
+ if (map->is_iomem)
+ return simple_read_from_iomem(to, count, ppos, map->vaddr_iomem, available);
+ else
+ return simple_read_from_buffer(to, count, ppos, map->vaddr, available);
+}
+
/**
* iosys_map_incr - Increments the address stored in a iosys mapping
* @map: The iosys_map structure
--
2.43.0
next prev parent reply other threads:[~2024-05-12 15:36 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-12 15:36 [PATCH 0/4] Expose raw access to GuC log over debugfs Michal Wajdeczko
2024-05-12 15:36 ` [PATCH 1/4] libfs: add simple_read_from_iomem() Michal Wajdeczko
2024-05-12 15:36 ` Michal Wajdeczko [this message]
2024-05-12 15:36 ` [PATCH 3/4] drm/xe: Add wrapper for iosys_map_read_from Michal Wajdeczko
2024-05-12 15:36 ` [PATCH 4/4] drm/xe/guc: Expose raw access to GuC log over debugfs Michal Wajdeczko
2024-05-13 16:53 ` John Harrison
2024-05-14 14:58 ` Michal Wajdeczko
2024-05-14 18:13 ` John Harrison
2024-05-14 20:31 ` Matthew Brost
2024-05-14 21:15 ` Michal Wajdeczko
2024-05-14 21:54 ` John Harrison
2024-05-14 22:31 ` Matthew Brost
2024-05-14 20:41 ` Michal Wajdeczko
2024-05-14 22:15 ` John Harrison
2024-05-13 8:03 ` ✓ CI.Patch_applied: success for " Patchwork
2024-05-13 8:03 ` ✗ CI.checkpatch: warning " Patchwork
2024-05-13 8:04 ` ✗ CI.KUnit: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240512153606.1996-3-michal.wajdeczko@intel.com \
--to=michal.wajdeczko@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=lucas.demarchi@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.