blob: 0770406a85cf7eac67eb588e8a51f9b79f92ae54 [file] [log] [blame]
/*******************************************************************************
**+--------------------------------------------------------------------------+**
**| |**
**| Copyright 1998-2008 Texas Instruments, Inc. - http://www.ti.com/ |**
**| |**
**| Licensed under the Apache License, Version 2.0 (the "License"); |**
**| you may not use this file except in compliance with the License. |**
**| You may obtain a copy of the License at |**
**| |**
**| http://www.apache.org/licenses/LICENSE-2.0 |**
**| |**
**| Unless required by applicable law or agreed to in writing, software |**
**| distributed under the License is distributed on an "AS IS" BASIS, |**
**| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |**
**| See the License for the specific language governing permissions and |**
**| limitations under the License. |**
**| |**
**+--------------------------------------------------------------------------+**
*******************************************************************************/
#ifndef IPC_H
#define IPC_H
#define TERMINAL_MUX_UART_ID (28)
#define LOGGER_MUX_UART_ID (30)
#define WIPP_CONTROL_MUX_UART_ID (25)
#define G_TESTER_MUX_UART_ID (23)
#define ETHERNET_UTILS_NUMBER_OF_MODULES (4)
#define ETHERNET_UTILS_TERMINAL_MODULE_ID (0)
#define ETHERNET_UTILS_LOGGER_MODULE_ID (1)
#define ETHERNET_UTILS_WIPP_MODULE_ID (2)
#define ETHERNET_UTILS_G_TESTER_MODULE_ID (3)
#define GENERAL_PROCESS_MODULE_ID (4)
#define WIPP_CONTROL_FROM_GENERAL_PROCESS_SEND_TERMINATE (0x00)
#define WIPP_CONTROL_FROM_GENERAL_PROCESS_DEACTIVATE_IPERF (0x01)
extern void *p_shared_memory;
extern int ipc_semaphore_id;
extern int ethernet_logger_process_pid;
extern int ethernet_g_tester_process_pid;
extern int ethernet_wipp_process_pid;
extern int ethernet_wipp_control_pipe[2];
extern int ethernet_g_tester_pipe[2];
extern int ethernet_logger_pipe[2];
extern int ipc_pipe[2];
typedef struct t_shared_memory_rec
{
#define OUTPUT_PATH_SIMPLE_UART (0)
#define OUTPUT_PATH_MUX_UART (1)
#define OUTPUT_PATH_ETHERNET (2)
unsigned char output_paths[ETHERNET_UTILS_NUMBER_OF_MODULES];
unsigned char mux_uart_id[ETHERNET_UTILS_NUMBER_OF_MODULES];
int ethernet_socket_ids[ETHERNET_UTILS_NUMBER_OF_MODULES];
int ipc_pipe[ETHERNET_UTILS_NUMBER_OF_MODULES];
unsigned char uart_mux_enabled;
int debug_module_dev_file;
int run_process_state;
int run_process_result;
} shared_memory_reco;
#define SHARED_MEMORY_SIZE (sizeof(shared_memory_reco))
#define SHARED_MEMORY_OUTPUT_PATH(_module_index) (((shared_memory_reco *)(p_shared_memory))->output_paths[_module_index])
#define SHARED_MEMORY_TERMINAL_OUTPUT_PATH() (((shared_memory_reco *)(p_shared_memory))->output_paths[ETHERNET_UTILS_TERMINAL_MODULE_ID])
#define SHARED_MEMORY_LOGGER_OUTPUT_PATH() (((shared_memory_reco *)(p_shared_memory))->output_paths[ETHERNET_UTILS_LOGGER_MODULE_ID])
#define SHARED_MEMORY_WIPP_OUTPUT_PATH() (((shared_memory_reco *)(p_shared_memory))->output_paths[ETHERNET_UTILS_WIPP_MODULE_ID])
#define SHARED_MEMORY_ETHERNET_SOCKET_ID(_module_index) (((shared_memory_reco *)(p_shared_memory))->ethernet_socket_ids[_module_index])
#define SHARED_MEMORY_ETHERNET_TERMINAL_SOCKET_ID() (((shared_memory_reco *)(p_shared_memory))->ethernet_socket_ids[ETHERNET_UTILS_TERMINAL_MODULE_ID])
#define SHARED_MEMORY_ETHERNET_LOGGER_SOCKET_ID() (((shared_memory_reco *)(p_shared_memory))->ethernet_socket_ids[ETHERNET_UTILS_LOGGER_MODULE_ID])
#define SHARED_MEMORY_ETHERNET_WIPP_SOCKET_ID() (((shared_memory_reco *)(p_shared_memory))->ethernet_socket_ids[ETHERNET_UTILS_WIPP_MODULE_ID])
#define SHARED_MEMORY_IPC_PIPE(_module_index) (((shared_memory_reco *)(p_shared_memory))->ipc_pipe[_module_index])
#define SHARED_MEMORY_MUX_UART_ID(_module_index) (((shared_memory_reco *)(p_shared_memory))->mux_uart_id[_module_index])
#define SHARED_MEMORY_UART_MUX_ENABLED() (((shared_memory_reco *)(p_shared_memory))->uart_mux_enabled)
#define SHARED_MEMORY_RUN_PROCESS_RUNNING() (((shared_memory_reco *)(p_shared_memory))->run_process_state)
#define SHARED_MEMORY_RUN_PROCESS_RESULT() (((shared_memory_reco *)(p_shared_memory))->run_process_result)
#define SHARED_MEMORY_SWITCH_TO_UART_OUTPUT(_module_index) (SHARED_MEMORY_OUTPUT_PATH(_module_index) = (SHARED_MEMORY_UART_MUX_ENABLED() ? OUTPUT_PATH_MUX_UART : OUTPUT_PATH_SIMPLE_UART))
#define SHARED_MEMORY_DBG_DEV_FILE() (((shared_memory_reco *)(p_shared_memory))->debug_module_dev_file)
int ipc_initialize(void);
void ipc_deinitialize(void);
void ipc_send_command_to_main_process(int module_index, unsigned char *commnad, int size);
#endif /* IPC_H */