From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4649A10E2E1 for ; Mon, 20 Mar 2023 10:04:08 +0000 (UTC) From: Bhanuprakash Modem Date: Mon, 20 Mar 2023 15:30:13 +0530 Message-Id: <20230320100017.2913328-2-bhanuprakash.modem@intel.com> In-Reply-To: <20230320100017.2913328-1-bhanuprakash.modem@intel.com> References: <20230320100017.2913328-1-bhanuprakash.modem@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [igt-dev] [i-g-t 1/5] lib/xe/xe_ioctl: Add a helper to map the buffer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org, zbigniew.kempczynski@intel.com, mchehab@kernel.org, jani.nikula@intel.com List-ID: Create a new helper to map the buffer with the user PROT flags. Signed-off-by: Bhanuprakash Modem --- lib/xe/xe_ioctl.c | 14 ++++++++++++-- lib/xe/xe_ioctl.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/xe/xe_ioctl.c b/lib/xe/xe_ioctl.c index 9d5793dff..66a8393fe 100644 --- a/lib/xe/xe_ioctl.c +++ b/lib/xe/xe_ioctl.c @@ -334,18 +334,28 @@ uint64_t xe_bo_mmap_offset(int fd, uint32_t bo) return mmo.offset; } -void *xe_bo_map(int fd, uint32_t bo, size_t size) +static void *__xe_bo_map(int fd, uint16_t bo, size_t size, int prot) { uint64_t mmo; void *map; mmo = xe_bo_mmap_offset(fd, bo); - map = mmap(NULL, size, PROT_WRITE, MAP_SHARED, fd, mmo); + map = mmap(NULL, size, prot, MAP_SHARED, fd, mmo); igt_assert(map != MAP_FAILED); return map; } +void *xe_bo_map(int fd, uint32_t bo, size_t size) +{ + return __xe_bo_map(fd, bo, size, PROT_WRITE); +} + +void *xe_bo_mmap_ext(int fd, uint32_t bo, size_t size, int prot) +{ + return __xe_bo_map(fd, bo, size, prot); +} + static int __xe_exec(int fd, struct drm_xe_exec *exec) { int err = 0; diff --git a/lib/xe/xe_ioctl.h b/lib/xe/xe_ioctl.h index 5c7e773fa..d8c40eda0 100644 --- a/lib/xe/xe_ioctl.h +++ b/lib/xe/xe_ioctl.h @@ -73,6 +73,7 @@ uint32_t xe_engine_create_class(int fd, uint32_t vm, uint16_t class); void xe_engine_destroy(int fd, uint32_t engine); uint64_t xe_bo_mmap_offset(int fd, uint32_t bo); void *xe_bo_map(int fd, uint32_t bo, size_t size); +void *xe_bo_mmap_ext(int fd, uint32_t bo, size_t size, int prot); void xe_exec(int fd, struct drm_xe_exec *exec); void xe_exec_sync(int fd, uint32_t engine, uint64_t addr, struct drm_xe_sync *sync, uint32_t num_syncs); -- 2.40.0