26#ifndef DOXYGEN_SHOULD_SKIP_THIS
103INT mftp_open(
char *destination,
FTP_CON **con) {
107 user[256], pass[256], directory[256],
file_name[256], file_mode[256];
115 token = strtok(destination,
",");
119 token = strtok(NULL,
",");
123 token = strtok(NULL,
",");
127 token = strtok(NULL,
",");
131 token = strtok(NULL,
",");
133 strcpy(directory, token);
135 token = strtok(NULL,
",");
139 token = strtok(NULL,
",");
142 strcpy(file_mode, token);
167 token = strtok(NULL,
",");
176 return (*con)->err_no;
203 if ((strncmp(
my.
name,
"/dev", 4) == 0) || (strncmp(
my.
name,
"\\\\.\\", 4) == 0)) {
209 if (strncmp(infile + strlen(infile) - 3,
".gz", 3) == 0) {
227 printf(
" Zip on tape not yet supported \n");
256 assert(!
"unsupported data_fmt, sorry!");
324 (int) CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ,
326 FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH | FILE_FLAG_SEQUENTIAL_SCAN, 0);
332 assert(!
"unsupported data_fmt, sorry!");
338 assert(!
"unsupported data_fmt, sorry!");
349 cm_msg(
MERROR,
"mdsupport",
"FTP support not included");
383 CloseHandle((HANDLE) handle);
391 char *p, filename[256];
401 for (
i = 0;
i < 5 && p != NULL;
i++) {
407 mstrlcpy(filename, p,
sizeof(filename));
408 if (strchr(filename,
','))
409 *strchr(filename,
',') = 0;
411 mstrlcpy(filename, destination,
sizeof(filename));
414 if (filename[0] ==
'.')
415 ftp_move(ftp_con, filename, filename + 1);
448 *readn =
read(handle, prec, nbytes);
458 *readn =
read(handle, prec, nbytes);
469 if (!ReadFile((HANDLE) handle, prec, nbytes, readn, NULL))
473 if (
status == ERROR_NO_DATA_DETECTED)
505 WriteFile((HANDLE) handle, (
char *) prec, nbytes, written, NULL);
519 }
while (
status == -1 && errno == EINTR);
521 if (*written != nbytes) {
522 cm_msg(
MERROR,
"any_dev_os_write",
"write() status %d, errno %d (%s)",
status, errno, strerror(errno));
533 WriteFile((HANDLE) handle, (
char *) prec, nbytes, written, NULL);
534 if (*written != nbytes) {
550 cm_msg(
MERROR,
"mdsupport",
"FTP support not included");
656 printf(
"Skipping event_# ... ");
693 printf(
">>> No physical record structure for Midas format <<<\n");
697 printf(
"Evt#%d- ",
my.
evtn);
698 printf(
"%irun 0x%4.4uxid 0x%4.4uxmsk %5dmevt#",
run,
id, msk, mbn);
703 assert(!
"unsupported data format, sorry!");
760 printf(
"mdsupport- Unknown format:%i\n",
dsp_fmt);
784 pevt = (
DWORD *) pevent;
786 assert(!
"unsupported data_fmt, sorry!");
790 printf(
"%6.0d->: ",
total);
794 printf(
"%8.i ", *pevt);
796 printf(
"%8.8x ", *pevt);
822 DWORD *pdata, *pdata1;
847 printf(
"Evid:%4.4x- Mask:%4.4x- Serial:%i- Time:0x%x- Dsize:%i/0x%x",
856 printf(
"\n#banks:%i - Bank list:-%s-\n",
status, banklist);
865 if (single && (pdata == pdata1))
866 midas_bank_display32<BANK32A>(pmbk32a,
dsp_fmt);
869 midas_bank_display32<BANK32A>(pmbk32a,
dsp_fmt);
870 }
while (pmbk32a != NULL);
876 if (single && (pdata == pdata1))
877 midas_bank_display32<BANK32>(pmbk32,
dsp_fmt);
880 midas_bank_display32<BANK32>(pmbk32,
dsp_fmt);
881 }
while (pmbk32 != NULL);
887 if (single && (pdata == pdata1))
892 }
while (pmbk != NULL);
895 printf(
"\nFIXED event with Midas Header\n");
899 assert(!
"unsupported data_fmt, sorry!");
933 assert(!
"unsupported data_fmt, sorry!");
954 DWORD *pdata = NULL, lrl = 0,
j,
i;
957 lrl = ((
BANK *) pbank)->data_size >> 2;
958 pdata = (
DWORD *) ((
BANK *) (pbank) + 1);
960 assert(!
"unsupported data_fmt, sorry!");
965 printf(
"\n%4i-> ",
i +
j + 1);
969 printf(
"%8.i ", *((
DWORD *) pdata));
971 printf(
"%8.8x ", *((
DWORD *) pdata));
973 printf(
"%8.8x ", *((
DWORD *) pdata));
1002 static DWORD size = 0;
1005 *pevent = (
char *)
my.
pmh;
1010 if ((
int)
my.
recn == -1) {
1053 while (((
my.
pmp + size) - (
char *)
my.
pme) < leftover) {
1131 char *pdata, *pendbk;
1132 DWORD length_type = 0, lrl;
1139 pdata = (
char *) (pbk + 1);
1143 strcpy(strbktype,
"Unknown format");
1145 length_type =
sizeof(double);
1146 strcpy(strbktype,
"double*8");
1149 length_type =
sizeof(float);
1150 strcpy(strbktype,
"Real*4 (FMT machine dependent)");
1153 length_type =
sizeof(uint64_t);
1154 strcpy(strbktype,
"Unsigned Integer*8");
1157 length_type =
sizeof(int64_t);
1158 strcpy(strbktype,
"Signed Integer*8");
1161 length_type =
sizeof(
DWORD);
1162 strcpy(strbktype,
"Unsigned Integer*4");
1165 length_type =
sizeof(
INT);
1166 strcpy(strbktype,
"Signed Integer*4");
1169 length_type =
sizeof(
WORD);
1170 strcpy(strbktype,
"Unsigned Integer*2");
1173 length_type =
sizeof(short);
1174 strcpy(strbktype,
"Signed Integer*2");
1177 length_type =
sizeof(
BYTE);
1178 strcpy(strbktype,
"Unsigned Bytes");
1181 length_type =
sizeof(
BYTE);
1182 strcpy(strbktype,
"Signed Bytes");
1185 length_type =
sizeof(
DWORD);
1186 strcpy(strbktype,
"Boolean");
1189 length_type =
sizeof(char);
1190 strcpy(strbktype,
"8 bit ASCII");
1193 length_type =
sizeof(char);
1194 strcpy(strbktype,
"STRUCT (not supported->8 bits)");
1197 length_type =
sizeof(char);
1198 strcpy(strbktype,
"String 8bit ASCII");
1201 printf(
"\nBank:%s Length: %i(I*1)/%i(I*4)/%i(Type) Type:%s",
1202 bank_name, lrl, lrl >> 2, lrl / (length_type == 0 ? 1 : length_type), strbktype);
1204 pendbk = pdata + lrl;
1205 while (pdata < pendbk) {
1209 printf(
"\n%4i-> ",
i);
1213 printf(
"%15.5le ", *((
double *) pdata));
1214 pdata = (
char *) (((
double *) pdata) + 1);
1219 printf(
"\n%4i-> ",
i);
1224 printf(
"%8.3e ", *((
float *) pdata));
1226 printf(
"0x%8.8x ", *((
DWORD *) pdata));
1227 pdata = (
char *) (((
DWORD *) pdata) + 1);
1232 printf(
"\n%4i-> ",
i);
1237 printf(
"%16.1llu ", (
long long unsigned) *((uint64_t *) pdata));
1239 printf(
"0x%16.16llx ", (
long long unsigned) *((uint64_t *) pdata));
1240 pdata = (
char *) (((uint64_t *) pdata) + 1);
1245 printf(
"\n%4i-> ",
i);
1250 printf(
"%16.1lli ", (
long long int) *((int64_t *) pdata));
1252 printf(
"0x%16.16llx ", (
long long unsigned int) *((int64_t *) pdata));
1253 pdata = (
char *) (((int64_t *) pdata) + 1);
1258 printf(
"\n%4i-> ",
i);
1263 printf(
"%8.1i ", *((
DWORD *) pdata));
1265 printf(
"0x%8.8x ", *((
DWORD *) pdata));
1266 pdata = (
char *) (((
DWORD *) pdata) + 1);
1271 printf(
"\n%4i-> ",
i);
1276 printf(
"%8.1i ", *((
DWORD *) pdata));
1278 printf(
"0x%8.8x ", *((
DWORD *) pdata));
1279 pdata = (
char *) (((
DWORD *) pdata) + 1);
1284 printf(
"\n%4i-> ",
i);
1289 printf(
"%5.1i ", *((
WORD *) pdata));
1291 printf(
"0x%4.4x ", *((
WORD *) pdata));
1292 pdata = (
char *) (((
WORD *) pdata) + 1);
1297 printf(
"\n%4i-> ",
i);
1302 printf(
"%5.1i ", *((
short *) pdata));
1304 printf(
"0x%4.4x ", *((
short *) pdata));
1305 pdata = (
char *) (((
short *) pdata) + 1);
1311 printf(
"\n%4i-> ",
i);
1316 printf(
"%4.i ", *((
BYTE *) pdata));
1318 printf(
"0x%2.2x ", *((
BYTE *) pdata));
1324 printf(
"\n%4i-> ",
i);
1329 printf(
"%4.i ", *((
BYTE *) pdata));
1331 printf(
"0x%2.2x ", *((
BYTE *) pdata));
1337 printf(
"\n%4i-> ",
i);
1341 (*((
BOOL *) pdata) != 0) ? printf(
"Y ") : printf(
"N ");
1342 pdata = (
char *) (((
DWORD *) pdata) + 1);
1348 printf(
"\n%4i-> ",
i);
1353 printf(
"%3.i ", *((
BYTE *) pdata));
1355 printf(
"%1.1s ", (
char *) pdata);
1357 printf(
"0x%2.2x ", *((
BYTE *) pdata));
1362 printf(
"bank type not supported (%d)\n",
type);
1388 char *pdata, *pendbk;
1389 DWORD length_type = 0, lrl;
1392 lrl = pbk->data_size;
1393 type = pbk->type & 0xff;
1395 memcpy(
bank_name, (
char *) (pbk->name), 4);
1396 pdata = (
char *) (pbk + 1);
1400 strcpy(strbktype,
"Unknown format");
1402 length_type =
sizeof(double);
1403 strcpy(strbktype,
"double*8");
1406 length_type =
sizeof(float);
1407 strcpy(strbktype,
"Real*4 (FMT machine dependent)");
1410 length_type =
sizeof(uint64_t);
1411 strcpy(strbktype,
"Unsigned Integer*8");
1414 length_type =
sizeof(int64_t);
1415 strcpy(strbktype,
"Signed Integer*8");
1418 length_type =
sizeof(
DWORD);
1419 strcpy(strbktype,
"Unsigned Integer*4");
1422 length_type =
sizeof(
INT);
1423 strcpy(strbktype,
"Signed Integer*4");
1426 length_type =
sizeof(
WORD);
1427 strcpy(strbktype,
"Unsigned Integer*2");
1430 length_type =
sizeof(short);
1431 strcpy(strbktype,
"Signed Integer*2");
1434 length_type =
sizeof(
BYTE);
1435 strcpy(strbktype,
"Unsigned Bytes");
1438 length_type =
sizeof(
BYTE);
1439 strcpy(strbktype,
"Signed Bytes");
1442 length_type =
sizeof(
DWORD);
1443 strcpy(strbktype,
"Boolean");
1446 length_type =
sizeof(char);
1447 strcpy(strbktype,
"8 bit ASCII");
1450 length_type =
sizeof(char);
1451 strcpy(strbktype,
"STRUCT (not supported->8 bits)");
1454 length_type =
sizeof(char);
1455 strcpy(strbktype,
"String 8bit ASCI");
1458 printf(
"\nBank:%s Length: %i(I*1)/%i(I*4)/%i(Type) Type:%s",
1459 bank_name, lrl, lrl >> 2, lrl / (length_type == 0 ? 1 : length_type), strbktype);
1461 pendbk = pdata + lrl;
1462 while (pdata < pendbk) {
1466 printf(
"\n%4i-> ",
i);
1470 printf(
"%15.5e ", *((
double *) pdata));
1471 pdata = (
char *) (((
double *) pdata) + 1);
1476 printf(
"\n%4i-> ",
i);
1481 printf(
"%8.3e ", *((
float *) pdata));
1483 printf(
"0x%8.8x ", *((
DWORD *) pdata));
1484 pdata = (
char *) (((
DWORD *) pdata) + 1);
1489 printf(
"\n%4i-> ",
i);
1494 printf(
"%16.1llu ", (
long long unsigned int) *((uint64_t *) pdata));
1496 printf(
"0x%16.16llx ", (
long long unsigned int) *((uint64_t *) pdata));
1497 pdata = (
char *) (((uint64_t *) pdata) + 1);
1502 printf(
"\n%4i-> ",
i);
1507 printf(
"%16.1lli ", (
long long int) *((int64_t *) pdata));
1509 printf(
"0x%16.16llx ", (
long long unsigned int) *((int64_t *) pdata));
1510 pdata = (
char *) (((int64_t *) pdata) + 1);
1515 printf(
"\n%4i-> ",
i);
1520 printf(
"%8.1i ", *((
DWORD *) pdata));
1522 printf(
"0x%8.8x ", *((
DWORD *) pdata));
1523 pdata = (
char *) (((
DWORD *) pdata) + 1);
1528 printf(
"\n%4i-> ",
i);
1533 printf(
"%8.1i ", *((
DWORD *) pdata));
1535 printf(
"0x%8.8x ", *((
DWORD *) pdata));
1536 pdata = (
char *) (((
DWORD *) pdata) + 1);
1541 printf(
"\n%4i-> ",
i);
1546 printf(
"%5.1i ", *((
WORD *) pdata));
1548 printf(
"0x%4.4x ", *((
WORD *) pdata));
1549 pdata = (
char *) (((
WORD *) pdata) + 1);
1554 printf(
"\n%4i-> ",
i);
1559 printf(
"%5.1i ", *((
short *) pdata));
1561 printf(
"0x%4.4x ", *((
short *) pdata));
1562 pdata = (
char *) (((
short *) pdata) + 1);
1568 printf(
"\n%4i-> ",
i);
1573 printf(
"%4.i ", *((
BYTE *) pdata));
1575 printf(
"0x%2.2x ", *((
BYTE *) pdata));
1581 printf(
"\n%4i-> ",
i);
1586 printf(
"%4.i ", *((
BYTE *) pdata));
1588 printf(
"0x%2.2x ", *((
BYTE *) pdata));
1594 printf(
"\n%4i-> ",
i);
1598 (*((
BOOL *) pdata) != 0) ? printf(
"Y ") : printf(
"N ");
1599 pdata = (
char *) (((
DWORD *) pdata) + 1);
1605 printf(
"\n%4i-> ",
i);
1610 printf(
"%3.i ", *((
BYTE *) pdata));
1612 printf(
"%1.1s ", (
char *) pdata);
1614 printf(
"0x%2.2x ", *((
BYTE *) pdata));
1619 printf(
"bank type not supported (%d)\n",
type);
int ftp_login(FTP_CON **con, const char *host, unsigned short port, const char *user, const char *password, const char *account)
int ftp_close(FTP_CON *con)
int ftp_command(FTP_CON *con, const char *command, const char *param,...)
int ftp_send(int sock, const char *buffer, int n_bytes_to_write)
int ftp_bye(FTP_CON *con)
int ftp_move(FTP_CON *con, const char *oldname, const char *newname)
#define ftp_mkdir(ftp, dir)
#define ftp_chdir(ftp, dir)
#define ftp_open_write(ftp, file)
INT bk_iterate32a(const void *event, BANK32A **pbk32a, void *pdata)
INT bk_swap(void *event, BOOL force)
BOOL bk_is32a(const void *event)
BOOL bk_is32(const void *event)
INT bk_iterate32(const void *event, BANK32 **pbk, void *pdata)
INT bk_locate(const void *event, const char *name, void *pdata)
INT bk_list(const void *event, char *bklist)
INT bk_iterate(const void *event, BANK **pbk, void *pdata)
#define MD_STRING_BANKLIST_MAX
#define MD_EVENT_NOT_SWAPPED
#define MD_UNKNOWN_FORMAT
void md_event_display(const void *pevent, INT data_fmt, INT dsp_mode, INT dsp_fmt, const char *bn)
INT md_file_wclose(INT handle, INT type, INT data_fmt, char *destination)
INT md_file_ropen(char *infile, INT data_fmt, INT openzip, INT max_event_size)
INT md_all_info_display(INT what)
INT md_dev_os_write(INT handle, INT type, void *prec, DWORD nbytes, DWORD *written)
INT md_physrec_get(INT data_fmt, void **precord, DWORD *readn)
void md_bank_event_display(const void *pevent, INT data_fmt, INT dsp_fmt, INT dsp_mode, const char *bn)
void midas_bank_display32(T *pbk, INT dsp_fmt)
INT md_dev_os_read(INT handle, INT type, void *prec, DWORD nbytes, DWORD *nread)
INT midas_event_skip(INT evtn)
INT md_file_wopen(INT type, INT data_fmt, char *filename, INT *hDev)
void md_raw_bank_display(void *pbank, INT data_fmt, INT dsp_fmt)
void md_raw_event_display(const void *pevent, INT data_fmt, INT dsp_fmt)
INT midas_physrec_get(void *prec, DWORD *readn)
void midas_bank_display(BANK *pbk, INT dsp_fmt)
INT md_event_swap(INT data_fmt, void *pevent)
void md_bank_display(void *pmbh, void *pbk, INT data_fmt, INT dsp_mode, INT dsp_fmt)
INT md_log_write(INT handle, INT data_fmt, INT type, void *prec, DWORD nbytes)
INT md_file_rclose(INT data_fmt)
INT midas_event_get(void **pevent, DWORD *size)
INT ss_tape_close(INT channel)
INT ss_tape_write_eof(INT channel)
INT ss_tape_open(char *path, INT oflag, INT *channel)
INT cm_msg(INT message_type, const char *filename, INT line, const char *routine, const char *format,...)
char host_name[HOST_NAME_LENGTH]
#define STRING_BANKLIST_MAX
#define write(n, a, f, d)