91 lines
2.3 KiB
C
91 lines
2.3 KiB
C
|
|
/**
|
||
|
|
* Copyright (C) 2021 The Android Open Source Project
|
||
|
|
*
|
||
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
|
* you may not use this file except in compliance with the License.
|
||
|
|
* You may obtain a copy of the License at
|
||
|
|
*
|
||
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
*
|
||
|
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
|
* See the License for the specific language governing permissions and
|
||
|
|
* limitations under the License.
|
||
|
|
*/
|
||
|
|
#define KGSL_MEMFLAGS_USE_CPU_MAP 0x10000000ULL
|
||
|
|
#define KGSL_MEMFLAGS_GPUREADONLY 0x01000000U
|
||
|
|
#define KGSL_IOC_TYPE 0x09
|
||
|
|
#define KGSL_MEMTYPE_COMMAND 16
|
||
|
|
|
||
|
|
enum kgsl_user_mem_type {
|
||
|
|
KGSL_USER_MEM_TYPE_PMEM = 0x00000000,
|
||
|
|
KGSL_USER_MEM_TYPE_ASHMEM = 0x00000001,
|
||
|
|
KGSL_USER_MEM_TYPE_ADDR = 0x00000002,
|
||
|
|
KGSL_USER_MEM_TYPE_ION = 0x00000003,
|
||
|
|
KGSL_USER_MEM_TYPE_DMABUF = 0x00000003,
|
||
|
|
KGSL_USER_MEM_TYPE_MAX = 0x00000007,
|
||
|
|
};
|
||
|
|
|
||
|
|
struct kgsl_drawctxt_create {
|
||
|
|
unsigned int flags;
|
||
|
|
unsigned int drawctxt_id;
|
||
|
|
};
|
||
|
|
|
||
|
|
#define IOCTL_KGSL_DRAWCTXT_CREATE \
|
||
|
|
_IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create)
|
||
|
|
|
||
|
|
struct kgsl_map_user_mem {
|
||
|
|
int fd;
|
||
|
|
unsigned long gpuaddr;
|
||
|
|
size_t len;
|
||
|
|
size_t offset;
|
||
|
|
unsigned long hostptr;
|
||
|
|
enum kgsl_user_mem_type memtype;
|
||
|
|
unsigned int flags;
|
||
|
|
};
|
||
|
|
|
||
|
|
#define IOCTL_KGSL_MAP_USER_MEM \
|
||
|
|
_IOWR(KGSL_IOC_TYPE, 0x15, struct kgsl_map_user_mem)
|
||
|
|
|
||
|
|
struct kgsl_sharedmem_free {
|
||
|
|
unsigned long gpuaddr;
|
||
|
|
};
|
||
|
|
|
||
|
|
#define IOCTL_KGSL_SHAREDMEM_FREE \
|
||
|
|
_IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free)
|
||
|
|
|
||
|
|
struct kgsl_gpumem_alloc {
|
||
|
|
unsigned long gpuaddr;
|
||
|
|
size_t size;
|
||
|
|
unsigned int flags;
|
||
|
|
};
|
||
|
|
|
||
|
|
#define IOCTL_KGSL_GPUMEM_ALLOC \
|
||
|
|
_IOWR(KGSL_IOC_TYPE, 0x2f, struct kgsl_gpumem_alloc)
|
||
|
|
|
||
|
|
struct kgsl_gpumem_alloc_id {
|
||
|
|
unsigned int id;
|
||
|
|
unsigned int flags;
|
||
|
|
size_t size;
|
||
|
|
size_t mmapsize;
|
||
|
|
unsigned long gpuaddr;
|
||
|
|
unsigned long __pad[2];
|
||
|
|
};
|
||
|
|
|
||
|
|
#define IOCTL_KGSL_GPUMEM_ALLOC_ID \
|
||
|
|
_IOWR(KGSL_IOC_TYPE, 0x34, struct kgsl_gpumem_alloc_id)
|
||
|
|
|
||
|
|
struct kgsl_gpumem_get_info {
|
||
|
|
unsigned long gpuaddr;
|
||
|
|
unsigned int id;
|
||
|
|
unsigned int flags;
|
||
|
|
size_t size;
|
||
|
|
size_t mmapsize;
|
||
|
|
unsigned long useraddr;
|
||
|
|
unsigned long __pad[4];
|
||
|
|
};
|
||
|
|
|
||
|
|
#define IOCTL_KGSL_GPUMEM_GET_INFO \
|
||
|
|
_IOWR(KGSL_IOC_TYPE, 0x36, struct kgsl_gpumem_get_info)
|