add some tool functions
This commit is contained in:
parent
69232016cf
commit
235f93a9fd
|
@ -125,6 +125,11 @@ void taosGetSystemInfo();
|
||||||
|
|
||||||
void taosKillSystem();
|
void taosKillSystem();
|
||||||
|
|
||||||
|
int32_t BUILDIN_CLZL(uint64_t val);
|
||||||
|
int32_t BUILDIN_CLZ(uint32_t val);
|
||||||
|
int32_t BUILDIN_CTZL(uint64_t val);
|
||||||
|
int32_t BUILDIN_CTZ(uint32_t val);
|
||||||
|
|
||||||
//for signal, not dispose
|
//for signal, not dispose
|
||||||
#define SIGALRM 1234
|
#define SIGALRM 1234
|
||||||
typedef int sigset_t;
|
typedef int sigset_t;
|
||||||
|
@ -158,6 +163,10 @@ void sleep(int mseconds);
|
||||||
|
|
||||||
bool taosSkipSocketCheck();
|
bool taosSkipSocketCheck();
|
||||||
|
|
||||||
|
int fsendfile(FILE* out_file, FILE* in_file, int64_t* offset, int32_t count);
|
||||||
|
|
||||||
|
#define ssize_t int
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -198,3 +198,64 @@ bool taosSkipSocketCheck() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define _SEND_FILE_STEP_ 1000
|
||||||
|
|
||||||
|
int fsendfile(FILE* out_file, FILE* in_file, int64_t* offset, int32_t count) {
|
||||||
|
fseek(in_file, (int32_t)(*offset), 0);
|
||||||
|
int writeLen = 0;
|
||||||
|
uint8_t buffer[_SEND_FILE_STEP_] = { 0 };
|
||||||
|
|
||||||
|
for (int len = 0; len < (count - _SEND_FILE_STEP_); len += _SEND_FILE_STEP_) {
|
||||||
|
size_t rlen = fread(buffer, 1, _SEND_FILE_STEP_, in_file);
|
||||||
|
if (rlen <= 0) {
|
||||||
|
return writeLen;
|
||||||
|
}
|
||||||
|
else if (rlen < _SEND_FILE_STEP_) {
|
||||||
|
fwrite(buffer, 1, rlen, out_file);
|
||||||
|
return (int)(writeLen + rlen);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fwrite(buffer, 1, _SEND_FILE_STEP_, in_file);
|
||||||
|
writeLen += _SEND_FILE_STEP_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int remain = count - writeLen;
|
||||||
|
if (remain > 0) {
|
||||||
|
size_t rlen = fread(buffer, 1, remain, in_file);
|
||||||
|
if (rlen <= 0) {
|
||||||
|
return writeLen;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fwrite(buffer, 1, remain, out_file);
|
||||||
|
writeLen += remain;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return writeLen;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t BUILDIN_CLZL(uint64_t val) {
|
||||||
|
unsigned long r = 0;
|
||||||
|
_BitScanReverse64(&r, val);
|
||||||
|
return (int)(r >> 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t BUILDIN_CLZ(uint32_t val) {
|
||||||
|
unsigned long r = 0;
|
||||||
|
_BitScanReverse(&r, val);
|
||||||
|
return (int)(r >> 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t BUILDIN_CTZL(uint64_t val) {
|
||||||
|
unsigned long r = 0;
|
||||||
|
_BitScanForward64(&r, val);
|
||||||
|
return (int)(r >> 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t BUILDIN_CTZ(uint32_t val) {
|
||||||
|
unsigned long r = 0;
|
||||||
|
_BitScanForward(&r, val);
|
||||||
|
return (int)(r >> 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,9 +32,11 @@ ELSEIF (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||||
INCLUDE_DIRECTORIES(${TD_ROOT_DIR}/src/inc)
|
INCLUDE_DIRECTORIES(${TD_ROOT_DIR}/src/inc)
|
||||||
INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc)
|
INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc)
|
||||||
LIST(APPEND SRC ./src/ihash.c)
|
LIST(APPEND SRC ./src/ihash.c)
|
||||||
|
LIST(APPEND SRC ./src/lz4.c)
|
||||||
LIST(APPEND SRC ./src/shash.c)
|
LIST(APPEND SRC ./src/shash.c)
|
||||||
LIST(APPEND SRC ./src/sql.c)
|
LIST(APPEND SRC ./src/sql.c)
|
||||||
LIST(APPEND SRC ./src/tbase64.c)
|
LIST(APPEND SRC ./src/tbase64.c)
|
||||||
|
LIST(APPEND SRC ./src/tcompression.c)
|
||||||
LIST(APPEND SRC ./src/tcache.c)
|
LIST(APPEND SRC ./src/tcache.c)
|
||||||
LIST(APPEND SRC ./src/textbuffer.c)
|
LIST(APPEND SRC ./src/textbuffer.c)
|
||||||
LIST(APPEND SRC ./src/tglobalcfg.c)
|
LIST(APPEND SRC ./src/tglobalcfg.c)
|
||||||
|
|
Loading…
Reference in New Issue