Server IP : 172.67.216.182 / Your IP : 162.158.106.35 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/include/linux/ |
Upload File : |
/* 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 */