29#define USE(x) do {(void)(x);} while (0)
32#ifdef _LARGEFILE64_SOURCE
36#define ngcb_open(p,m) open64(p,m)
37#define ngcb_lseek(f,o,w) lseek64(f,o,w)
38#define ngcb_ftruncate(f,l) ftruncate64(f,l)
39#define ngcb_fopen(p,m) fopen64(p,m)
40#define ngcb_ftello(s) ftello64(s)
41#define ngcb_fseeko(s,o,w) fseeko64(s,o,w)
42#define ngcb_stat(p,s) stat64(p,s)
43#define ngcb_statvfs(p,s) statvfs64(p,s)
44#define ngcb_mmap(s,l,p,fl,fd,o) mmap64(s,l,p,fl,fd,o)
49#define ngcb_open(p,m) open(p,m)
50#define ngcb_lseek(f,o,w) lseek(f,o,w)
51#define ngcb_fopen(p,m) fopen(p,m)
52#define ngcb_ftello(s) ftello(s)
53#define ngcb_fseeko(s,o,w) fseeko(s,o,w)
54#define ngcb_ftruncate(s,o) ftruncate(s,o)
55#define ngcb_stat(p,s) stat(p,s)
56#define ngcb_statvfs(p,s) statvfs(p,s)
57#define ngcb_mmap(s,l,p,fl,fd,o) mmap(s,l,p,fl,fd,o)
74#define str2str(s1, s2, n) ngcbStr2Str(s1, s2, n)
80#define _vecsize(x) (sizeof(x)/sizeof(x[0]))
85typedef int (*
ngcb_sig_t)(
int how,
const sigset_t *set, sigset_t *oset);
105#define _ngcb_cv(a) #a
106#define _ngcb_tostr(a) _ngcb_cv(a)
111#define NGCB_CODE_POS __FILE__ ":" _ngcb_tostr(__LINE__)
119#define ngcbLog(...) do {if (ngcbVerboseFlag) fprintf(stdout, __VA_ARGS__);} while (0)
126#define ngcbLog(...) do {} while (0)
133#define ngcbFmt(...) (snprintf(__VA_ARGS__) < 0 ? abort() : (void)0)
140#define ngcbFAILURE -1
141#define ngcbWARNING -2
143#define ngcbERR_SEVERE -4
144#define ngcbERR_ACCESS -5
145#define ngcbDISCONNECT -6
159#define ngcbMAX_KEY_LEN 256
160#define ngcbMAX_KEYELE_LEN 512
165#define ngcbFITS_TYPE_INT 1
166#define ngcbFITS_TYPE_FLOAT 2
167#define ngcbFITS_TYPE_DOUBLE 3
168#define ngcbFITS_TYPE_STRING 4
169#define ngcbFITS_TYPE_LOGICAL 5
170#define ngcbFITS_TYPE_FREE 6
171#define ngcbFITS_TYPE_COMMENT 7
176#define ngcbFITS_LINE_LEN 80
181#define ngcbFITS_KEY_SIZE 48
186#define ngcbFITS_BLOCK_LINES 36
191#define ngcbFITS_BLOCK_LEN (ngcbFITS_LINE_LEN * ngcbFITS_BLOCK_LINES)
227void ngcbSubTime(
struct timeval t1,
struct timeval t2,
struct timeval *t3);
233void ngcbAddTime(
struct timeval t1,
struct timeval t2,
struct timeval *t3);
252void ngcbAddSec(
struct timeval *t,
double seconds);
270void ngcbTime2UTC(
struct timeval t,
char *utc,
int precision);
282void ngcbMJD2UTC(
double mjd,
char *utc,
int precision);
309#define ngcbDiffTime(t1,t2) ((double)(t2.tv_sec - t1.tv_sec) + \
310 ((double)(t2.tv_usec - t1.tv_usec)/1.0e6))
315#define ngcbDiffTimeHR(t1,t2) ((double)(t2.tv_sec - t1.tv_sec) + \
316 ((double)(t2.tv_nsec - t1.tv_nsec)/1.0e9))
333void ngcbPrint(FILE *fd,
void *buffer,
size_t size,
int bitPix,
size_t max);
403#define ngcbLITTLE_ENDIAN 0
404#define ngcbBIG_ENDIAN 1
420void ngcbSwap2(
void *buffer,
size_t length);
427void ngcbSwap4(
void *buffer,
size_t length);
434void ngcbSwap8(
void *buffer,
size_t length);
599int ngcbExecInit(
const char *host,
int *version,
char *erms);
623int ngcbExec(
const char *host,
int *pid,
const char *cmd,
char *reply,
629int ngcbExecDbg(
const char *host,
int *pid,
const char *cmd,
char *reply,
630 int port,
char *erms);
634int ngcbExecXt(
const char *host,
int *pid,
const char *cmd,
char *reply,
635 const char *geom,
char *erms);
641int ngcbKill(
const char *host,
int pid,
char *erms);
654 size_t *size,
char *erms);
676int ngcbLoadFile(
const char *fileName,
char *buffer,
size_t *size,
char *erms);
682int ngcbWriteFile(
const char *fileName,
const char *buffer,
size_t size,
693int ngcbMapFile(
const char *fileName,
char **buffer,
size_t *size,
714ssize_t
ngcbRead(
int fd,
void *buffer,
size_t size,
char *erms);
719ssize_t
ngcbWrite(
int fd,
const void *buffer,
size_t size,
char *erms);
746int ngcbMkDir(
const char *path, mode_t mode,
char *erms);
778int ngcbPathCmp(
const char *path1,
const char *path2);
804int ngcbWin2File(FILE *fd,
const char *buffer,
size_t fx,
size_t fy,
805 int bitPix,
size_t sx,
size_t sy,
size_t nx,
size_t ny,
806 int rot,
char *erms);
829int ngcbFindIndex(
const char *path,
int minIndex,
char *erms);
886char *
ngcbStr2Str(
char *s1,
const char *s2,
size_t n);
948int ngcbF2S(
const char *s,
const char *filter,
char *v);
953int ngcbF2Int(
const char *s,
const char *filter);
958unsigned int ngcbF2UInt(
const char *s,
const char *filter);
963int ngcbF2Double(
const char *s,
const char *filter,
double *v);
968int ngcbStr2Frac(
const char *value,
unsigned int n, uint64_t *v1,
978void ngcbRpcCopy(
void *dest,
const void *src,
size_t size,
size_t items,
985 unsigned int max,
int how,
char *erms);
990int ngcbStr2Payload(
const char *cmd,
unsigned char *payload,
unsigned int max,
991 int how,
char *erms);
997int ngcbStr2Rpc(
const char *cmd,
int *delay,
int *target,
int *req,
998 unsigned int *size,
char *erms);
1019 unsigned int chunk,
char *erms);
1055char *
ngcbFitsStrip(
char *buffer,
size_t *size,
int *bitPix,
char *erms);
1060int ngcbCube2Ext(
const char *fileName,
const char *extName,
int numBlocks,
1066int ngcbSplitCube(
const char *source,
const char *target,
int numBlocks,
1096int ngcbKeyGetNext(
char *fileBuffer,
int fileLen,
int *pos,
int *line,
1097 const char *mask,
char *key,
char *keyVal,
char *erms);
1104int ngcbKeySplit(
char *key,
int *nsplit,
char **ksplit,
int *val,
1112int ngcbKeyIdx(
char *key,
int *nsplit,
int *kval,
char *erms);
void ngcbCleanPath(char *name)
Definition ngcbFile.c:597
int ngcbKeyGetVecInt(const char *keyVal, int *vec, char *erms)
Definition ngcbKey.c:437
int ngcbFmt2UInt(const char *s, unsigned int *value)
Definition ngcbString.c:259
void ngcbAddTime(struct timeval t1, struct timeval t2, struct timeval *t3)
Definition ngcbTime.c:67
char * ngcbFitsStrip(char *buffer, size_t *size, int *bitPix, char *erms)
Definition ngcbFitsTools.c:167
char ngcb_str512_t[512]
Definition ngcb.h:154
float ngcbMedianR32(float *a, int n)
Definition ngcbMath.c:314
int ngcbSkipFd(FILE *stream)
Definition ngcbFile.c:637
int ngcbF2S(const char *s, const char *filter, char *v)
Definition ngcbString.c:356
int ngcbGetUTC(char *utc, int precision)
Definition ngcbTime.c:102
void ngcbMJD2UTC(double mjd, char *utc, int precision)
Definition ngcbTime.c:206
char ngcb_str256_t[256]
Definition ngcb.h:153
double ngcbMeanR32(float *a, int n)
Definition ngcbMath.c:158
int ngcbCubeRead32(ngcb_cube_t cube, float *buffer, int slice, char *erms)
Definition ngcbFitsTools.c:2158
int ngcbHex2UInt(const char *s, unsigned int *value)
Definition ngcbString.c:224
void ngcbWatchdogAddCmd(FILE *wd, const char *host, const char *cmd)
Definition ngcbMon.c:164
void ngcbAddTimeFrac(uint64_t *sec, uint64_t *nsec, double t)
Definition ngcbTime.c:361
unsigned short ngcbMedian16(unsigned short *a, int n)
Definition ngcbMath.c:176
int ngcbExecXt(const char *host, int *pid, const char *cmd, char *reply, const char *geom, char *erms)
Definition ngcbExec.c:1329
int ngcbStr2Payload(const char *cmd, unsigned char *payload, unsigned int max, int how, char *erms)
Definition ngcbRpc.c:337
int ngcbStr2Frac(const char *value, unsigned int n, uint64_t *v1, uint64_t *v2)
Definition ngcbString.c:571
void * ngcbFileBufAlloc(size_t size, char *erms)
Definition ngcbFile.c:863
void ngcbSubTime(struct timeval t1, struct timeval t2, struct timeval *t3)
Definition ngcbTime.c:46
int ngcbRemoteFileDelete(const char *host, const char *fileName, char *erms)
Definition ngcbExec.c:1611
void ngcbPrint(FILE *fd, void *buffer, size_t size, int bitPix, size_t max)
Definition ngcbDebug.c:111
int ngcbRound(double x)
Definition ngcbMath.c:118
int ngcbExec(const char *host, int *pid, const char *cmd, char *reply, char *erms)
Definition ngcbExec.c:1317
off_t ngcb_off_t
Definition ngcb.h:46
int ngcbPathCmp(const char *path1, const char *path2)
Definition ngcbFile.c:546
struct statvfs ngcb_statvfs_t
Definition ngcb.h:48
char ngcb_str64_t[64]
Definition ngcb.h:151
ssize_t ngcbRead(int fd, void *buffer, size_t size, char *erms)
Definition ngcbFile.c:226
void ngcbWatchdogRemoveCmd(FILE *wd, const char *host, const char *cmd)
Definition ngcbMon.c:179
int ngcbRemoteFileOpen(const char *host, const char *fileName, size_t *size, char *erms)
Definition ngcbExec.c:1487
void ngcbTimeFrac2Str(char *value, uint64_t sec, uint64_t nsec)
Definition ngcbTime.c:377
int ngcbSleep(int fd, int waitTime)
Definition ngcbTime.c:327
int ngcbRunningMedian(ngcb_rm_t *f, int value)
Definition ngcbMath.c:497
int ngcbWritePerm(const char *path)
Definition ngcbFile.c:448
double ngcbDiskSpace(const char *path, char *erms)
Definition ngcbFile.c:580
int ngcbExecInit(const char *host, int *version, char *erms)
Definition ngcbExec.c:672
void ngcbSwap8(void *buffer, size_t length)
Definition ngcbMath.c:49
int ngcbMkDir(const char *path, mode_t mode, char *erms)
Definition ngcbFile.c:365
FILE * ngcbDebugOpen(char *erms)
Definition ngcbDebug.c:29
void ngcbDiskMemDelete(const char *path, int idx, unsigned int offset)
Definition ngcbDiskMem.c:159
int ngcbWriteFile(const char *fileName, const char *buffer, size_t size, char *erms)
Definition ngcbFile.c:97
void ngcbDebugClose(FILE *debugStream)
Definition ngcbDebug.c:100
struct stat ngcb_stat_t
Definition ngcb.h:47
void ngcbFilterInit(ngcb_ma_t *f, int size)
Definition ngcbMath.c:385
int(* ngcb_sig_t)(int how, const sigset_t *set, sigset_t *oset)
Definition ngcb.h:85
int ngcbMicroSleep(int fd, int waitTime)
Definition ngcbTime.c:291
int ngcbF2Int(const char *s, const char *filter)
Definition ngcbString.c:413
void ngcbUnmapFile(int fd, char *buffer, size_t size)
Definition ngcbFile.c:210
int ngcbRoundL(long double x)
Definition ngcbMath.c:124
int ngcbKeyGetVecFloat(const char *keyVal, float *vec, char *erms)
Definition ngcbKey.c:469
void ngcbExpand(char *path)
Definition ngcbFile.c:526
int ngcbHex2Int(const char *s, int *value)
Definition ngcbString.c:210
void ngcbCleanSpace(char *s)
Definition ngcbString.c:48
const char * ngcbGetFileExt(const char *fileName)
Definition ngcbFile.c:316
char ngcb_str32_t[32]
Definition ngcb.h:150
int ngcbExecVersion(const char *host, char *erms)
Definition ngcbExec.c:1113
void ngcbWatchdogClearCmd(FILE *wd, const char *host)
Definition ngcbMon.c:194
int ngcbFdCnt(void)
Definition ngcbFile.c:941
void(* ngcb_void_fct)(void)
Definition ngcb.h:95
double ngcbUTC2MJD(const char *utc)
Definition ngcbTime.c:216
int(* ngcb_fct)(void)
Definition ngcb.h:90
char * ngcbStr2Str(char *s1, const char *s2, size_t n)
Definition ngcbString.c:177
int ngcbF2Double(const char *s, const char *filter, double *v)
Definition ngcbString.c:527
void ngcbStr2Arg(char *s, int *argc, char **argv)
Definition ngcbString.c:157
void ngcbWatchdogClearProc(FILE *wd, const char *host)
Definition ngcbMon.c:149
void ngcbFilterDelete(ngcb_ma_t *f)
Definition ngcbMath.c:402
void ngcbMedianDelete(ngcb_rm_t *f)
Definition ngcbMath.c:474
int ngcbKeyGetNext(char *fileBuffer, int fileLen, int *pos, int *line, const char *mask, char *key, char *keyVal, char *erms)
Definition ngcbKey.c:38
void ngcbSwap4(void *buffer, size_t length)
Definition ngcbMath.c:38
int ngcbFindIndex(const char *path, int minIndex, char *erms)
Definition ngcbFile.c:657
char ngcb_str128_t[128]
Definition ngcb.h:152
int ngcbReadPerm(const char *path)
Definition ngcbFile.c:487
void ngcbInt2Bin(char *str, int in)
Definition ngcbMath.c:92
void ngcbMedianInit(ngcb_rm_t *f, int size)
Definition ngcbMath.c:444
int ngcbExecutor(int argc, char **argv)
Definition ngcbExec.c:1083
void ngcbStrPut(char *s1, const char *s2)
Definition ngcbString.c:88
int64_t ngcbRound64(double x)
Definition ngcbMath.c:130
int ngcbIsFloat(const char *s)
Definition ngcbString.c:147
void ngcbToUpper(char *s)
Definition ngcbString.c:38
int ngcbFileExists(const char *path)
Definition ngcbFile.c:420
void ngcbWatchdogClose(FILE *wd)
Definition ngcbMon.c:106
int ngcbCubeOpen(const char *fileName, ngcb_cube_t *cube, char *erms)
Definition ngcbFitsTools.c:1795
void ngcbAddSec(struct timeval *t, double seconds)
Definition ngcbTime.c:80
void ngcbTrimSpace(char *s)
Definition ngcbString.c:76
int ngcbHex2UInt16(const char *s, unsigned short *value)
Definition ngcbString.c:320
int ngcbKeyGetVecDouble(const char *keyVal, double *vec, char *erms)
Definition ngcbKey.c:501
int ngcbStr2Int16(const char *s, short *value)
Definition ngcbString.c:282
int ngcbStr2UInt(const char *s, unsigned int *value)
Definition ngcbString.c:198
int ngcbFmt2Int(const char *s, int *value)
Definition ngcbString.c:236
void ngcbTime2UTC(struct timeval t, char *utc, int precision)
Definition ngcbTime.c:157
int ngcbKeyIdx(char *key, int *nsplit, int *kval, char *erms)
Definition ngcbKey.c:376
int ngcbStr2Rpc(const char *cmd, int *delay, int *target, int *req, unsigned int *size, char *erms)
Definition ngcbRpc.c:453
void ngcbExecShell(const char *shell)
Definition ngcbExec.c:666
int ngcbSplitCube(const char *source, const char *target, int numBlocks, char *erms)
Definition ngcbFitsTools.c:263
FILE * ngcbWatchdogOpen(int verbose, char *erms)
Definition ngcbMon.c:31
int ngcbVerboseFlag
Definition ngcbDebug.c:27
double ngcbMean32(int *a, int n)
Definition ngcbMath.c:150
int ngcbHex2Int16(const char *s, short *value)
Definition ngcbString.c:306
int ngcbCube2Ext(const char *fileName, const char *extName, int numBlocks, char *erms)
Definition ngcbFitsTools.c:1283
void ngcbParentDir(char *path, const char *fileName)
Definition ngcbFile.c:335
unsigned int ngcbBin2UInt(const char *str)
Definition ngcbMath.c:76
int ngcbIsDir(const char *path)
Definition ngcbFile.c:434
int ngcbGetTime(struct timeval *t)
Definition ngcbTime.c:41
double ngcbTime2MJD(struct timeval t)
Definition ngcbTime.c:195
void ngcbWatchdogDbWrite(FILE *wd, const char *host, const char *attr, const char *value)
Definition ngcbMon.c:209
int ngcbStr2Float(const char *s, float *value)
Definition ngcbString.c:332
unsigned int ngcbF2UInt(const char *s, const char *filter)
Definition ngcbString.c:475
void ngcbWatchdogRemoveProc(FILE *wd, const char *host, int pid)
Definition ngcbMon.c:134
int ngcbMedian32(int *a, int n)
Definition ngcbMath.c:245
ssize_t ngcbWrite(int fd, const void *buffer, size_t size, char *erms)
Definition ngcbFile.c:271
int ngcbEndian(void)
Definition ngcbMath.c:19
void ngcbToLower(char *s)
Definition ngcbString.c:28
void ngcbCubeClose(ngcb_cube_t cube)
Definition ngcbFitsTools.c:2140
void ngcbRpcCopy(void *dest, const void *src, size_t size, size_t items, int how)
Definition ngcbRpc.c:72
int ngcbKill(const char *host, int pid, char *erms)
Definition ngcbExec.c:1384
long int ngcbFileSize(const char *fileName, char *erms)
Definition ngcbFile.c:137
int ngcbTaiOffset()
Definition ngcbTime.c:26
int64_t ngcbRound64L(long double x)
Definition ngcbMath.c:136
int ngcbStr2UInt16(const char *s, unsigned short *value)
Definition ngcbString.c:294
double ngcbMean16(unsigned short *a, int n)
Definition ngcbMath.c:142
void ngcbSwap2(void *buffer, size_t length)
Definition ngcbMath.c:27
int ngcbBin2Int(const char *str)
Definition ngcbMath.c:60
int ngcbExecDbg(const char *host, int *pid, const char *cmd, char *reply, int port, char *erms)
Definition ngcbExec.c:1323
double ngcbGetMJD(void)
Definition ngcbTime.c:145
int ngcbCubeRead(ngcb_cube_t cube, void *buffer, int slice, char *erms)
Definition ngcbFitsTools.c:2044
void ngcbRemoteFileClose(int fd)
Definition ngcbExec.c:1606
void ngcbMedianReset(ngcb_rm_t *f)
Definition ngcbMath.c:488
int ngcbKeySplit(char *key, int *nsplit, char **ksplit, int *val, char *erms)
Definition ngcbKey.c:301
int ngcbWin2File(FILE *fd, const char *buffer, size_t fx, size_t fy, int bitPix, size_t sx, size_t sy, size_t nx, size_t ny, int rot, char *erms)
Definition ngcbFile.c:735
void ngcbDiscardDetIdx(char *key)
Definition ngcbKey.c:533
int ngcbStr2PayloadItem(const char *arg, unsigned char *payload, unsigned int max, int how, char *erms)
Definition ngcbRpc.c:89
void ngcbFilterReset(ngcb_ma_t *f)
Definition ngcbMath.c:413
int ngcbStr2Int(const char *s, int *value)
Definition ngcbString.c:186
int ngcbDiskMemCreate(const char *path, int idx, unsigned int size, unsigned int chunk, char *erms)
Definition ngcbDiskMem.c:39
int ngcbStr2Double(const char *s, double *value)
Definition ngcbString.c:344
int ngcbLoadFile(const char *fileName, char *buffer, size_t *size, char *erms)
Definition ngcbFile.c:36
int ngcbKeyMaskIdx(char *key, const char *mask)
Definition ngcbKey.c:398
const char * ngcbProcName(const char *path)
Definition ngcbFile.c:350
void ngcbUInt2Bin(char *str, unsigned int in)
Definition ngcbMath.c:105
int ngcbMapFile(const char *fileName, char **buffer, size_t *size, char *erms)
Definition ngcbFile.c:161
int ngcbReplaceEnv(char *string, char *erms)
Definition ngcbString.c:109
double ngcbMeanR64(double *a, int n)
Definition ngcbMath.c:166
void ngcbExecReply(int fd, int success, const char *reply)
Definition ngcbExec.c:626
void ngcbFileBufFree(void *buffer)
Definition ngcbFile.c:926
void ngcbWatchdogAddProc(FILE *wd, const char *host, int pid)
Definition ngcbMon.c:119
int ngcbExecDaemon(int bg)
Definition ngcbExec.c:95
double ngcbFilter(ngcb_ma_t *f, double value)
Definition ngcbMath.c:420
unsigned int offset
Definition ngcb.h:1039
int naxis2
Definition ngcb.h:1042
double bzero
Definition ngcb.h:1045
double bscale
Definition ngcb.h:1044
int naxis1
Definition ngcb.h:1041
int bitPix
Definition ngcb.h:1040
int naxis3
Definition ngcb.h:1043
int fd
Definition ngcb.h:1038
int size
Definition ngcb.h:468
double * v
Definition ngcb.h:466
double m
Definition ngcb.h:467
int n
Definition ngcb.h:470
int idx
Definition ngcb.h:469
int n
Definition ngcb.h:501
int * idx
Definition ngcb.h:500
int size
Definition ngcb.h:499
int m
Definition ngcb.h:498
int * v
Definition ngcb.h:497
long tv_sec
Definition ngcb.h:209
long tv_nsec
Definition ngcb.h:210
long tv_usec
Definition ngcb.h:202
long tv_sec
Definition ngcb.h:201
struct semid_ds * buf
Definition ngcb.h:66
int val
Definition ngcb.h:65
unsigned short * array
Definition ngcb.h:67