12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #ifndef __ION_UTILS_H
- #define __ION_UTILS_H
- #include "ion.h"
- #define SOCKET_NAME "ion_socket"
- #define ION_DEVICE "/dev/ion"
- #define ION_BUFFER_LEN 4096
- #define MAX_HEAP_COUNT ION_HEAP_TYPE_CUSTOM
- struct socket_info {
- int sockfd;
- int datafd;
- unsigned long buflen;
- };
- struct ion_buffer_info {
- int ionfd;
- int buffd;
- unsigned int heap_type;
- unsigned int flag_type;
- unsigned long heap_size;
- unsigned long buflen;
- unsigned char *buffer;
- };
- /* This is used to fill the data into the mapped buffer */
- void write_buffer(void *buffer, unsigned long len);
- /* This is used to read the data from the exported buffer */
- void read_buffer(void *buffer, unsigned long len);
- /* This is used to create an ION buffer FD for the kernel buffer
- * So you can export this same buffer to others in the form of FD
- */
- int ion_export_buffer_fd(struct ion_buffer_info *ion_info);
- /* This is used to import or map an exported FD.
- * So we point to same buffer without making a copy. Hence zero-copy.
- */
- int ion_import_buffer_fd(struct ion_buffer_info *ion_info);
- /* This is used to close all references for the ION client */
- void ion_close_buffer_fd(struct ion_buffer_info *ion_info);
- /* This is used to send FD to another process using socket IPC */
- int socket_send_fd(struct socket_info *skinfo);
- /* This is used to receive FD from another process using socket IPC */
- int socket_receive_fd(struct socket_info *skinfo);
- #endif
|