| /* |
| * Support for Intel Camera Imaging ISP subsystem. |
| * Copyright (c) 2015, Intel Corporation. |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms and conditions of the GNU General Public License, |
| * version 2, as published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| * more details. |
| */ |
| |
| #ifndef __SOCKET_GLOBAL_H_INCLUDED__ |
| #define __SOCKET_GLOBAL_H_INCLUDED__ |
| |
| #include "stream_buffer.h" |
| |
| /* define the socket port direction */ |
| typedef enum { |
| SOCKET_PORT_DIRECTION_NULL, |
| SOCKET_PORT_DIRECTION_IN, |
| SOCKET_PORT_DIRECTION_OUT |
| } socket_port_direction_t; |
| |
| /* pointer to the port's callout function */ |
| typedef void (*socket_port_callout_fp)(void); |
| typedef struct socket_port_s socket_port_t; |
| typedef struct socket_s socket_t; |
| |
| /* data structure of the socket port */ |
| struct socket_port_s { |
| unsigned channel; /* the port entity */ |
| socket_port_direction_t direction; /* the port direction */ |
| socket_port_callout_fp callout; /* the port callout function */ |
| |
| socket_t *socket; /* point to the socket */ |
| |
| struct { |
| unsigned data; |
| } buf; /* the buffer at the port */ |
| }; |
| |
| /* data structure of the socket */ |
| struct socket_s { |
| socket_port_t *in; /* the in-direction port */ |
| socket_port_t *out; /* the out-direction port */ |
| stream_buffer_t buf; /* the buffer between in-ports and out-ports */ |
| }; |
| |
| #endif /* __SOCKET_GLOBAL_H_INCLUDED__ */ |
| |