blob: 2b7025e90250c9f56df3aed54ecb4705313c8583 [file] [log] [blame]
/*
* 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__ */