lima_ctx.h (841B)
1/* SPDX-License-Identifier: GPL-2.0 OR MIT */ 2/* Copyright 2018-2019 Qiang Yu <yuq825@gmail.com> */ 3 4#ifndef __LIMA_CTX_H__ 5#define __LIMA_CTX_H__ 6 7#include <linux/xarray.h> 8#include <linux/sched.h> 9 10#include "lima_device.h" 11 12struct lima_ctx { 13 struct kref refcnt; 14 struct lima_device *dev; 15 struct lima_sched_context context[lima_pipe_num]; 16 atomic_t guilty; 17 18 /* debug info */ 19 char pname[TASK_COMM_LEN]; 20 pid_t pid; 21}; 22 23struct lima_ctx_mgr { 24 struct mutex lock; 25 struct xarray handles; 26}; 27 28int lima_ctx_create(struct lima_device *dev, struct lima_ctx_mgr *mgr, u32 *id); 29int lima_ctx_free(struct lima_ctx_mgr *mgr, u32 id); 30struct lima_ctx *lima_ctx_get(struct lima_ctx_mgr *mgr, u32 id); 31void lima_ctx_put(struct lima_ctx *ctx); 32void lima_ctx_mgr_init(struct lima_ctx_mgr *mgr); 33void lima_ctx_mgr_fini(struct lima_ctx_mgr *mgr); 34 35#endif