27#ifndef _NETSIM_UTILITY_H_
28#define _NETSIM_UTILITY_H_
29#ifndef _CRT_SECURE_NO_DEPRECATE
30#define _CRT_SECURE_NO_DEPRECATE
32#ifndef _CRT_SECURE_NO_WARNINGS
33#define _CRT_SECURE_NO_WARNINGS
55#ifndef _NETSIM_UTILITY_CODE_
56#pragma comment(lib,"NetSim_utility.lib")
57#define NETSIM_UTILITY_EXPORT _declspec(dllimport)
59#define NETSIM_UTILITY_EXPORT _declspec(dllexport)
62#ifndef _NETSIM_UTILITY_CODE_
63#define NETSIM_UTILITY_EXPORT extern
65#define NETSIM_UTILITY_EXPORT
80 }PCAP_WRITER, * PPCAP_WRITER;
84 PPCAP_WRITER** pcapWriterlist;
85 void (*convert_sim_to_real_packet)(
void* netsim_packet,
void* pcap_handle,
double dTime);
86 }WIRESHARKTRACE, * PWIRESHARKTRACE;
88 NETSIM_UTILITY_EXPORT WIRESHARKTRACE wireshark_trace;
93 _declspec(dllexport)
void fnGetFilePath(
char* name,
char* path);
96 _declspec(dllexport)
int fnParseOption(
int count,
char* arg[],
char* opt);
99 _declspec(dllexport)
void GetTimeStr(
char* date,
int len);
102 _declspec(dllexport) FILE* open_log_file(
char* filename,
char* mode);
103 _declspec(dllexport)
int close_log_file(FILE* fp);
104 _declspec(dllexport)
int ReportLog(FILE* fp,
const char* msg, ...);
107 _declspec(dllexport)
char* rstrip(
char* s);
110 _declspec(dllexport)
char* lskip(
const char* s);
115 _declspec(dllexport)
char* find_char_or_comment(
const char* s,
char c);
118 _declspec(dllexport)
char* strncpy0(
char* dest,
const char* src,
size_t size);
121 _declspec(dllexport)
char* find_word(
char** s);
124 _declspec(dllexport)
bool startsWith(
const char* str,
const char* pre);
127 _declspec(dllexport)
void init_time();
130 _declspec(dllexport) uint64_t em_current_time();
133 _declspec(dllexport)
void em_init_time(
void);
136 _declspec(dllexport)
struct tm get_start_time();
139 _declspec(dllexport)
void usleep(__int64 usec);
142 _declspec(dllexport)
char* get_filename_without_extension(
char* filename);
145 _declspec(dllexport)
void create_wireshark_filter(__out
char* filter, __in
int len, __in
char* src_ip, __in
char* dst_ip);
148 _declspec(dllexport)
void call_wireshark(
int duration,
char* filter_string);
151 _declspec(dllexport)
void* open_pcap_file(
const char* filename,
char* pipename, uint32_t network);
154 _declspec(dllexport)
void write_to_pcap(
void* handle,
unsigned char* packet,
unsigned int len,
double* dTime);
157 _declspec(dllexport)
void close_pcap_file(
void* pcap_handle);
160#define SET_BIT(val, bitIndex) ((val) |= (1 << (bitIndex)))
161#define SET_BIT_64(val, bitIndex) ((val) |= (1i64 << (bitIndex)))
162#define CLEAR_BIT(val, bitIndex) ((val) &= ~(1 << (bitIndex)))
163#define CLEAR_BIT_64(val, bitIndex) ((val) &= ~(1i64 << (bitIndex)))
164#define TOGGLE_BIT(val, bitIndex) ((val) ^= (1 << (bitIndex)))
165#define TOGGLE_BIT_64(val, bitIndex) ((val) ^= (1i64 << (bitIndex)))
166#define BIT_IS_SET(val, bitIndex) ((val) & (1 << (bitIndex)))
167#define BIT_IS_SET_64(val, bitIndex) ((val) & (1i64 << (bitIndex)))
168#define LSHIFTCHAR(x,eposition) ((UINT8)(x << (8 - eposition)))
169#define RSHIFTCHAR(x,eposition) ((UINT8)(x >> (8 - eposition)))
171#define htonll(x) ((1==htonl(1)) ? (x) : ((uint64_t)htonl((x) & 0xFFFFFFFF) << 32) | htonl((x) >> 32))
172 _declspec(dllexport)
int isBitSet(
unsigned int num,
int index);
173 _declspec(dllexport)
unsigned int setBit(
unsigned int num,
int index);
174 _declspec(dllexport)
unsigned int unsetBit(
unsigned int num,
int index);
175 _declspec(dllexport) UINT64 hex_to_decimal(
char hex[]);
176 _declspec(dllexport)
char* hex_to_binary(
char* hex,
char* bin);
177 _declspec(dllexport)
void binary_to_hex(
char* bin,
char* hex);
178 _declspec(dllexport) UINT64 binary_to_decimal(
char bin[]);
179 _declspec(dllexport) UINT8 maskChar(UINT8 sposition, UINT8 eposition);
181 _declspec(dllexport)
bool find_interaction(
double arg1[2],
183 double intersection[2]);
186 _declspec(dllexport)
void netsim_matlab_interface_configure(
char* appPath);
187 _declspec(dllexport)
void netsim_matlab_interface_close();
188 _declspec(dllexport)
void netsim_matlab_send_command(
void* command,
int len);
189 _declspec(dllexport)
void netsim_matlab_send_ascii_command(
char* format, ...);
190 _declspec(dllexport)
bool netsim_matlab_get_value(
char* out,
int outLen,
char* name,
char* type);
191 _declspec(dllexport)
struct ptrMXArray* netsim_matlab_get_array(
char* name);
192 _declspec(dllexport)
void netsim_matlab_send_array(
double* arr,
size_t* shape,
size_t dimn,
char* name);