29#ifndef DOXYGEN_SHOULD_SKIP_THIS
48#define DRI_LITTLE_ENDIAN (1<<3)
49#define DRI_BIG_ENDIAN (1<<4)
50#define DRF_IEEE (1<<5)
51#define DRF_G_FLOAT (1<<6)
65#define WORD_SWAP(x) { BYTE _tmp; \
66 _tmp= *((BYTE *)(x)); \
67 *((BYTE *)(x)) = *(((BYTE *)(x))+1); \
68 *(((BYTE *)(x))+1) = _tmp; }
74#define DWORD_SWAP(x) { BYTE _tmp; \
75 _tmp= *((BYTE *)(x)); \
76 *((BYTE *)(x)) = *(((BYTE *)(x))+3); \
77 *(((BYTE *)(x))+3) = _tmp; \
78 _tmp= *(((BYTE *)(x))+1); \
79 *(((BYTE *)(x))+1) = *(((BYTE *)(x))+2); \
80 *(((BYTE *)(x))+2) = _tmp; }
86#define QWORD_SWAP(x) { BYTE _tmp; \
87 _tmp= *((BYTE *)(x)); \
88 *((BYTE *)(x)) = *(((BYTE *)(x))+7); \
89 *(((BYTE *)(x))+7) = _tmp; \
90 _tmp= *(((BYTE *)(x))+1); \
91 *(((BYTE *)(x))+1) = *(((BYTE *)(x))+6); \
92 *(((BYTE *)(x))+6) = _tmp; \
93 _tmp= *(((BYTE *)(x))+2); \
94 *(((BYTE *)(x))+2) = *(((BYTE *)(x))+5); \
95 *(((BYTE *)(x))+5) = _tmp; \
96 _tmp= *(((BYTE *)(x))+3); \
97 *(((BYTE *)(x))+3) = *(((BYTE *)(x))+4); \
98 *(((BYTE *)(x))+4) = _tmp; }
110#define MESSAGE_BUFFER_SIZE 100000
111#define MESSAGE_BUFFER_NAME "SYSMSG"
113#define MAX_STRING_LENGTH 256
114#define NET_BUFFER_SIZE (8*1024*1024)
121#if !defined ( OS_MSDOS ) && !defined ( OS_VXWORKS )
122#define LOCAL_ROUTINES
125#if defined(NO_LOCAL_ROUTINES)
130#if !defined ( OS_MSDOS )
142#define closesocket(s) ::close(s)
143#define ioctlsocket(s,c,d) ::ioctl(s,c,d)
144#define malloc(i) farmalloc(i)
147#define NET_TCP_SIZE 0x7FFF
153#define closesocket(s) ::close(s)
154#define ioctlsocket(s,c,d)
161#define FD_SET(n, p) ((p)->fds_bits |= (1 << (n)))
162#define FD_CLR(n, p) ((p)->fds_bits &= ~(1 << (n)))
163#define FD_ISSET(n, p) ((p)->fds_bits & (1 << (n)))
164#define FD_ZERO(p) ((p)->fds_bits = 0)
183#define closesocket(s) ::close(s)
184#define ioctlsocket(s,c,d) ::ioctl(s,c,d)
186#define stricmp(s1, s2) strcasecmp(s1, s2)
209#define closesocket(s) ::close(s)
210#define ioctlsocket(s,c,d) ::ioctl(s,c,d)
231#define MAX(a,b) (((a) > (b)) ? (a) : (b))
235#define MIN(a,b) (((a) < (b)) ? (a) : (b))
239#define ABS(a) (((a) < 0) ? -(a) : (a))
243#define TELL(fh) lseek(fh, 0, SEEK_CUR)
247#define TRUNCATE(fh) chsize(fh, TELL(fh))
249#define TRUNCATE(fh) ftruncate(fh, TELL(fh))
257#define isnan(x) _isnan(x)
258#define isinf(x) (!_finite(x))
259#define strcasecmp _stricmp
260#define strncasecmp _strnicmp
261#define ftruncate(x,y) _chsize(x,y)
264#define ctime #error ctime() is not thread safe and should not be used in midas programs
265#define localtime #error localtime() is not thread safe and should not be used in midas programs, use localtime_r() instead, do not forget to add a call to tzset()
266#define gmtime #error gmtime() is not thread safe and should not be used in midas programs, use gmtime_r() instead
267#define asctime #error asctime() is not thread safe and should not be used in midas programs, use asctime_r() instead
300#define MSG_WATCHDOG 6
493#define LOG_TYPE_DISK 1
494#define LOG_TYPE_TAPE 2
495#define LOG_TYPE_FTP 3
496#define LOG_TYPE_SFTP 4
500#if defined(OS_VXWORKS)
518 [[
deprecated(
"Please use the std::string version of this function")]]
625 [[
deprecated(
"Please use the std::string version of this function")]]
682 std::chrono::time_point<std::chrono::high_resolution_clock>
ss_us_start();
683 unsigned int ss_us_since(std::chrono::time_point<std::chrono::high_resolution_clock> start);
INT EXPRT cm_set_path(const char *path)
INT cm_dispatch_ipc(const char *message, int message_size, int client_socket)
INT EXPRT cm_get_path_string(std::string *path)
std::string EXPRT cm_get_path()
std::string EXPRT cm_get_history_path(const char *history_channel)
INT cm_delete_client_info(HNDLE hDB, INT pid)
INT EXPRT cm_set_experiment_name(const char *name)
RPC_LIST EXPRT * rpc_get_internal_list(INT flag)
INT() RPC_HANDLER(INT index, void *prpc_param[])
std::string ss_gethostname()
INT ss_suspend(INT millisec, INT msg)
INT ss_suspend_set_rpc_thread(midas_thread_t thread_id)
INT ss_get_struct_align()
INT ss_suspend_get_odb_port(INT *port)
INT ss_mutex_release(MUTEX_T *mutex)
INT ss_thread_kill(midas_thread_t thread_id)
INT ss_suspend_init_odb_port()
INT ss_exception_handler(void(*func)(void))
bool ss_event_socket_has_data()
INT ss_shm_flush(const char *name, const void *adr, size_t size, HNDLE handle, bool wait_for_thread)
INT EXPRT ss_thread_set_name(std::string name)
INT ss_semaphore_create(const char *name, HNDLE *semaphore_handle)
INT ss_shm_delete(const char *name)
INT recv_tcp2(int sock, char *net_buffer, int buffer_size, int timeout_ms)
INT ss_suspend_set_client_listener(int listen_socket)
INT ss_socket_get_peer_name(int sock, std::string *hostp, int *portp)
INT ss_mutex_delete(MUTEX_T *mutex)
int ss_socket_wait(int sock, INT millisec)
INT ss_suspend_set_server_acceptions(RPC_SERVER_ACCEPTION_LIST *acceptions)
std::chrono::time_point< std::chrono::high_resolution_clock > ss_us_start()
INT ss_suspend_set_client_connection(RPC_SERVER_CONNECTION *connection)
INT ss_mutex_create(MUTEX_T **mutex, BOOL recursive)
unsigned int ss_us_since(std::chrono::time_point< std::chrono::high_resolution_clock > start)
INT ss_shm_open(const char *name, INT size, void **adr, size_t *shm_size, HNDLE *handle, BOOL get_size)
INT recv_string(int sock, char *buffer, DWORD buffer_size, INT millisec)
bool ss_timed_mutex_wait_for_sec(std::timed_mutex &mutex, const char *mutex_name, double timeout_sec)
INT ss_semaphore_release(HNDLE semaphore_handle)
midas_thread_t ss_thread_create(INT(*thread_func)(void *), void *param)
void ss_stack_history_entry(char *tag)
std::string ss_execs(const char *cmd)
INT ss_stack_get(char ***string)
std::string ss_tid_to_string(midas_thread_t thread_id)
void ss_stack_history_dump(char *filename)
int rpc_flush_event_socket(int timeout_msec)
std::string ss_replace_env_variables(const std::string &inputPath)
INT ss_daemon_init(BOOL keep_stdout)
INT ss_alarm(INT millitime, void(*func)(int))
INT recv_tcp(int sock, char *net_buffer, DWORD buffer_size, INT flags)
INT ss_resume(INT port, const char *message)
midas_thread_t ss_gettid(void)
INT ss_semaphore_delete(HNDLE semaphore_handle, INT destroy_flag)
INT ss_get_struct_padding()
INT ss_socket_connect_tcp(const char *hostname, int tcp_port, int *sockp, std::string *error_msg_p)
INT ss_semaphore_wait_for(HNDLE semaphore_handle, DWORD timeout_millisec)
INT ss_socket_listen_tcp(bool listen_localhost, int tcp_port, int *sockp, int *tcp_port_p, std::string *error_msg_p)
INT ss_exec(const char *command, INT *pid)
INT ss_shm_unprotect(HNDLE handle, void **adr, size_t shm_size, BOOL read, BOOL write, const char *caller_name)
std::string EXPRT ss_thread_get_name()
BOOL ss_existpid(INT pid)
INT ss_spawnv(INT mode, const char *cmdname, const char *const argv[])
INT ss_suspend_get_buffer_port(midas_thread_t thread_id, INT *port)
INT ss_socket_close(int *sockp)
INT ss_recv_net_command(int sock, DWORD *routine_id, DWORD *param_size, char **param_ptr, int timeout_ms)
INT ss_suspend_set_server_listener(int listen_socket)
INT ss_shm_close(const char *name, void *adr, size_t shm_size, HNDLE handle, INT destroy_flag)
INT send_tcp(int sock, char *buffer, DWORD buffer_size, INT flags)
BOOL ss_pid_exists(int pid)
std::string ss_get_executable(void)
INT ss_system(const char *command)
INT ss_shm_protect(HNDLE handle, void *adr, size_t shm_size)
INT ss_mutex_wait_for(MUTEX_T *mutex, INT timeout)
INT EXPRT cm_msg_log(INT message_type, const char *facility, const char *message)
std::vector< RPC_SERVER_ACCEPTION * > RPC_SERVER_ACCEPTION_LIST
struct rpc_server_acception_struct RPC_SERVER_ACCEPTION
struct rpc_server_connection_struct RPC_SERVER_CONNECTION
INT EXPRT db_flush_database(HNDLE hDB)
INT db_check_client(HNDLE hDB, HNDLE hKeyClient)
void db_cleanup(const char *who, DWORD actual_time, BOOL wrong_interval)
INT EXPRT db_show_mem(HNDLE hDB, char **result, BOOL verbose)
INT EXPRT db_lock_database(HNDLE database_handle)
INT db_delete_key1(HNDLE hDB, HNDLE hKey, INT level, BOOL follow_links)
INT EXPRT db_unlock_database(HNDLE database_handle)
INT db_allow_write_locked(DATABASE *p, const char *caller_name)
INT db_close_all_records(void)
void EXPRT name2c(char *str)
INT db_update_record_local(INT hDB, INT hKeyRoot, INT hKey, int index)
void db_set_watchdog_params(DWORD timeout)
INT db_update_record_mserver(INT hDB, INT hKeyRoot, INT hKey, int index, int client_socket)
void db_cleanup2(const char *client_name, int ignore_timeout, DWORD actual_time, const char *who)
INT EXPRT db_set_client_name(HNDLE hDB, const char *client_name)
INT EXPRT db_notify_clients(HNDLE hDB, HNDLE hKey, int index, BOOL bWalk)
INT EXPRT db_set_lock_timeout(HNDLE database_handle, int timeout_millisec)
INT EXPRT db_get_free_mem(HNDLE hDB, INT *key_size, INT *data_size)
int EXPRT rb_get_rp(int handle, void **p, int millisec)
int EXPRT rb_delete(int ring_buffer_handle)
int EXPRT rb_get_wp(int handle, void **p, int millisec)
int EXPRT rb_increment_rp(int handle, int size)
int EXPRT rb_set_nonblocking(void)
int EXPRT rb_increment_wp(int handle, int size)
int EXPRT rb_create(int size, int max_event_size, int *ring_buffer_handle)
int EXPRT rb_get_buffer_level(int handle, int *n_bytes)
INT EXPRT rpc_get_opt_tcp_size(void)
INT rpc_server_callback(struct callback_addr *callback)
INT recv_tcp_check(int sock)
INT rpc_server_receive_rpc(int idx, RPC_SERVER_ACCEPTION *sa)
const char *EXPRT rpc_get_mserver_path(void)
RPC_SERVER_ACCEPTION * rpc_get_mserver_acception(void)
INT rpc_deregister_functions(void)
INT EXPRT rpc_set_mserver_path(const char *mserver_path)
void EXPRT rpc_client_check(void)
INT rpc_server_disconnect(void)
INT rpc_client_accept(int sock)
INT EXPRT rpc_set_opt_tcp_size(INT tcp_size)
INT rpc_register_listener(int port, RPC_HANDLER func, int *plsock, int *pport)
INT rpc_server_receive_event(int idx, RPC_SERVER_ACCEPTION *sa, int timeout_msec)
INT EXPRT rpc_server_accept(int sock)
INT rpc_client_dispatch(int sock)
INT rpc_check_channels(void)
INT EXPRT rpc_get_convert_flags(void)
#define message(type, str)
#define write(n, a, f, d)
struct callback_addr callback
INT EXPRT eb_free_buffer(void)
INT EXPRT dm_area_send(void)
EVENT_HEADER EXPRT * dm_pointer_get(void)
INT EXPRT dm_buffer_create(INT size, INT usize)
BOOL EXPRT dm_area_full(void)
INT EXPRT eb_increment_pointer(INT buffer_handle, INT event_size)
INT EXPRT dm_buffer_release(void)
INT EXPRT dm_area_flush(void)
INT EXPRT dm_async_area_send(void *pointer)
INT EXPRT dm_task(void *pointer)
INT EXPRT eb_send_events(BOOL send_all)
EVENT_HEADER EXPRT * eb_get_pointer(void)
INT EXPRT eb_create_buffer(INT size)
BOOL EXPRT eb_buffer_full(void)
DWORD EXPRT dm_buffer_time_get(void)
INT EXPRT dm_pointer_increment(INT buffer_handle, INT event_size)
BOOL EXPRT eb_buffer_empty(void)
TH1X EXPRT * h1_book(const char *name, const char *title, int bins, double min, double max)
DATABASE_HEADER * database_header
NET_COMMAND_HEADER header
unsigned short host_port1
unsigned short host_port2
unsigned short host_port3
std::mutex event_sock_mutex