CasperSecurity

Current Path : /usr/include/linux/
Upload File :
Current File : //usr/include/linux/ipu-psys.h

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/* Copyright (C) 2013 - 2020 Intel Corporation */

#ifndef _IPU_PSYS_H
#define _IPU_PSYS_H

#include <stdint.h>

struct ipu_psys_capability {
	uint32_t version;
	uint8_t driver[20];
	uint32_t pg_count;
	uint8_t dev_model[32];
	uint32_t reserved[17];
} __attribute__ ((packed));

struct ipu_psys_event {
	uint32_t type;		/* IPU_PSYS_EVENT_TYPE_ */
	uint64_t user_token;
	uint64_t issue_id;
	uint32_t buffer_idx;
	uint32_t error;
	int32_t reserved[2];
} __attribute__ ((packed));

#define IPU_PSYS_EVENT_TYPE_CMD_COMPLETE	1
#define IPU_PSYS_EVENT_TYPE_BUFFER_COMPLETE	2

/**
 * struct ipu_psys_buffer - for input/output terminals
 * @len:	total allocated size @ base address
 * @userptr:	user pointer
 * @fd:		DMA-BUF handle
 * @data_offset:offset to valid data
 * @bytes_used:	amount of valid data including offset
 * @flags:	flags
 */
struct ipu_psys_buffer {
	uint64_t len;
	union {
		int fd;
		void *userptr;
		uint64_t reserved;
	} base;
	uint32_t data_offset;
	uint32_t bytes_used;
	uint32_t flags;
	uint32_t reserved[2];
} __attribute__ ((packed));

#define IPU_BUFFER_FLAG_INPUT	(1 << 0)
#define IPU_BUFFER_FLAG_OUTPUT	(1 << 1)
#define IPU_BUFFER_FLAG_MAPPED	(1 << 2)
#define IPU_BUFFER_FLAG_NO_FLUSH	(1 << 3)
#define IPU_BUFFER_FLAG_DMA_HANDLE	(1 << 4)
#define IPU_BUFFER_FLAG_USERPTR	(1 << 5)

#define	IPU_PSYS_CMD_PRIORITY_HIGH	0
#define	IPU_PSYS_CMD_PRIORITY_MED	1
#define	IPU_PSYS_CMD_PRIORITY_LOW	2
#define	IPU_PSYS_CMD_PRIORITY_NUM	3

/**
 * struct ipu_psys_command - processing command
 * @issue_id:		unique id for the command set by user
 * @user_token:		token of the command
 * @priority:		priority of the command
 * @pg_manifest:	userspace pointer to program group manifest
 * @buffers:		userspace pointers to array of psys dma buf structs
 * @pg:			process group DMA-BUF handle
 * @pg_manifest_size:	size of program group manifest
 * @bufcount:		number of buffers in buffers array
 * @min_psys_freq:	minimum psys frequency in MHz used for this cmd
 * @frame_counter:      counter of current frame synced between isys and psys
 * @kernel_enable_bitmap:       enable bits for each individual kernel
 * @terminal_enable_bitmap:     enable bits for each individual terminals
 * @routing_enable_bitmap:      enable bits for each individual routing
 * @rbm:                        enable bits for routing
 *
 * Specifies a processing command with input and output buffers.
 */
struct ipu_psys_command {
	uint64_t issue_id;
	uint64_t user_token;
	uint32_t priority;
	void *pg_manifest;
	struct ipu_psys_buffer *buffers;
	int pg;
	uint32_t pg_manifest_size;
	uint32_t bufcount;
	uint32_t min_psys_freq;
	uint32_t frame_counter;
	uint32_t kernel_enable_bitmap[4];
	uint32_t terminal_enable_bitmap[4];
	uint32_t routing_enable_bitmap[4];
	uint32_t rbm[5];
	uint32_t reserved[2];
} __attribute__ ((packed));

struct ipu_psys_manifest {
	uint32_t index;
	uint32_t size;
	void *manifest;
	uint32_t reserved[5];
} __attribute__ ((packed));

#define IPU_IOC_QUERYCAP _IOR('A', 1, struct ipu_psys_capability)
#define IPU_IOC_MAPBUF _IOWR('A', 2, int)
#define IPU_IOC_UNMAPBUF _IOWR('A', 3, int)
#define IPU_IOC_GETBUF _IOWR('A', 4, struct ipu_psys_buffer)
#define IPU_IOC_PUTBUF _IOWR('A', 5, struct ipu_psys_buffer)
#define IPU_IOC_QCMD _IOWR('A', 6, struct ipu_psys_command)
#define IPU_IOC_DQEVENT _IOWR('A', 7, struct ipu_psys_event)
#define IPU_IOC_CMD_CANCEL _IOWR('A', 8, struct ipu_psys_command)
#define IPU_IOC_GET_MANIFEST _IOWR('A', 9, struct ipu_psys_manifest)

#endif /* _IPU_PSYS_H */
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY