28#define USE(x) do {(void)(x);} while (0)
31#ifdef _LARGEFILE64_SOURCE
35#define ngcb_open(p,m) open64(p,m)
36#define ngcb_lseek(f,o,w) lseek64(f,o,w)
37#define ngcb_ftruncate(f,l) ftruncate64(f,l)
38#define ngcb_fopen(p,m) fopen64(p,m)
39#define ngcb_ftello(s) ftello64(s)
40#define ngcb_fseeko(s,o,w) fseeko64(s,o,w)
41#define ngcb_stat(p,s) stat64(p,s)
42#define ngcb_statvfs(p,s) statvfs64(p,s)
43#define ngcb_mmap(s,l,p,fl,fd,o) mmap64(s,l,p,fl,fd,o)
48#define ngcb_open(p,m) open(p,m)
49#define ngcb_lseek(f,o,w) lseek(f,o,w)
50#define ngcb_fopen(p,m) fopen(p,m)
51#define ngcb_ftello(s) ftello(s)
52#define ngcb_fseeko(s,o,w) fseeko(s,o,w)
53#define ngcb_ftruncate(s,o) ftruncate(s,o)
54#define ngcb_stat(p,s) stat(p,s)
55#define ngcb_statvfs(p,s) statvfs(p,s)
56#define ngcb_mmap(s,l,p,fl,fd,o) mmap(s,l,p,fl,fd,o)
73#define str2str(s1, s2, n) ngcbStr2Str(s1, s2, n)
79#define _vecsize(x) (sizeof(x)/sizeof(x[0]))
84typedef int (*
ngcb_sig_t)(
int how,
const sigset_t *set, sigset_t *oset);
104#define _ngcb_cv(a) #a
105#define _ngcb_tostr(a) _ngcb_cv(a)
110#define NGCB_CODE_POS __FILE__ ":" _ngcb_tostr(__LINE__)
118#define ngcbLog(...) do {if (ngcbVerboseFlag) fprintf(stdout, __VA_ARGS__);} while (0)
125#define ngcbLog(...) do {} while (0)
132#define ngcbFmt(...) (snprintf(__VA_ARGS__) < 0 ? abort() : (void)0)
139#define ngcbFAILURE -1
140#define ngcbWARNING -2
142#define ngcbERR_SEVERE -4
143#define ngcbERR_ACCESS -5
144#define ngcbDISCONNECT -6
158#define ngcbMAX_KEY_LEN 256
159#define ngcbMAX_KEYELE_LEN 512
164#define ngcbFITS_TYPE_INT 1
165#define ngcbFITS_TYPE_FLOAT 2
166#define ngcbFITS_TYPE_DOUBLE 3
167#define ngcbFITS_TYPE_STRING 4
168#define ngcbFITS_TYPE_LOGICAL 5
169#define ngcbFITS_TYPE_FREE 6
170#define ngcbFITS_TYPE_COMMENT 7
175#define ngcbFITS_LINE_LEN 80
180#define ngcbFITS_KEY_SIZE 48
185#define ngcbFITS_BLOCK_LINES 36
190#define ngcbFITS_BLOCK_LEN (ngcbFITS_LINE_LEN * ngcbFITS_BLOCK_LINES)
226void ngcbSubTime(
struct timeval t1,
struct timeval t2,
struct timeval *t3);
232void ngcbAddTime(
struct timeval t1,
struct timeval t2,
struct timeval *t3);
251void ngcbAddSec(
struct timeval *t,
double seconds);
269void ngcbTime2UTC(
struct timeval t,
char *utc,
int precision);
281void ngcbMJD2UTC(
double mjd,
char *utc,
int precision);
308#define ngcbDiffTime(t1,t2) ((double)(t2.tv_sec - t1.tv_sec) + \
309 ((double)(t2.tv_usec - t1.tv_usec)/1.0e6))
314#define ngcbDiffTimeHR(t1,t2) ((double)(t2.tv_sec - t1.tv_sec) + \
315 ((double)(t2.tv_nsec - t1.tv_nsec)/1.0e9))
332void ngcbPrint(FILE *fd,
void *buffer,
size_t size,
int bitPix,
size_t max);
402#define ngcbLITTLE_ENDIAN 0
403#define ngcbBIG_ENDIAN 1
419void ngcbSwap2(
void *buffer,
size_t length);
426void ngcbSwap4(
void *buffer,
size_t length);
433void ngcbSwap8(
void *buffer,
size_t length);
598int ngcbExecInit(
const char *host,
int *version,
char *erms);
622int ngcbExec(
const char *host,
int *pid,
const char *cmd,
char *reply,
628int ngcbExecDbg(
const char *host,
int *pid,
const char *cmd,
char *reply,
629 int port,
char *erms);
633int ngcbExecXt(
const char *host,
int *pid,
const char *cmd,
char *reply,
634 const char *geom,
char *erms);
640int ngcbKill(
const char *host,
int pid,
char *erms);
653 size_t *size,
char *erms);
675int ngcbLoadFile(
const char *fileName,
char *buffer,
size_t *size,
char *erms);
681int ngcbWriteFile(
const char *fileName,
const char *buffer,
size_t size,
692int ngcbMapFile(
const char *fileName,
char **buffer,
size_t *size,
713ssize_t
ngcbRead(
int fd,
void *buffer,
size_t size,
char *erms);
718ssize_t
ngcbWrite(
int fd,
const void *buffer,
size_t size,
char *erms);
745int ngcbMkDir(
const char *path, mode_t mode,
char *erms);
777int ngcbPathCmp(
const char *path1,
const char *path2);
803int ngcbWin2File(FILE *fd,
const char *buffer,
size_t fx,
size_t fy,
804 int bitPix,
size_t sx,
size_t sy,
size_t nx,
size_t ny,
805 int rot,
char *erms);
828int ngcbFindIndex(
const char *path,
int minIndex,
char *erms);
885char *
ngcbStr2Str(
char *s1,
const char *s2,
size_t n);
947int ngcbF2S(
const char *s,
const char *filter,
char *v);
952int ngcbF2Int(
const char *s,
const char *filter);
957unsigned int ngcbF2UInt(
const char *s,
const char *filter);
962int ngcbF2Double(
const char *s,
const char *filter,
double *v);
967int ngcbStr2Frac(
const char *value,
unsigned int n, uint64_t *v1,
977void ngcbRpcCopy(
void *dest,
const void *src,
size_t size,
size_t items,
984 unsigned int max,
int how,
char *erms);
989int ngcbStr2Payload(
const char *cmd,
unsigned char *payload,
unsigned int max,
990 int how,
char *erms);
996int ngcbStr2Rpc(
const char *cmd,
int *delay,
int *target,
int *req,
997 unsigned int *size,
char *erms);
1018 unsigned int chunk,
char *erms);
1054char *
ngcbFitsStrip(
char *buffer,
size_t *size,
int *bitPix,
char *erms);
1059int ngcbCube2Ext(
const char *fileName,
const char *extName,
int numBlocks,
1065int ngcbSplitCube(
const char *source,
const char *target,
int numBlocks,
1095int ngcbKeyGetNext(
char *fileBuffer,
int fileLen,
int *pos,
int *line,
1096 const char *mask,
char *key,
char *keyVal,
char *erms);
1103int ngcbKeySplit(
char *key,
int *nsplit,
char **ksplit,
int *val,
1111int ngcbKeyIdx(
char *key,
int *nsplit,
int *kval,
char *erms);
void ngcbCleanPath(char *name)
Definition ngcbFile.c:596
int ngcbKeyGetVecInt(const char *keyVal, int *vec, char *erms)
Definition ngcbKey.c:436
int ngcbFmt2UInt(const char *s, unsigned int *value)
Definition ngcbString.c:258
void ngcbAddTime(struct timeval t1, struct timeval t2, struct timeval *t3)
Definition ngcbTime.c:66
char * ngcbFitsStrip(char *buffer, size_t *size, int *bitPix, char *erms)
Definition ngcbFitsTools.c:166
char ngcb_str512_t[512]
Definition ngcb.h:153
float ngcbMedianR32(float *a, int n)
Definition ngcbMath.c:313
int ngcbSkipFd(FILE *stream)
Definition ngcbFile.c:636
int ngcbF2S(const char *s, const char *filter, char *v)
Definition ngcbString.c:355
int ngcbGetUTC(char *utc, int precision)
Definition ngcbTime.c:101
void ngcbMJD2UTC(double mjd, char *utc, int precision)
Definition ngcbTime.c:205
char ngcb_str256_t[256]
Definition ngcb.h:152
double ngcbMeanR32(float *a, int n)
Definition ngcbMath.c:157
int ngcbCubeRead32(ngcb_cube_t cube, float *buffer, int slice, char *erms)
Definition ngcbFitsTools.c:2157
int ngcbHex2UInt(const char *s, unsigned int *value)
Definition ngcbString.c:223
void ngcbWatchdogAddCmd(FILE *wd, const char *host, const char *cmd)
Definition ngcbMon.c:163
void ngcbAddTimeFrac(uint64_t *sec, uint64_t *nsec, double t)
Definition ngcbTime.c:360
unsigned short ngcbMedian16(unsigned short *a, int n)
Definition ngcbMath.c:175
int ngcbExecXt(const char *host, int *pid, const char *cmd, char *reply, const char *geom, char *erms)
Definition ngcbExec.c:1326
int ngcbStr2Payload(const char *cmd, unsigned char *payload, unsigned int max, int how, char *erms)
Definition ngcbRpc.c:336
int ngcbStr2Frac(const char *value, unsigned int n, uint64_t *v1, uint64_t *v2)
Definition ngcbString.c:570
void * ngcbFileBufAlloc(size_t size, char *erms)
Definition ngcbFile.c:862
void ngcbSubTime(struct timeval t1, struct timeval t2, struct timeval *t3)
Definition ngcbTime.c:45
int ngcbRemoteFileDelete(const char *host, const char *fileName, char *erms)
Definition ngcbExec.c:1608
void ngcbPrint(FILE *fd, void *buffer, size_t size, int bitPix, size_t max)
Definition ngcbDebug.c:110
int ngcbRound(double x)
Definition ngcbMath.c:117
int ngcbExec(const char *host, int *pid, const char *cmd, char *reply, char *erms)
Definition ngcbExec.c:1314
off_t ngcb_off_t
Definition ngcb.h:45
int ngcbPathCmp(const char *path1, const char *path2)
Definition ngcbFile.c:545
struct statvfs ngcb_statvfs_t
Definition ngcb.h:47
char ngcb_str64_t[64]
Definition ngcb.h:150
ssize_t ngcbRead(int fd, void *buffer, size_t size, char *erms)
Definition ngcbFile.c:225
void ngcbWatchdogRemoveCmd(FILE *wd, const char *host, const char *cmd)
Definition ngcbMon.c:178
int ngcbRemoteFileOpen(const char *host, const char *fileName, size_t *size, char *erms)
Definition ngcbExec.c:1484
void ngcbTimeFrac2Str(char *value, uint64_t sec, uint64_t nsec)
Definition ngcbTime.c:376
int ngcbSleep(int fd, int waitTime)
Definition ngcbTime.c:326
int ngcbRunningMedian(ngcb_rm_t *f, int value)
Definition ngcbMath.c:496
int ngcbWritePerm(const char *path)
Definition ngcbFile.c:447
double ngcbDiskSpace(const char *path, char *erms)
Definition ngcbFile.c:579
int ngcbExecInit(const char *host, int *version, char *erms)
Definition ngcbExec.c:671
void ngcbSwap8(void *buffer, size_t length)
Definition ngcbMath.c:48
int ngcbMkDir(const char *path, mode_t mode, char *erms)
Definition ngcbFile.c:364
FILE * ngcbDebugOpen(char *erms)
Definition ngcbDebug.c:28
void ngcbDiskMemDelete(const char *path, int idx, unsigned int offset)
Definition ngcbDiskMem.c:158
int ngcbWriteFile(const char *fileName, const char *buffer, size_t size, char *erms)
Definition ngcbFile.c:96
void ngcbDebugClose(FILE *debugStream)
Definition ngcbDebug.c:99
struct stat ngcb_stat_t
Definition ngcb.h:46
void ngcbFilterInit(ngcb_ma_t *f, int size)
Definition ngcbMath.c:384
int(* ngcb_sig_t)(int how, const sigset_t *set, sigset_t *oset)
Definition ngcb.h:84
int ngcbMicroSleep(int fd, int waitTime)
Definition ngcbTime.c:290
int ngcbF2Int(const char *s, const char *filter)
Definition ngcbString.c:412
void ngcbUnmapFile(int fd, char *buffer, size_t size)
Definition ngcbFile.c:209
int ngcbRoundL(long double x)
Definition ngcbMath.c:123
int ngcbKeyGetVecFloat(const char *keyVal, float *vec, char *erms)
Definition ngcbKey.c:468
void ngcbExpand(char *path)
Definition ngcbFile.c:525
int ngcbHex2Int(const char *s, int *value)
Definition ngcbString.c:209
void ngcbCleanSpace(char *s)
Definition ngcbString.c:47
const char * ngcbGetFileExt(const char *fileName)
Definition ngcbFile.c:315
char ngcb_str32_t[32]
Definition ngcb.h:149
int ngcbExecVersion(const char *host, char *erms)
Definition ngcbExec.c:1110
void ngcbWatchdogClearCmd(FILE *wd, const char *host)
Definition ngcbMon.c:193
int ngcbFdCnt(void)
Definition ngcbFile.c:940
void(* ngcb_void_fct)(void)
Definition ngcb.h:94
double ngcbUTC2MJD(const char *utc)
Definition ngcbTime.c:215
int(* ngcb_fct)(void)
Definition ngcb.h:89
char * ngcbStr2Str(char *s1, const char *s2, size_t n)
Definition ngcbString.c:176
int ngcbF2Double(const char *s, const char *filter, double *v)
Definition ngcbString.c:526
void ngcbStr2Arg(char *s, int *argc, char **argv)
Definition ngcbString.c:156
void ngcbWatchdogClearProc(FILE *wd, const char *host)
Definition ngcbMon.c:148
void ngcbFilterDelete(ngcb_ma_t *f)
Definition ngcbMath.c:401
void ngcbMedianDelete(ngcb_rm_t *f)
Definition ngcbMath.c:473
int ngcbKeyGetNext(char *fileBuffer, int fileLen, int *pos, int *line, const char *mask, char *key, char *keyVal, char *erms)
Definition ngcbKey.c:37
void ngcbSwap4(void *buffer, size_t length)
Definition ngcbMath.c:37
int ngcbFindIndex(const char *path, int minIndex, char *erms)
Definition ngcbFile.c:656
char ngcb_str128_t[128]
Definition ngcb.h:151
int ngcbReadPerm(const char *path)
Definition ngcbFile.c:486
void ngcbInt2Bin(char *str, int in)
Definition ngcbMath.c:91
void ngcbMedianInit(ngcb_rm_t *f, int size)
Definition ngcbMath.c:443
int ngcbExecutor(int argc, char **argv)
Definition ngcbExec.c:1080
void ngcbStrPut(char *s1, const char *s2)
Definition ngcbString.c:87
int64_t ngcbRound64(double x)
Definition ngcbMath.c:129
int ngcbIsFloat(const char *s)
Definition ngcbString.c:146
void ngcbToUpper(char *s)
Definition ngcbString.c:37
int ngcbFileExists(const char *path)
Definition ngcbFile.c:419
void ngcbWatchdogClose(FILE *wd)
Definition ngcbMon.c:105
int ngcbCubeOpen(const char *fileName, ngcb_cube_t *cube, char *erms)
Definition ngcbFitsTools.c:1794
void ngcbAddSec(struct timeval *t, double seconds)
Definition ngcbTime.c:79
void ngcbTrimSpace(char *s)
Definition ngcbString.c:75
int ngcbHex2UInt16(const char *s, unsigned short *value)
Definition ngcbString.c:319
int ngcbKeyGetVecDouble(const char *keyVal, double *vec, char *erms)
Definition ngcbKey.c:500
int ngcbStr2Int16(const char *s, short *value)
Definition ngcbString.c:281
int ngcbStr2UInt(const char *s, unsigned int *value)
Definition ngcbString.c:197
int ngcbFmt2Int(const char *s, int *value)
Definition ngcbString.c:235
void ngcbTime2UTC(struct timeval t, char *utc, int precision)
Definition ngcbTime.c:156
int ngcbKeyIdx(char *key, int *nsplit, int *kval, char *erms)
Definition ngcbKey.c:375
int ngcbStr2Rpc(const char *cmd, int *delay, int *target, int *req, unsigned int *size, char *erms)
Definition ngcbRpc.c:452
void ngcbExecShell(const char *shell)
Definition ngcbExec.c:665
int ngcbSplitCube(const char *source, const char *target, int numBlocks, char *erms)
Definition ngcbFitsTools.c:262
FILE * ngcbWatchdogOpen(int verbose, char *erms)
Definition ngcbMon.c:30
int ngcbVerboseFlag
Definition ngcbDebug.c:26
double ngcbMean32(int *a, int n)
Definition ngcbMath.c:149
int ngcbHex2Int16(const char *s, short *value)
Definition ngcbString.c:305
int ngcbCube2Ext(const char *fileName, const char *extName, int numBlocks, char *erms)
Definition ngcbFitsTools.c:1282
void ngcbParentDir(char *path, const char *fileName)
Definition ngcbFile.c:334
unsigned int ngcbBin2UInt(const char *str)
Definition ngcbMath.c:75
int ngcbIsDir(const char *path)
Definition ngcbFile.c:433
int ngcbGetTime(struct timeval *t)
Definition ngcbTime.c:40
double ngcbTime2MJD(struct timeval t)
Definition ngcbTime.c:194
void ngcbWatchdogDbWrite(FILE *wd, const char *host, const char *attr, const char *value)
Definition ngcbMon.c:208
int ngcbStr2Float(const char *s, float *value)
Definition ngcbString.c:331
unsigned int ngcbF2UInt(const char *s, const char *filter)
Definition ngcbString.c:474
void ngcbWatchdogRemoveProc(FILE *wd, const char *host, int pid)
Definition ngcbMon.c:133
int ngcbMedian32(int *a, int n)
Definition ngcbMath.c:244
ssize_t ngcbWrite(int fd, const void *buffer, size_t size, char *erms)
Definition ngcbFile.c:270
int ngcbEndian(void)
Definition ngcbMath.c:18
void ngcbToLower(char *s)
Definition ngcbString.c:27
void ngcbCubeClose(ngcb_cube_t cube)
Definition ngcbFitsTools.c:2139
void ngcbRpcCopy(void *dest, const void *src, size_t size, size_t items, int how)
Definition ngcbRpc.c:71
int ngcbKill(const char *host, int pid, char *erms)
Definition ngcbExec.c:1381
long int ngcbFileSize(const char *fileName, char *erms)
Definition ngcbFile.c:136
int ngcbTaiOffset()
Definition ngcbTime.c:25
int64_t ngcbRound64L(long double x)
Definition ngcbMath.c:135
int ngcbStr2UInt16(const char *s, unsigned short *value)
Definition ngcbString.c:293
double ngcbMean16(unsigned short *a, int n)
Definition ngcbMath.c:141
void ngcbSwap2(void *buffer, size_t length)
Definition ngcbMath.c:26
int ngcbBin2Int(const char *str)
Definition ngcbMath.c:59
int ngcbExecDbg(const char *host, int *pid, const char *cmd, char *reply, int port, char *erms)
Definition ngcbExec.c:1320
double ngcbGetMJD(void)
Definition ngcbTime.c:144
int ngcbCubeRead(ngcb_cube_t cube, void *buffer, int slice, char *erms)
Definition ngcbFitsTools.c:2043
void ngcbRemoteFileClose(int fd)
Definition ngcbExec.c:1603
void ngcbMedianReset(ngcb_rm_t *f)
Definition ngcbMath.c:487
int ngcbKeySplit(char *key, int *nsplit, char **ksplit, int *val, char *erms)
Definition ngcbKey.c:300
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:734
void ngcbDiscardDetIdx(char *key)
Definition ngcbKey.c:532
int ngcbStr2PayloadItem(const char *arg, unsigned char *payload, unsigned int max, int how, char *erms)
Definition ngcbRpc.c:88
void ngcbFilterReset(ngcb_ma_t *f)
Definition ngcbMath.c:412
int ngcbStr2Int(const char *s, int *value)
Definition ngcbString.c:185
int ngcbDiskMemCreate(const char *path, int idx, unsigned int size, unsigned int chunk, char *erms)
Definition ngcbDiskMem.c:38
int ngcbStr2Double(const char *s, double *value)
Definition ngcbString.c:343
int ngcbLoadFile(const char *fileName, char *buffer, size_t *size, char *erms)
Definition ngcbFile.c:35
int ngcbKeyMaskIdx(char *key, const char *mask)
Definition ngcbKey.c:397
const char * ngcbProcName(const char *path)
Definition ngcbFile.c:349
void ngcbUInt2Bin(char *str, unsigned int in)
Definition ngcbMath.c:104
int ngcbMapFile(const char *fileName, char **buffer, size_t *size, char *erms)
Definition ngcbFile.c:160
int ngcbReplaceEnv(char *string, char *erms)
Definition ngcbString.c:108
double ngcbMeanR64(double *a, int n)
Definition ngcbMath.c:165
void ngcbExecReply(int fd, int success, const char *reply)
Definition ngcbExec.c:625
void ngcbFileBufFree(void *buffer)
Definition ngcbFile.c:925
void ngcbWatchdogAddProc(FILE *wd, const char *host, int pid)
Definition ngcbMon.c:118
int ngcbExecDaemon(int bg)
Definition ngcbExec.c:94
double ngcbFilter(ngcb_ma_t *f, double value)
Definition ngcbMath.c:419
unsigned int offset
Definition ngcb.h:1038
int naxis2
Definition ngcb.h:1041
double bzero
Definition ngcb.h:1044
double bscale
Definition ngcb.h:1043
int naxis1
Definition ngcb.h:1040
int bitPix
Definition ngcb.h:1039
int naxis3
Definition ngcb.h:1042
int fd
Definition ngcb.h:1037
int size
Definition ngcb.h:467
double * v
Definition ngcb.h:465
double m
Definition ngcb.h:466
int n
Definition ngcb.h:469
int idx
Definition ngcb.h:468
int n
Definition ngcb.h:500
int * idx
Definition ngcb.h:499
int size
Definition ngcb.h:498
int m
Definition ngcb.h:497
int * v
Definition ngcb.h:496
long tv_sec
Definition ngcb.h:208
long tv_nsec
Definition ngcb.h:209
long tv_usec
Definition ngcb.h:201
long tv_sec
Definition ngcb.h:200
struct semid_ds * buf
Definition ngcb.h:65
int val
Definition ngcb.h:64
unsigned short * array
Definition ngcb.h:66