add some tool functions
This commit is contained in:
parent
69232016cf
commit
235f93a9fd
|
@ -125,6 +125,11 @@ void taosGetSystemInfo();
|
|||
|
||||
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
|
||||
#define SIGALRM 1234
|
||||
typedef int sigset_t;
|
||||
|
@ -158,6 +163,10 @@ void sleep(int mseconds);
|
|||
|
||||
bool taosSkipSocketCheck();
|
||||
|
||||
int fsendfile(FILE* out_file, FILE* in_file, int64_t* offset, int32_t count);
|
||||
|
||||
#define ssize_t int
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -198,3 +198,64 @@ bool taosSkipSocketCheck() {
|
|||
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_OS_DIR}/inc)
|
||||
LIST(APPEND SRC ./src/ihash.c)
|
||||
LIST(APPEND SRC ./src/lz4.c)
|
||||
LIST(APPEND SRC ./src/shash.c)
|
||||
LIST(APPEND SRC ./src/sql.c)
|
||||
LIST(APPEND SRC ./src/tbase64.c)
|
||||
LIST(APPEND SRC ./src/tcompression.c)
|
||||
LIST(APPEND SRC ./src/tcache.c)
|
||||
LIST(APPEND SRC ./src/textbuffer.c)
|
||||
LIST(APPEND SRC ./src/tglobalcfg.c)
|
||||
|
|
Loading…
Reference in New Issue