SYMBOL INDEX (13213 symbols across 1008 files) FILE: Chapter01/codes/TestRAII1/TestRAII4.cpp class ServerSocket (line 7) | class ServerSocket method ServerSocket (line 10) | ServerSocket() method DoInit (line 25) | bool DoInit() method DoBind (line 47) | bool DoBind(const char* ip, short port = 6000) method DoListen (line 59) | bool DoListen(int backlog = 15) method DoAccept (line 67) | bool DoAccept() function main (line 92) | int main(int argc, char* argv[]) FILE: Chapter01/codes/construct_complex_objects.cpp type jsonType (line 11) | enum class jsonType type jsonNode (line 23) | struct jsonNode method jsonNode (line 25) | jsonNode(const char* key, const char* value) : method jsonNode (line 33) | jsonNode(const char* key, double value) : class json (line 46) | class json method json (line 49) | static json& array(std::initializer_list nodes) method json (line 59) | json() method toString (line 69) | std::string toString() function main (line 92) | int main() FILE: Chapter01/codes/test_auto_ptr.cpp function main (line 7) | int main() FILE: Chapter01/codes/test_custom_foreach_loop.cpp class A (line 5) | class A method A (line 8) | A() method T (line 21) | T* begin() method T (line 26) | T* end() function main (line 35) | int main() FILE: Chapter01/codes/test_initializer_list.cpp class A (line 5) | class A method A (line 8) | A(std::initializer_list integers) method append (line 18) | void append(std::initializer_list integers) method print (line 23) | void print() function main (line 36) | int main() FILE: Chapter01/codes/test_map_insert_or_assign.cpp class ChatDialog (line 9) | class ChatDialog method ChatDialog (line 13) | ChatDialog(int64_t userid) : m_userid(userid) method activate (line 23) | void activate() function onDoubleClickFriendItem3 (line 36) | void onDoubleClickFriendItem3(int64_t userid) function main (line 56) | int main() FILE: Chapter01/codes/test_map_try_emplace.cpp class ChatDialog (line 7) | class ChatDialog method activate (line 11) | void activate() function onDoubleClickFriendItem (line 21) | void onDoubleClickFriendItem(int64_t userid) function onDoubleClickFriendItem2 (line 39) | void onDoubleClickFriendItem2(int64_t userid) function main (line 49) | int main() FILE: Chapter01/codes/test_map_try_emplace_with_directobject.cpp class ChatDialog (line 9) | class ChatDialog method ChatDialog (line 13) | ChatDialog(int64_t userid) : m_userid(userid) method activate (line 23) | void activate() function onDoubleClickFriendItem3 (line 36) | void onDoubleClickFriendItem3(int64_t userid) function main (line 43) | int main() FILE: Chapter01/codes/test_map_try_emplace_with_smartpointer.cpp class ChatDialog (line 10) | class ChatDialog method ChatDialog (line 14) | ChatDialog() method activate (line 24) | void activate() function onDoubleClickFriendItem3 (line 34) | void onDoubleClickFriendItem3(int64_t userid) function main (line 42) | int main() FILE: Chapter01/codes/test_map_try_emplace_with_smartpointer2.cpp class ChatDialog (line 10) | class ChatDialog method ChatDialog (line 14) | ChatDialog() method activate (line 24) | void activate() function onDoubleClickFriendItem3 (line 34) | void onDoubleClickFriendItem3(int64_t userid) function main (line 48) | int main() FILE: Chapter01/codes/test_shared_ptr_use_count.cpp class A (line 7) | class A method A (line 10) | A() function main (line 21) | int main() FILE: Chapter01/codes/test_std_enable_shared_from_this.cpp class A (line 5) | class A : public std::enable_shared_from_this method A (line 8) | A() method getSelf (line 18) | std::shared_ptr getSelf() function main (line 25) | int main() FILE: Chapter01/codes/test_std_enable_shared_from_this_problem.cpp class A (line 6) | class A : public std::enable_shared_from_this method A (line 9) | A() method func (line 26) | void func() function main (line 37) | int main() FILE: Chapter01/codes/test_unique_ptr.cpp function main (line 7) | int main() FILE: Chapter01/codes/test_unique_ptr_deletor.cpp class Socket (line 4) | class Socket method Socket (line 7) | Socket() method close (line 18) | void close() function main (line 24) | int main() FILE: Chapter01/codes/test_unique_ptr_with_array.cpp function main (line 4) | int main() FILE: Chapter01/codes/test_weak_ptr.cpp function main (line 7) | int main() FILE: Chapter02/codes/main.cpp function main (line 32) | int main() FILE: Chapter02/redis-6.0.3/deps/hiredis/adapters/ae.h type redisAeEvents (line 38) | typedef struct redisAeEvents { function redisAeReadEvent (line 45) | static void redisAeReadEvent(aeEventLoop *el, int fd, void *privdata, in... function redisAeWriteEvent (line 52) | static void redisAeWriteEvent(aeEventLoop *el, int fd, void *privdata, i... function redisAeAddRead (line 59) | static void redisAeAddRead(void *privdata) { function redisAeDelRead (line 68) | static void redisAeDelRead(void *privdata) { function redisAeAddWrite (line 77) | static void redisAeAddWrite(void *privdata) { function redisAeDelWrite (line 86) | static void redisAeDelWrite(void *privdata) { function redisAeCleanup (line 95) | static void redisAeCleanup(void *privdata) { function redisAeAttach (line 102) | static int redisAeAttach(aeEventLoop *loop, redisAsyncContext *ac) { FILE: Chapter02/redis-6.0.3/deps/hiredis/adapters/glib.h type RedisSource (line 9) | typedef struct function redis_source_add_read (line 16) | static void function redis_source_del_read (line 25) | static void function redis_source_add_write (line 34) | static void function redis_source_del_write (line 43) | static void function redis_source_cleanup (line 52) | static void function gboolean (line 71) | static gboolean function gboolean (line 80) | static gboolean function gboolean (line 87) | static gboolean function redis_source_finalize (line 111) | static void function GSource (line 122) | static GSource * FILE: Chapter02/redis-6.0.3/deps/hiredis/adapters/ivykis.h type redisIvykisEvents (line 7) | typedef struct redisIvykisEvents { function redisIvykisReadEvent (line 12) | static void redisIvykisReadEvent(void *arg) { function redisIvykisWriteEvent (line 17) | static void redisIvykisWriteEvent(void *arg) { function redisIvykisAddRead (line 22) | static void redisIvykisAddRead(void *privdata) { function redisIvykisDelRead (line 27) | static void redisIvykisDelRead(void *privdata) { function redisIvykisAddWrite (line 32) | static void redisIvykisAddWrite(void *privdata) { function redisIvykisDelWrite (line 37) | static void redisIvykisDelWrite(void *privdata) { function redisIvykisCleanup (line 42) | static void redisIvykisCleanup(void *privdata) { function redisIvykisAttach (line 49) | static int redisIvykisAttach(redisAsyncContext *ac) { FILE: Chapter02/redis-6.0.3/deps/hiredis/adapters/libev.h type redisLibevEvents (line 39) | typedef struct redisLibevEvents { function redisLibevReadEvent (line 46) | static void redisLibevReadEvent(EV_P_ ev_io *watcher, int revents) { function redisLibevWriteEvent (line 56) | static void redisLibevWriteEvent(EV_P_ ev_io *watcher, int revents) { function redisLibevAddRead (line 66) | static void redisLibevAddRead(void *privdata) { function redisLibevDelRead (line 76) | static void redisLibevDelRead(void *privdata) { function redisLibevAddWrite (line 86) | static void redisLibevAddWrite(void *privdata) { function redisLibevDelWrite (line 96) | static void redisLibevDelWrite(void *privdata) { function redisLibevCleanup (line 106) | static void redisLibevCleanup(void *privdata) { function redisLibevAttach (line 113) | static int redisLibevAttach(EV_P_ redisAsyncContext *ac) { FILE: Chapter02/redis-6.0.3/deps/hiredis/adapters/libevent.h type redisLibeventEvents (line 40) | typedef struct redisLibeventEvents { function redisLibeventDestroy (line 49) | static void redisLibeventDestroy(redisLibeventEvents *e) { function redisLibeventHandler (line 53) | static void redisLibeventHandler(int fd, short event, void *arg) { function redisLibeventUpdate (line 82) | static void redisLibeventUpdate(void *privdata, short flag, int isRemove) { function redisLibeventAddRead (line 106) | static void redisLibeventAddRead(void *privdata) { function redisLibeventDelRead (line 110) | static void redisLibeventDelRead(void *privdata) { function redisLibeventAddWrite (line 114) | static void redisLibeventAddWrite(void *privdata) { function redisLibeventDelWrite (line 118) | static void redisLibeventDelWrite(void *privdata) { function redisLibeventCleanup (line 122) | static void redisLibeventCleanup(void *privdata) { function redisLibeventSetTimeout (line 138) | static void redisLibeventSetTimeout(void *privdata, struct timeval tv) { function redisLibeventAttach (line 146) | static int redisLibeventAttach(redisAsyncContext *ac, struct event_base ... FILE: Chapter02/redis-6.0.3/deps/hiredis/adapters/libuv.h type redisLibuvEvents (line 9) | typedef struct redisLibuvEvents { function redisLibuvPoll (line 16) | static void redisLibuvPoll(uv_poll_t* handle, int status, int events) { function redisLibuvAddRead (line 29) | static void redisLibuvAddRead(void *privdata) { function redisLibuvDelRead (line 38) | static void redisLibuvDelRead(void *privdata) { function redisLibuvAddWrite (line 51) | static void redisLibuvAddWrite(void *privdata) { function redisLibuvDelWrite (line 60) | static void redisLibuvDelWrite(void *privdata) { function on_close (line 73) | static void on_close(uv_handle_t* handle) { function redisLibuvCleanup (line 80) | static void redisLibuvCleanup(void *privdata) { function redisLibuvAttach (line 88) | static int redisLibuvAttach(redisAsyncContext* ac, uv_loop_t* loop) { FILE: Chapter02/redis-6.0.3/deps/hiredis/adapters/macosx.h type RedisRunLoop (line 14) | typedef struct { function freeRedisRunLoop (line 20) | static int freeRedisRunLoop(RedisRunLoop* redisRunLoop) { function redisMacOSAddRead (line 35) | static void redisMacOSAddRead(void *privdata) { function redisMacOSDelRead (line 40) | static void redisMacOSDelRead(void *privdata) { function redisMacOSAddWrite (line 45) | static void redisMacOSAddWrite(void *privdata) { function redisMacOSDelWrite (line 50) | static void redisMacOSDelWrite(void *privdata) { function redisMacOSCleanup (line 55) | static void redisMacOSCleanup(void *privdata) { function redisMacOSAsyncCallback (line 60) | static void redisMacOSAsyncCallback(CFSocketRef __unused s, CFSocketCall... function redisMacOSAttach (line 77) | static int redisMacOSAttach(redisAsyncContext *redisAsyncCtx, CFRunLoopR... FILE: Chapter02/redis-6.0.3/deps/hiredis/adapters/qt.h function class (line 37) | class RedisQtAdapter : public QObject { FILE: Chapter02/redis-6.0.3/deps/hiredis/async.c function callbackHash (line 53) | static unsigned int callbackHash(const void *key) { function callbackKeyCompare (line 65) | static int callbackKeyCompare(void *privdata, const void *key1, const vo... function callbackKeyDestructor (line 75) | static void callbackKeyDestructor(void *privdata, void *key) { function callbackValDestructor (line 80) | static void callbackValDestructor(void *privdata, void *val) { function redisAsyncContext (line 94) | static redisAsyncContext *redisAsyncInitialize(redisContext *c) { function __redisAsyncCopyError (line 134) | static void __redisAsyncCopyError(redisAsyncContext *ac) { function redisAsyncContext (line 143) | redisAsyncContext *redisAsyncConnectWithOptions(const redisOptions *opti... function redisAsyncContext (line 162) | redisAsyncContext *redisAsyncConnect(const char *ip, int port) { function redisAsyncContext (line 168) | redisAsyncContext *redisAsyncConnectBind(const char *ip, int port, function redisAsyncContext (line 176) | redisAsyncContext *redisAsyncConnectBindWithReuse(const char *ip, int port, function redisAsyncContext (line 185) | redisAsyncContext *redisAsyncConnectUnix(const char *path) { function redisAsyncSetConnectCallback (line 191) | int redisAsyncSetConnectCallback(redisAsyncContext *ac, redisConnectCall... function redisAsyncSetDisconnectCallback (line 204) | int redisAsyncSetDisconnectCallback(redisAsyncContext *ac, redisDisconne... function __redisPushCallback (line 213) | static int __redisPushCallback(redisCallbackList *list, redisCallback *s... function __redisShiftCallback (line 235) | static int __redisShiftCallback(redisCallbackList *list, redisCallback *... function __redisRunCallback (line 251) | static void __redisRunCallback(redisAsyncContext *ac, redisCallback *cb,... function __redisAsyncFree (line 261) | static void __redisAsyncFree(redisAsyncContext *ac) { function redisAsyncFree (line 309) | void redisAsyncFree(redisAsyncContext *ac) { function __redisAsyncDisconnect (line 317) | void __redisAsyncDisconnect(redisAsyncContext *ac) { function redisAsyncDisconnect (line 350) | void redisAsyncDisconnect(redisAsyncContext *ac) { function __redisGetSubscribeCallback (line 360) | static int __redisGetSubscribeCallback(redisAsyncContext *ac, redisReply... function redisProcessCallbacks (line 420) | void redisProcessCallbacks(redisAsyncContext *ac) { function __redisAsyncHandleConnect (line 503) | static int __redisAsyncHandleConnect(redisAsyncContext *ac) { function redisAsyncRead (line 522) | void redisAsyncRead(redisAsyncContext *ac) { function redisAsyncHandleRead (line 537) | void redisAsyncHandleRead(redisAsyncContext *ac) { function redisAsyncWrite (line 552) | void redisAsyncWrite(redisAsyncContext *ac) { function redisAsyncHandleWrite (line 570) | void redisAsyncHandleWrite(redisAsyncContext *ac) { function redisAsyncHandleTimeout (line 587) | void redisAsyncHandleTimeout(redisAsyncContext *ac) { function __redisAsyncCommand (line 634) | static int __redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *f... function redisvAsyncCommand (line 714) | int redisvAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void ... function redisAsyncCommand (line 729) | int redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *... function redisAsyncCommandArgv (line 738) | int redisAsyncCommandArgv(redisAsyncContext *ac, redisCallbackFn *fn, vo... function redisAsyncFormattedCommand (line 750) | int redisAsyncFormattedCommand(redisAsyncContext *ac, redisCallbackFn *f... function redisAsyncSetTimeout (line 755) | void redisAsyncSetTimeout(redisAsyncContext *ac, struct timeval tv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/async.h type redisAsyncContext (line 40) | struct redisAsyncContext type dict (line 41) | struct dict type redisAsyncContext (line 44) | struct redisAsyncContext type redisCallback (line 45) | typedef struct redisCallback { type redisCallbackList (line 53) | typedef struct redisCallbackList { type redisAsyncContext (line 58) | struct redisAsyncContext type redisAsyncContext (line 59) | struct redisAsyncContext type redisAsyncContext (line 63) | typedef struct redisAsyncContext { type timeval (line 120) | struct timeval FILE: Chapter02/redis-6.0.3/deps/hiredis/async_private.h function refreshTimeout (line 56) | static inline void refreshTimeout(redisAsyncContext *ctx) { FILE: Chapter02/redis-6.0.3/deps/hiredis/dict.c function dictGenHashFunction (line 53) | static unsigned int dictGenHashFunction(const unsigned char *buf, int le... function _dictReset (line 65) | static void _dictReset(dict *ht) { function dict (line 73) | static dict *dictCreate(dictType *type, void *privDataPtr) { function _dictInit (line 80) | static int _dictInit(dict *ht, dictType *type, void *privDataPtr) { function dictExpand (line 88) | static int dictExpand(dict *ht, unsigned long size) { function dictAdd (line 135) | static int dictAdd(dict *ht, void *key, void *val) { function dictReplace (line 160) | static int dictReplace(dict *ht, void *key, void *val) { function dictDelete (line 182) | static int dictDelete(dict *ht, const void *key) { function _dictClear (line 213) | static int _dictClear(dict *ht) { function dictRelease (line 238) | static void dictRelease(dict *ht) { function dictEntry (line 243) | static dictEntry *dictFind(dict *ht, const void *key) { function dictIterator (line 258) | static dictIterator *dictGetIterator(dict *ht) { function dictEntry (line 268) | static dictEntry *dictNext(dictIterator *iter) { function dictReleaseIterator (line 288) | static void dictReleaseIterator(dictIterator *iter) { function _dictExpandIfNeeded (line 295) | static int _dictExpandIfNeeded(dict *ht) { function _dictNextPower (line 306) | static unsigned long _dictNextPower(unsigned long size) { function _dictKeyIndex (line 320) | static int _dictKeyIndex(dict *ht, const void *key) { FILE: Chapter02/redis-6.0.3/deps/hiredis/dict.h type dictEntry (line 45) | typedef struct dictEntry { type dictType (line 51) | typedef struct dictType { type dict (line 60) | typedef struct dict { type dictIterator (line 69) | typedef struct dictIterator { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-ae.c function getCallback (line 13) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 22) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 32) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 43) | int main (int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-glib.c function connect_cb (line 9) | static void function disconnect_cb (line 21) | static void function command_cb (line 33) | static void function gint (line 47) | gint FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-ivykis.c function getCallback (line 10) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 19) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 27) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 35) | int main (int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-libev.c function getCallback (line 10) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 19) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 27) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 35) | int main (int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-libevent-ssl.c function getCallback (line 11) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 20) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 28) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 36) | int main (int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-libevent.c function getCallback (line 10) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 24) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 32) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 40) | int main (int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-libuv.c function getCallback (line 10) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 19) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 27) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 35) | int main (int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-macosx.c function getCallback (line 12) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 21) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 29) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 38) | int main (int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-qt.cpp function getCallback (line 9) | void getCallback(redisAsyncContext *, void * r, void * privdata) { function main (line 36) | int main (int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-qt.h function class (line 6) | class ExampleQt : public QObject { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example-ssl.c function main (line 8) | int main(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/examples/example.c function main (line 7) | int main(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/hiredis.c function redisReply (line 76) | static redisReply *createReplyObject(int type) { function freeReplyObject (line 87) | void freeReplyObject(void *reply) { function countDigits (line 279) | static uint32_t countDigits(uint64_t v) { function bulklen (line 292) | static size_t bulklen(size_t len) { function redisvFormatCommand (line 296) | int redisvFormatCommand(char **target, const char *format, va_list ap) { function redisFormatCommand (line 538) | int redisFormatCommand(char **target, const char *format, ...) { function redisFormatSdsCommandArgv (line 559) | int redisFormatSdsCommandArgv(sds *target, int argc, const char **argv, function redisFreeSdsCommand (line 603) | void redisFreeSdsCommand(sds cmd) { function redisFormatCommandArgv (line 612) | int redisFormatCommandArgv(char **target, int argc, const char **argv, c... function redisFreeCommand (line 650) | void redisFreeCommand(char *cmd) { function __redisSetError (line 654) | void __redisSetError(redisContext *c, int type, const char *str) { function redisReader (line 670) | redisReader *redisReaderCreate(void) { function redisContext (line 674) | static redisContext *redisContextInit(const redisOptions *options) { function redisFree (line 694) | void redisFree(redisContext *c) { function redisFD (line 713) | redisFD redisFreeKeepFd(redisContext *c) { function redisReconnect (line 720) | int redisReconnect(redisContext *c) { function redisContext (line 751) | redisContext *redisConnectWithOptions(const redisOptions *options) { function redisContext (line 789) | redisContext *redisConnect(const char *ip, int port) { function redisContext (line 795) | redisContext *redisConnectWithTimeout(const char *ip, int port, const st... function redisContext (line 802) | redisContext *redisConnectNonBlock(const char *ip, int port) { function redisContext (line 809) | redisContext *redisConnectBindNonBlock(const char *ip, int port, function redisContext (line 818) | redisContext *redisConnectBindNonBlockWithReuse(const char *ip, int port, function redisContext (line 827) | redisContext *redisConnectUnix(const char *path) { function redisContext (line 833) | redisContext *redisConnectUnixWithTimeout(const char *path, const struct... function redisContext (line 840) | redisContext *redisConnectUnixNonBlock(const char *path) { function redisContext (line 847) | redisContext *redisConnectFd(redisFD fd) { function redisSetTimeout (line 855) | int redisSetTimeout(redisContext *c, const struct timeval tv) { function redisEnableKeepAlive (line 862) | int redisEnableKeepAlive(redisContext *c) { function redisBufferRead (line 873) | int redisBufferRead(redisContext *c) { function redisBufferWrite (line 903) | int redisBufferWrite(redisContext *c, int *done) { function redisGetReplyFromReader (line 928) | int redisGetReplyFromReader(redisContext *c, void **reply) { function redisGetReply (line 936) | int redisGetReply(redisContext *c, void **reply) { function __redisAppendCommand (line 973) | int __redisAppendCommand(redisContext *c, const char *cmd, size_t len) { function redisAppendFormattedCommand (line 986) | int redisAppendFormattedCommand(redisContext *c, const char *cmd, size_t... function redisvAppendCommand (line 995) | int redisvAppendCommand(redisContext *c, const char *format, va_list ap) { function redisAppendCommand (line 1017) | int redisAppendCommand(redisContext *c, const char *format, ...) { function redisAppendCommandArgv (line 1027) | int redisAppendCommandArgv(redisContext *c, int argc, const char **argv,... FILE: Chapter02/redis-6.0.3/deps/hiredis/hiredis.h type timeval (line 41) | struct timeval type redisReply (line 98) | typedef struct redisReply { type redisConnectionType (line 124) | enum redisConnectionType { type redisSsl (line 130) | struct redisSsl type redisFD (line 146) | typedef int redisFD; type redisFD (line 150) | typedef unsigned long long redisFD; type redisFD (line 152) | typedef unsigned long redisFD; type redisOptions (line 157) | typedef struct { type redisAsyncContext (line 195) | struct redisAsyncContext type redisContext (line 196) | struct redisContext type redisContextFuncs (line 198) | typedef struct redisContextFuncs { type redisContext (line 207) | typedef struct redisContext { type timeval (line 240) | struct timeval type timeval (line 247) | struct timeval type timeval (line 262) | struct timeval FILE: Chapter02/redis-6.0.3/deps/hiredis/hiredis_ssl.h type ssl_st (line 38) | struct ssl_st type ssl_st (line 51) | struct ssl_st FILE: Chapter02/redis-6.0.3/deps/hiredis/net.c function redisNetClose (line 53) | void redisNetClose(redisContext *c) { function redisNetRead (line 60) | int redisNetRead(redisContext *c, char *buf, size_t bufcap) { function redisNetWrite (line 82) | int redisNetWrite(redisContext *c) { function __redisSetErrorFromErrno (line 95) | static void __redisSetErrorFromErrno(redisContext *c, int type, const ch... function redisSetReuseAddr (line 106) | static int redisSetReuseAddr(redisContext *c) { function redisCreateSocket (line 116) | static int redisCreateSocket(redisContext *c, int type) { function redisSetBlocking (line 131) | static int redisSetBlocking(redisContext *c, int blocking) { function redisKeepAlive (line 165) | int redisKeepAlive(redisContext *c, int interval) { function redisSetTcpNoDelay (line 206) | static int redisSetTcpNoDelay(redisContext *c) { function redisContextTimeoutMsec (line 218) | static int redisContextTimeoutMsec(redisContext *c, long *result) function redisContextWaitReady (line 241) | static int redisContextWaitReady(redisContext *c, long msec) { function redisCheckConnectDone (line 274) | int redisCheckConnectDone(redisContext *c, int *completed) { function redisCheckSocketError (line 294) | int redisCheckSocketError(redisContext *c) { function redisContextSetTimeout (line 316) | int redisContextSetTimeout(redisContext *c, const struct timeval tv) { function _redisContextConnectTcp (line 335) | static int _redisContextConnectTcp(redisContext *c, const char *addr, in... function redisContextConnectTcp (line 505) | int redisContextConnectTcp(redisContext *c, const char *addr, int port, function redisContextConnectBindTcp (line 510) | int redisContextConnectBindTcp(redisContext *c, const char *addr, int port, function redisContextConnectUnix (line 516) | int redisContextConnectUnix(redisContext *c, const char *path, const str... FILE: Chapter02/redis-6.0.3/deps/hiredis/net.h type timeval (line 45) | struct timeval type timeval (line 46) | struct timeval type timeval (line 48) | struct timeval type timeval (line 50) | struct timeval FILE: Chapter02/redis-6.0.3/deps/hiredis/read.c function __redisReaderSetError (line 49) | static void __redisReaderSetError(redisReader *r, int type, const char *... function chrtos (line 73) | static size_t chrtos(char *buf, size_t size, char byte) { function __redisReaderSetErrorProtocolByte (line 97) | static void __redisReaderSetErrorProtocolByte(redisReader *r, char byte) { function __redisReaderSetErrorOOM (line 106) | static void __redisReaderSetErrorOOM(redisReader *r) { function string2ll (line 159) | static int string2ll(const char *s, size_t slen, long long *value) { function moveToNextTask (line 237) | static void moveToNextTask(redisReader *r) { function processLineItem (line 264) | static int processLineItem(redisReader *r) { function processBulkItem (line 346) | static int processBulkItem(redisReader *r) { function processAggregateItem (line 419) | static int processAggregateItem(redisReader *r) { function processItem (line 497) | static int processItem(redisReader *r) { function redisReader (line 570) | redisReader *redisReaderCreateWithFunctions(redisReplyObjectFunctions *f... function redisReaderFree (line 589) | void redisReaderFree(redisReader *r) { function redisReaderFeed (line 598) | int redisReaderFeed(redisReader *r, const char *buf, size_t len) { function redisReaderGetReply (line 630) | int redisReaderGetReply(redisReader *r, void **reply) { FILE: Chapter02/redis-6.0.3/deps/hiredis/read.h type redisReadTask (line 72) | typedef struct redisReadTask { type redisReplyObjectFunctions (line 81) | typedef struct redisReplyObjectFunctions { type redisReader (line 91) | typedef struct redisReader { FILE: Chapter02/redis-6.0.3/deps/hiredis/sds.c function sdsHdrSize (line 41) | static inline int sdsHdrSize(char type) { function sdsReqType (line 57) | static inline char sdsReqType(size_t string_size) { function sds (line 81) | sds sdsnewlen(const void *init, size_t initlen) { function sds (line 139) | sds sdsempty(void) { function sds (line 144) | sds sdsnew(const char *init) { function sds (line 150) | sds sdsdup(const sds s) { function sdsfree (line 155) | void sdsfree(sds s) { function sdsupdatelen (line 174) | void sdsupdatelen(sds s) { function sdsclear (line 183) | void sdsclear(sds s) { function sds (line 194) | sds sdsMakeRoomFor(sds s, size_t addlen) { function sds (line 248) | sds sdsRemoveFreeSpace(sds s) { function sdsAllocSize (line 281) | size_t sdsAllocSize(sds s) { function sdsIncrLen (line 315) | void sdsIncrLen(sds s, int incr) { function sds (line 361) | sds sdsgrowzero(sds s, size_t len) { function sds (line 379) | sds sdscatlen(sds s, const void *t, size_t len) { function sds (line 394) | sds sdscat(sds s, const char *t) { function sds (line 402) | sds sdscatsds(sds s, const sds t) { function sds (line 408) | sds sdscpylen(sds s, const char *t, size_t len) { function sds (line 421) | sds sdscpy(sds s, const char *t) { function sdsll2str (line 432) | int sdsll2str(char *s, long long value) { function sdsull2str (line 464) | int sdsull2str(char *s, unsigned long long v) { function sds (line 496) | sds sdsfromlonglong(long long value) { function sds (line 504) | sds sdscatvprintf(sds s, const char *fmt, va_list ap) { function sds (line 557) | sds sdscatprintf(sds s, const char *fmt, ...) { function sds (line 582) | sds sdscatfmt(sds s, char const *fmt, ...) { function sds (line 692) | sds sdstrim(sds s, const char *cset) { function sdsrange (line 723) | void sdsrange(sds s, int start, int end) { function sdstolower (line 752) | void sdstolower(sds s) { function sdstoupper (line 759) | void sdstoupper(sds s) { function sdscmp (line 776) | int sdscmp(const sds s1, const sds s2) { function sds (line 804) | sds *sdssplitlen(const char *s, int len, const char *sep, int seplen, in... function sdsfreesplitres (line 854) | void sdsfreesplitres(sds *tokens, int count) { function sds (line 867) | sds sdscatrepr(sds s, const char *p, size_t len) { function is_hex_digit (line 894) | int is_hex_digit(char c) { function hex_digit_to_int (line 901) | int hex_digit_to_int(char c) { function sds (line 942) | sds *sdssplitargs(const char *line, int *argc) { function sds (line 1069) | sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen) { function sds (line 1085) | sds sdsjoin(char **argv, int argc, char *sep) { function sds (line 1097) | sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen) { function sds_free (line 1115) | void sds_free(void *ptr) { s_free(ptr); } function sdsTest (line 1123) | int sdsTest(void) { function main (line 1288) | int main(void) { FILE: Chapter02/redis-6.0.3/deps/hiredis/sds.h type sdshdr5 (line 49) | struct __attribute__ ((__packed__)) sdshdr5 { type sdshdr8 (line 53) | struct __attribute__ ((__packed__)) sdshdr8 { type sdshdr16 (line 59) | struct __attribute__ ((__packed__)) sdshdr16 { type sdshdr32 (line 65) | struct __attribute__ ((__packed__)) sdshdr32 { type sdshdr64 (line 71) | struct __attribute__ ((__packed__)) sdshdr64 { function sdslen (line 89) | static inline size_t sdslen(const sds s) { function sdsavail (line 106) | static inline size_t sdsavail(const sds s) { function sdssetlen (line 132) | static inline void sdssetlen(sds s, size_t newlen) { function sdsinclen (line 156) | static inline void sdsinclen(sds s, size_t inc) { function sdsalloc (line 182) | static inline size_t sdsalloc(const sds s) { function sdssetalloc (line 199) | static inline void sdssetalloc(sds s, size_t newlen) { FILE: Chapter02/redis-6.0.3/deps/hiredis/sockcompat.c function _wsaErrorToErrno (line 35) | static int _wsaErrorToErrno(int err) { function _updateErrno (line 97) | static void _updateErrno(int success) { function _initWinsock (line 101) | static int _initWinsock() { function win32_getaddrinfo (line 115) | int win32_getaddrinfo(const char *node, const char *service, const struc... function win32_freeaddrinfo (line 149) | void win32_freeaddrinfo(struct addrinfo *res) { function SOCKET (line 153) | SOCKET win32_socket(int domain, int type, int protocol) { function win32_ioctl (line 165) | int win32_ioctl(SOCKET fd, unsigned long request, unsigned long *argp) { function win32_bind (line 171) | int win32_bind(SOCKET sockfd, const struct sockaddr *addr, socklen_t add... function win32_connect (line 177) | int win32_connect(SOCKET sockfd, const struct sockaddr *addr, socklen_t ... function win32_getsockopt (line 191) | int win32_getsockopt(SOCKET sockfd, int level, int optname, void *optval... function win32_setsockopt (line 212) | int win32_setsockopt(SOCKET sockfd, int level, int optname, const void *... function win32_close (line 225) | int win32_close(SOCKET fd) { function win32_recv (line 231) | ssize_t win32_recv(SOCKET sockfd, void *buf, size_t len, int flags) { function win32_send (line 237) | ssize_t win32_send(SOCKET sockfd, const void *buf, size_t len, int flags) { function win32_poll (line 243) | int win32_poll(struct pollfd *fds, nfds_t nfds, int timeout) { FILE: Chapter02/redis-6.0.3/deps/hiredis/sockcompat.h type addrinfo (line 58) | struct addrinfo type addrinfo (line 58) | struct addrinfo type addrinfo (line 60) | struct addrinfo type sockaddr (line 63) | struct sockaddr type sockaddr (line 64) | struct sockaddr type ULONG (line 70) | typedef ULONG nfds_t; type pollfd (line 71) | struct pollfd FILE: Chapter02/redis-6.0.3/deps/hiredis/ssl.c type redisSSLContext (line 49) | typedef struct redisSSLContext { function sslLogCallback (line 84) | static void sslLogCallback(const SSL *ssl, int where, int ret) { type pthread_mutex_t (line 122) | typedef pthread_mutex_t sslLockType; function sslLockInit (line 123) | static void sslLockInit(sslLockType *l) { function sslLockAcquire (line 126) | static void sslLockAcquire(sslLockType *l) { function sslLockRelease (line 129) | static void sslLockRelease(sslLockType *l) { function opensslDoLock (line 134) | static void opensslDoLock(int mode, int lkid, const char *f, int line) { function initOpensslLocks (line 147) | static void initOpensslLocks(void) { function redisSSLConnect (line 166) | static int redisSSLConnect(redisContext *c, SSL_CTX *ssl_ctx, SSL *ssl) { function redisInitiateSSL (line 209) | int redisInitiateSSL(redisContext *c, SSL *ssl) { function redisSecureConnection (line 213) | int redisSecureConnection(redisContext *c, const char *capath, function maybeCheckWant (line 282) | static int maybeCheckWant(redisSSLContext *rssl, int rv) { function redisSSLFreeContext (line 302) | static void redisSSLFreeContext(void *privdata){ function redisSSLRead (line 317) | static int redisSSLRead(redisContext *c, char *buf, size_t bufcap) { function redisSSLWrite (line 359) | static int redisSSLWrite(redisContext *c) { function redisSSLAsyncRead (line 381) | static void redisSSLAsyncRead(redisAsyncContext *ac) { function redisSSLAsyncWrite (line 411) | static void redisSSLAsyncWrite(redisAsyncContext *ac) { FILE: Chapter02/redis-6.0.3/deps/hiredis/test.c type connection_type (line 21) | enum connection_type { type config (line 28) | struct config { function usec (line 55) | static long long usec(void) { function redisContext (line 68) | static redisContext *select_database(redisContext *c) { function disconnect (line 90) | static int disconnect(redisContext *c, int keep_fd) { function do_ssl_handshake (line 108) | static void do_ssl_handshake(redisContext *c, struct config config) { function redisContext (line 122) | static redisContext *do_connect(struct config config) { function do_reconnect (line 159) | static void do_reconnect(redisContext *c, struct config config) { function test_format_commands (line 167) | static void test_format_commands(void) { function test_append_formatted_commands (line 287) | static void test_append_formatted_commands(struct config config) { function test_reply_reader (line 309) | static void test_reply_reader(void) { function test_free_null (line 464) | static void test_free_null(void) { function test_blocking_connection_errors (line 478) | static void test_blocking_connection_errors(void) { function test_blocking_connection (line 519) | static void test_blocking_connection(struct config config) { function test_blocking_connection_timeouts (line 597) | static void test_blocking_connection_timeouts(struct config config) { function test_blocking_io_errors (line 644) | static void test_blocking_io_errors(struct config config) { function test_invalid_timeout_errors (line 695) | static void test_invalid_timeout_errors(struct config config) { function test_throughput (line 719) | static void test_throughput(struct config config) { function main (line 907) | int main(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/hiredis/win32.h function c99_vsnprintf (line 26) | __inline int c99_vsnprintf(char* str, size_t size, const char* format, v... function c99_snprintf (line 38) | __inline int c99_snprintf(char* str, size_t size, const char* format, ...) FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_inlines_a.h function arena_ind_get (line 4) | static inline unsigned function arena_internal_add (line 9) | static inline void function arena_internal_sub (line 14) | static inline void function arena_internal_get (line 19) | static inline size_t function arena_prof_accum (line 24) | static inline bool function percpu_arena_update (line 35) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_inlines_b.h function JEMALLOC_ALWAYS_INLINE (line 11) | JEMALLOC_ALWAYS_INLINE prof_tctx_t * function JEMALLOC_ALWAYS_INLINE (line 30) | JEMALLOC_ALWAYS_INLINE void function arena_prof_tctx_reset (line 49) | static inline void function JEMALLOC_ALWAYS_INLINE (line 60) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 78) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 86) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 108) | JEMALLOC_ALWAYS_INLINE arena_t * function JEMALLOC_ALWAYS_INLINE (line 113) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 127) | JEMALLOC_ALWAYS_INLINE size_t function arena_dalloc_no_tcache (line 160) | static inline void function JEMALLOC_ALWAYS_INLINE (line 189) | JEMALLOC_ALWAYS_INLINE void function arena_sdalloc_no_tcache (line 242) | static inline void function JEMALLOC_ALWAYS_INLINE (line 286) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_stats.h type atomic_u64_t (line 15) | typedef atomic_u64_t arena_stats_u64_t; type arena_stats_u64_t (line 18) | typedef uint64_t arena_stats_u64_t; type arena_stats_large_t (line 21) | typedef struct arena_stats_large_s arena_stats_large_t; type arena_stats_large_s (line 22) | struct arena_stats_large_s { type arena_stats_decay_t (line 41) | typedef struct arena_stats_decay_s arena_stats_decay_t; type arena_stats_decay_s (line 42) | struct arena_stats_decay_s { type arena_stats_t (line 56) | typedef struct arena_stats_s arena_stats_t; type arena_stats_s (line 57) | struct arena_stats_s { function arena_stats_init (line 97) | static inline bool function arena_stats_lock (line 114) | static inline void function arena_stats_unlock (line 121) | static inline void function arena_stats_read_u64 (line 128) | static inline uint64_t function arena_stats_add_u64 (line 139) | static inline void function UNUSED (line 150) | UNUSED static inline void function arena_stats_accum_u64 (line 168) | static inline void function arena_stats_read_zu (line 178) | static inline size_t function arena_stats_add_zu (line 188) | static inline void function arena_stats_sub_zu (line 200) | static inline void function arena_stats_accum_zu (line 214) | static inline void function arena_stats_large_nrequests_add (line 220) | static inline void function arena_stats_mapped_add (line 229) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_structs_a.h type arena_slab_data_s (line 6) | struct arena_slab_data_s { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_structs_b.h type arena_decay_s (line 17) | struct arena_decay_s { type arena_s (line 77) | struct arena_s { type arena_tdata_s (line 219) | struct arena_tdata_s { type alloc_ctx_s (line 224) | struct alloc_ctx_s { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_types.h type arena_slab_data_t (line 14) | typedef struct arena_slab_data_s arena_slab_data_t; type arena_decay_t (line 15) | typedef struct arena_decay_s arena_decay_t; type arena_t (line 16) | typedef struct arena_s arena_t; type arena_tdata_t (line 17) | typedef struct arena_tdata_s arena_tdata_t; type alloc_ctx_t (line 18) | typedef struct alloc_ctx_s alloc_ctx_t; type percpu_arena_mode_t (line 20) | typedef enum { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/atomic_gcc_atomic.h type atomic_memory_order_t (line 8) | typedef enum { function ATOMIC_INLINE (line 16) | ATOMIC_INLINE int function ATOMIC_INLINE (line 34) | ATOMIC_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/atomic_gcc_sync.h type atomic_memory_order_t (line 6) | typedef enum { function ATOMIC_INLINE (line 14) | ATOMIC_INLINE void function ATOMIC_INLINE (line 63) | ATOMIC_INLINE void function ATOMIC_INLINE (line 73) | ATOMIC_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/atomic_msvc.h type atomic_memory_order_t (line 6) | typedef enum { type atomic_repr_0_t (line 14) | typedef char atomic_repr_0_t; type atomic_repr_1_t (line 15) | typedef short atomic_repr_1_t; type atomic_repr_2_t (line 16) | typedef long atomic_repr_2_t; type __int64 (line 17) | typedef __int64 atomic_repr_3_t; function ATOMIC_INLINE (line 19) | ATOMIC_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/background_thread_inlines.h function JEMALLOC_ALWAYS_INLINE (line 4) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 9) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 15) | JEMALLOC_ALWAYS_INLINE background_thread_info_t * function JEMALLOC_ALWAYS_INLINE (line 21) | JEMALLOC_ALWAYS_INLINE uint64_t function JEMALLOC_ALWAYS_INLINE (line 29) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 38) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 43) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/background_thread_structs.h type background_thread_state_t (line 13) | typedef enum { type background_thread_info_s (line 20) | struct background_thread_info_s { type background_thread_info_t (line 44) | typedef struct background_thread_info_s background_thread_info_t; type background_thread_stats_s (line 46) | struct background_thread_stats_s { type background_thread_stats_t (line 51) | typedef struct background_thread_stats_s background_thread_stats_t; FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/base_inlines.h function base_ind_get (line 4) | static inline unsigned function metadata_thp_enabled (line 9) | static inline bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/base_structs.h type base_block_s (line 9) | struct base_block_s { type base_s (line 20) | struct base_s { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/base_types.h type base_block_t (line 4) | typedef struct base_block_s base_block_t; type base_t (line 5) | typedef struct base_s base_t; type metadata_thp_mode_t (line 18) | typedef enum { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/bin.h type bin_info_t (line 33) | typedef struct bin_info_s bin_info_t; type bin_info_s (line 34) | struct bin_info_s { type bin_t (line 54) | typedef struct bin_s bin_t; type bin_s (line 55) | struct bin_s { function bin_stats_merge (line 90) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/bin_stats.h type bin_stats_t (line 6) | typedef struct bin_stats_s bin_stats_t; type bin_stats_s (line 7) | struct bin_stats_s { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/bit_util.h function ffs_llu (line 15) | BIT_UTIL_INLINE unsigned function ffs_lu (line 20) | BIT_UTIL_INLINE unsigned function ffs_u (line 25) | BIT_UTIL_INLINE unsigned function ffs_zu (line 30) | BIT_UTIL_INLINE unsigned function ffs_u64 (line 43) | BIT_UTIL_INLINE unsigned function ffs_u32 (line 54) | BIT_UTIL_INLINE unsigned function BIT_UTIL_INLINE (line 64) | BIT_UTIL_INLINE uint64_t function BIT_UTIL_INLINE (line 77) | BIT_UTIL_INLINE uint32_t function BIT_UTIL_INLINE (line 90) | BIT_UTIL_INLINE size_t function lg_floor (line 100) | BIT_UTIL_INLINE unsigned function lg_floor (line 113) | BIT_UTIL_INLINE unsigned function lg_floor (line 130) | BIT_UTIL_INLINE unsigned function lg_floor (line 143) | BIT_UTIL_INLINE unsigned FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/bitmap.h type bitmap_t (line 8) | typedef unsigned long bitmap_t; type bitmap_info_t (line 152) | typedef struct bitmap_info_s { function bitmap_full (line 175) | static inline bool function bitmap_get (line 194) | static inline bool function bitmap_set (line 205) | static inline void function bitmap_ffu (line 241) | static inline size_t function bitmap_sfu (line 300) | static inline size_t function bitmap_unset (line 330) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/cache_bin.h type cache_bin_sz_t (line 22) | typedef int32_t cache_bin_sz_t; type cache_bin_stats_t (line 24) | typedef struct cache_bin_stats_s cache_bin_stats_t; type cache_bin_stats_s (line 25) | struct cache_bin_stats_s { type cache_bin_info_t (line 37) | typedef struct cache_bin_info_s cache_bin_info_t; type cache_bin_info_s (line 38) | struct cache_bin_info_s { type cache_bin_t (line 43) | typedef struct cache_bin_s cache_bin_t; type cache_bin_s (line 44) | struct cache_bin_s { type cache_bin_array_descriptor_t (line 67) | typedef struct cache_bin_array_descriptor_s cache_bin_array_descriptor_t; type cache_bin_array_descriptor_s (line 68) | struct cache_bin_array_descriptor_s { function cache_bin_array_descriptor_init (line 79) | static inline void function JEMALLOC_ALWAYS_INLINE (line 87) | JEMALLOC_ALWAYS_INLINE void * FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/ckh.h type ckhc_t (line 28) | typedef struct { type ckh_t (line 34) | typedef struct { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/ctl.h type ctl_node_t (line 14) | typedef struct ctl_node_s { type ctl_named_node_t (line 18) | typedef struct ctl_named_node_s { type ctl_indexed_node_t (line 28) | typedef struct ctl_indexed_node_s { type ctl_arena_stats_t (line 34) | typedef struct ctl_arena_stats_s { type ctl_stats_t (line 47) | typedef struct ctl_stats_s { type ctl_arena_t (line 60) | typedef struct ctl_arena_s ctl_arena_t; type ctl_arena_s (line 61) | struct ctl_arena_s { type ctl_arenas_t (line 79) | typedef struct ctl_arenas_s { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/div.h type div_info_t (line 15) | typedef struct div_info_s div_info_t; type div_info_s (line 16) | struct div_info_s { function div_compute (line 25) | static inline size_t FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/emitter.h type emitter_output_t (line 6) | typedef enum emitter_output_e emitter_output_t; type emitter_output_e (line 7) | enum emitter_output_e { type emitter_justify_t (line 12) | typedef enum emitter_justify_e emitter_justify_t; type emitter_justify_e (line 13) | enum emitter_justify_e { type emitter_type_t (line 20) | typedef enum emitter_type_e emitter_type_t; type emitter_type_e (line 21) | enum emitter_type_e { type emitter_col_t (line 37) | typedef struct emitter_col_s emitter_col_t; type emitter_col_s (line 38) | struct emitter_col_s { type emitter_row_t (line 58) | typedef struct emitter_row_s emitter_row_t; type emitter_row_s (line 59) | struct emitter_row_s { function emitter_row_init (line 63) | static inline void function emitter_col_init (line 68) | static inline void type emitter_t (line 74) | typedef struct emitter_s emitter_t; type emitter_s (line 75) | struct emitter_s { function emitter_init (line 85) | static inline void function emitter_printf (line 97) | static inline void function emitter_table_printf (line 108) | static inline void function emitter_gen_fmt (line 118) | static inline void function emitter_print_value (line 143) | static inline void function emitter_nest_inc (line 209) | static inline void function emitter_nest_dec (line 215) | static inline void function emitter_indent (line 221) | static inline void function emitter_json_key_prefix (line 236) | static inline void function emitter_begin (line 242) | static inline void function emitter_end (line 254) | static inline void function emitter_kv_note (line 267) | static inline void function emitter_kv (line 294) | static inline void function emitter_json_kv (line 301) | static inline void function emitter_table_kv (line 309) | static inline void function emitter_dict_begin (line 317) | static inline void function emitter_dict_end (line 331) | static inline void function emitter_json_dict_begin (line 344) | static inline void function emitter_json_dict_end (line 351) | static inline void function emitter_table_dict_begin (line 358) | static inline void function emitter_table_dict_end (line 365) | static inline void function emitter_json_arr_begin (line 372) | static inline void function emitter_json_arr_end (line 381) | static inline void function emitter_json_arr_obj_begin (line 392) | static inline void function emitter_json_arr_obj_end (line 401) | static inline void function emitter_json_arr_value (line 412) | static inline void function emitter_table_row (line 422) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/extent_dss.h type dss_prec_t (line 4) | typedef enum { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/extent_inlines.h function extent_lock (line 11) | static inline void function extent_unlock (line 17) | static inline void function extent_lock2 (line 23) | static inline void function extent_unlock2 (line 30) | static inline void function arena_t (line 37) | static inline arena_t * function szind_t (line 52) | static inline szind_t function szind_t (line 60) | static inline szind_t function extent_usize_get (line 67) | static inline size_t function extent_sn_get (line 72) | static inline size_t function extent_state_t (line 78) | static inline extent_state_t function extent_zeroed_get (line 84) | static inline bool function extent_committed_get (line 90) | static inline bool function extent_dumpable_get (line 96) | static inline bool function extent_slab_get (line 102) | static inline bool function extent_nfree_get (line 108) | static inline unsigned function extent_size_get (line 129) | static inline size_t function extent_esn_get (line 134) | static inline size_t function extent_bsize_get (line 139) | static inline size_t function arena_slab_data_t (line 161) | static inline arena_slab_data_t * function arena_slab_data_t (line 167) | static inline const arena_slab_data_t * function prof_tctx_t (line 173) | static inline prof_tctx_t * function extent_arena_set (line 179) | static inline void function extent_addr_set (line 187) | static inline void function extent_addr_randomize (line 192) | static inline void function extent_size_set (line 218) | static inline void function extent_esn_set (line 224) | static inline void function extent_bsize_set (line 230) | static inline void function extent_szind_set (line 235) | static inline void function extent_nfree_set (line 242) | static inline void function extent_nfree_inc (line 249) | static inline void function extent_nfree_dec (line 255) | static inline void function extent_sn_set (line 261) | static inline void function extent_state_set (line 267) | static inline void function extent_zeroed_set (line 273) | static inline void function extent_committed_set (line 279) | static inline void function extent_dumpable_set (line 285) | static inline void function extent_slab_set (line 291) | static inline void function extent_prof_tctx_set (line 297) | static inline void function extent_init (line 302) | static inline void function extent_binit (line 324) | static inline void function extent_list_init (line 338) | static inline void function extent_t (line 343) | static inline extent_t * function extent_t (line 348) | static inline extent_t * function extent_list_append (line 353) | static inline void function extent_list_prepend (line 358) | static inline void function extent_list_replace (line 363) | static inline void function extent_list_remove (line 370) | static inline void function extent_sn_comp (line 375) | static inline int function extent_esn_comp (line 383) | static inline int function extent_ad_comp (line 391) | static inline int function extent_ead_comp (line 399) | static inline int function extent_snad_comp (line 407) | static inline int function extent_esnead_comp (line 420) | static inline int FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/extent_structs.h type extent_state_t (line 11) | typedef enum { type extent_s (line 19) | struct extent_s { type extent_list_t (line 170) | typedef ql_head(extent_t) extent_list_t; type extent_tree_t (line 171) | typedef ph(extent_t) extent_tree_t; type extent_heap_t (line 172) | typedef ph(extent_t) extent_heap_t; type extents_s (line 175) | struct extents_s { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/extent_types.h type extent_t (line 4) | typedef struct extent_s extent_t; type extents_t (line 5) | typedef struct extents_s extents_t; FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/hash.h function hash_rotl_32 (line 14) | static inline uint32_t function hash_rotl_64 (line 19) | static inline uint64_t function hash_get_block_32 (line 24) | static inline uint32_t function hash_get_block_64 (line 37) | static inline uint64_t function hash_fmix_32 (line 50) | static inline uint32_t function hash_fmix_64 (line 61) | static inline uint64_t function hash_x86_32 (line 72) | static inline uint32_t function UNUSED (line 122) | UNUSED static inline void function UNUSED (line 223) | UNUSED static inline void function hash (line 302) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_decls.h function isblank (line 81) | static int FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_a.h function malloc_getcpu (line 11) | malloc_getcpu(void) { function percpu_arena_choose (line 22) | JEMALLOC_ALWAYS_INLINE unsigned function percpu_arena_ind_limit (line 43) | JEMALLOC_ALWAYS_INLINE unsigned function arena_tdata_t (line 57) | static inline arena_tdata_t * function arena_t (line 82) | static inline arena_t * function ticker_t (line 98) | static inline ticker_t * function JEMALLOC_ALWAYS_INLINE (line 109) | JEMALLOC_ALWAYS_INLINE cache_bin_t * function JEMALLOC_ALWAYS_INLINE (line 115) | JEMALLOC_ALWAYS_INLINE cache_bin_t * function JEMALLOC_ALWAYS_INLINE (line 121) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 139) | JEMALLOC_ALWAYS_INLINE tcache_t * function pre_reentrancy (line 148) | static inline void function post_reentrancy (line 163) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_b.h function arena_t (line 7) | static inline arena_t * function arena_t (line 61) | static inline arena_t * function arena_t (line 66) | static inline arena_t * function arena_is_auto (line 71) | static inline bool function JEMALLOC_ALWAYS_INLINE (line 77) | JEMALLOC_ALWAYS_INLINE extent_t * FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_c.h function JEMALLOC_ALWAYS_INLINE (line 26) | JEMALLOC_ALWAYS_INLINE arena_t * function JEMALLOC_ALWAYS_INLINE (line 33) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 40) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 60) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 66) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 86) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 92) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 98) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 103) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 121) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 126) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 134) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 172) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 194) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 201) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 218) | JEMALLOC_ALWAYS_INLINE int FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_types.h type pszind_t (line 5) | typedef unsigned pszind_t; type szind_t (line 8) | typedef unsigned szind_t; type malloc_cpuid_t (line 11) | typedef int malloc_cpuid_t; FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/log.h type log_var_t (line 41) | typedef struct log_var_s log_var_t; type log_var_s (line 42) | struct log_var_s { function log_impl_varargs (line 88) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/malloc_io.h function malloc_write_fd (line 66) | static inline ssize_t function malloc_read_fd (line 88) | static inline ssize_t FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/mutex.h type malloc_mutex_lock_order_t (line 9) | typedef enum { type malloc_mutex_t (line 19) | typedef struct malloc_mutex_s malloc_mutex_t; type malloc_mutex_s (line 20) | struct malloc_mutex_s { function malloc_mutex_lock_final (line 139) | static inline void function malloc_mutex_trylock_final (line 144) | static inline bool function mutex_owner_stats_update (line 149) | static inline void function malloc_mutex_trylock (line 162) | static inline bool function malloc_mutex_prof_merge (line 177) | static inline void function malloc_mutex_lock (line 200) | static inline void function malloc_mutex_unlock (line 212) | static inline void function malloc_mutex_assert_owner (line 220) | static inline void function malloc_mutex_assert_not_owner (line 225) | static inline void function malloc_mutex_prof_read (line 231) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/mutex_pool.h type mutex_pool_t (line 11) | typedef struct mutex_pool_s mutex_pool_t; type mutex_pool_s (line 12) | struct mutex_pool_s { function malloc_mutex_t (line 19) | static inline malloc_mutex_t * function mutex_pool_assert_not_held (line 26) | static inline void function mutex_pool_lock (line 40) | static inline void function mutex_pool_unlock (line 48) | static inline void function mutex_pool_lock2 (line 56) | static inline void function mutex_pool_unlock2 (line 74) | static inline void function mutex_pool_assert_owner (line 89) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/mutex_prof.h type mutex_prof_global_ind_t (line 13) | typedef enum { type mutex_prof_arena_ind_t (line 31) | typedef enum { type mutex_prof_data_t (line 67) | typedef struct { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/nstime.h type nstime_t (line 8) | typedef struct { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/pages.h type thp_mode_t (line 61) | typedef enum { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prng.h function JEMALLOC_ALWAYS_INLINE (line 35) | JEMALLOC_ALWAYS_INLINE uint32_t function JEMALLOC_ALWAYS_INLINE (line 40) | JEMALLOC_ALWAYS_INLINE uint64_t function JEMALLOC_ALWAYS_INLINE (line 45) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 66) | JEMALLOC_ALWAYS_INLINE uint32_t function JEMALLOC_ALWAYS_INLINE (line 89) | JEMALLOC_ALWAYS_INLINE uint64_t function JEMALLOC_ALWAYS_INLINE (line 103) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 131) | JEMALLOC_ALWAYS_INLINE uint32_t function JEMALLOC_ALWAYS_INLINE (line 149) | JEMALLOC_ALWAYS_INLINE uint64_t function JEMALLOC_ALWAYS_INLINE (line 167) | JEMALLOC_ALWAYS_INLINE size_t FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prof_inlines_a.h function prof_accum_add (line 6) | static inline bool function prof_accum_cancel (line 44) | static inline void function JEMALLOC_ALWAYS_INLINE (line 72) | JEMALLOC_ALWAYS_INLINE bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prof_inlines_b.h function JEMALLOC_ALWAYS_INLINE (line 6) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 16) | JEMALLOC_ALWAYS_INLINE prof_tdata_t * function JEMALLOC_ALWAYS_INLINE (line 39) | JEMALLOC_ALWAYS_INLINE prof_tctx_t * function JEMALLOC_ALWAYS_INLINE (line 47) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 56) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 64) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 101) | JEMALLOC_ALWAYS_INLINE prof_tctx_t * function JEMALLOC_ALWAYS_INLINE (line 121) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 136) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 194) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prof_structs.h type prof_bt_s (line 9) | struct prof_bt_s { type prof_unwind_data_t (line 17) | typedef struct { type prof_accum_s (line 23) | struct prof_accum_s { type prof_cnt_s (line 32) | struct prof_cnt_s { type prof_tctx_state_t (line 40) | typedef enum { type prof_tctx_s (line 47) | struct prof_tctx_s { type prof_tctx_tree_t (line 97) | typedef rb_tree(prof_tctx_t) prof_tctx_tree_t; type prof_gctx_s (line 99) | struct prof_gctx_s { type prof_gctx_tree_t (line 133) | typedef rb_tree(prof_gctx_t) prof_gctx_tree_t; type prof_tdata_s (line 135) | struct prof_tdata_s { type prof_tdata_tree_t (line 199) | typedef rb_tree(prof_tdata_t) prof_tdata_tree_t; FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prof_types.h type prof_bt_t (line 4) | typedef struct prof_bt_s prof_bt_t; type prof_accum_t (line 5) | typedef struct prof_accum_s prof_accum_t; type prof_cnt_t (line 6) | typedef struct prof_cnt_s prof_cnt_t; type prof_tctx_t (line 7) | typedef struct prof_tctx_s prof_tctx_t; type prof_gctx_t (line 8) | typedef struct prof_gctx_s prof_gctx_t; type prof_tdata_t (line 9) | typedef struct prof_tdata_s prof_tdata_t; FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/rtree.h type rtree_node_elm_t (line 41) | typedef struct rtree_node_elm_s rtree_node_elm_t; type rtree_node_elm_s (line 42) | struct rtree_node_elm_s { type rtree_leaf_elm_s (line 46) | struct rtree_leaf_elm_s { type rtree_level_t (line 68) | typedef struct rtree_level_s rtree_level_t; type rtree_level_s (line 69) | struct rtree_level_s { type rtree_t (line 79) | typedef struct rtree_s rtree_t; type rtree_s (line 80) | struct rtree_s { type rtree_node_elm_t (line 114) | typedef rtree_node_elm_t *(rtree_node_alloc_t)(tsdn_t *, rtree_t *, size... type rtree_leaf_elm_t (line 117) | typedef rtree_leaf_elm_t *(rtree_leaf_alloc_t)(tsdn_t *, rtree_t *, size... function JEMALLOC_ALWAYS_INLINE (line 131) | JEMALLOC_ALWAYS_INLINE uintptr_t function JEMALLOC_ALWAYS_INLINE (line 141) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 150) | JEMALLOC_ALWAYS_INLINE uintptr_t function JEMALLOC_ALWAYS_INLINE (line 172) | JEMALLOC_ALWAYS_INLINE uintptr_t function JEMALLOC_ALWAYS_INLINE (line 179) | JEMALLOC_ALWAYS_INLINE extent_t * function JEMALLOC_ALWAYS_INLINE (line 198) | JEMALLOC_ALWAYS_INLINE szind_t function JEMALLOC_ALWAYS_INLINE (line 203) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 210) | JEMALLOC_ALWAYS_INLINE extent_t * function JEMALLOC_ALWAYS_INLINE (line 223) | JEMALLOC_ALWAYS_INLINE szind_t function JEMALLOC_ALWAYS_INLINE (line 235) | JEMALLOC_ALWAYS_INLINE bool function rtree_leaf_elm_extent_write (line 247) | static inline void function rtree_leaf_elm_szind_write (line 261) | static inline void function rtree_leaf_elm_slab_write (line 279) | static inline void function rtree_leaf_elm_write (line 294) | static inline void function rtree_leaf_elm_szind_slab_update (line 313) | static inline void function JEMALLOC_ALWAYS_INLINE (line 326) | JEMALLOC_ALWAYS_INLINE rtree_leaf_elm_t * function rtree_write (line 385) | static inline bool function JEMALLOC_ALWAYS_INLINE (line 403) | JEMALLOC_ALWAYS_INLINE rtree_leaf_elm_t * function JEMALLOC_ALWAYS_INLINE (line 415) | JEMALLOC_ALWAYS_INLINE extent_t * function JEMALLOC_ALWAYS_INLINE (line 426) | JEMALLOC_ALWAYS_INLINE szind_t function JEMALLOC_ALWAYS_INLINE (line 442) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 455) | JEMALLOC_ALWAYS_INLINE bool function rtree_szind_slab_update (line 474) | static inline void function rtree_clear (line 483) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/rtree_tsd.h type rtree_leaf_elm_t (line 32) | typedef struct rtree_leaf_elm_s rtree_leaf_elm_t; type rtree_ctx_cache_elm_t (line 34) | typedef struct rtree_ctx_cache_elm_s rtree_ctx_cache_elm_t; type rtree_ctx_cache_elm_s (line 35) | struct rtree_ctx_cache_elm_s { type rtree_ctx_t (line 40) | typedef struct rtree_ctx_s rtree_ctx_t; type rtree_ctx_s (line 41) | struct rtree_ctx_s { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/spin.h type spin_t (line 6) | typedef struct { function spin_cpu_spinwait (line 10) | static inline void function spin_adaptive (line 20) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/sz.h function JEMALLOC_ALWAYS_INLINE (line 50) | JEMALLOC_ALWAYS_INLINE pszind_t function sz_pind2sz_compute (line 73) | static inline size_t function sz_pind2sz_lookup (line 95) | static inline size_t function sz_pind2sz (line 102) | static inline size_t function sz_psz2u (line 108) | static inline size_t function szind_t (line 124) | static inline szind_t function JEMALLOC_ALWAYS_INLINE (line 154) | JEMALLOC_ALWAYS_INLINE szind_t function JEMALLOC_ALWAYS_INLINE (line 164) | JEMALLOC_ALWAYS_INLINE szind_t function sz_index2size_compute (line 173) | static inline size_t function JEMALLOC_ALWAYS_INLINE (line 199) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 206) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 212) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 236) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 248) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 261) | JEMALLOC_ALWAYS_INLINE size_t FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tcache_inlines.h function tcache_enabled_get (line 11) | static inline bool function tcache_enabled_set (line 16) | static inline void function JEMALLOC_ALWAYS_INLINE (line 30) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 41) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 103) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 163) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 188) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 214) | JEMALLOC_ALWAYS_INLINE tcache_t * FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tcache_structs.h type tcache_s (line 9) | struct tcache_s { type tcaches_s (line 54) | struct tcaches_s { FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tcache_types.h type tcache_t (line 6) | typedef struct tcache_s tcache_t; type tcaches_t (line 7) | typedef struct tcaches_s tcaches_t; FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/ticker.h type ticker_t (line 14) | typedef struct { function ticker_init (line 19) | static inline void function ticker_copy (line 25) | static inline void function ticker_read (line 30) | static inline int32_t function ticker_fixup (line 58) | static bool function ticker_ticks (line 64) | static inline bool function ticker_tick (line 73) | static inline bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd.h type tsd_state_t (line 111) | typedef uint8_t tsd_state_t; type tsd_s (line 114) | struct tsd_s { type tsdn_s (line 132) | struct tsdn_s { function JEMALLOC_ALWAYS_INLINE (line 136) | JEMALLOC_ALWAYS_INLINE tsdn_t * function JEMALLOC_ALWAYS_INLINE (line 141) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 146) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 239) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 245) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 255) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 274) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 280) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 289) | JEMALLOC_ALWAYS_INLINE tsd_t * function tsd_nominal (line 294) | static inline bool function JEMALLOC_ALWAYS_INLINE (line 299) | JEMALLOC_ALWAYS_INLINE tsdn_t * function JEMALLOC_ALWAYS_INLINE (line 308) | JEMALLOC_ALWAYS_INLINE rtree_ctx_t * function JEMALLOC_ALWAYS_INLINE (line 313) | JEMALLOC_ALWAYS_INLINE rtree_ctx_t * FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_generic.h type tsd_init_block_t (line 6) | typedef struct tsd_init_block_s tsd_init_block_t; type tsd_init_block_s (line 7) | struct tsd_init_block_s { type tsd_init_head_t (line 14) | typedef struct tsd_init_head_s tsd_init_head_t; type tsd_wrapper_t (line 16) | typedef struct { function JEMALLOC_ALWAYS_INLINE (line 31) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 53) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 61) | JEMALLOC_ALWAYS_INLINE tsd_wrapper_t * function JEMALLOC_ALWAYS_INLINE (line 89) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 99) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 115) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 124) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 129) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 135) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 147) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_malloc_thread_cleanup.h function JEMALLOC_ALWAYS_INLINE (line 11) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 20) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 27) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 32) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 37) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 42) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 48) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 53) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_tls.h function JEMALLOC_ALWAYS_INLINE (line 11) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 20) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 25) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 30) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 35) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 41) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 47) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_types.h type tsd_t (line 6) | typedef struct tsd_s tsd_t; type tsdn_t (line 7) | typedef struct tsdn_s tsdn_t; FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_win.h type tsd_wrapper_t (line 6) | typedef struct { function JEMALLOC_ALWAYS_INLINE (line 16) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 38) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 46) | JEMALLOC_ALWAYS_INLINE tsd_wrapper_t * function JEMALLOC_ALWAYS_INLINE (line 69) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 81) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 97) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 106) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 111) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 117) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 129) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/util.h function UTIL_INLINE (line 46) | UTIL_INLINE void function UTIL_INLINE (line 56) | UTIL_INLINE int FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/witness.h type witness_t (line 73) | typedef struct witness_s witness_t; type witness_rank_t (line 74) | typedef unsigned witness_rank_t; type witness_list_t (line 75) | typedef ql_head(witness_t) witness_list_t; type witness_s (line 79) | struct witness_s { type witness_tsd_t (line 106) | typedef struct witness_tsd_s witness_tsd_t; type witness_tsd_s (line 107) | struct witness_tsd_s { type witness_tsdn_t (line 118) | typedef struct witness_tsdn_s witness_tsdn_t; type witness_tsdn_s (line 119) | struct witness_tsdn_s { function JEMALLOC_ALWAYS_INLINE (line 123) | JEMALLOC_ALWAYS_INLINE witness_tsdn_t * function JEMALLOC_ALWAYS_INLINE (line 128) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 133) | JEMALLOC_ALWAYS_INLINE witness_tsd_t * function witness_owner (line 164) | static inline bool function witness_assert_owner (line 181) | static inline void function witness_assert_not_owner (line 203) | static inline void function witness_assert_depth_to_rank (line 230) | static inline void function witness_assert_depth (line 263) | static inline void function witness_assert_lockless (line 268) | static inline void function witness_lock (line 273) | static inline void function witness_unlock (line 316) | static inline void FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/msvc_compat/C99/stdbool.h type BOOL (line 11) | typedef BOOL _Bool; FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/msvc_compat/C99/stdint.h type int_least8_t (line 94) | typedef int8_t int_least8_t; type int_least16_t (line 95) | typedef int16_t int_least16_t; type int_least32_t (line 96) | typedef int32_t int_least32_t; type int_least64_t (line 97) | typedef int64_t int_least64_t; type uint_least8_t (line 98) | typedef uint8_t uint_least8_t; type uint_least16_t (line 99) | typedef uint16_t uint_least16_t; type uint_least32_t (line 100) | typedef uint32_t uint_least32_t; type uint_least64_t (line 101) | typedef uint64_t uint_least64_t; type int_fast8_t (line 104) | typedef int8_t int_fast8_t; type int_fast16_t (line 105) | typedef int16_t int_fast16_t; type int_fast32_t (line 106) | typedef int32_t int_fast32_t; type int_fast64_t (line 107) | typedef int64_t int_fast64_t; type uint_fast8_t (line 108) | typedef uint8_t uint_fast8_t; type uint_fast16_t (line 109) | typedef uint16_t uint_fast16_t; type uint_fast32_t (line 110) | typedef uint32_t uint_fast32_t; type uint_fast64_t (line 111) | typedef uint64_t uint_fast64_t; type intmax_t (line 123) | typedef int64_t intmax_t; type uintmax_t (line 124) | typedef uint64_t uintmax_t; FILE: Chapter02/redis-6.0.3/deps/jemalloc/include/msvc_compat/strings.h function ffsl (line 9) | static __forceinline int ffsl(long x) { function ffs (line 18) | static __forceinline int ffs(int x) { function ffsll (line 26) | static __forceinline int ffsll(unsigned __int64 x) { FILE: Chapter02/redis-6.0.3/deps/jemalloc/msvc/test_threads/test_threads.cpp function test_threads (line 19) | int test_threads() { FILE: Chapter02/redis-6.0.3/deps/jemalloc/msvc/test_threads/test_threads_main.cpp function main (line 8) | int main(int argc, char** argv) { FILE: Chapter02/redis-6.0.3/deps/jemalloc/scripts/gen_run_tests.py function powerset (line 16) | def powerset(items): FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/arena.c function arena_basic_stats_merge (line 63) | void function arena_stats_merge (line 76) | void function arena_extents_dirty_dalloc (line 208) | void function arena_slab_regind (line 240) | static function arena_slab_reg_dalloc (line 263) | static void function arena_nactive_add (line 277) | static void function arena_nactive_sub (line 282) | static void function arena_large_malloc_stats_update (line 288) | static void function arena_large_dalloc_stats_update (line 304) | static void function arena_large_ralloc_stats_update (line 320) | static void function extent_t (line 327) | extent_t * function arena_extent_dalloc_large_prep (line 379) | void function arena_extent_ralloc_large_shrink (line 390) | void function arena_extent_ralloc_large_expand (line 404) | void function arena_decay_ms_read (line 418) | static ssize_t function arena_decay_ms_write (line 423) | static void function arena_decay_deadline_init (line 428) | static void function arena_decay_deadline_reached (line 445) | static bool function arena_decay_backlog_npages_limit (line 450) | static size_t function arena_decay_backlog_update_last (line 470) | static void function arena_decay_backlog_update (line 488) | static void function arena_decay_try_purge (line 510) | static void function arena_decay_epoch_advance_helper (line 521) | static void function arena_decay_epoch_advance (line 545) | static void function arena_decay_reinit (line 562) | static void function arena_decay_init (line 579) | static bool function arena_decay_ms_valid (line 601) | static bool function arena_maybe_decay (line 613) | static bool function arena_decay_ms_get (line 671) | static ssize_t function arena_dirty_decay_ms_get (line 676) | ssize_t function arena_muzzy_decay_ms_get (line 681) | ssize_t function arena_decay_ms_set (line 686) | static bool function arena_dirty_decay_ms_set (line 709) | bool function arena_muzzy_decay_ms_set (line 716) | bool function arena_stash_decayed (line 723) | static size_t function arena_decay_stashed (line 742) | static size_t function arena_decay_to_limit (line 815) | static void function arena_decay_impl (line 847) | static bool function arena_decay_dirty (line 882) | static bool function arena_decay_muzzy (line 889) | static bool function arena_decay (line 896) | void function arena_slab_dalloc (line 904) | static void function arena_bin_slabs_nonfull_insert (line 912) | static void function arena_bin_slabs_nonfull_remove (line 918) | static void function extent_t (line 923) | static extent_t * function arena_bin_slabs_full_insert (line 935) | static void function arena_bin_slabs_full_remove (line 949) | static void function arena_reset (line 957) | void function arena_destroy_retained (line 1036) | static void function arena_destroy (line 1055) | void function extent_t (line 1091) | static extent_t * function extent_t (line 1114) | static extent_t * function extent_t (line 1151) | static extent_t * function arena_tcache_fill_small (line 1249) | void function arena_alloc_junk_small (line 1302) | void function arena_dalloc_junk_small_impl (line 1309) | static void function arena_prof_promote (line 1408) | void function arena_prof_demote (line 1432) | static size_t function arena_dalloc_promoted (line 1448) | void function arena_dissociate_bin_slab (line 1464) | static void function arena_dalloc_bin_slab (line 1486) | static void function arena_bin_lower_slab (line 1501) | static void function arena_dalloc_bin_locked_impl (line 1528) | static void function arena_dalloc_bin_junked_locked (line 1556) | void function arena_dalloc_bin (line 1562) | static void function arena_dalloc_small (line 1572) | void function arena_ralloc_no_move (line 1581) | bool function dss_prec_t (line 1672) | dss_prec_t function arena_dss_prec_set (line 1677) | bool function arena_dirty_decay_ms_default_get (line 1686) | ssize_t function arena_dirty_decay_ms_default_set (line 1691) | bool function arena_muzzy_decay_ms_default_get (line 1700) | ssize_t function arena_muzzy_decay_ms_default_set (line 1705) | bool function arena_retain_grow_limit_get_set (line 1714) | bool function arena_nthreads_get (line 1741) | unsigned function arena_nthreads_inc (line 1746) | void function arena_nthreads_dec (line 1751) | void function arena_extent_sn_next (line 1756) | size_t function arena_t (line 1761) | arena_t * function arena_boot (line 1917) | void function arena_prefork0 (line 1933) | void function arena_prefork1 (line 1939) | void function arena_prefork2 (line 1946) | void function arena_prefork3 (line 1951) | void function arena_prefork4 (line 1958) | void function arena_prefork5 (line 1963) | void function arena_prefork6 (line 1968) | void function arena_prefork7 (line 1973) | void function arena_postfork_parent (line 1980) | void function arena_postfork_child (line 2001) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/background_thread.c function pthread_create_wrapper_init (line 36) | static void function pthread_create_wrapper (line 45) | int function background_thread_info_init (line 73) | static void function set_current_thread_affinity (line 83) | static inline bool function decay_npurge_after_interval (line 103) | static inline size_t function arena_decay_compute_purge_interval_impl (line 117) | static uint64_t function arena_decay_compute_purge_interval (line 203) | static uint64_t function background_thread_sleep (line 217) | static void function background_thread_pause_check (line 273) | static bool function background_work_sleep_once (line 287) | static inline void function background_threads_disable_single (line 312) | static bool function background_thread_create_signals_masked (line 353) | static int function check_background_thread_creation (line 385) | static bool function background_thread0_work (line 435) | static void function background_work (line 484) | static void function background_thread_init (line 529) | static void function background_thread_create (line 538) | bool function background_threads_enable (line 592) | bool function background_threads_disable (line 628) | bool function background_thread_interval_check (line 644) | void function background_thread_prefork0 (line 727) | void function background_thread_prefork1 (line 733) | void function background_thread_postfork_parent (line 740) | void function background_thread_postfork_child (line 749) | void function background_thread_stats_read (line 776) | bool function pthread_create_fptr_init (line 816) | static bool function background_thread_ctl_init (line 842) | void function background_thread_boot0 (line 853) | bool function background_thread_boot1 (line 869) | bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/base.c function metadata_thp_madvise (line 25) | static inline bool function base_unmap (line 54) | static void function base_extent_init (line 118) | static void function base_get_num_blocks (line 129) | static size_t function base_auto_thp_switch (line 143) | static void function base_extent_bump_alloc_post (line 197) | static void function base_block_t (line 247) | static base_block_t * function extent_t (line 307) | static extent_t * function base_t (line 344) | base_t * function base_t (line 349) | base_t * function base_delete (line 395) | void function extent_hooks_t (line 407) | extent_hooks_t * function extent_hooks_t (line 413) | extent_hooks_t * function extent_t (line 468) | extent_t * function base_stats_get (line 480) | void function base_prefork (line 495) | void function base_postfork_parent (line 500) | void function base_postfork_child (line 505) | void function base_boot (line 510) | bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/bin.c function bin_init (line 22) | bool function bin_prefork (line 37) | void function bin_postfork_parent (line 42) | void function bin_postfork_child (line 47) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/bitmap.c function bitmap_info_init (line 11) | void function bitmap_info_ngroups (line 39) | static size_t function bitmap_init (line 44) | void function bitmap_info_init (line 85) | void function bitmap_info_ngroups (line 94) | static size_t function bitmap_init (line 99) | void function bitmap_size (line 118) | size_t FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/ckh.c function ckh_bucket_search (line 62) | static size_t function ckh_isearch (line 80) | static size_t function ckh_try_bucket_insert (line 101) | static bool function ckh_evict_reloc_insert (line 133) | static bool function ckh_try_insert (line 204) | static bool function ckh_rebuild (line 234) | static bool function ckh_grow (line 256) | static bool function ckh_shrink (line 310) | static void function ckh_new (line 358) | bool function ckh_delete (line 415) | void function ckh_count (line 437) | size_t function ckh_iter (line 444) | bool function ckh_insert (line 465) | bool function ckh_remove (line 488) | bool function ckh_search (line 521) | bool function ckh_string_hash (line 541) | void function ckh_string_keycomp (line 546) | bool function ckh_pointer_hash (line 554) | void function ckh_pointer_keycomp (line 566) | bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/ctl.c function ctl_named_node_t (line 29) | static const ctl_named_node_t * function ctl_named_node_t (line 34) | static const ctl_named_node_t * function ctl_indexed_node_t (line 41) | static const ctl_indexed_node_t * function MUTEX_PROF_GLOBAL_MUTEXES (line 519) | MUTEX_PROF_GLOBAL_MUTEXES function thread_prof_name_ctl (line 1798) | static int function thread_prof_active_ctl (line 1829) | static int function tcache_create_ctl (line 1859) | static int function tcache_flush_ctl (line 1877) | static int function tcache_destroy_ctl (line 1897) | static int function arena_i_initialized_ctl (line 1919) | static int function arena_i_decay (line 1941) | static void function arena_i_decay_ctl (line 1988) | static int function arena_i_purge_ctl (line 2004) | static int function arena_i_reset_destroy_helper (line 2020) | static int function arena_reset_prepare_background_thread (line 2041) | static void function arena_reset_finish_background_thread (line 2058) | static void function arena_i_reset_ctl (line 2074) | static int function arena_i_destroy_ctl (line 2094) | static int function arena_i_dss_ctl (line 2135) | static int function arena_i_decay_ms_ctl_impl (line 2196) | static int function arena_i_dirty_decay_ms_ctl (line 2233) | static int function arena_i_muzzy_decay_ms_ctl (line 2240) | static int function arena_i_extent_hooks_ctl (line 2247) | static int function arena_i_retain_grow_limit_ctl (line 2302) | static int function ctl_named_node_t (line 2338) | static const ctl_named_node_t * function arenas_narenas_ctl (line 2363) | static int function arenas_decay_ms_ctl_impl (line 2384) | static int function arenas_dirty_decay_ms_ctl (line 2411) | static int function arenas_muzzy_decay_ms_ctl (line 2418) | static int function ctl_named_node_t (line 2433) | static const ctl_named_node_t * function ctl_named_node_t (line 2444) | static const ctl_named_node_t * function arenas_create_ctl (line 2453) | static int function arenas_lookup_ctl (line 2476) | static int function prof_thread_active_init_ctl (line 2508) | static int function prof_active_ctl (line 2535) | static int function prof_dump_ctl (line 2561) | static int function prof_gdump_ctl (line 2584) | static int function prof_reset_ctl (line 2610) | static int function stats_mutexes_reset_ctl (line 2767) | static int function ctl_named_node_t (line 2837) | static const ctl_named_node_t * function ctl_named_node_t (line 2858) | static const ctl_named_node_t * function ctl_named_node_t (line 2867) | static const ctl_named_node_t * FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/div.c function div_init (line 29) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/extent.c type lock_result_t (line 125) | typedef enum { function lock_result_t (line 131) | static lock_result_t function extent_t (line 161) | static extent_t * function extent_t (line 176) | extent_t * function extent_dalloc (line 189) | void function extent_hooks_t (line 196) | extent_hooks_t * function extent_hooks_t (line 201) | extent_hooks_t * function extent_hooks_assure_initialized (line 216) | static void function extent_size_quantize_floor (line 227) | size_t function extent_size_quantize_ceil (line 251) | static function extents_init (line 280) | bool function extent_state_t (line 298) | extent_state_t function extents_npages_get (line 303) | size_t function extents_insert_locked (line 308) | static void function extents_remove_locked (line 334) | static void function extent_t (line 364) | static extent_t * function extent_t (line 398) | static extent_t * function extent_t (line 425) | static extent_t * function extent_t (line 456) | static extent_t * function extent_try_delayed_coalesce (line 484) | static bool function extent_t (line 501) | extent_t * function extents_dalloc (line 516) | void function extent_t (line 531) | extent_t * function extents_leak (line 595) | static void function extents_prefork (line 613) | void function extents_postfork_parent (line 618) | void function extents_postfork_child (line 623) | void function extent_deactivate_locked (line 628) | static void function extent_deactivate (line 638) | static void function extent_activate_locked (line 646) | static void function extent_rtree_leaf_elms_lookup (line 656) | static bool function extent_rtree_write_acquired (line 677) | static void function extent_interior_register (line 687) | static void function extent_gdump_add (line 700) | static void function extent_gdump_sub (line 726) | static void function extent_register_impl (line 737) | static bool function extent_register (line 770) | static bool function extent_register_no_gdump_add (line 775) | static bool function extent_reregister (line 780) | static void function extent_interior_deregister (line 793) | static void function extent_deregister_impl (line 810) | static void function extent_deregister (line 833) | static void function extent_deregister_no_gdump_sub (line 838) | static void function extent_t (line 847) | static extent_t * type extent_split_interior_result_t (line 915) | typedef enum { function extent_split_interior_result_t (line 934) | static extent_split_interior_result_t function extent_t (line 1011) | static extent_t * function extent_t (line 1060) | static extent_t * function extent_hook_pre_reentrancy (line 1197) | static void function extent_hook_post_reentrancy (line 1214) | static void function extent_t (line 1225) | static extent_t * function extent_t (line 1389) | static extent_t * function extent_t (line 1418) | static extent_t * function extent_t (line 1457) | extent_t * function extent_can_coalesce (line 1486) | static bool function extent_coalesce (line 1506) | static bool function extent_t (line 1526) | static extent_t * function extent_record (line 1596) | static void function extent_dalloc_gap (line 1639) | void function extent_dalloc_default_impl (line 1654) | static bool function extent_dalloc_default (line 1662) | static bool function extent_dalloc_wrapper_try (line 1668) | static bool function extent_dalloc_wrapper (line 1702) | void function extent_destroy_default_impl (line 1756) | static void function extent_destroy_default (line 1763) | static void function extent_destroy_wrapper (line 1769) | void function extent_commit_default (line 1799) | static bool function extent_commit_impl (line 1806) | static bool function extent_commit_wrapper (line 1827) | bool function extent_decommit_default (line 1835) | static bool function extent_decommit_wrapper (line 1842) | bool function extent_purge_lazy_default (line 1866) | static bool function extent_purge_lazy_impl (line 1879) | static bool function extent_purge_lazy_wrapper (line 1904) | bool function extent_purge_forced_default (line 1913) | static bool function extent_purge_forced_impl (line 1926) | static bool function extent_purge_forced_wrapper (line 1950) | bool function extent_split_default (line 1959) | static bool function extent_t (line 1973) | static extent_t * function extent_t (line 2055) | extent_t * function extent_merge_default_impl (line 2063) | static bool function extent_merge_default (line 2076) | static bool function extent_merge_impl (line 2083) | static bool function extent_merge_wrapper (line 2155) | bool function extent_boot (line 2161) | bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/extent_dss.c function dss_prec_t (line 51) | dss_prec_t function extent_dss_prec_set (line 62) | bool function extent_dss_extending_start (line 71) | static void function extent_dss_extending_finish (line 84) | static void function extent_in_dss_helper (line 230) | static bool function extent_in_dss (line 236) | bool function extent_dss_mergeable (line 244) | bool function extent_dss_boot (line 260) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/extent_mmap.c function extent_dalloc_mmap (line 36) | bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/jemalloc.c type malloc_init_t (line 91) | typedef enum { function WINAPI (line 134) | WINAPI type malloc_utrace_t (line 163) | typedef struct { function malloc_initialized (line 202) | bool function JEMALLOC_ALWAYS_INLINE (line 207) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 215) | JEMALLOC_ALWAYS_INLINE bool function a0idalloc (line 238) | static void function a0dalloc (line 248) | void function bootstrap_free (line 281) | void function arena_set (line 290) | void function narenas_total_set (line 295) | static void function narenas_total_inc (line 300) | static void function narenas_total_get (line 305) | unsigned function arena_t (line 311) | static arena_t * function arena_new_create_background_thread (line 339) | static void function arena_t (line 357) | arena_t * function arena_bind (line 370) | static void function arena_migrate (line 382) | void function arena_unbind (line 393) | static void function arena_tdata_t (line 407) | arena_tdata_t * function arena_t (line 484) | arena_t * function iarena_cleanup (line 598) | void function arena_cleanup (line 608) | void function arenas_tdata_cleanup (line 618) | void function stats_print_atexit (line 632) | static void function JEMALLOC_ALWAYS_INLINE (line 669) | JEMALLOC_ALWAYS_INLINE void function malloc_ncpus (line 711) | static unsigned function init_opt_stats_print_opts (line 739) | static void function malloc_conf_next (line 764) | static bool function malloc_abort_invalid_conf (line 839) | static void function malloc_conf_error (line 847) | static void function malloc_slow_flag_init (line 856) | static void function malloc_conf_init (line 871) | static void function malloc_init_hard_needed (line 1248) | static bool function malloc_init_hard_a0_locked (line 1274) | static bool function malloc_init_hard_a0 (line 1334) | static bool function malloc_init_hard_recursible (line 1345) | static bool function malloc_narenas_default (line 1372) | static unsigned function percpu_arena_mode_t (line 1386) | static percpu_arena_mode_t function malloc_init_narenas (line 1398) | static bool function malloc_init_percpu (line 1470) | static void function malloc_init_hard_finish (line 1475) | static bool function malloc_init_hard_cleanup (line 1487) | static void function malloc_init_hard (line 1499) | static bool type static_opts_t (line 1586) | typedef struct static_opts_s static_opts_t; type static_opts_s (line 1587) | struct static_opts_s { function JEMALLOC_ALWAYS_INLINE (line 1626) | JEMALLOC_ALWAYS_INLINE void type dynamic_opts_t (line 1648) | typedef struct dynamic_opts_s dynamic_opts_t; type dynamic_opts_s (line 1649) | struct dynamic_opts_s { function JEMALLOC_ALWAYS_INLINE (line 1659) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 1671) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 1713) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 1748) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 1786) | JEMALLOC_ALWAYS_INLINE int function JEMALLOC_ALWAYS_INLINE (line 1984) | JEMALLOC_ALWAYS_INLINE int function JEMALLOC_ALWAYS_INLINE (line 2166) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 2191) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 2230) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_NOTHROW (line 2371) | JEMALLOC_NOTHROW function JEMALLOC_ALWAYS_INLINE (line 2618) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 2752) | JEMALLOC_ALWAYS_INLINE size_t function ixallocx_prof_sample (line 2765) | static size_t function JEMALLOC_ALWAYS_INLINE (line 2779) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_NOTHROW (line 2828) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 2919) | JEMALLOC_NOTHROW function JEMALLOC_ALWAYS_INLINE (line 2964) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_NOTHROW (line 2978) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3026) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3053) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3075) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3095) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3116) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3130) | JEMALLOC_NOTHROW function jemalloc_constructor (line 3181) | JEMALLOC_ATTR(constructor) function jemalloc_prefork (line 3189) | void function jemalloc_postfork_parent (line 3262) | void function jemalloc_postfork_child (line 3299) | void function JEMALLOC_NOTHROW (line 3333) | JEMALLOC_NOTHROW FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/jemalloc_cpp.cpp function JEMALLOC_NOINLINE (line 42) | JEMALLOC_NOINLINE function JEMALLOC_ALWAYS_INLINE (line 75) | JEMALLOC_ALWAYS_INLINE FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/large.c function large_dalloc_junk_impl (line 74) | static void function large_dalloc_maybe_junk_impl (line 80) | static void function large_ralloc_no_move_shrink (line 95) | static bool function large_ralloc_no_move_expand (line 130) | static bool function large_ralloc_no_move (line 218) | bool function large_dalloc_prep_impl (line 308) | static void function large_dalloc_finish_impl (line 329) | static void function large_dalloc_prep_junked_locked (line 335) | void function large_dalloc_finish (line 340) | void function large_dalloc (line 345) | void function large_salloc (line 353) | size_t function prof_tctx_t (line 358) | prof_tctx_t * function large_prof_tctx_set (line 363) | void function large_prof_tctx_reset (line 368) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/log.c function log_var_matches_segment (line 21) | static bool function log_var_update_state (line 43) | unsigned FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/malloc_io.c function wrtmessage (line 71) | static void function malloc_write (line 82) | void function buferror (line 95) | int function uintmax_t (line 113) | uintmax_t function malloc_vsnprintf (line 326) | size_t function malloc_cprintf (line 647) | void function malloc_printf (line 659) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/mutex.c function JEMALLOC_EXPORT (line 31) | JEMALLOC_EXPORT int function malloc_mutex_lock_slow (line 46) | void function mutex_prof_data_init (line 103) | static void function malloc_mutex_prof_data_reset (line 111) | void function mutex_addr_comp (line 117) | static int function malloc_mutex_init (line 133) | bool function malloc_mutex_prefork (line 185) | void function malloc_mutex_postfork_parent (line 190) | void function malloc_mutex_postfork_child (line 195) | void function malloc_mutex_boot (line 211) | bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/mutex_pool.c function mutex_pool_init (line 9) | bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/nstime.c function nstime_init (line 11) | void function nstime_init2 (line 16) | void function nstime_ns (line 21) | uint64_t function nstime_msec (line 26) | uint64_t function nstime_sec (line 31) | uint64_t function nstime_nsec (line 36) | uint64_t function nstime_copy (line 41) | void function nstime_compare (line 46) | int function nstime_add (line 51) | void function nstime_iadd (line 58) | void function nstime_subtract (line 65) | void function nstime_isubtract (line 72) | void function nstime_imultiply (line 79) | void function nstime_idivide (line 87) | void function nstime_divide (line 94) | uint64_t function nstime_get (line 103) | static void function nstime_get (line 115) | static void function nstime_get (line 124) | static void function nstime_get (line 133) | static void function nstime_get (line 139) | static void function nstime_monotonic_impl (line 148) | static bool function nstime_update_impl (line 155) | static bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/pages.c function pages_unmap (line 211) | void function pages_commit_impl (line 219) | static bool function pages_commit (line 252) | bool function pages_decommit (line 257) | bool function pages_purge_lazy (line 262) | bool function pages_purge_forced (line 297) | bool function pages_huge_impl (line 317) | static bool function pages_huge (line 330) | bool function pages_huge_unaligned (line 335) | static bool function pages_nohuge_impl (line 340) | static bool function pages_nohuge (line 354) | bool function pages_nohuge_unaligned (line 359) | static bool function pages_dontdump (line 364) | bool function pages_dodump (line 375) | bool function os_page_detect (line 387) | static size_t function os_overcommits_sysctl (line 405) | static bool function os_overcommits_proc (line 435) | static bool function pages_set_thp_state (line 496) | void function init_thp_state (line 515) | static void function pages_boot (line 561) | bool FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/prof.c function prof_tctx_comp (line 151) | static int function prof_malloc_sample_object (line 240) | void function prof_free_sampled_object (line 256) | void function bt_init (line 271) | void function prof_enter (line 279) | static void function prof_leave (line 292) | static void function prof_backtrace (line 319) | void function _Unwind_Reason_Code (line 334) | static _Unwind_Reason_Code function _Unwind_Reason_Code (line 341) | static _Unwind_Reason_Code function prof_backtrace (line 361) | void function prof_backtrace (line 370) | void function prof_backtrace (line 533) | void function malloc_mutex_t (line 540) | static malloc_mutex_t * function malloc_mutex_t (line 547) | static malloc_mutex_t * function prof_gctx_t (line 552) | static prof_gctx_t * function prof_gctx_try_destroy (line 578) | static void function prof_tctx_should_destroy (line 613) | static bool function prof_gctx_should_destroy (line 629) | static bool function prof_tctx_destroy (line 643) | static void function prof_lookup_global (line 719) | static bool function prof_tctx_t (line 784) | prof_tctx_t * function prof_sample_threshold_update (line 871) | void function prof_tdata_t (line 913) | static prof_tdata_t * function prof_tdata_count (line 923) | size_t function prof_bt_count (line 937) | size_t function prof_dump_open_impl (line 957) | static int function prof_dump_flush (line 974) | static bool function prof_dump_close (line 997) | static bool function prof_dump_write (line 1009) | static bool function prof_dump_printf (line 1041) | static bool function prof_tctx_merge_tdata (line 1055) | static void function prof_tctx_merge_gctx (line 1086) | static void function prof_tctx_t (line 1098) | static prof_tctx_t * type prof_tctx_dump_iter_arg_s (line 1119) | struct prof_tctx_dump_iter_arg_s { function prof_tctx_t (line 1124) | static prof_tctx_t * function prof_tctx_t (line 1152) | static prof_tctx_t * function prof_dump_gctx_prep (line 1178) | static void type prof_gctx_merge_iter_arg_s (line 1197) | struct prof_gctx_merge_iter_arg_s { function prof_gctx_t (line 1202) | static prof_gctx_t * function prof_gctx_finish (line 1218) | static void type prof_tdata_merge_iter_arg_s (line 1264) | struct prof_tdata_merge_iter_arg_s { function prof_tdata_t (line 1269) | static prof_tdata_t * function prof_tdata_t (line 1304) | static prof_tdata_t * function prof_dump_header_impl (line 1325) | static bool function prof_dump_gctx (line 1346) | static bool function prof_open_maps (line 1403) | static int function prof_getpid (line 1426) | static int function prof_dump_maps (line 1435) | static bool function prof_leakcheck (line 1495) | static void type prof_gctx_dump_iter_arg_s (line 1526) | struct prof_gctx_dump_iter_arg_s { function prof_gctx_t (line 1531) | static prof_gctx_t * function prof_dump_prep (line 1551) | static void function prof_dump_file (line 1593) | static bool function prof_dump (line 1634) | static bool function prof_cnt_all (line 1674) | void function prof_dump_filename (line 1722) | static void function prof_fdump (line 1740) | static void function prof_accum_init (line 1761) | bool function prof_idump (line 1777) | void function prof_mdump (line 1811) | bool function prof_gdump (line 1834) | void function prof_bt_hash (line 1868) | static void function prof_bt_keycomp (line 1877) | static bool function prof_thr_uid_alloc (line 1890) | static uint64_t function prof_tdata_t (line 1902) | static prof_tdata_t * function prof_tdata_t (line 1948) | prof_tdata_t * function prof_tdata_should_destroy_unlocked (line 1954) | static bool function prof_tdata_should_destroy (line 1965) | static bool function prof_tdata_destroy_locked (line 1973) | static void function prof_tdata_destroy (line 1990) | static void function prof_tdata_detach (line 1997) | static void function prof_tdata_t (line 2022) | prof_tdata_t * function prof_tdata_expire (line 2035) | static bool function prof_tdata_t (line 2052) | static prof_tdata_t * function prof_reset (line 2060) | void function prof_tdata_cleanup (line 2087) | void function prof_active_get (line 2101) | bool function prof_active_set (line 2111) | bool function prof_thread_name_set (line 2156) | int function prof_thread_active_get (line 2194) | bool function prof_thread_active_set (line 2205) | bool function prof_thread_active_init_get (line 2217) | bool function prof_thread_active_init_set (line 2227) | bool function prof_gdump_get (line 2238) | bool function prof_gdump_set (line 2248) | bool function prof_boot0 (line 2259) | void function prof_boot1 (line 2267) | void function prof_boot2 (line 2291) | bool function prof_prefork0 (line 2400) | void function prof_prefork1 (line 2417) | void function prof_postfork_parent (line 2428) | void function prof_postfork_child (line 2451) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/rtree.c function rtree_new (line 12) | bool function rtree_node_elm_t (line 30) | static rtree_node_elm_t * function rtree_node_dalloc_impl (line 37) | static void function rtree_leaf_elm_t (line 45) | static rtree_leaf_elm_t * function rtree_leaf_dalloc_impl (line 52) | static void function rtree_delete_subtree (line 62) | static void function rtree_delete (line 93) | void function rtree_node_elm_t (line 101) | static rtree_node_elm_t * function rtree_leaf_elm_t (line 128) | static rtree_leaf_elm_t * function rtree_node_valid (line 154) | static bool function rtree_leaf_valid (line 159) | static bool function rtree_node_elm_t (line 164) | static rtree_node_elm_t * function rtree_node_elm_t (line 180) | static rtree_node_elm_t * function rtree_leaf_elm_t (line 193) | static rtree_leaf_elm_t * function rtree_leaf_elm_t (line 209) | static rtree_leaf_elm_t * function rtree_leaf_elm_t (line 222) | rtree_leaf_elm_t * function rtree_ctx_data_init (line 308) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/stats.c function get_rate_str (line 56) | static bool function gen_mutex_ctl_str (line 81) | static void function mutex_stats_init_cols (line 87) | static void function mutex_stats_read_global (line 121) | static void function mutex_stats_read_arena (line 144) | static void function mutex_stats_read_arena_bin (line 169) | static void function mutex_stats_emit (line 192) | static void function stats_arena_bins_print (line 218) | static void function stats_arena_lextents_print (line 410) | static void function stats_arena_mutexes_print (line 497) | static void function stats_arena_print (line 522) | static void function stats_general_print (line 825) | static void function stats_print_helper (line 1064) | static void function stats_print (line 1224) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/tcache.c function tcache_salloc (line 34) | size_t function tcache_event_hard (line 39) | void function tcache_bin_flush_small (line 103) | void function tcache_bin_flush_large (line 188) | void function tcache_arena_associate (line 286) | void function tcache_arena_dissociate (line 307) | static void function tcache_arena_reassociate (line 334) | void function tsd_tcache_enabled_data_init (line 340) | bool function tcache_init (line 355) | static void function tsd_tcache_data_init (line 389) | bool function tcache_t (line 431) | tcache_t * function tcache_flush_cache (line 457) | static void function tcache_flush (line 485) | void function tcache_destroy (line 491) | static void function tcache_cleanup (line 509) | void function tcache_stats_merge (line 528) | void function tcaches_create_prep (line 552) | static bool function tcaches_create (line 578) | bool function tcache_t (line 616) | static tcache_t * function tcaches_flush (line 628) | void function tcaches_destroy (line 638) | void function tcache_boot (line 651) | bool function tcache_prefork (line 698) | void function tcache_postfork_parent (line 705) | void function tcache_postfork_child (line 712) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/tsd.c type tsd_init_head_s (line 34) | struct tsd_init_head_s { function tsd_slow_update (line 54) | void function tsd_data_init (line 66) | static bool function assert_tsd_data_cleanup_done (line 87) | static void function tsd_data_init_nocleanup (line 98) | static bool function tsd_t (line 116) | tsd_t * function malloc_tsd_dalloc (line 164) | void function _malloc_thread_cleanup (line 173) | void function malloc_tsd_cleanup_register (line 196) | void function tsd_do_data_cleanup (line 203) | static void function tsd_cleanup (line 213) | void function tsd_t (line 258) | tsd_t * function malloc_tsd_boot1 (line 271) | void function BOOL (line 281) | static BOOL WINAPI function tsd_init_finish (line 345) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/witness.c function witness_init (line 8) | void function witness_lock_error_impl (line 17) | static void function witness_owner_error_impl (line 31) | static void function witness_not_owner_error_impl (line 40) | static void function witness_depth_error_impl (line 49) | static void function witnesses_cleanup (line 65) | void function witness_prefork (line 72) | void function witness_postfork_parent (line 80) | void function witness_postfork_child (line 88) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/src/zone.c type malloc_zone_t (line 14) | typedef struct _malloc_zone_t { type vm_range_t (line 34) | typedef struct { type malloc_statistics_t (line 39) | typedef struct malloc_statistics_t { type kern_return_t (line 46) | typedef kern_return_t memory_reader_t(task_t, vm_address_t, vm_size_t, v... type malloc_introspection_t (line 50) | typedef struct malloc_introspection_t { type malloc_introspection_t (line 91) | struct malloc_introspection_t type _malloc_zone_t (line 108) | struct _malloc_zone_t type _malloc_zone_t (line 110) | struct _malloc_zone_t type _malloc_zone_t (line 112) | struct _malloc_zone_t function zone_size (line 132) | static size_t function zone_free (line 165) | static void function zone_free_definite_size (line 193) | static void function zone_destroy (line 207) | static void function zone_batch_malloc (line 213) | static unsigned function zone_batch_free (line 227) | static void function zone_pressure_relief (line 238) | static size_t function zone_good_size (line 243) | static size_t function kern_return_t (line 251) | static kern_return_t function boolean_t (line 258) | static boolean_t function zone_print (line 263) | static void function zone_log (line 267) | static void function zone_force_lock (line 271) | static void function zone_force_unlock (line 284) | static void function zone_statistics (line 309) | static void function boolean_t (line 318) | static boolean_t function zone_reinit_lock (line 324) | static void function zone_init (line 331) | static void function malloc_zone_t (line 369) | static malloc_zone_t * function zone_promote (line 400) | static void function zone_register (line 436) | JEMALLOC_ATTR(constructor) FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/include/test/SFMT-alti.h function vec_recursion (line 64) | unsigned int vec_recursion(vector unsigned int a, function gen_rand_all (line 98) | static inline void gen_rand_all(sfmt_t *ctx) { function gen_rand_array (line 125) | static inline void gen_rand_array(sfmt_t *ctx, w128_t *array, int size) { function swap (line 176) | static inline void swap(w128_t *array, int size) { FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/include/test/SFMT-sse2.h function JEMALLOC_ALWAYS_INLINE (line 63) | JEMALLOC_ALWAYS_INLINE __m128i mm_recursion(__m128i *a, __m128i *b, function gen_rand_all (line 84) | static inline void gen_rand_all(sfmt_t *ctx) { function gen_rand_array (line 114) | static inline void gen_rand_array(sfmt_t *ctx, w128_t *array, int size) { FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/include/test/SFMT.h type sfmt_t (line 69) | typedef struct sfmt_s sfmt_t; function to_real1 (line 86) | static inline double to_real1(uint32_t v) { function genrand_real1 (line 92) | static inline double genrand_real1(sfmt_t *ctx) { function to_real2 (line 97) | static inline double to_real2(uint32_t v) { function genrand_real2 (line 103) | static inline double genrand_real2(sfmt_t *ctx) { function to_real3 (line 108) | static inline double to_real3(uint32_t v) { function genrand_real3 (line 114) | static inline double genrand_real3(sfmt_t *ctx) { function to_res53 (line 120) | static inline double to_res53(uint64_t v) { function to_res53_mix (line 126) | static inline double to_res53_mix(uint32_t x, uint32_t y) { function genrand_res53 (line 132) | static inline double genrand_res53(sfmt_t *ctx) { function genrand_res53_mix (line 139) | static inline double genrand_res53_mix(sfmt_t *ctx) { FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/include/test/extent_hooks.h function extent_dalloc_hook (line 103) | static bool function extent_destroy_hook (line 124) | static void function extent_commit_hook (line 142) | static bool function extent_decommit_hook (line 164) | static bool function extent_purge_lazy_hook (line 186) | static bool function extent_purge_forced_hook (line 209) | static bool function extent_split_hook (line 232) | static bool function extent_merge_hook (line 256) | static bool function extent_hooks_prep (line 282) | static void FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/include/test/math.h function ln_gamma (line 9) | static inline double function i_gamma (line 44) | static inline double function pt_norm (line 128) | static inline double function pt_chi2 (line 216) | static inline double function pt_gamma (line 303) | static inline double FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/include/test/mtx.h type mtx_t (line 8) | typedef struct { FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/include/test/test.h type test_status_t (line 289) | typedef enum { FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/include/test/thd.h type HANDLE (line 3) | typedef HANDLE thd_t; type pthread_t (line 5) | typedef pthread_t thd_t; FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/include/test/timer.h type timedelta_t (line 3) | typedef struct { FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/MALLOCX_ARENA.c function TEST_BEGIN (line 47) | TEST_BEGIN(test_MALLOCX_ARENA) { function TEST_END (line 60) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/aligned_alloc.c function purge (line 10) | static void function TEST_BEGIN (line 16) | TEST_BEGIN(test_alignment_errors) { function TEST_END (line 35) | TEST_END function TEST_END (line 79) | TEST_END function TEST_END (line 125) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/allocated.c function TEST_BEGIN (line 102) | TEST_BEGIN(test_main_thread) { function TEST_END (line 105) | TEST_END function TEST_END (line 113) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/extent.c function check_background_thread_enabled (line 5) | static bool function test_extent_body (line 17) | static void function test_manual_hook_auto_arena (line 101) | static void function test_manual_hook_body (line 138) | static void function TEST_BEGIN (line 208) | TEST_BEGIN(test_extent_manual_hook) { function TEST_END (line 223) | TEST_END function TEST_END (line 241) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/mallocx.c function get_nsizes_impl (line 3) | static unsigned function get_nlarge (line 15) | static unsigned function get_size_impl (line 20) | static size_t function get_large_size (line 38) | static size_t function purge (line 48) | static void function TEST_BEGIN (line 54) | TEST_BEGIN(test_overflow) { function TEST_END (line 72) | TEST_END function TEST_END (line 114) | TEST_END function TEST_END (line 151) | TEST_END function TEST_END (line 219) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/overflow.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_overflow) { function TEST_END (line 40) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/posix_memalign.c function purge (line 10) | static void function TEST_BEGIN (line 16) | TEST_BEGIN(test_alignment_errors) { function TEST_END (line 33) | TEST_END function TEST_END (line 71) | TEST_END function TEST_END (line 119) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/rallocx.c function get_nsizes_impl (line 3) | static unsigned function get_nlarge (line 15) | static unsigned function get_size_impl (line 20) | static size_t function get_large_size (line 38) | static size_t function TEST_BEGIN (line 43) | TEST_BEGIN(test_grow_and_shrink) { function TEST_END (line 85) | TEST_END function TEST_BEGIN (line 106) | TEST_BEGIN(test_zero) { function TEST_END (line 148) | TEST_END function TEST_END (line 172) | TEST_END function TEST_END (line 209) | TEST_END function TEST_END (line 235) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/sdallocx.c function TEST_BEGIN (line 6) | TEST_BEGIN(test_basic) { function TEST_END (line 10) | TEST_END function TEST_END (line 48) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/thread_arena.c function mallctl_failure (line 40) | static void function TEST_BEGIN (line 48) | TEST_BEGIN(test_thread_arena) { function TEST_END (line 80) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/thread_tcache_enabled.c function TEST_BEGIN (line 65) | TEST_BEGIN(test_main_thread) { function TEST_END (line 68) | TEST_END function TEST_END (line 76) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/integration/xallocx.c function arena_ind (line 8) | static unsigned function TEST_BEGIN (line 21) | TEST_BEGIN(test_same_size) { function TEST_END (line 34) | TEST_END function TEST_END (line 49) | TEST_END function TEST_END (line 64) | TEST_END function get_nsmall (line 78) | static unsigned function get_nlarge (line 83) | static unsigned function get_size_impl (line 88) | static size_t function get_small_size (line 106) | static size_t function get_large_size (line 111) | static size_t function TEST_BEGIN (line 116) | TEST_BEGIN(test_size) { function TEST_END (line 143) | TEST_END function TEST_END (line 174) | TEST_END function TEST_END (line 205) | TEST_END function TEST_END (line 274) | TEST_END function validate_fill (line 295) | static bool function test_zero (line 314) | static void function TEST_BEGIN (line 362) | TEST_BEGIN(test_zero_large) { function TEST_END (line 371) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/src/SFMT.c type w128_t (line 77) | typedef union W128_T w128_t; type w128_t (line 86) | typedef union W128_T w128_t; type W128_T (line 91) | struct W128_T { type w128_t (line 95) | typedef struct W128_T w128_t; type sfmt_s (line 99) | struct sfmt_s { function idxof (line 145) | static inline int idxof(int i) { function idxof (line 149) | static inline int idxof(int i) { function rshift128 (line 163) | static inline void rshift128(w128_t *out, w128_t const *in, int shift) { function rshift128 (line 178) | static inline void rshift128(w128_t *out, w128_t const *in, int shift) { function lshift128 (line 202) | static inline void lshift128(w128_t *out, w128_t const *in, int shift) { function lshift128 (line 217) | static inline void lshift128(w128_t *out, w128_t const *in, int shift) { function do_recursion (line 244) | static inline void do_recursion(w128_t *r, w128_t *a, w128_t *b, w128_t *c, function do_recursion (line 261) | static inline void do_recursion(w128_t *r, w128_t *a, w128_t *b, w128_t *c, function gen_rand_all (line 285) | static inline void gen_rand_all(sfmt_t *ctx) { function gen_rand_array (line 312) | static inline void gen_rand_array(sfmt_t *ctx, w128_t *array, int size) { function swap (line 346) | static inline void swap(w128_t *array, int size) { function func1 (line 366) | static uint32_t func1(uint32_t x) { function func2 (line 376) | static uint32_t func2(uint32_t x) { function period_certification (line 383) | static void period_certification(sfmt_t *ctx) { function get_min_array_size32 (line 428) | int get_min_array_size32(void) { function get_min_array_size64 (line 437) | int get_min_array_size64(void) { function gen_rand32 (line 447) | uint32_t gen_rand32(sfmt_t *ctx) { function gen_rand32_range (line 461) | uint32_t gen_rand32_range(sfmt_t *ctx, uint32_t limit) { function gen_rand64 (line 482) | uint64_t gen_rand64(sfmt_t *ctx) { function gen_rand64_range (line 511) | uint64_t gen_rand64_range(sfmt_t *ctx, uint64_t limit) { function fill_array32 (line 551) | void fill_array32(sfmt_t *ctx, uint32_t *array, int size) { function fill_array64 (line 587) | void fill_array64(sfmt_t *ctx, uint64_t *array, int size) { function sfmt_t (line 607) | sfmt_t *init_gen_rand(uint32_t seed) { function sfmt_t (line 638) | sfmt_t *init_by_array(uint32_t *init_key, int key_length) { function fini_gen_rand (line 714) | void fini_gen_rand(sfmt_t *ctx) { FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/src/mq.c function mq_nanosleep (line 7) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/src/mtx.c function mtx_init (line 7) | bool function mtx_fini (line 34) | void function mtx_lock (line 44) | void function mtx_unlock (line 57) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/src/test.c type reentrancy_t (line 13) | typedef enum { function do_hook (line 37) | static void function libc_reentrancy_hook (line 49) | static void function arena_new_reentrancy_hook (line 54) | static void function test_is_reentrant (line 60) | bool function test_skip (line 66) | void function test_fail (line 78) | void function p_test_init (line 99) | void function p_test_fini (line 106) | void function test_status_t (line 113) | static test_status_t function test_status_t (line 170) | test_status_t function test_status_t (line 183) | test_status_t function test_status_t (line 196) | test_status_t function p_test_fail (line 213) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/src/thd.c function thd_create (line 4) | void function thd_join (line 13) | void function thd_create (line 23) | void function thd_join (line 30) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/src/timer.c function timer_start (line 3) | void function timer_stop (line 9) | void function timer_usec (line 15) | uint64_t function timer_ratio (line 24) | void FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/stress/microbench.c function time_func (line 3) | static inline void function compare_funcs (line 18) | void function malloc_free (line 43) | static void function mallocx_free (line 54) | static void function TEST_BEGIN (line 64) | TEST_BEGIN(test_malloc_vs_mallocx) { function TEST_END (line 68) | TEST_END function malloc_sdallocx (line 80) | static void function TEST_BEGIN (line 90) | TEST_BEGIN(test_free_vs_dallocx) { function TEST_END (line 94) | TEST_END function TEST_END (line 100) | TEST_END function malloc_sallocx_free (line 115) | static void function TEST_BEGIN (line 130) | TEST_BEGIN(test_mus_vs_sallocx) { function TEST_END (line 134) | TEST_END function TEST_BEGIN (line 151) | TEST_BEGIN(test_sallocx_vs_nallocx) { function TEST_END (line 155) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/SFMT.c function TEST_BEGIN (line 1452) | TEST_BEGIN(test_gen_rand_32) { function TEST_END (line 1484) | TEST_END function TEST_END (line 1519) | TEST_END function TEST_END (line 1554) | TEST_END function TEST_END (line 1590) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/a0.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_a0) { function TEST_END (line 10) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/arena_reset.c function get_nsizes_impl (line 10) | static unsigned function get_nsmall (line 22) | static unsigned function get_nlarge (line 27) | static unsigned function get_size_impl (line 32) | static size_t function get_small_size (line 50) | static size_t function get_large_size (line 55) | static size_t function vsalloc (line 61) | static size_t function do_arena_create (line 87) | static unsigned function do_arena_reset_pre (line 97) | static void function do_arena_reset_post (line 136) | static void function do_arena_reset_destroy (line 160) | static void function do_arena_reset (line 173) | static void function do_arena_destroy (line 178) | static void function TEST_BEGIN (line 183) | TEST_BEGIN(test_arena_reset) { function TEST_END (line 193) | TEST_END function TEST_BEGIN (line 218) | TEST_BEGIN(test_arena_destroy_initial) { function TEST_END (line 222) | TEST_END function TEST_END (line 262) | TEST_END function TEST_BEGIN (line 301) | TEST_BEGIN(test_arena_destroy_hooks_unmap) { function TEST_END (line 335) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/atomic.c function TEST_BEGIN (line 179) | TEST_BEGIN(test_atomic_u64) { function TEST_BEGIN (line 190) | TEST_BEGIN(test_atomic_u32) { function TEST_BEGIN (line 196) | TEST_BEGIN(test_atomic_p) { function TEST_BEGIN (line 202) | TEST_BEGIN(test_atomic_zu) { function TEST_BEGIN (line 208) | TEST_BEGIN(test_atomic_zd) { function TEST_BEGIN (line 215) | TEST_BEGIN(test_atomic_u) { function TEST_END (line 218) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/background_thread.c function test_switch_background_thread_ctl (line 5) | static void function test_repeat_background_thread_ctl (line 24) | static void function TEST_BEGIN (line 43) | TEST_BEGIN(test_background_thread_ctl) { function TEST_END (line 71) | TEST_END function TEST_END (line 111) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/background_thread_enable.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_deferred) { function TEST_END (line 31) | TEST_END function TEST_END (line 76) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/base.c function TEST_BEGIN (line 29) | TEST_BEGIN(test_base_hooks_default) { function TEST_END (line 59) | TEST_END function TEST_END (line 104) | TEST_END function TEST_END (line 226) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/bit_util.c function TEST_BEGIN (line 36) | TEST_BEGIN(test_pow2_ceil_u64) { function TEST_END (line 39) | TEST_END function TEST_END (line 44) | TEST_END function TEST_END (line 49) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/bitmap.c function test_bitmap_initializer_body (line 95) | static void function TEST_BEGIN (line 126) | TEST_BEGIN(test_bitmap_initializer) { function TEST_END (line 137) | TEST_END function TEST_BEGIN (line 149) | TEST_BEGIN(test_bitmap_size) { function TEST_END (line 167) | TEST_END function TEST_BEGIN (line 189) | TEST_BEGIN(test_bitmap_init) { function TEST_END (line 204) | TEST_END function TEST_BEGIN (line 220) | TEST_BEGIN(test_bitmap_set) { function TEST_END (line 235) | TEST_END function TEST_BEGIN (line 258) | TEST_BEGIN(test_bitmap_unset) { function TEST_END (line 273) | TEST_END function TEST_BEGIN (line 405) | TEST_BEGIN(test_bitmap_xfu) { function TEST_END (line 420) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/ckh.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_new_delete) { function TEST_END (line 17) | TEST_END function TEST_END (line 104) | TEST_END function TEST_END (line 203) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/decay.c function check_background_thread_enabled (line 12) | static bool function nstime_monotonic_mock (line 24) | static bool function nstime_update_mock (line 29) | static bool function do_arena_create (line 38) | static unsigned function do_arena_destroy (line 64) | static void function do_epoch (line 75) | void function do_purge (line 82) | void function do_decay (line 93) | void function get_arena_npurge_impl (line 104) | static uint64_t function get_arena_dirty_npurge (line 118) | static uint64_t function get_arena_muzzy_npurge (line 124) | static uint64_t function get_arena_npurge (line 130) | static uint64_t function get_arena_pdirty (line 137) | static size_t function get_arena_pmuzzy (line 152) | static size_t function generate_dirty (line 174) | static void function TEST_BEGIN (line 181) | TEST_BEGIN(test_decay_ticks) { function TEST_END (line 373) | TEST_END function TEST_BEGIN (line 421) | TEST_BEGIN(test_decay_ticker) { function TEST_END (line 481) | TEST_END function TEST_END (line 539) | TEST_END function TEST_END (line 559) | TEST_END function TEST_END (line 589) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/div.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_div_exhaustive) { function TEST_END (line 23) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/emitter.c type buf_descriptor_t (line 13) | typedef struct buf_descriptor_s buf_descriptor_t; type buf_descriptor_s (line 14) | struct buf_descriptor_s { function forwarding_cb (line 24) | static void function assert_emit_output (line 67) | static void function emit_dict (line 93) | static void function TEST_BEGIN (line 127) | TEST_BEGIN(test_dict) { function TEST_END (line 130) | TEST_END function TEST_BEGIN (line 149) | TEST_BEGIN(test_table_printf) { function TEST_END (line 153) | TEST_END function TEST_BEGIN (line 194) | TEST_BEGIN(test_nested_dict) { function TEST_END (line 198) | TEST_END function TEST_BEGIN (line 249) | TEST_BEGIN(test_types) { function TEST_END (line 252) | TEST_END function TEST_BEGIN (line 295) | TEST_BEGIN(test_modal) { function TEST_END (line 298) | TEST_END function TEST_BEGIN (line 341) | TEST_BEGIN(test_json_arr) { function TEST_END (line 344) | TEST_END function TEST_BEGIN (line 398) | TEST_BEGIN(test_table_row) { function TEST_END (line 401) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/extent_quantize.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_small_extent_size) { function TEST_END (line 35) | TEST_END function TEST_END (line 99) | TEST_END function TEST_END (line 133) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/fork.c function wait_for_child_exit (line 8) | static void function TEST_BEGIN (line 31) | TEST_BEGIN(test_fork) { function do_test_fork_multithreaded (line 97) | static void function TEST_BEGIN (line 106) | TEST_BEGIN(test_fork_multithreaded) { function TEST_END (line 134) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/hash.c type hash_variant_t (line 33) | typedef enum { function hash_variant_bits (line 39) | static int function hash_variant_verify_key (line 60) | static void function hash_variant_verify (line 139) | static void function TEST_BEGIN (line 152) | TEST_BEGIN(test_hash_x86_32) { function TEST_END (line 155) | TEST_END function TEST_END (line 160) | TEST_END function TEST_END (line 165) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/hooks.c function hook (line 5) | static void function func_to_hook (line 10) | static int function TEST_BEGIN (line 17) | TEST_BEGIN(unhooked_call) { function TEST_END (line 23) | TEST_END function TEST_END (line 31) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/junk.c function watch_junking (line 11) | static void function arena_dalloc_junk_small_intercept (line 17) | static void function large_dalloc_junk_intercept (line 32) | static void function large_dalloc_maybe_junk_intercept (line 47) | static void function test_junk (line 55) | static void function TEST_BEGIN (line 124) | TEST_BEGIN(test_junk_small) { function TEST_END (line 128) | TEST_END function TEST_END (line 134) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/mallctl.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_mallctl_errors) { function TEST_END (line 30) | TEST_END function TEST_END (line 40) | TEST_END function TEST_END (line 76) | TEST_END function TEST_END (line 103) | TEST_END function TEST_END (line 117) | TEST_END function TEST_END (line 143) | TEST_END function TEST_END (line 190) | TEST_END function TEST_END (line 214) | TEST_END function TEST_END (line 237) | TEST_END function TEST_END (line 330) | TEST_END function TEST_END (line 366) | TEST_END function TEST_END (line 404) | TEST_END function TEST_END (line 436) | TEST_END function TEST_END (line 468) | TEST_END function TEST_END (line 491) | TEST_END function TEST_END (line 514) | TEST_END function TEST_END (line 559) | TEST_END function TEST_END (line 607) | TEST_END function TEST_END (line 639) | TEST_END function TEST_END (line 671) | TEST_END function TEST_END (line 689) | TEST_END function TEST_END (line 707) | TEST_END function TEST_END (line 722) | TEST_END function TEST_END (line 739) | TEST_END function TEST_END (line 755) | TEST_END function TEST_END (line 774) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/malloc_io.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_malloc_strtoumax_no_endptr) { function TEST_END (line 11) | TEST_END function TEST_END (line 105) | TEST_END function TEST_END (line 137) | TEST_END function TEST_END (line 249) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/math.c function double_eq_rel (line 16) | static bool function factorial (line 27) | static uint64_t function TEST_BEGIN (line 39) | TEST_BEGIN(test_ln_gamma_factorial) { function TEST_BEGIN (line 190) | TEST_BEGIN(test_ln_gamma_misc) { function TEST_BEGIN (line 240) | TEST_BEGIN(test_pt_norm) { function TEST_BEGIN (line 289) | TEST_BEGIN(test_pt_chi2) { function TEST_BEGIN (line 350) | TEST_BEGIN(test_pt_gamma_shape) { function TEST_END (line 367) | TEST_END function TEST_END (line 379) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/mq.c type mq_msg_t (line 6) | typedef struct mq_msg_s mq_msg_t; type mq_msg_s (line 7) | struct mq_msg_s { function TEST_BEGIN (line 12) | TEST_BEGIN(test_mq_basic) { function TEST_END (line 30) | TEST_END function TEST_BEGIN (line 61) | TEST_BEGIN(test_mq_threaded) { function TEST_END (line 81) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/mtx.c function TEST_BEGIN (line 6) | TEST_BEGIN(test_mtx_basic) { function TEST_END (line 14) | TEST_END function TEST_BEGIN (line 34) | TEST_BEGIN(test_mtx_race) { function TEST_END (line 50) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/nstime.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_nstime_init) { function TEST_END (line 13) | TEST_END function TEST_END (line 22) | TEST_END function TEST_END (line 33) | TEST_END function TEST_END (line 67) | TEST_END function TEST_END (line 86) | TEST_END function TEST_END (line 103) | TEST_END function TEST_END (line 122) | TEST_END function TEST_END (line 139) | TEST_END function TEST_END (line 156) | TEST_END function TEST_END (line 175) | TEST_END function TEST_END (line 202) | TEST_END function TEST_END (line 207) | TEST_END function TEST_END (line 231) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/pack.c function binind_compute (line 19) | static unsigned function nregs_per_run_compute (line 49) | static size_t function arenas_create_mallctl (line 66) | static unsigned function arena_reset_mallctl (line 78) | static void function TEST_BEGIN (line 90) | TEST_BEGIN(test_pack) { function TEST_END (line 160) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/pages.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_pages_huge) { function TEST_END (line 23) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/ph.c type node_t (line 5) | typedef struct node_s node_t; type node_s (line 7) | struct node_s { function node_cmp (line 14) | static int function node_cmp_magic (line 30) | static int type heap_t (line 39) | typedef ph(node_t) heap_t; function node_print (line 42) | static void function heap_print (line 64) | static void function node_validate (line 87) | static unsigned function heap_validate (line 115) | static unsigned function TEST_BEGIN (line 141) | TEST_BEGIN(test_ph_empty) { function TEST_END (line 149) | TEST_END function node_t (line 158) | static node_t * function node_t (line 165) | static node_t * function TEST_BEGIN (line 172) | TEST_BEGIN(test_ph_random) { function TEST_END (line 311) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/prng.c function test_prng_lg_range_u32 (line 3) | static void function test_prng_lg_range_u64 (line 40) | static void function test_prng_lg_range_zu (line 76) | static void function TEST_BEGIN (line 114) | TEST_BEGIN(test_prng_lg_range_u32_nonatomic) { function TEST_END (line 117) | TEST_END function TEST_END (line 122) | TEST_END function TEST_END (line 127) | TEST_END function TEST_END (line 132) | TEST_END function TEST_END (line 137) | TEST_END function test_prng_range_u64 (line 159) | static void function test_prng_range_zu (line 179) | static void function TEST_BEGIN (line 199) | TEST_BEGIN(test_prng_range_u32_nonatomic) { function TEST_END (line 202) | TEST_END function TEST_END (line 207) | TEST_END function TEST_END (line 212) | TEST_END function TEST_END (line 217) | TEST_END function TEST_END (line 222) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/prof_accum.c function prof_dump_open_intercept (line 8) | static int function TEST_BEGIN (line 52) | TEST_BEGIN(test_idump) { function TEST_END (line 75) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/prof_active.c function mallctl_bool_get (line 3) | static void function mallctl_bool_set (line 15) | static void function mallctl_prof_active_get_impl (line 30) | static void function mallctl_prof_active_set_impl (line 38) | static void function mallctl_thread_prof_active_get_impl (line 47) | static void function mallctl_thread_prof_active_set_impl (line 56) | static void function prof_sampling_probe_impl (line 65) | static void function TEST_BEGIN (line 81) | TEST_BEGIN(test_prof_active) { function TEST_END (line 111) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/prof_gdump.c function prof_dump_open_intercept (line 5) | static int function TEST_BEGIN (line 17) | TEST_BEGIN(test_gdump) { function TEST_END (line 68) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/prof_idump.c function prof_dump_open_intercept (line 5) | static int function TEST_BEGIN (line 17) | TEST_BEGIN(test_idump) { function TEST_END (line 36) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/prof_reset.c function prof_dump_open_intercept (line 3) | static int function set_prof_active (line 13) | static void function get_lg_prof_sample (line 19) | static size_t function do_prof_reset (line 30) | static void function TEST_BEGIN (line 39) | TEST_BEGIN(test_prof_reset_basic) { function prof_dump_header_intercept (line 86) | static bool function TEST_BEGIN (line 95) | TEST_BEGIN(test_prof_reset_cleanup) { function TEST_BEGIN (line 182) | TEST_BEGIN(test_prof_reset) { function TEST_BEGIN (line 227) | TEST_BEGIN(test_xallocx) { function main (line 276) | int FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/prof_tctx.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_prof_realloc) { function TEST_END (line 40) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/prof_thread_name.c function mallctl_thread_name_get_impl (line 3) | static void function mallctl_thread_name_set_impl (line 20) | static void function TEST_BEGIN (line 32) | TEST_BEGIN(test_prof_thread_name_validation) { function TEST_BEGIN (line 96) | TEST_BEGIN(test_prof_thread_name_threaded) { function main (line 115) | int FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/ql.c type list_t (line 8) | typedef struct list_s list_t; type list_head_t (line 9) | typedef ql_head(list_t) list_head_t; type list_s (line 11) | struct list_s { function test_empty_list (line 16) | static void function TEST_BEGIN (line 38) | TEST_BEGIN(test_ql_empty) { function TEST_END (line 44) | TEST_END function test_entries_list (line 56) | static void function TEST_BEGIN (line 92) | TEST_BEGIN(test_ql_tail_insert) { function TEST_END (line 105) | TEST_END function TEST_END (line 124) | TEST_END function TEST_END (line 139) | TEST_END function TEST_END (line 158) | TEST_END function TEST_END (line 193) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/qr.c type ring_t (line 10) | typedef struct ring_s ring_t; type ring_s (line 12) | struct ring_s { function init_entries (line 17) | static void function test_independent_entries (line 27) | static void function TEST_BEGIN (line 64) | TEST_BEGIN(test_qr_one) { function TEST_END (line 70) | TEST_END function TEST_BEGIN (line 105) | TEST_BEGIN(test_qr_after_insert) { function TEST_END (line 115) | TEST_END function TEST_END (line 144) | TEST_END function TEST_END (line 182) | TEST_END function TEST_BEGIN (line 206) | TEST_BEGIN(test_qr_meld_split) { function TEST_END (line 233) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/rb.c type node_t (line 16) | typedef struct node_s node_t; type node_s (line 18) | struct node_s { function node_cmp (line 25) | static int type tree_t (line 44) | typedef rb_tree(node_t) tree_t; function TEST_BEGIN (line 47) | TEST_BEGIN(test_rb_empty) { function TEST_END (line 69) | TEST_END function node_t (line 120) | static node_t * function tree_iterate (line 147) | static unsigned function tree_iterate_reverse (line 157) | static unsigned function node_remove (line 167) | static void function node_t (line 199) | static node_t * function node_t (line 209) | static node_t * function destroy_cb (line 219) | static void function TEST_BEGIN (line 227) | TEST_BEGIN(test_rb_random) { function TEST_END (line 348) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/retained.c function do_arena_create (line 13) | static unsigned function do_arena_destroy (line 23) | static void function do_refresh (line 36) | static void function do_get_size_impl (line 43) | static size_t function do_get_active (line 59) | static size_t function do_get_mapped (line 64) | static size_t function TEST_BEGIN (line 100) | TEST_BEGIN(test_retained) { function TEST_END (line 175) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/rtree.c function rtree_node_elm_t (line 13) | static rtree_node_elm_t * function rtree_node_dalloc_intercept (line 29) | static void function rtree_leaf_elm_t (line 40) | static rtree_leaf_elm_t * function rtree_leaf_dalloc_intercept (line 56) | static void function TEST_BEGIN (line 67) | TEST_BEGIN(test_rtree_read_empty) { function TEST_BEGIN (line 86) | TEST_BEGIN(test_rtree_extrema) { function TEST_END (line 119) | TEST_END function TEST_END (line 156) | TEST_END function TEST_END (line 209) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/size_classes.c function get_max_size_class (line 3) | static size_t function TEST_BEGIN (line 25) | TEST_BEGIN(test_size_classes) { function TEST_END (line 81) | TEST_END function TEST_END (line 137) | TEST_END function TEST_END (line 175) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/slab.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_arena_slab_regind) { function TEST_END (line 26) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/smoothstep.c function TEST_BEGIN (line 10) | TEST_BEGIN(test_smoothstep_integral) { function TEST_END (line 37) | TEST_END function TEST_END (line 58) | TEST_END function TEST_END (line 94) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/spin.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_spin) { function TEST_END (line 12) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/stats.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_stats_summary) { function TEST_END (line 26) | TEST_END function TEST_END (line 66) | TEST_END function TEST_END (line 128) | TEST_END function no_lazy_lock (line 135) | static void function TEST_BEGIN (line 143) | TEST_BEGIN(test_stats_arenas_small) { function TEST_END (line 186) | TEST_END function TEST_END (line 221) | TEST_END function TEST_BEGIN (line 228) | TEST_BEGIN(test_stats_arenas_bins) { function TEST_END (line 315) | TEST_END function TEST_END (line 356) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/stats_print.c type token_type_t (line 5) | typedef enum { type parser_t (line 22) | typedef struct parser_s parser_t; type token_t (line 23) | typedef struct { type parser_s (line 32) | struct parser_s { function token_init (line 42) | static void function token_error (line 53) | static void function parser_init (line 75) | static void function parser_fini (line 85) | static void function parser_append (line 92) | static bool function parser_tokenize (line 107) | static bool function parser_parse_value (line 668) | static bool function parser_parse_pair (line 687) | static bool function parser_parse_values (line 705) | static bool function parser_parse_array (line 732) | static bool function parser_parse_pairs (line 748) | static bool function parser_parse_object (line 783) | static bool function parser_parse (line 801) | static bool function TEST_BEGIN (line 826) | TEST_BEGIN(test_json_parser) { function TEST_END (line 920) | TEST_END function TEST_BEGIN (line 930) | TEST_BEGIN(test_stats_print_json) { function TEST_END (line 992) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/ticker.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_ticker_tick) { function TEST_END (line 28) | TEST_END function TEST_END (line 46) | TEST_END function TEST_END (line 65) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/tsd.c function data_cleanup (line 5) | void function TEST_BEGIN (line 67) | TEST_BEGIN(test_tsd_main_thread) { function TEST_END (line 70) | TEST_END function TEST_END (line 85) | TEST_END function TEST_BEGIN (line 120) | TEST_BEGIN(test_tsd_reincarnation) { function TEST_END (line 125) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/witness.c function witness_lock_error_intercept (line 13) | static void function witness_owner_error_intercept (line 19) | static void function witness_not_owner_error_intercept (line 24) | static void function witness_depth_error_intercept (line 29) | static void function witness_comp (line 35) | static int function witness_comp_reverse (line 45) | static int function TEST_BEGIN (line 56) | TEST_BEGIN(test_witness) { function TEST_END (line 94) | TEST_END function TEST_END (line 146) | TEST_END function TEST_END (line 177) | TEST_END function TEST_END (line 212) | TEST_END function TEST_END (line 236) | TEST_END function TEST_END (line 269) | TEST_END FILE: Chapter02/redis-6.0.3/deps/jemalloc/test/unit/zero.c function test_zero (line 3) | static void function TEST_BEGIN (line 42) | TEST_BEGIN(test_zero_small) { function TEST_END (line 46) | TEST_END function TEST_END (line 52) | TEST_END FILE: Chapter02/redis-6.0.3/deps/linenoise/example.c function completion (line 7) | void completion(const char *buf, linenoiseCompletions *lc) { function main (line 23) | int main(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/linenoise/linenoise.c type termios (line 127) | struct termios type linenoiseState (line 139) | struct linenoiseState { type KEY_ACTION (line 154) | enum KEY_ACTION{ type linenoiseState (line 178) | struct linenoiseState function linenoiseMaskModeEnable (line 205) | void linenoiseMaskModeEnable(void) { function linenoiseMaskModeDisable (line 210) | void linenoiseMaskModeDisable(void) { function linenoiseSetMultiLine (line 215) | void linenoiseSetMultiLine(int ml) { function isUnsupportedTerm (line 221) | static int isUnsupportedTerm(void) { function enableRawMode (line 232) | static int enableRawMode(int fd) { function disableRawMode (line 267) | static void disableRawMode(int fd) { function getCursorPosition (line 276) | static int getCursorPosition(int ifd, int ofd) { function getColumns (line 300) | static int getColumns(int ifd, int ofd) { function linenoiseClearScreen (line 334) | void linenoiseClearScreen(void) { function linenoiseBeep (line 342) | static void linenoiseBeep(void) { function freeCompletions (line 350) | static void freeCompletions(linenoiseCompletions *lc) { function completeLine (line 364) | static int completeLine(struct linenoiseState *ls) { function linenoiseSetCompletionCallback (line 423) | void linenoiseSetCompletionCallback(linenoiseCompletionCallback *fn) { function linenoiseSetHintsCallback (line 429) | void linenoiseSetHintsCallback(linenoiseHintsCallback *fn) { function linenoiseSetFreeHintsCallback (line 435) | void linenoiseSetFreeHintsCallback(linenoiseFreeHintsCallback *fn) { function linenoiseAddCompletion (line 443) | void linenoiseAddCompletion(linenoiseCompletions *lc, const char *str) { type abuf (line 465) | struct abuf { function abInit (line 470) | static void abInit(struct abuf *ab) { function abAppend (line 475) | static void abAppend(struct abuf *ab, const char *s, int len) { function abFree (line 484) | static void abFree(struct abuf *ab) { function refreshShowHints (line 490) | void refreshShowHints(struct abuf *ab, struct linenoiseState *l, int ple... function refreshSingleLine (line 518) | static void refreshSingleLine(struct linenoiseState *l) { function refreshMultiLine (line 563) | static void refreshMultiLine(struct linenoiseState *l) { function refreshLine (line 653) | static void refreshLine(struct linenoiseState *l) { function linenoiseEditInsert (line 663) | int linenoiseEditInsert(struct linenoiseState *l, char c) { function linenoiseEditMoveLeft (line 691) | void linenoiseEditMoveLeft(struct linenoiseState *l) { function linenoiseEditMoveRight (line 699) | void linenoiseEditMoveRight(struct linenoiseState *l) { function linenoiseEditMoveHome (line 707) | void linenoiseEditMoveHome(struct linenoiseState *l) { function linenoiseEditMoveEnd (line 715) | void linenoiseEditMoveEnd(struct linenoiseState *l) { function linenoiseEditHistoryNext (line 726) | void linenoiseEditHistoryNext(struct linenoiseState *l, int dir) { function linenoiseEditDelete (line 750) | void linenoiseEditDelete(struct linenoiseState *l) { function linenoiseEditBackspace (line 760) | void linenoiseEditBackspace(struct linenoiseState *l) { function linenoiseEditDeletePrevWord (line 772) | void linenoiseEditDeletePrevWord(struct linenoiseState *l) { function linenoiseEdit (line 794) | static int linenoiseEdit(int stdin_fd, int stdout_fd, char *buf, size_t ... function linenoisePrintKeyCodes (line 981) | void linenoisePrintKeyCodes(void) { function linenoiseRaw (line 1008) | static int linenoiseRaw(char *buf, size_t buflen, const char *prompt) { function linenoiseFree (line 1095) | void linenoiseFree(void *ptr) { function freeHistory (line 1103) | static void freeHistory(void) { function linenoiseAtExit (line 1114) | static void linenoiseAtExit(void) { function linenoiseHistoryAdd (line 1126) | int linenoiseHistoryAdd(const char *line) { function linenoiseHistorySetMaxLen (line 1159) | int linenoiseHistorySetMaxLen(int len) { function linenoiseHistorySave (line 1189) | int linenoiseHistorySave(const char *filename) { function linenoiseHistoryLoad (line 1209) | int linenoiseHistoryLoad(const char *filename) { FILE: Chapter02/redis-6.0.3/deps/linenoise/linenoise.h type linenoiseCompletions (line 46) | typedef struct linenoiseCompletions { FILE: Chapter02/redis-6.0.3/deps/lua/etc/min.c function print (line 12) | static int print(lua_State *L) function main (line 32) | int main(void) FILE: Chapter02/redis-6.0.3/deps/lua/etc/noparser.c function LUAI_FUNC (line 21) | LUAI_FUNC void luaX_init (lua_State *L) { function LUAI_FUNC (line 25) | LUAI_FUNC Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const... function LUAI_FUNC (line 37) | LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, voi... FILE: Chapter02/redis-6.0.3/deps/lua/src/fpconv.c function fpconv_update_locale (line 52) | static void fpconv_update_locale() function valid_number_character (line 75) | static inline int valid_number_character(char ch) function strtod_buffer_size (line 94) | static int strtod_buffer_size(const char *s) function fpconv_strtod (line 106) | double fpconv_strtod(const char *nptr, char **endptr) function set_number_format (line 153) | static void set_number_format(char *fmt, int precision) function fpconv_g_fmt (line 174) | int fpconv_g_fmt(char *str, double num, int precision) function fpconv_init (line 199) | void fpconv_init() FILE: Chapter02/redis-6.0.3/deps/lua/src/fpconv.h function fpconv_init (line 10) | static inline void fpconv_init() FILE: Chapter02/redis-6.0.3/deps/lua/src/lapi.c function TValue (line 49) | static TValue *index2adr (lua_State *L, int idx) { function Table (line 79) | static Table *getcurrenv (lua_State *L) { function luaA_pushobject (line 89) | void luaA_pushobject (lua_State *L, const TValue *o) { function LUA_API (line 95) | LUA_API int lua_checkstack (lua_State *L, int size) { function LUA_API (line 110) | LUA_API void lua_xmove (lua_State *from, lua_State *to, int n) { function LUA_API (line 125) | LUA_API void lua_setlevel (lua_State *from, lua_State *to) { function LUA_API (line 130) | LUA_API lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf) { function LUA_API (line 140) | LUA_API lua_State *lua_newthread (lua_State *L) { function LUA_API (line 159) | LUA_API int lua_gettop (lua_State *L) { function LUA_API (line 164) | LUA_API void lua_settop (lua_State *L, int idx) { function LUA_API (line 180) | LUA_API void lua_remove (lua_State *L, int idx) { function LUA_API (line 191) | LUA_API void lua_insert (lua_State *L, int idx) { function LUA_API (line 203) | LUA_API void lua_replace (lua_State *L, int idx) { function LUA_API (line 228) | LUA_API void lua_pushvalue (lua_State *L, int idx) { function LUA_API (line 242) | LUA_API int lua_type (lua_State *L, int idx) { function LUA_API (line 248) | LUA_API const char *lua_typename (lua_State *L, int t) { function LUA_API (line 254) | LUA_API int lua_iscfunction (lua_State *L, int idx) { function LUA_API (line 260) | LUA_API int lua_isnumber (lua_State *L, int idx) { function LUA_API (line 267) | LUA_API int lua_isstring (lua_State *L, int idx) { function LUA_API (line 273) | LUA_API int lua_isuserdata (lua_State *L, int idx) { function LUA_API (line 279) | LUA_API int lua_rawequal (lua_State *L, int index1, int index2) { function LUA_API (line 287) | LUA_API int lua_equal (lua_State *L, int index1, int index2) { function LUA_API (line 299) | LUA_API int lua_lessthan (lua_State *L, int index1, int index2) { function LUA_API (line 313) | LUA_API lua_Number lua_tonumber (lua_State *L, int idx) { function LUA_API (line 323) | LUA_API lua_Integer lua_tointeger (lua_State *L, int idx) { function LUA_API (line 337) | LUA_API int lua_toboolean (lua_State *L, int idx) { function LUA_API (line 343) | LUA_API const char *lua_tolstring (lua_State *L, int idx, size_t *len) { function LUA_API (line 361) | LUA_API size_t lua_objlen (lua_State *L, int idx) { function LUA_API (line 379) | LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) { function LUA_API (line 385) | LUA_API void *lua_touserdata (lua_State *L, int idx) { function LUA_API (line 395) | LUA_API lua_State *lua_tothread (lua_State *L, int idx) { function LUA_API (line 401) | LUA_API const void *lua_topointer (lua_State *L, int idx) { function LUA_API (line 421) | LUA_API void lua_pushnil (lua_State *L) { function LUA_API (line 429) | LUA_API void lua_pushnumber (lua_State *L, lua_Number n) { function LUA_API (line 437) | LUA_API void lua_pushinteger (lua_State *L, lua_Integer n) { function LUA_API (line 445) | LUA_API void lua_pushlstring (lua_State *L, const char *s, size_t len) { function LUA_API (line 454) | LUA_API void lua_pushstring (lua_State *L, const char *s) { function LUA_API (line 462) | LUA_API const char *lua_pushvfstring (lua_State *L, const char *fmt, function LUA_API (line 473) | LUA_API const char *lua_pushfstring (lua_State *L, const char *fmt, ...) { function LUA_API (line 486) | LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) { function LUA_API (line 503) | LUA_API void lua_pushboolean (lua_State *L, int b) { function LUA_API (line 511) | LUA_API void lua_pushlightuserdata (lua_State *L, void *p) { function LUA_API (line 519) | LUA_API int lua_pushthread (lua_State *L) { function LUA_API (line 534) | LUA_API void lua_gettable (lua_State *L, int idx) { function LUA_API (line 544) | LUA_API void lua_getfield (lua_State *L, int idx, const char *k) { function LUA_API (line 557) | LUA_API void lua_rawget (lua_State *L, int idx) { function LUA_API (line 567) | LUA_API void lua_rawgeti (lua_State *L, int idx, int n) { function LUA_API (line 578) | LUA_API void lua_createtable (lua_State *L, int narray, int nrec) { function LUA_API (line 587) | LUA_API int lua_getmetatable (lua_State *L, int objindex) { function LUA_API (line 616) | LUA_API void lua_getfenv (lua_State *L, int idx) { function LUA_API (line 645) | LUA_API void lua_settable (lua_State *L, int idx) { function LUA_API (line 657) | LUA_API void lua_setfield (lua_State *L, int idx, const char *k) { function LUA_API (line 671) | LUA_API void lua_rawset (lua_State *L, int idx) { function LUA_API (line 684) | LUA_API void lua_rawseti (lua_State *L, int idx, int n) { function LUA_API (line 697) | LUA_API int lua_setmetatable (lua_State *L, int objindex) { function LUA_API (line 734) | LUA_API int lua_setfenv (lua_State *L, int idx) { function LUA_API (line 776) | LUA_API void lua_call (lua_State *L, int nargs, int nresults) { type CallS (line 792) | struct CallS { /* data to `f_call' */ function f_call (line 798) | static void f_call (lua_State *L, void *ud) { function LUA_API (line 805) | LUA_API int lua_pcall (lua_State *L, int nargs, int nresults, int errfun... type CCallS (line 831) | struct CCallS { /* data to `f_Ccall' */ function f_Ccall (line 837) | static void f_Ccall (lua_State *L, void *ud) { function LUA_API (line 850) | LUA_API int lua_cpcall (lua_State *L, lua_CFunction func, void *ud) { function LUA_API (line 862) | LUA_API int lua_load (lua_State *L, lua_Reader reader, void *data, function LUA_API (line 875) | LUA_API int lua_dump (lua_State *L, lua_Writer writer, void *data) { function LUA_API (line 890) | LUA_API int lua_status (lua_State *L) { function LUA_API (line 899) | LUA_API int lua_gc (lua_State *L, int what, int data) { function LUA_API (line 964) | LUA_API int lua_error (lua_State *L) { function LUA_API (line 973) | LUA_API int lua_next (lua_State *L, int idx) { function LUA_API (line 990) | LUA_API void lua_concat (lua_State *L, int n) { function LUA_API (line 1007) | LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud) { function LUA_API (line 1017) | LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud) { function LUA_API (line 1025) | LUA_API void *lua_newuserdata (lua_State *L, size_t size) { function LUA_API (line 1057) | LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n) { function LUA_API (line 1071) | LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lauxlib.c function LUALIB_API (line 43) | LUALIB_API int luaL_argerror (lua_State *L, int narg, const char *extram... function LUALIB_API (line 61) | LUALIB_API int luaL_typerror (lua_State *L, int narg, const char *tname) { function tag_error (line 68) | static void tag_error (lua_State *L, int narg, int tag) { function LUALIB_API (line 73) | LUALIB_API void luaL_where (lua_State *L, int level) { function LUALIB_API (line 86) | LUALIB_API int luaL_error (lua_State *L, const char *fmt, ...) { function LUALIB_API (line 99) | LUALIB_API int luaL_checkoption (lua_State *L, int narg, const char *def, function LUALIB_API (line 112) | LUALIB_API int luaL_newmetatable (lua_State *L, const char *tname) { function LUALIB_API (line 124) | LUALIB_API void *luaL_checkudata (lua_State *L, int ud, const char *tnam... function LUALIB_API (line 140) | LUALIB_API void luaL_checkstack (lua_State *L, int space, const char *me... function LUALIB_API (line 146) | LUALIB_API void luaL_checktype (lua_State *L, int narg, int t) { function LUALIB_API (line 152) | LUALIB_API void luaL_checkany (lua_State *L, int narg) { function LUALIB_API (line 158) | LUALIB_API const char *luaL_checklstring (lua_State *L, int narg, size_t... function LUALIB_API (line 165) | LUALIB_API const char *luaL_optlstring (lua_State *L, int narg, function LUALIB_API (line 176) | LUALIB_API lua_Number luaL_checknumber (lua_State *L, int narg) { function LUALIB_API (line 184) | LUALIB_API lua_Number luaL_optnumber (lua_State *L, int narg, lua_Number... function LUALIB_API (line 189) | LUALIB_API lua_Integer luaL_checkinteger (lua_State *L, int narg) { function LUALIB_API (line 197) | LUALIB_API lua_Integer luaL_optinteger (lua_State *L, int narg, function LUALIB_API (line 203) | LUALIB_API int luaL_getmetafield (lua_State *L, int obj, const char *eve... function LUALIB_API (line 219) | LUALIB_API int luaL_callmeta (lua_State *L, int obj, const char *event) { function LUALIB_API (line 229) | LUALIB_API void (luaL_register) (lua_State *L, const char *libname, function libsize (line 235) | static int libsize (const luaL_Reg *l) { function LUALIB_API (line 242) | LUALIB_API void luaI_openlib (lua_State *L, const char *libname, function checkint (line 280) | static int checkint (lua_State *L, int topop) { function getsizes (line 287) | static void getsizes (lua_State *L) { function LUALIB_API (line 302) | LUALIB_API void luaL_setn (lua_State *L, int t, int n) { function LUALIB_API (line 321) | LUALIB_API int luaL_getn (lua_State *L, int t) { function LUALIB_API (line 340) | LUALIB_API const char *luaL_gsub (lua_State *L, const char *s, const cha... function LUALIB_API (line 357) | LUALIB_API const char *luaL_findtable (lua_State *L, int idx, function emptybuffer (line 398) | static int emptybuffer (luaL_Buffer *B) { function adjuststack (line 410) | static void adjuststack (luaL_Buffer *B) { function LUALIB_API (line 429) | LUALIB_API char *luaL_prepbuffer (luaL_Buffer *B) { function LUALIB_API (line 436) | LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l) { function LUALIB_API (line 442) | LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s) { function LUALIB_API (line 447) | LUALIB_API void luaL_pushresult (luaL_Buffer *B) { function LUALIB_API (line 454) | LUALIB_API void luaL_addvalue (luaL_Buffer *B) { function LUALIB_API (line 472) | LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B) { function LUALIB_API (line 481) | LUALIB_API int luaL_ref (lua_State *L, int t) { function LUALIB_API (line 504) | LUALIB_API void luaL_unref (lua_State *L, int t, int ref) { type LoadF (line 522) | typedef struct LoadF { function errfile (line 543) | static int errfile (lua_State *L, const char *what, int fnameindex) { function LUALIB_API (line 552) | LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) { type LoadS (line 593) | typedef struct LoadS { function LUALIB_API (line 609) | LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t s... function LUALIB_API (line 618) | LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s) { function panic (line 639) | static int panic (lua_State *L) { function LUALIB_API (line 647) | LUALIB_API lua_State *luaL_newstate (void) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lauxlib.h type luaL_Reg (line 35) | typedef struct luaL_Reg { type luaL_Buffer (line 129) | typedef struct luaL_Buffer { FILE: Chapter02/redis-6.0.3/deps/lua/src/lbaselib.c function luaB_print (line 31) | static int luaB_print (lua_State *L) { function luaB_tonumber (line 53) | static int luaB_tonumber (lua_State *L) { function luaB_error (line 81) | static int luaB_error (lua_State *L) { function luaB_getmetatable (line 93) | static int luaB_getmetatable (lua_State *L) { function luaB_setmetatable (line 104) | static int luaB_setmetatable (lua_State *L) { function getfunc (line 117) | static void getfunc (lua_State *L, int opt) { function luaB_getfenv (line 133) | static int luaB_getfenv (lua_State *L) { function luaB_setfenv (line 143) | static int luaB_setfenv (lua_State *L) { function luaB_rawequal (line 161) | static int luaB_rawequal (lua_State *L) { function luaB_rawget (line 169) | static int luaB_rawget (lua_State *L) { function luaB_rawset (line 177) | static int luaB_rawset (lua_State *L) { function luaB_gcinfo (line 187) | static int luaB_gcinfo (lua_State *L) { function luaB_collectgarbage (line 193) | static int luaB_collectgarbage (lua_State *L) { function luaB_type (line 219) | static int luaB_type (lua_State *L) { function luaB_next (line 226) | static int luaB_next (lua_State *L) { function luaB_pairs (line 238) | static int luaB_pairs (lua_State *L) { function ipairsaux (line 247) | static int ipairsaux (lua_State *L) { function luaB_ipairs (line 257) | static int luaB_ipairs (lua_State *L) { function load_aux (line 266) | static int load_aux (lua_State *L, int status) { function luaB_loadstring (line 277) | static int luaB_loadstring (lua_State *L) { function luaB_loadfile (line 285) | static int luaB_loadfile (lua_State *L) { function luaB_load (line 315) | static int luaB_load (lua_State *L) { function luaB_dofile (line 325) | static int luaB_dofile (lua_State *L) { function luaB_assert (line 334) | static int luaB_assert (lua_State *L) { function luaB_unpack (line 342) | static int luaB_unpack (lua_State *L) { function luaB_select (line 358) | static int luaB_select (lua_State *L) { function luaB_pcall (line 374) | static int luaB_pcall (lua_State *L) { function luaB_xpcall (line 384) | static int luaB_xpcall (lua_State *L) { function luaB_tostring (line 396) | static int luaB_tostring (lua_State *L) { function luaB_newproxy (line 421) | static int luaB_newproxy (lua_State *L) { function costatus (line 490) | static int costatus (lua_State *L, lua_State *co) { function luaB_costatus (line 510) | static int luaB_costatus (lua_State *L) { function auxresume (line 518) | static int auxresume (lua_State *L, lua_State *co, int narg) { function luaB_coresume (line 543) | static int luaB_coresume (lua_State *L) { function luaB_auxwrap (line 561) | static int luaB_auxwrap (lua_State *L) { function luaB_cocreate (line 576) | static int luaB_cocreate (lua_State *L) { function luaB_cowrap (line 586) | static int luaB_cowrap (lua_State *L) { function luaB_yield (line 593) | static int luaB_yield (lua_State *L) { function luaB_corunning (line 598) | static int luaB_corunning (lua_State *L) { function auxopen (line 618) | static void auxopen (lua_State *L, const char *name, function base_open (line 626) | static void base_open (lua_State *L) { function LUALIB_API (line 648) | LUALIB_API int luaopen_base (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lcode.c function isnumeral (line 30) | static int isnumeral(expdesc *e) { function luaK_nil (line 35) | void luaK_nil (FuncState *fs, int from, int n) { function luaK_jump (line 59) | int luaK_jump (FuncState *fs) { function luaK_ret (line 69) | void luaK_ret (FuncState *fs, int first, int nret) { function condjump (line 74) | static int condjump (FuncState *fs, OpCode op, int A, int B, int C) { function fixjump (line 80) | static void fixjump (FuncState *fs, int pc, int dest) { function luaK_getlabel (line 94) | int luaK_getlabel (FuncState *fs) { function getjump (line 100) | static int getjump (FuncState *fs, int pc) { function Instruction (line 109) | static Instruction *getjumpcontrol (FuncState *fs, int pc) { function need_value (line 122) | static int need_value (FuncState *fs, int list) { function patchtestreg (line 131) | static int patchtestreg (FuncState *fs, int node, int reg) { function removevalues (line 144) | static void removevalues (FuncState *fs, int list) { function patchlistaux (line 150) | static void patchlistaux (FuncState *fs, int list, int vtarget, int reg, function dischargejpc (line 163) | static void dischargejpc (FuncState *fs) { function luaK_patchlist (line 169) | void luaK_patchlist (FuncState *fs, int list, int target) { function luaK_patchtohere (line 179) | void luaK_patchtohere (FuncState *fs, int list) { function luaK_concat (line 185) | void luaK_concat (FuncState *fs, int *l1, int l2) { function luaK_checkstack (line 199) | void luaK_checkstack (FuncState *fs, int n) { function luaK_reserveregs (line 209) | void luaK_reserveregs (FuncState *fs, int n) { function freereg (line 215) | static void freereg (FuncState *fs, int reg) { function freeexp (line 223) | static void freeexp (FuncState *fs, expdesc *e) { function addk (line 229) | static int addk (FuncState *fs, TValue *k, TValue *v) { function luaK_stringK (line 250) | int luaK_stringK (FuncState *fs, TString *s) { function luaK_numberK (line 257) | int luaK_numberK (FuncState *fs, lua_Number r) { function boolK (line 264) | static int boolK (FuncState *fs, int b) { function nilK (line 271) | static int nilK (FuncState *fs) { function luaK_setreturns (line 280) | void luaK_setreturns (FuncState *fs, expdesc *e, int nresults) { function luaK_setoneret (line 292) | void luaK_setoneret (FuncState *fs, expdesc *e) { function luaK_dischargevars (line 304) | void luaK_dischargevars (FuncState *fs, expdesc *e) { function code_label (line 337) | static int code_label (FuncState *fs, int A, int b, int jump) { function discharge2reg (line 343) | static void discharge2reg (FuncState *fs, expdesc *e, int reg) { function discharge2anyreg (line 382) | static void discharge2anyreg (FuncState *fs, expdesc *e) { function exp2reg (line 390) | static void exp2reg (FuncState *fs, expdesc *e, int reg) { function luaK_exp2nextreg (line 414) | void luaK_exp2nextreg (FuncState *fs, expdesc *e) { function luaK_exp2anyreg (line 422) | int luaK_exp2anyreg (FuncState *fs, expdesc *e) { function luaK_exp2val (line 436) | void luaK_exp2val (FuncState *fs, expdesc *e) { function luaK_exp2RK (line 444) | int luaK_exp2RK (FuncState *fs, expdesc *e) { function luaK_storevar (line 472) | void luaK_storevar (FuncState *fs, expdesc *var, expdesc *ex) { function luaK_self (line 503) | void luaK_self (FuncState *fs, expdesc *e, expdesc *key) { function invertjump (line 516) | static void invertjump (FuncState *fs, expdesc *e) { function jumponcond (line 524) | static int jumponcond (FuncState *fs, expdesc *e, int cond) { function luaK_goiftrue (line 539) | void luaK_goiftrue (FuncState *fs, expdesc *e) { function luaK_goiffalse (line 563) | static void luaK_goiffalse (FuncState *fs, expdesc *e) { function codenot (line 586) | static void codenot (FuncState *fs, expdesc *e) { function luaK_indexed (line 621) | void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k) { function constfolding (line 627) | static int constfolding (OpCode op, expdesc *e1, expdesc *e2) { function codearith (line 653) | static void codearith (FuncState *fs, OpCode op, expdesc *e1, expdesc *e... function codecomp (line 673) | static void codecomp (FuncState *fs, OpCode op, int cond, expdesc *e1, function luaK_prefix (line 689) | void luaK_prefix (FuncState *fs, UnOpr op, expdesc *e) { function luaK_infix (line 710) | void luaK_infix (FuncState *fs, BinOpr op, expdesc *v) { function luaK_posfix (line 737) | void luaK_posfix (FuncState *fs, BinOpr op, expdesc *e1, expdesc *e2) { function luaK_fixline (line 784) | void luaK_fixline (FuncState *fs, int line) { function luaK_code (line 789) | static int luaK_code (FuncState *fs, Instruction i, int line) { function luaK_codeABC (line 804) | int luaK_codeABC (FuncState *fs, OpCode o, int a, int b, int c) { function luaK_codeABx (line 812) | int luaK_codeABx (FuncState *fs, OpCode o, int a, unsigned int bc) { function luaK_setlist (line 819) | void luaK_setlist (FuncState *fs, int base, int nelems, int tostore) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lcode.h type BinOpr (line 26) | typedef enum BinOpr { type UnOpr (line 36) | typedef enum UnOpr { OPR_MINUS, OPR_NOT, OPR_LEN, OPR_NOUNOPR } UnOpr; FILE: Chapter02/redis-6.0.3/deps/lua/src/ldblib.c function db_getregistry (line 22) | static int db_getregistry (lua_State *L) { function db_getmetatable (line 28) | static int db_getmetatable (lua_State *L) { function db_setmetatable (line 37) | static int db_setmetatable (lua_State *L) { function db_getfenv (line 47) | static int db_getfenv (lua_State *L) { function db_setfenv (line 54) | static int db_setfenv (lua_State *L) { function settabss (line 64) | static void settabss (lua_State *L, const char *i, const char *v) { function settabsi (line 70) | static void settabsi (lua_State *L, const char *i, int v) { function lua_State (line 76) | static lua_State *getthread (lua_State *L, int *arg) { function treatstackoption (line 88) | static void treatstackoption (lua_State *L, lua_State *L1, const char *f... function db_getinfo (line 99) | static int db_getinfo (lua_State *L) { function db_getlocal (line 144) | static int db_getlocal (lua_State *L) { function db_setlocal (line 165) | static int db_setlocal (lua_State *L) { function auxupvalue (line 179) | static int auxupvalue (lua_State *L, int get) { function db_getupvalue (line 192) | static int db_getupvalue (lua_State *L) { function db_setupvalue (line 197) | static int db_setupvalue (lua_State *L) { function hookf (line 207) | static void hookf (lua_State *L, lua_Debug *ar) { function makemask (line 225) | static int makemask (const char *smask, int count) { function gethooktable (line 245) | static void gethooktable (lua_State *L) { function db_sethook (line 258) | static int db_sethook (lua_State *L) { function db_gethook (line 282) | static int db_gethook (lua_State *L) { function db_debug (line 302) | static int db_debug (lua_State *L) { function db_errorfb (line 322) | static int db_errorfb (lua_State *L) { function LUALIB_API (line 394) | LUALIB_API int luaopen_debug (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/ldebug.c function currentpc (line 36) | static int currentpc (lua_State *L, CallInfo *ci) { function currentline (line 44) | static int currentline (lua_State *L, CallInfo *ci) { function LUA_API (line 56) | LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int coun... function LUA_API (line 69) | LUA_API lua_Hook lua_gethook (lua_State *L) { function LUA_API (line 74) | LUA_API int lua_gethookmask (lua_State *L) { function LUA_API (line 79) | LUA_API int lua_gethookcount (lua_State *L) { function LUA_API (line 84) | LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar) { function Proto (line 107) | static Proto *getluaproto (CallInfo *ci) { function LUA_API (line 127) | LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int... function LUA_API (line 138) | LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int... function funcinfo (line 150) | static void funcinfo (lua_Debug *ar, Closure *cl) { function info_tailcall (line 167) | static void info_tailcall (lua_Debug *ar) { function collectvalidlines (line 177) | static void collectvalidlines (lua_State *L, Closure *f) { function auxgetinfo (line 193) | static int auxgetinfo (lua_State *L, const char *what, lua_Debug *ar, function LUA_API (line 232) | LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) { function precheck (line 276) | static int precheck (const Proto *pt) { function luaG_checkopenop (line 290) | int luaG_checkopenop (Instruction i) { function checkArgMode (line 304) | static int checkArgMode (const Proto *pt, int r, enum OpArgMask mode) { function Instruction (line 317) | static Instruction symbexec (const Proto *pt, int lastpc, int reg) { function luaG_checkcode (line 484) | int luaG_checkcode (const Proto *pt) { function isinstack (line 559) | static int isinstack (CallInfo *ci, const TValue *o) { function luaG_typeerror (line 567) | void luaG_typeerror (lua_State *L, const TValue *o, const char *op) { function luaG_concaterror (line 581) | void luaG_concaterror (lua_State *L, StkId p1, StkId p2) { function luaG_aritherror (line 588) | void luaG_aritherror (lua_State *L, const TValue *p1, const TValue *p2) { function luaG_ordererror (line 596) | int luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) { function addinfo (line 607) | static void addinfo (lua_State *L, const char *msg) { function luaG_errormsg (line 618) | void luaG_errormsg (lua_State *L) { function luaG_runerror (line 631) | void luaG_runerror (lua_State *L, const char *fmt, ...) { FILE: Chapter02/redis-6.0.3/deps/lua/src/ldo.c type lua_longjmp (line 44) | struct lua_longjmp { function luaD_seterrorobj (line 51) | void luaD_seterrorobj (lua_State *L, int errcode, StkId oldtop) { function restore_stack_limit (line 71) | static void restore_stack_limit (lua_State *L) { function resetstack (line 81) | static void resetstack (lua_State *L, int status) { function luaD_throw (line 94) | void luaD_throw (lua_State *L, int errcode) { function luaD_rawrunprotected (line 111) | int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) { function correctstack (line 126) | static void correctstack (lua_State *L, TValue *oldstack) { function luaD_reallocstack (line 141) | void luaD_reallocstack (lua_State *L, int newsize) { function luaD_reallocCI (line 152) | void luaD_reallocCI (lua_State *L, int newsize) { function luaD_growstack (line 161) | void luaD_growstack (lua_State *L, int n) { function CallInfo (line 169) | static CallInfo *growCI (lua_State *L) { function luaD_callhook (line 181) | void luaD_callhook (lua_State *L, int event, int line) { function StkId (line 208) | static StkId adjust_varargs (lua_State *L, Proto *p, int actual) { function StkId (line 244) | static StkId tryfuncTM (lua_State *L, StkId func) { function luaD_precall (line 265) | int luaD_precall (lua_State *L, StkId func, int nresults) { function StkId (line 332) | static StkId callrethooks (lua_State *L, StkId firstResult) { function luaD_poscall (line 343) | int luaD_poscall (lua_State *L, StkId firstResult) { function luaD_call (line 370) | void luaD_call (lua_State *L, StkId func, int nResults) { function resume (line 384) | static void resume (lua_State *L, void *ud) { function resume_error (line 409) | static int resume_error (lua_State *L, const char *msg) { function LUA_API (line 418) | LUA_API int lua_resume (lua_State *L, int nargs) { function LUA_API (line 444) | LUA_API int lua_yield (lua_State *L, int nresults) { function luaD_pcall (line 456) | int luaD_pcall (lua_State *L, Pfunc func, void *u, type SParser (line 485) | struct SParser { /* data to `f_parser' */ function f_parser (line 491) | static void f_parser (lua_State *L, void *ud) { function luaD_protectedparser (line 509) | int luaD_protectedparser (lua_State *L, ZIO *z, const char *name) { FILE: Chapter02/redis-6.0.3/deps/lua/src/ldump.c type DumpState (line 18) | typedef struct { function DumpBlock (line 29) | static void DumpBlock(const void* b, size_t size, DumpState* D) function DumpChar (line 39) | static void DumpChar(int y, DumpState* D) function DumpInt (line 45) | static void DumpInt(int x, DumpState* D) function DumpNumber (line 50) | static void DumpNumber(lua_Number x, DumpState* D) function DumpVector (line 55) | static void DumpVector(const void* b, int n, size_t size, DumpState* D) function DumpString (line 61) | static void DumpString(const TString* s, DumpState* D) function DumpConstants (line 80) | static void DumpConstants(const Proto* f, DumpState* D) function DumpDebug (line 111) | static void DumpDebug(const Proto* f, DumpState* D) function DumpFunction (line 129) | static void DumpFunction(const Proto* f, const TString* p, DumpState* D) function DumpHeader (line 143) | static void DumpHeader(DumpState* D) function luaU_dump (line 153) | int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, i... FILE: Chapter02/redis-6.0.3/deps/lua/src/lfunc.c function Closure (line 23) | Closure *luaF_newCclosure (lua_State *L, int nelems, Table *e) { function Closure (line 33) | Closure *luaF_newLclosure (lua_State *L, int nelems, Table *e) { function UpVal (line 44) | UpVal *luaF_newupval (lua_State *L) { function UpVal (line 53) | UpVal *luaF_findupval (lua_State *L, StkId level) { function unlinkupval (line 82) | static void unlinkupval (UpVal *uv) { function luaF_freeupval (line 89) | void luaF_freeupval (lua_State *L, UpVal *uv) { function luaF_close (line 96) | void luaF_close (lua_State *L, StkId level) { function Proto (line 115) | Proto *luaF_newproto (lua_State *L) { function luaF_freeproto (line 141) | void luaF_freeproto (lua_State *L, Proto *f) { function luaF_freeclosure (line 152) | void luaF_freeclosure (lua_State *L, Closure *c) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lgc.c function removeentry (line 62) | static void removeentry (Node *n) { function reallymarkobject (line 69) | static void reallymarkobject (global_State *g, GCObject *o) { function marktmu (line 115) | static void marktmu (global_State *g) { function luaC_separateudata (line 128) | size_t luaC_separateudata (lua_State *L, int all) { function traversetable (line 158) | static int traversetable (global_State *g, Table *h) { function traverseproto (line 203) | static void traverseproto (global_State *g, Proto *f) { function traverseclosure (line 224) | static void traverseclosure (global_State *g, Closure *cl) { function checkstacksizes (line 241) | static void checkstacksizes (lua_State *L, StkId max) { function traversestack (line 256) | static void traversestack (global_State *g, lua_State *l) { function l_mem (line 277) | static l_mem propagatemark (global_State *g) { function propagateall (line 323) | static size_t propagateall (global_State *g) { function iscleared (line 337) | static int iscleared (const TValue *o, int iskey) { function cleartable (line 351) | static void cleartable (GCObject *l) { function freeobj (line 378) | static void freeobj (lua_State *L, GCObject *o) { function GCObject (line 407) | static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count) { function checkSizes (line 431) | static void checkSizes (lua_State *L) { function GCTM (line 445) | static void GCTM (lua_State *L) { function luaC_callGCTM (line 477) | void luaC_callGCTM (lua_State *L) { function luaC_freeall (line 483) | void luaC_freeall (lua_State *L) { function markmt (line 493) | static void markmt (global_State *g) { function markroot (line 501) | static void markroot (lua_State *L) { function remarkupvals (line 515) | static void remarkupvals (global_State *g) { function atomic (line 525) | static void atomic (lua_State *L) { function l_mem (line 556) | static l_mem singlestep (lua_State *L) { function luaC_step (line 610) | void luaC_step (lua_State *L) { function luaC_fullgc (line 635) | void luaC_fullgc (lua_State *L) { function luaC_barrierf (line 661) | void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) { function luaC_barrierback (line 674) | void luaC_barrierback (lua_State *L, Table *t) { function luaC_link (line 685) | void luaC_link (lua_State *L, GCObject *o, lu_byte tt) { function luaC_linkupval (line 694) | void luaC_linkupval (lua_State *L, UpVal *uv) { FILE: Chapter02/redis-6.0.3/deps/lua/src/linit.c function LUALIB_API (line 30) | LUALIB_API void luaL_openlibs (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/liolib.c function pushresult (line 30) | static int pushresult (lua_State *L, int i, const char *filename) { function fileerror (line 48) | static void fileerror (lua_State *L, int arg, const char *filename) { function io_type (line 57) | static int io_type (lua_State *L) { function FILE (line 72) | static FILE *tofile (lua_State *L) { function FILE (line 86) | static FILE **newfile (lua_State *L) { function io_noclose (line 98) | static int io_noclose (lua_State *L) { function io_pclose (line 108) | static int io_pclose (lua_State *L) { function io_fclose (line 119) | static int io_fclose (lua_State *L) { function aux_close (line 127) | static int aux_close (lua_State *L) { function io_close (line 134) | static int io_close (lua_State *L) { function io_gc (line 142) | static int io_gc (lua_State *L) { function io_tostring (line 151) | static int io_tostring (lua_State *L) { function io_open (line 161) | static int io_open (lua_State *L) { function io_popen (line 174) | static int io_popen (lua_State *L) { function io_tmpfile (line 183) | static int io_tmpfile (lua_State *L) { function FILE (line 190) | static FILE *getiofile (lua_State *L, int findex) { function g_iofile (line 200) | static int g_iofile (lua_State *L, int f, const char *mode) { function io_input (line 221) | static int io_input (lua_State *L) { function io_output (line 226) | static int io_output (lua_State *L) { function aux_lines (line 234) | static void aux_lines (lua_State *L, int idx, int toclose) { function f_lines (line 241) | static int f_lines (lua_State *L) { function io_lines (line 248) | static int io_lines (lua_State *L) { function read_number (line 273) | static int read_number (lua_State *L, FILE *f) { function test_eof (line 286) | static int test_eof (lua_State *L, FILE *f) { function read_line (line 294) | static int read_line (lua_State *L, FILE *f) { function read_chars (line 316) | static int read_chars (lua_State *L, FILE *f, size_t n) { function g_read (line 334) | static int g_read (lua_State *L, FILE *f, int first) { function io_read (line 381) | static int io_read (lua_State *L) { function f_read (line 386) | static int f_read (lua_State *L) { function io_readline (line 391) | static int io_readline (lua_State *L) { function g_write (line 413) | static int g_write (lua_State *L, FILE *f, int arg) { function io_write (line 432) | static int io_write (lua_State *L) { function f_write (line 437) | static int f_write (lua_State *L) { function f_seek (line 442) | static int f_seek (lua_State *L) { function f_setvbuf (line 458) | static int f_setvbuf (lua_State *L) { function io_flush (line 470) | static int io_flush (lua_State *L) { function f_flush (line 475) | static int f_flush (lua_State *L) { function createmeta (line 510) | static void createmeta (lua_State *L) { function createstdfile (line 518) | static void createstdfile (lua_State *L, FILE *f, int k, const char *fna... function newfenv (line 530) | static void newfenv (lua_State *L, lua_CFunction cls) { function LUALIB_API (line 537) | LUALIB_API int luaopen_io (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/llex.c function save (line 51) | static void save (LexState *ls, int c) { function luaX_init (line 64) | void luaX_init (lua_State *L) { function luaX_lexerror (line 102) | void luaX_lexerror (LexState *ls, const char *msg, int token) { function luaX_syntaxerror (line 112) | void luaX_syntaxerror (LexState *ls, const char *msg) { function TString (line 117) | TString *luaX_newstring (LexState *ls, const char *str, size_t l) { function inclinenumber (line 129) | static void inclinenumber (LexState *ls) { function luaX_setinput (line 140) | void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, TString *source) { function check_next (line 163) | static int check_next (LexState *ls, const char *set) { function buffreplace (line 171) | static void buffreplace (LexState *ls, char from, char to) { function trydecpoint (line 179) | static void trydecpoint (LexState *ls, SemInfo *seminfo) { function read_numeral (line 194) | static void read_numeral (LexState *ls, SemInfo *seminfo) { function skip_sep (line 210) | static int skip_sep (LexState *ls) { function read_long_string (line 223) | static void read_long_string (LexState *ls, SemInfo *seminfo, int sep) { function read_string (line 278) | static void read_string (LexState *ls, int del, SemInfo *seminfo) { function llex (line 334) | static int llex (LexState *ls, SemInfo *seminfo) { function luaX_next (line 448) | void luaX_next (LexState *ls) { function luaX_lookahead (line 459) | void luaX_lookahead (LexState *ls) { FILE: Chapter02/redis-6.0.3/deps/lua/src/llex.h type RESERVED (line 24) | enum RESERVED { type SemInfo (line 43) | typedef union { type Token (line 49) | typedef struct Token { type LexState (line 55) | typedef struct LexState { FILE: Chapter02/redis-6.0.3/deps/lua/src/llimits.h type LUAI_UINT32 (line 18) | typedef LUAI_UINT32 lu_int32; type LUAI_UMEM (line 20) | typedef LUAI_UMEM lu_mem; type LUAI_MEM (line 22) | typedef LUAI_MEM l_mem; type lu_byte (line 27) | typedef unsigned char lu_byte; type LUAI_USER_ALIGNMENT_T (line 47) | typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; type LUAI_UACNUMBER (line 51) | typedef LUAI_UACNUMBER l_uacNumber; type lu_int32 (line 88) | typedef lu_int32 Instruction; FILE: Chapter02/redis-6.0.3/deps/lua/src/lmathlib.c function math_abs (line 26) | static int math_abs (lua_State *L) { function math_sin (line 31) | static int math_sin (lua_State *L) { function math_sinh (line 36) | static int math_sinh (lua_State *L) { function math_cos (line 41) | static int math_cos (lua_State *L) { function math_cosh (line 46) | static int math_cosh (lua_State *L) { function math_tan (line 51) | static int math_tan (lua_State *L) { function math_tanh (line 56) | static int math_tanh (lua_State *L) { function math_asin (line 61) | static int math_asin (lua_State *L) { function math_acos (line 66) | static int math_acos (lua_State *L) { function math_atan (line 71) | static int math_atan (lua_State *L) { function math_atan2 (line 76) | static int math_atan2 (lua_State *L) { function math_ceil (line 81) | static int math_ceil (lua_State *L) { function math_floor (line 86) | static int math_floor (lua_State *L) { function math_fmod (line 91) | static int math_fmod (lua_State *L) { function math_modf (line 96) | static int math_modf (lua_State *L) { function math_sqrt (line 104) | static int math_sqrt (lua_State *L) { function math_pow (line 109) | static int math_pow (lua_State *L) { function math_log (line 114) | static int math_log (lua_State *L) { function math_log10 (line 119) | static int math_log10 (lua_State *L) { function math_exp (line 124) | static int math_exp (lua_State *L) { function math_deg (line 129) | static int math_deg (lua_State *L) { function math_rad (line 134) | static int math_rad (lua_State *L) { function math_frexp (line 139) | static int math_frexp (lua_State *L) { function math_ldexp (line 146) | static int math_ldexp (lua_State *L) { function math_min (line 153) | static int math_min (lua_State *L) { function math_max (line 167) | static int math_max (lua_State *L) { function math_random (line 181) | static int math_random (lua_State *L) { function math_randomseed (line 209) | static int math_randomseed (lua_State *L) { function LUALIB_API (line 251) | LUALIB_API int luaopen_math (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/loadlib.c function ll_unloadlib (line 63) | static void ll_unloadlib (void *lib) { function lua_CFunction (line 75) | static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { function setprogdir (line 97) | static void setprogdir (lua_State *L) { function pusherror (line 112) | static void pusherror (lua_State *L) { function ll_unloadlib (line 122) | static void ll_unloadlib (void *lib) { function lua_CFunction (line 134) | static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { function pusherror (line 159) | static void pusherror (lua_State *L) { function ll_unloadlib (line 186) | static void ll_unloadlib (void *lib) { function lua_CFunction (line 212) | static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { function ll_unloadlib (line 239) | static void ll_unloadlib (void *lib) { function lua_CFunction (line 251) | static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { function gctm (line 286) | static int gctm (lua_State *L) { function ll_loadfunc (line 294) | static int ll_loadfunc (lua_State *L, const char *path, const char *sym) { function ll_loadlib (line 309) | static int ll_loadlib (lua_State *L) { function readable (line 332) | static int readable (const char *filename) { function loaderror (line 374) | static void loaderror (lua_State *L, const char *filename) { function loader_Lua (line 380) | static int loader_Lua (lua_State *L) { function loader_C (line 402) | static int loader_C (lua_State *L) { function loader_Croot (line 414) | static int loader_Croot (lua_State *L) { function loader_preload (line 435) | static int loader_preload (lua_State *L) { function ll_require (line 451) | static int ll_require (lua_State *L) { function setfenv (line 507) | static void setfenv (lua_State *L) { function dooptions (line 519) | static void dooptions (lua_State *L, int n) { function modinit (line 529) | static void modinit (lua_State *L, const char *modname) { function ll_module (line 544) | static int ll_module (lua_State *L) { function ll_seeall (line 572) | static int ll_seeall (lua_State *L) { function setpath (line 592) | static void setpath (lua_State *L, const char *fieldname, const char *en... function LUALIB_API (line 627) | LUALIB_API int luaopen_package (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lobject.c function luaO_int2fb (line 35) | int luaO_int2fb (unsigned int x) { function luaO_fb2int (line 47) | int luaO_fb2int (int x) { function luaO_log2 (line 54) | int luaO_log2 (unsigned int x) { function luaO_rawequalObj (line 72) | int luaO_rawequalObj (const TValue *t1, const TValue *t2) { function luaO_str2d (line 90) | int luaO_str2d (const char *s, lua_Number *result) { function pushstr (line 104) | static void pushstr (lua_State *L, const char *str) { function luaO_chunkid (line 182) | void luaO_chunkid (char *out, const char *source, size_t bufflen) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lobject.h type GCObject (line 36) | typedef union GCObject GCObject; type GCheader (line 49) | typedef struct GCheader { type Value (line 59) | typedef union { type TValue (line 73) | typedef struct lua_TValue { type TValue (line 193) | typedef TValue *StkId; type TString (line 199) | typedef union TString { type Udata (line 215) | typedef union Udata { type Proto (line 231) | typedef struct Proto { type LocVar (line 262) | typedef struct LocVar { type UpVal (line 274) | typedef struct UpVal { type CClosure (line 295) | typedef struct CClosure { type LClosure (line 302) | typedef struct LClosure { type Closure (line 309) | typedef union Closure { type TKey (line 323) | typedef union TKey { type Node (line 332) | typedef struct Node { type Table (line 338) | typedef struct Table { FILE: Chapter02/redis-6.0.3/deps/lua/src/lopcodes.h type OpMode (line 31) | enum OpMode {iABC, iABx, iAsBx} type OpCode (line 150) | typedef enum { type OpArgMask (line 245) | enum OpArgMask { FILE: Chapter02/redis-6.0.3/deps/lua/src/loslib.c function os_pushresult (line 23) | static int os_pushresult (lua_State *L, int i, const char *filename) { function os_execute (line 38) | static int os_execute (lua_State *L) { function os_remove (line 44) | static int os_remove (lua_State *L) { function os_rename (line 50) | static int os_rename (lua_State *L) { function os_tmpname (line 57) | static int os_tmpname (lua_State *L) { function os_getenv (line 68) | static int os_getenv (lua_State *L) { function os_clock (line 74) | static int os_clock (lua_State *L) { function setfield (line 88) | static void setfield (lua_State *L, const char *key, int value) { function setboolfield (line 93) | static void setboolfield (lua_State *L, const char *key, int value) { function getboolfield (line 100) | static int getboolfield (lua_State *L, const char *key) { function getfield (line 109) | static int getfield (lua_State *L, const char *key, int d) { function os_date (line 124) | static int os_date (lua_State *L) { function os_time (line 170) | static int os_time (lua_State *L) { function os_difftime (line 195) | static int os_difftime (lua_State *L) { function os_setlocale (line 204) | static int os_setlocale (lua_State *L) { function os_exit (line 216) | static int os_exit (lua_State *L) { function LUALIB_API (line 239) | LUALIB_API int luaopen_os (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lparser.c type BlockCnt (line 40) | typedef struct BlockCnt { function anchor_token (line 57) | static void anchor_token (LexState *ls) { function error_expected (line 65) | static void error_expected (LexState *ls, int token) { function errorlimit (line 71) | static void errorlimit (FuncState *fs, int limit, const char *what) { function testnext (line 80) | static int testnext (LexState *ls, int c) { function check (line 89) | static void check (LexState *ls, int c) { function checknext (line 94) | static void checknext (LexState *ls, int c) { function check_match (line 104) | static void check_match (LexState *ls, int what, int who, int where) { function TString (line 117) | static TString *str_checkname (LexState *ls) { function init_exp (line 126) | static void init_exp (expdesc *e, expkind k, int i) { function codestring (line 133) | static void codestring (LexState *ls, expdesc *e, TString *s) { function checkname (line 138) | static void checkname(LexState *ls, expdesc *e) { function registerlocalvar (line 143) | static int registerlocalvar (LexState *ls, TString *varname) { function new_localvar (line 160) | static void new_localvar (LexState *ls, TString *name, int n) { function adjustlocalvars (line 167) | static void adjustlocalvars (LexState *ls, int nvars) { function removevars (line 176) | static void removevars (LexState *ls, int tolevel) { function indexupvalue (line 183) | static int indexupvalue (FuncState *fs, TString *name, expdesc *v) { function searchvar (line 207) | static int searchvar (FuncState *fs, TString *n) { function markupval (line 217) | static void markupval (FuncState *fs, int level) { function singlevaraux (line 224) | static int singlevaraux (FuncState *fs, TString *n, expdesc *var, int ba... function singlevar (line 248) | static void singlevar (LexState *ls, expdesc *var) { function adjust_assign (line 256) | static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *... function enterlevel (line 276) | static void enterlevel (LexState *ls) { function enterblock (line 285) | static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isbreakable) { function leaveblock (line 296) | static void leaveblock (FuncState *fs) { function pushclosure (line 310) | static void pushclosure (LexState *ls, FuncState *func, expdesc *v) { function open_func (line 328) | static void open_func (LexState *ls, FuncState *fs) { function close_func (line 356) | static void close_func (LexState *ls) { function Proto (line 383) | Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const char *nam... function field (line 407) | static void field (LexState *ls, expdesc *v) { function yindex (line 418) | static void yindex (LexState *ls, expdesc *v) { type ConsControl (line 434) | struct ConsControl { function recfield (line 443) | static void recfield (LexState *ls, struct ConsControl *cc) { function closelistfield (line 464) | static void closelistfield (FuncState *fs, struct ConsControl *cc) { function lastlistfield (line 475) | static void lastlistfield (FuncState *fs, struct ConsControl *cc) { function listfield (line 490) | static void listfield (LexState *ls, struct ConsControl *cc) { function constructor (line 498) | static void constructor (LexState *ls, expdesc *t) { function parlist (line 543) | static void parlist (LexState *ls) { function body (line 576) | static void body (LexState *ls, expdesc *e, int needself, int line) { function explist1 (line 596) | static int explist1 (LexState *ls, expdesc *v) { function funcargs (line 609) | static void funcargs (LexState *ls, expdesc *f) { function prefixexp (line 667) | static void prefixexp (LexState *ls, expdesc *v) { function primaryexp (line 690) | static void primaryexp (LexState *ls, expdesc *v) { function simpleexp (line 727) | static void simpleexp (LexState *ls, expdesc *v) { function UnOpr (line 778) | static UnOpr getunopr (int op) { function BinOpr (line 788) | static BinOpr getbinopr (int op) { function BinOpr (line 828) | static BinOpr subexpr (LexState *ls, expdesc *v, unsigned int limit) { function expr (line 856) | static void expr (LexState *ls, expdesc *v) { function block_follow (line 871) | static int block_follow (int token) { function block (line 881) | static void block (LexState *ls) { type LHS_assign (line 896) | struct LHS_assign { function check_conflict (line 908) | static void check_conflict (LexState *ls, struct LHS_assign *lh, expdesc... function assignment (line 931) | static void assignment (LexState *ls, struct LHS_assign *lh, int nvars) { function cond (line 965) | static int cond (LexState *ls) { function breakstat (line 975) | static void breakstat (LexState *ls) { function whilestat (line 991) | static void whilestat (LexState *ls, int line) { function repeatstat (line 1010) | static void repeatstat (LexState *ls, int line) { function exp1 (line 1036) | static int exp1 (LexState *ls) { function forbody (line 1046) | static void forbody (LexState *ls, int base, int line, int nvars, int is... function fornum (line 1067) | static void fornum (LexState *ls, TString *varname, int line) { function forlist (line 1089) | static void forlist (LexState *ls, TString *indexname) { function forstat (line 1112) | static void forstat (LexState *ls, int line) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lparser.h type expkind (line 19) | typedef enum { type expdesc (line 37) | typedef struct expdesc { type upvaldesc (line 48) | typedef struct upvaldesc { type BlockCnt (line 54) | struct BlockCnt type FuncState (line 58) | typedef struct FuncState { FILE: Chapter02/redis-6.0.3/deps/lua/src/lstate.c type LG (line 35) | typedef struct LG { function stack_init (line 42) | static void stack_init (lua_State *L1, lua_State *L) { function freestack (line 61) | static void freestack (lua_State *L, lua_State *L1) { function f_luaopen (line 70) | static void f_luaopen (lua_State *L, void *ud) { function preinit_state (line 84) | static void preinit_state (lua_State *L, global_State *g) { function close_state (line 105) | static void close_state (lua_State *L) { function lua_State (line 119) | lua_State *luaE_newthread (lua_State *L) { function luaE_freethread (line 134) | void luaE_freethread (lua_State *L, lua_State *L1) { function LUA_API (line 143) | LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { function callallgcTM (line 193) | static void callallgcTM (lua_State *L, void *ud) { function LUA_API (line 199) | LUA_API void lua_close (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lstate.h type lua_longjmp (line 18) | struct lua_longjmp type stringtable (line 38) | typedef struct stringtable { type CallInfo (line 48) | typedef struct CallInfo { type global_State (line 68) | typedef struct global_State { type lua_State (line 100) | struct lua_State { type Table (line 141) | struct Table type Proto (line 142) | struct Proto type UpVal (line 143) | struct UpVal type lua_State (line 144) | struct lua_State FILE: Chapter02/redis-6.0.3/deps/lua/src/lstring.c function luaS_resize (line 22) | void luaS_resize (lua_State *L, int newsize) { function TString (line 50) | static TString *newlstr (lua_State *L, const char *str, size_t l, function TString (line 75) | TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { function Udata (line 96) | Udata *luaS_newudata (lua_State *L, size_t s, Table *e) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lstrlib.c function str_len (line 28) | static int str_len (lua_State *L) { function posrelat (line 36) | static ptrdiff_t posrelat (ptrdiff_t pos, size_t len) { function str_sub (line 43) | static int str_sub (lua_State *L) { function str_reverse (line 57) | static int str_reverse (lua_State *L) { function str_lower (line 68) | static int str_lower (lua_State *L) { function str_upper (line 81) | static int str_upper (lua_State *L) { function str_rep (line 93) | static int str_rep (lua_State *L) { function str_byte (line 106) | static int str_byte (lua_State *L) { function str_char (line 125) | static int str_char (lua_State *L) { function writer (line 140) | static int writer (lua_State *L, const void* b, size_t size, void* B) { function str_dump (line 147) | static int str_dump (lua_State *L) { type MatchState (line 170) | typedef struct MatchState { function check_capture (line 186) | static int check_capture (MatchState *ms, int l) { function capture_to_close (line 194) | static int capture_to_close (MatchState *ms) { function match_class (line 226) | static int match_class (int c, int cl) { function matchbracketclass (line 245) | static int matchbracketclass (int c, const char *p, const char *ec) { function singlematch (line 268) | static int singlematch (int c, const char *p, const char *ep) { function push_onecapture (line 466) | static void push_onecapture (MatchState *ms, int i, const char *s, function push_captures (line 485) | static int push_captures (MatchState *ms, const char *s, const char *e) { function str_find_aux (line 495) | static int str_find_aux (lua_State *L, int find) { function str_find (line 538) | static int str_find (lua_State *L) { function str_match (line 543) | static int str_match (lua_State *L) { function gmatch_aux (line 548) | static int gmatch_aux (lua_State *L) { function gmatch (line 574) | static int gmatch (lua_State *L) { function gfind_nodef (line 584) | static int gfind_nodef (lua_State *L) { function add_s (line 590) | static void add_s (MatchState *ms, luaL_Buffer *b, const char *s, function add_value (line 612) | static void add_value (MatchState *ms, luaL_Buffer *b, const char *s, function str_gsub (line 644) | static int str_gsub (lua_State *L) { function addquoted (line 696) | static void addquoted (lua_State *L, luaL_Buffer *b, int arg) { function addintlen (line 747) | static void addintlen (char *form) { function str_format (line 756) | static int str_format (lua_State *L) { function createmetatable (line 847) | static void createmetatable (lua_State *L) { function LUALIB_API (line 862) | LUALIB_API int luaopen_string (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/ltable.c function Node (line 84) | static Node *hashnum (const Table *t, lua_Number n) { function Node (line 100) | static Node *mainposition (const Table *t, const TValue *key) { function arrayindex (line 120) | static int arrayindex (const TValue *key) { function findindex (line 137) | static int findindex (lua_State *L, Table *t, StkId key) { function luaH_next (line 162) | int luaH_next (lua_State *L, Table *t, StkId key) { function computesizes (line 189) | static int computesizes (int nums[], int *narray) { function countint (line 211) | static int countint (const TValue *key, int *nums) { function numusearray (line 222) | static int numusearray (const Table *t, int *nums) { function numusehash (line 247) | static int numusehash (const Table *t, int *nums, int *pnasize) { function setarrayvector (line 263) | static void setarrayvector (lua_State *L, Table *t, int size) { function setnodevector (line 272) | static void setnodevector (lua_State *L, Table *t, int size) { function resize (line 297) | static void resize (lua_State *L, Table *t, int nasize, int nhsize) { function luaH_resizearray (line 327) | void luaH_resizearray (lua_State *L, Table *t, int nasize) { function rehash (line 333) | static void rehash (lua_State *L, Table *t, const TValue *ek) { function Table (line 358) | Table *luaH_new (lua_State *L, int narray, int nhash) { function luaH_free (line 374) | void luaH_free (lua_State *L, Table *t) { function Node (line 382) | static Node *getfreepos (Table *t) { function TValue (line 399) | static TValue *newkey (lua_State *L, Table *t, const TValue *key) { function TValue (line 435) | const TValue *luaH_getnum (Table *t, int key) { function TValue (line 455) | const TValue *luaH_getstr (Table *t, TString *key) { function TValue (line 469) | const TValue *luaH_get (Table *t, const TValue *key) { function TValue (line 494) | TValue *luaH_set (lua_State *L, Table *t, const TValue *key) { function TValue (line 508) | TValue *luaH_setnum (lua_State *L, Table *t, int key) { function TValue (line 520) | TValue *luaH_setstr (lua_State *L, Table *t, TString *key) { function unbound_search (line 532) | static int unbound_search (Table *t, unsigned int j) { function luaH_getn (line 560) | int luaH_getn (Table *t) { function Node (line 582) | Node *luaH_mainposition (const Table *t, const TValue *key) { function luaH_isdummy (line 586) | int luaH_isdummy (Node *n) { return n == dummynode; } FILE: Chapter02/redis-6.0.3/deps/lua/src/ltablib.c function foreachi (line 22) | static int foreachi (lua_State *L) { function foreach (line 39) | static int foreach (lua_State *L) { function maxn (line 56) | static int maxn (lua_State *L) { function getn (line 72) | static int getn (lua_State *L) { function setn (line 78) | static int setn (lua_State *L) { function tinsert (line 90) | static int tinsert (lua_State *L) { function tremove (line 118) | static int tremove (lua_State *L) { function addfield (line 135) | static void addfield (lua_State *L, luaL_Buffer *b, int i) { function tconcat (line 144) | static int tconcat (lua_State *L) { function set2 (line 173) | static void set2 (lua_State *L, int i, int j) { function sort_comp (line 178) | static int sort_comp (lua_State *L, int a, int b) { function auxsort (line 193) | static void auxsort (lua_State *L, int l, int u) { function sort (line 256) | static int sort (lua_State *L) { function LUALIB_API (line 283) | LUALIB_API int luaopen_table (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/ltm.c function luaT_init (line 30) | void luaT_init (lua_State *L) { function TValue (line 50) | const TValue *luaT_gettm (Table *events, TMS event, TString *ename) { function TValue (line 61) | const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, TMS event) { FILE: Chapter02/redis-6.0.3/deps/lua/src/ltm.h type TMS (line 18) | typedef enum { FILE: Chapter02/redis-6.0.3/deps/lua/src/lua.c function lstop (line 28) | static void lstop (lua_State *L, lua_Debug *ar) { function laction (line 35) | static void laction (int i) { function print_usage (line 42) | static void print_usage (void) { function l_message (line 58) | static void l_message (const char *pname, const char *msg) { function report (line 65) | static int report (lua_State *L, int status) { function traceback (line 76) | static int traceback (lua_State *L) { function docall (line 96) | static int docall (lua_State *L, int narg, int clear) { function print_version (line 111) | static void print_version (void) { function getargs (line 116) | static int getargs (lua_State *L, char **argv, int n) { function dofile (line 134) | static int dofile (lua_State *L, const char *name) { function dostring (line 140) | static int dostring (lua_State *L, const char *s, const char *name) { function dolibrary (line 146) | static int dolibrary (lua_State *L, const char *name) { function incomplete (line 163) | static int incomplete (lua_State *L, int status) { function pushline (line 177) | static int pushline (lua_State *L, int firstline) { function loadline (line 196) | static int loadline (lua_State *L) { function dotty (line 216) | static void dotty (lua_State *L) { function handle_script (line 239) | static int handle_script (lua_State *L, char **argv, int n) { function collectargs (line 261) | static int collectargs (char **argv, int *pi, int *pv, int *pe) { function runargs (line 294) | static int runargs (lua_State *L, char **argv, int n) { function handle_luainit (line 323) | static int handle_luainit (lua_State *L) { type Smain (line 333) | struct Smain { function pmain (line 340) | static int pmain (lua_State *L) { function main (line 377) | int main (int argc, char **argv) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lua.h type lua_State (line 50) | typedef struct lua_State lua_State; type LUA_NUMBER (line 99) | typedef LUA_NUMBER lua_Number; type LUA_INTEGER (line 103) | typedef LUA_INTEGER lua_Integer; type lua_Debug (line 326) | typedef struct lua_Debug lua_Debug; type lua_Debug (line 346) | struct lua_Debug { FILE: Chapter02/redis-6.0.3/deps/lua/src/lua_bit.c type __int32 (line 37) | typedef __int32 int32_t; type SBits (line 44) | typedef int32_t SBits; type UBits (line 45) | typedef uint32_t UBits; type BitNum (line 47) | typedef union { function UBits (line 57) | static UBits barg(lua_State *L, int idx) function bit_tobit (line 96) | static int bit_tobit(lua_State *L) { BRET(barg(L, 1)) } function bit_bnot (line 97) | static int bit_bnot(lua_State *L) { BRET(~barg(L, 1)) } function bit_bswap (line 120) | static int bit_bswap(lua_State *L) function bit_tohex (line 127) | static int bit_tohex(lua_State *L) type luaL_Reg (line 141) | struct luaL_Reg function LUALIB_API (line 163) | LUALIB_API int luaopen_bit(lua_State *L) FILE: Chapter02/redis-6.0.3/deps/lua/src/lua_cjson.c type json_token_type_t (line 79) | typedef enum { type json_config_t (line 114) | typedef struct { type json_parse_t (line 134) | typedef struct { type json_token_t (line 142) | typedef struct { function json_config_t (line 194) | static json_config_t *json_fetch_config(lua_State *l) function json_config_t (line 208) | static json_config_t *json_arg_init(lua_State *l, int args) function json_integer_option (line 220) | static int json_integer_option(lua_State *l, int optindex, int *setting, function json_enum_option (line 239) | static int json_enum_option(lua_State *l, int optindex, int *setting, function json_cfg_encode_sparse_array (line 268) | static int json_cfg_encode_sparse_array(lua_State *l) function json_cfg_encode_max_depth (line 281) | static int json_cfg_encode_max_depth(lua_State *l) function json_cfg_decode_max_depth (line 290) | static int json_cfg_decode_max_depth(lua_State *l) function json_cfg_encode_number_precision (line 298) | static int json_cfg_encode_number_precision(lua_State *l) function json_cfg_encode_keep_buffer (line 306) | static int json_cfg_encode_keep_buffer(lua_State *l) function json_verify_invalid_number_setting (line 327) | void json_verify_invalid_number_setting(lua_State *l, int *setting) function json_cfg_encode_invalid_numbers (line 338) | static int json_cfg_encode_invalid_numbers(lua_State *l) function json_cfg_decode_invalid_numbers (line 350) | static int json_cfg_decode_invalid_numbers(lua_State *l) function json_destroy_config (line 361) | static int json_destroy_config(lua_State *l) function json_create_config (line 373) | static void json_create_config(lua_State *l) function json_encode_exception (line 448) | static void json_encode_exception(lua_State *l, json_config_t *cfg, strb... function json_append_string (line 463) | static void json_append_string(lua_State *l, strbuf_t *json, int lindex) function lua_array_length (line 493) | static int lua_array_length(lua_State *l, json_config_t *cfg, strbuf_t *... function json_check_encode_depth (line 536) | static void json_check_encode_depth(lua_State *l, json_config_t *cfg, function json_append_array (line 566) | static void json_append_array(lua_State *l, json_config_t *cfg, int curr... function json_append_number (line 588) | static void json_append_number(lua_State *l, json_config_t *cfg, function json_append_object (line 618) | static void json_append_object(lua_State *l, json_config_t *cfg, function json_append_data (line 660) | static void json_append_data(lua_State *l, json_config_t *cfg, function json_encode (line 703) | static int json_encode(lua_State *l) function hexdigit2int (line 739) | static int hexdigit2int(char hex) function decode_hex4 (line 752) | static int decode_hex4(const char *hex) function codepoint_to_utf8 (line 775) | static int codepoint_to_utf8(char *utf8, int codepoint) function json_append_unicode_escape (line 819) | static int json_append_unicode_escape(json_parse_t *json) function json_set_token_error (line 877) | static void json_set_token_error(json_token_t *token, json_parse_t *json, function json_next_string_token (line 885) | static void json_next_string_token(json_parse_t *json, json_token_t *token) function json_is_invalid_number (line 960) | static int json_is_invalid_number(json_parse_t *json) function json_next_number_token (line 996) | static void json_next_number_token(json_parse_t *json, json_token_t *token) function json_next_token (line 1014) | static void json_next_token(json_parse_t *json, json_token_t *token) function json_throw_parse_error (line 1099) | static void json_throw_parse_error(lua_State *l, json_parse_t *json, function json_decode_ascend (line 1116) | static inline void json_decode_ascend(json_parse_t *json) function json_decode_descend (line 1121) | static void json_decode_descend(lua_State *l, json_parse_t *json, int sl... function json_parse_object_context (line 1135) | static void json_parse_object_context(lua_State *l, json_parse_t *json) function json_parse_array_context (line 1186) | static void json_parse_array_context(lua_State *l, json_parse_t *json) function json_process_value (line 1224) | static void json_process_value(lua_State *l, json_parse_t *json, function json_decode (line 1253) | static int json_decode(lua_State *l) function luaL_setfuncs (line 1300) | static void luaL_setfuncs (lua_State *l, const luaL_Reg *reg, int nup) function json_protect_conversion (line 1318) | static int json_protect_conversion(lua_State *l) function lua_cjson_new (line 1344) | static int lua_cjson_new(lua_State *l) function lua_cjson_safe_new (line 1384) | static int lua_cjson_safe_new(lua_State *l) function luaopen_cjson (line 1404) | int luaopen_cjson(lua_State *l) function luaopen_cjson_safe (line 1418) | int luaopen_cjson_safe(lua_State *l) FILE: Chapter02/redis-6.0.3/deps/lua/src/lua_cmsgpack.c function memrevifle (line 69) | void memrevifle(void *ptr, size_t len) { type mp_buf (line 93) | typedef struct mp_buf { function mp_buf (line 107) | mp_buf *mp_buf_new(lua_State *L) { function mp_buf_append (line 118) | void mp_buf_append(lua_State *L, mp_buf *buf, const unsigned char *s, si... function mp_buf_free (line 130) | void mp_buf_free(lua_State *L, mp_buf *buf) { type mp_cur (line 148) | typedef struct mp_cur { function mp_cur_init (line 154) | void mp_cur_init(mp_cur *cursor, const unsigned char *s, size_t len) { function mp_encode_bytes (line 174) | void mp_encode_bytes(lua_State *L, mp_buf *buf, const unsigned char *s, ... function mp_encode_double (line 203) | void mp_encode_double(lua_State *L, mp_buf *buf, double d) { function mp_encode_int (line 221) | void mp_encode_int(lua_State *L, mp_buf *buf, int64_t n) { function mp_encode_array (line 293) | void mp_encode_array(lua_State *L, mp_buf *buf, int64_t n) { function mp_encode_map (line 316) | void mp_encode_map(lua_State *L, mp_buf *buf, int64_t n) { function mp_encode_lua_string (line 341) | void mp_encode_lua_string(lua_State *L, mp_buf *buf) { function mp_encode_lua_bool (line 349) | void mp_encode_lua_bool(lua_State *L, mp_buf *buf) { function mp_encode_lua_integer (line 355) | void mp_encode_lua_integer(lua_State *L, mp_buf *buf) { function mp_encode_lua_number (line 367) | void mp_encode_lua_number(lua_State *L, mp_buf *buf) { function mp_encode_lua_table_as_array (line 380) | void mp_encode_lua_table_as_array(lua_State *L, mp_buf *buf, int level) { function mp_encode_lua_table_as_map (line 397) | void mp_encode_lua_table_as_map(lua_State *L, mp_buf *buf, int level) { function table_is_an_array (line 425) | int table_is_an_array(lua_State *L) { function mp_encode_lua_table (line 468) | void mp_encode_lua_table(lua_State *L, mp_buf *buf, int level) { function mp_encode_lua_null (line 475) | void mp_encode_lua_null(lua_State *L, mp_buf *buf) { function mp_encode_lua_type (line 482) | void mp_encode_lua_type(lua_State *L, mp_buf *buf, int level) { function mp_pack (line 512) | int mp_pack(lua_State *L) { function mp_decode_to_lua_array (line 551) | void mp_decode_to_lua_array(lua_State *L, mp_cur *c, size_t len) { function mp_decode_to_lua_hash (line 565) | void mp_decode_to_lua_hash(lua_State *L, mp_cur *c, size_t len) { type luaL_Reg (line 892) | struct luaL_Reg function LUALIB_API (line 935) | LUALIB_API int luaopen_cmsgpack_safe(lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lua_struct.c type STRUCT_INT (line 52) | typedef STRUCT_INT Inttype; type Uinttype (line 55) | typedef unsigned STRUCT_INT Uinttype; type cD (line 65) | struct cD { type Header (line 86) | typedef struct Header { function getnum (line 92) | static int getnum (lua_State *L, const char **fmt, int df) { function optsize (line 111) | static size_t optsize (lua_State *L, char opt, const char **fmt) { function gettoalign (line 137) | static int gettoalign (size_t len, Header *h, int opt, size_t size) { function controloptions (line 148) | static void controloptions (lua_State *L, int opt, const char **fmt, function putinteger (line 169) | static void putinteger (lua_State *L, luaL_Buffer *b, int arg, int endian, function correctbytes (line 196) | static void correctbytes (char *b, int size, int endian) { function b_pack (line 208) | static int b_pack (lua_State *L) { function lua_Number (line 266) | static lua_Number getinteger (const char *buff, int endian, function b_unpack (line 293) | static int b_unpack (lua_State *L) { function b_size (line 366) | static int b_size (lua_State *L) { type luaL_Reg (line 391) | struct luaL_Reg function LUALIB_API (line 401) | LUALIB_API int luaopen_struct (lua_State *L) { FILE: Chapter02/redis-6.0.3/deps/lua/src/luac.c function fatal (line 36) | static void fatal(const char* message) function cannot (line 42) | static void cannot(const char* what) function usage (line 48) | static void usage(const char* message) function doargs (line 70) | static int doargs(int argc, char* argv[]) function Proto (line 119) | static const Proto* combine(lua_State* L, int n) function writer (line 147) | static int writer(lua_State* L, const void* p, size_t size, void* u) type Smain (line 153) | struct Smain { function pmain (line 158) | static int pmain(lua_State* L) function main (line 186) | int main(int argc, char* argv[]) FILE: Chapter02/redis-6.0.3/deps/lua/src/lundump.c type LoadState (line 23) | typedef struct { function error (line 36) | static void error(LoadState* S, const char* why) function LoadBlock (line 48) | static void LoadBlock(LoadState* S, void* b, size_t size) function LoadChar (line 54) | static int LoadChar(LoadState* S) function LoadInt (line 61) | static int LoadInt(LoadState* S) function lua_Number (line 69) | static lua_Number LoadNumber(LoadState* S) function TString (line 76) | static TString* LoadString(LoadState* S) function LoadCode (line 90) | static void LoadCode(LoadState* S, Proto* f) function LoadConstants (line 100) | static void LoadConstants(LoadState* S, Proto* f) function LoadDebug (line 137) | static void LoadDebug(LoadState* S, Proto* f) function Proto (line 161) | static Proto* LoadFunction(LoadState* S, TString* p) function LoadHeader (line 183) | static void LoadHeader(LoadState* S) function Proto (line 195) | Proto* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name) function luaU_header (line 214) | void luaU_header (char* h) FILE: Chapter02/redis-6.0.3/deps/lua/src/lvm.c function TValue (line 35) | const TValue *luaV_tonumber (const TValue *obj, TValue *n) { function luaV_tostring (line 47) | int luaV_tostring (lua_State *L, StkId obj) { function traceexec (line 60) | static void traceexec (lua_State *L, const Instruction *pc) { function callTMres (line 80) | static void callTMres (lua_State *L, StkId res, const TValue *f, function callTM (line 96) | static void callTM (lua_State *L, const TValue *f, const TValue *p1, function luaV_gettable (line 108) | void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId va... function luaV_settable (line 134) | void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId va... function call_binTM (line 165) | static int call_binTM (lua_State *L, const TValue *p1, const TValue *p2, function TValue (line 176) | static const TValue *get_compTM (lua_State *L, Table *mt1, Table *mt2, function call_orderTM (line 190) | static int call_orderTM (lua_State *L, const TValue *p1, const TValue *p2, function l_strcmp (line 203) | static int l_strcmp (const TString *ls, const TString *rs) { function luaV_lessthan (line 225) | int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r) { function lessequal (line 239) | static int lessequal (lua_State *L, const TValue *l, const TValue *r) { function luaV_equalval (line 255) | int luaV_equalval (lua_State *L, const TValue *t1, const TValue *t2) { function luaV_concat (line 282) | void luaV_concat (lua_State *L, int total, int last) { function Arith (line 317) | static void Arith (lua_State *L, StkId ra, const TValue *rb, function luaV_execute (line 377) | void luaV_execute (lua_State *L, int nexeccalls) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lzio.c function luaZ_fill (line 21) | int luaZ_fill (ZIO *z) { function luaZ_lookahead (line 35) | int luaZ_lookahead (ZIO *z) { function luaZ_init (line 48) | void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, void *data) { function luaZ_read (line 58) | size_t luaZ_read (ZIO *z, void *b, size_t n) { FILE: Chapter02/redis-6.0.3/deps/lua/src/lzio.h type ZIO (line 18) | typedef struct Zio ZIO; type Mbuffer (line 24) | typedef struct Mbuffer { type Zio (line 56) | struct Zio { FILE: Chapter02/redis-6.0.3/deps/lua/src/print.c function PrintString (line 23) | static void PrintString(const TString* ts) function PrintConstant (line 51) | static void PrintConstant(const Proto* f, int i) function PrintCode (line 74) | static void PrintCode(const Proto* f) function PrintHeader (line 161) | static void PrintHeader(const Proto* f) function PrintConstants (line 181) | static void PrintConstants(const Proto* f) function PrintLocals (line 193) | static void PrintLocals(const Proto* f) function PrintUpvalues (line 204) | static void PrintUpvalues(const Proto* f) function PrintFunction (line 215) | void PrintFunction(const Proto* f, int full) FILE: Chapter02/redis-6.0.3/deps/lua/src/strbuf.c function die (line 32) | static void die(const char *fmt, ...) function strbuf_init (line 44) | void strbuf_init(strbuf_t *s, int len) function strbuf_t (line 68) | strbuf_t *strbuf_new(int len) function strbuf_set_increment (line 84) | void strbuf_set_increment(strbuf_t *s, int increment) function debug_stats (line 94) | static inline void debug_stats(strbuf_t *s) function strbuf_free (line 104) | void strbuf_free(strbuf_t *s) function calculate_new_size (line 134) | static int calculate_new_size(strbuf_t *s, int len) function strbuf_resize (line 164) | void strbuf_resize(strbuf_t *s, int len) function strbuf_append_string (line 182) | void strbuf_append_string(strbuf_t *s, const char *str) function strbuf_append_fmt (line 202) | void strbuf_append_fmt(strbuf_t *s, int len, const char *fmt, ...) function strbuf_append_fmt_retry (line 221) | void strbuf_append_fmt_retry(strbuf_t *s, const char *fmt, ...) FILE: Chapter02/redis-6.0.3/deps/lua/src/strbuf.h type strbuf_t (line 34) | typedef struct { function strbuf_reset (line 78) | static inline void strbuf_reset(strbuf_t *s) function strbuf_allocated (line 83) | static inline int strbuf_allocated(strbuf_t *s) function strbuf_empty_length (line 90) | static inline int strbuf_empty_length(strbuf_t *s) function strbuf_ensure_empty_length (line 95) | static inline void strbuf_ensure_empty_length(strbuf_t *s, int len) function strbuf_extend_length (line 106) | static inline void strbuf_extend_length(strbuf_t *s, int len) function strbuf_length (line 111) | static inline int strbuf_length(strbuf_t *s) function strbuf_append_char (line 116) | static inline void strbuf_append_char(strbuf_t *s, const char c) function strbuf_append_char_unsafe (line 122) | static inline void strbuf_append_char_unsafe(strbuf_t *s, const char c) function strbuf_append_mem (line 127) | static inline void strbuf_append_mem(strbuf_t *s, const char *c, int len) function strbuf_append_mem_unsafe (line 134) | static inline void strbuf_append_mem_unsafe(strbuf_t *s, const char *c, ... function strbuf_ensure_null (line 140) | static inline void strbuf_ensure_null(strbuf_t *s) FILE: Chapter02/redis-6.0.3/src/acl.c type ACLCategoryItem (line 56) | struct ACLCategoryItem { type ACLUserFlag (line 84) | struct ACLUserFlag { function time_independent_strcmp (line 117) | int time_independent_strcmp(char *a, char *b) { function sds (line 152) | sds ACLHashPassword(unsigned char *cleartext, size_t len) { function ACLStringHasSpaces (line 178) | int ACLStringHasSpaces(const char *s, size_t len) { function ACLGetCommandCategoryFlagByName (line 187) | uint64_t ACLGetCommandCategoryFlagByName(const char *name) { function ACLListMatchSds (line 198) | int ACLListMatchSds(void *a, void *b) { function ACLListFreeSds (line 203) | void ACLListFreeSds(void *item) { function user (line 217) | user *ACLCreateUser(const char *name, size_t namelen) { function user (line 240) | user *ACLCreateUnlinkedUser(void) { function ACLFreeUser (line 255) | void ACLFreeUser(user *u) { function ACLFreeUserAndKillClients (line 266) | void ACLFreeUserAndKillClients(user *u) { function ACLCopyUser (line 290) | void ACLCopyUser(user *dst, user *src) { function ACLFreeUsersSet (line 315) | void ACLFreeUsersSet(rax *users) { function ACLGetCommandBitCoordinates (line 325) | int ACLGetCommandBitCoordinates(uint64_t id, uint64_t *word, uint64_t *b... function ACLGetUserCommandBit (line 339) | int ACLGetUserCommandBit(user *u, unsigned long id) { function ACLUserCanExecuteFutureCommands (line 348) | int ACLUserCanExecuteFutureCommands(user *u) { function ACLSetUserCommandBit (line 357) | void ACLSetUserCommandBit(user *u, unsigned long id, int value) { function ACLSetUserCommandBitsForCategory (line 373) | int ACLSetUserCommandBitsForCategory(user *u, const char *category, int ... function ACLCountCategoryBitsForUser (line 394) | int ACLCountCategoryBitsForUser(user *u, unsigned long *on, unsigned lon... function sds (line 423) | sds ACLDescribeUserCommandRules(user *u) { function sds (line 523) | sds ACLDescribeUser(user *u) { type redisCommand (line 572) | struct redisCommand type redisCommand (line 573) | struct redisCommand function ACLResetSubcommandsForCommand (line 582) | void ACLResetSubcommandsForCommand(user *u, unsigned long id) { function ACLResetSubcommands (line 594) | void ACLResetSubcommands(user *u) { function ACLAddAllowedSubcommand (line 610) | void ACLAddAllowedSubcommand(user *u, unsigned long id, const char *sub) { function ACLSetUser (line 717) | int ACLSetUser(user *u, const char *op, ssize_t oplen) { function ACLInitDefaultUser (line 922) | void ACLInitDefaultUser(void) { function ACLInit (line 931) | void ACLInit(void) { function ACLCheckUserCredentials (line 945) | int ACLCheckUserCredentials(robj *username, robj *password) { function ACLAuthenticateUser (line 987) | int ACLAuthenticateUser(client *c, robj *username, robj *password) { function ACLGetCommandID (line 1005) | unsigned long ACLGetCommandID(const char *cmdname) { function user (line 1036) | user *ACLGetUserByName(const char *name, size_t namelen) { function ACLCheckCommandPerm (line 1051) | int ACLCheckCommandPerm(client *c, int *keyidxptr) { function ACLAppendUserForLoading (line 1146) | int ACLAppendUserForLoading(sds *argv, int argc, int *argc_err) { function ACLLoadConfiguredUsers (line 1178) | int ACLLoadConfiguredUsers(void) { function sds (line 1244) | sds ACLLoadFromFile(const char *filename) { function ACLSaveToFile (line 1392) | int ACLSaveToFile(const char *filename) { function ACLLoadUsersAtStartup (line 1458) | void ACLLoadUsersAtStartup(void) { type ACLLogEntry (line 1496) | typedef struct ACLLogEntry { function ACLLogMatchEntry (line 1509) | int ACLLogMatchEntry(ACLLogEntry *a, ACLLogEntry *b) { function ACLFreeLogEntry (line 1521) | void ACLFreeLogEntry(void *leptr) { function addACLLogEntry (line 1541) | void addACLLogEntry(client *c, int reason, int keypos, sds username) { function aclCommand (line 1629) | void aclCommand(client *c) { function addReplyCommandCategories (line 1924) | void addReplyCommandCategories(client *c, struct redisCommand *cmd) { function authCommand (line 1941) | void authCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/adlist.c function list (line 41) | list *listCreate(void) function listEmpty (line 56) | void listEmpty(list *list) function listRelease (line 76) | void listRelease(list *list) function list (line 88) | list *listAddNodeHead(list *list, void *value) function list (line 114) | list *listAddNodeTail(list *list, void *value) function list (line 134) | list *listInsertNode(list *list, listNode *old_node, void *value, int af... function listDelNode (line 167) | void listDelNode(list *list, listNode *node) function listIter (line 186) | listIter *listGetIterator(list *list, int direction) function listReleaseIterator (line 200) | void listReleaseIterator(listIter *iter) { function listRewind (line 205) | void listRewind(list *list, listIter *li) { function listRewindTail (line 210) | void listRewindTail(list *list, listIter *li) { function listNode (line 229) | listNode *listNext(listIter *iter) function list (line 250) | list *listDup(list *orig) function listNode (line 290) | listNode *listSearchKey(list *list, void *key) function listNode (line 315) | listNode *listIndex(list *list, long index) { function listRotateTailToHead (line 330) | void listRotateTailToHead(list *list) { function listRotateHeadToTail (line 345) | void listRotateHeadToTail(list *list) { function listJoin (line 361) | void listJoin(list *l, list *o) { FILE: Chapter02/redis-6.0.3/src/adlist.h type listNode (line 36) | typedef struct listNode { type listIter (line 42) | typedef struct listIter { type list (line 47) | typedef struct list { FILE: Chapter02/redis-6.0.3/src/ae.c function aeEventLoop (line 63) | aeEventLoop *aeCreateEventLoop(int setsize) { function aeGetSetSize (line 97) | int aeGetSetSize(aeEventLoop *eventLoop) { function aeSetDontWait (line 102) | void aeSetDontWait(aeEventLoop *eventLoop, int noWait) { function aeResizeSetSize (line 116) | int aeResizeSetSize(aeEventLoop *eventLoop, int setsize) { function aeDeleteEventLoop (line 134) | void aeDeleteEventLoop(aeEventLoop *eventLoop) { function aeStop (line 149) | void aeStop(aeEventLoop *eventLoop) { function aeCreateFileEvent (line 153) | int aeCreateFileEvent(aeEventLoop *eventLoop, int fd, int mask, function aeDeleteFileEvent (line 173) | void aeDeleteFileEvent(aeEventLoop *eventLoop, int fd, int mask) function aeGetFileEvents (line 195) | int aeGetFileEvents(aeEventLoop *eventLoop, int fd) { function aeGetTime (line 202) | static void aeGetTime(long *seconds, long *milliseconds) function aeAddMillisecondsToNow (line 211) | static void aeAddMillisecondsToNow(long long milliseconds, long *sec, lo... function aeCreateTimeEvent (line 225) | long long aeCreateTimeEvent(aeEventLoop *eventLoop, long long milliseconds, function aeDeleteTimeEvent (line 248) | int aeDeleteTimeEvent(aeEventLoop *eventLoop, long long id) function aeTimeEvent (line 272) | static aeTimeEvent *aeSearchNearestTimer(aeEventLoop *eventLoop) function processTimeEvents (line 288) | static int processTimeEvents(aeEventLoop *eventLoop) { function aeProcessEvents (line 386) | int aeProcessEvents(aeEventLoop *eventLoop, int flags) function aeWait (line 516) | int aeWait(int fd, int mask, long long milliseconds) { function aeMain (line 536) | void aeMain(aeEventLoop *eventLoop) { function aeSetBeforeSleepProc (line 549) | void aeSetBeforeSleepProc(aeEventLoop *eventLoop, aeBeforeSleepProc *bef... function aeSetAfterSleepProc (line 553) | void aeSetAfterSleepProc(aeEventLoop *eventLoop, aeBeforeSleepProc *afte... FILE: Chapter02/redis-6.0.3/src/ae.h type aeEventLoop (line 63) | struct aeEventLoop type aeEventLoop (line 66) | struct aeEventLoop type aeEventLoop (line 67) | struct aeEventLoop type aeEventLoop (line 68) | struct aeEventLoop type aeEventLoop (line 69) | struct aeEventLoop type aeFileEvent (line 72) | typedef struct aeFileEvent { type aeTimeEvent (line 80) | typedef struct aeTimeEvent { type aeFiredEvent (line 94) | typedef struct aeFiredEvent { type aeEventLoop (line 100) | typedef struct aeEventLoop { FILE: Chapter02/redis-6.0.3/src/ae_epoll.c type aeApiState (line 34) | typedef struct aeApiState { function aeApiCreate (line 39) | static int aeApiCreate(aeEventLoop *eventLoop) { function aeApiResize (line 58) | static int aeApiResize(aeEventLoop *eventLoop, int setsize) { function aeApiFree (line 65) | static void aeApiFree(aeEventLoop *eventLoop) { function aeApiAddEvent (line 73) | static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiDelEvent (line 90) | static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int delmask) { function aeApiPoll (line 108) | static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) { FILE: Chapter02/redis-6.0.3/src/ae_evport.c type aeApiState (line 68) | typedef struct aeApiState { function aeApiCreate (line 75) | static int aeApiCreate(aeEventLoop *eventLoop) { function aeApiResize (line 97) | static int aeApiResize(aeEventLoop *eventLoop, int setsize) { function aeApiFree (line 102) | static void aeApiFree(aeEventLoop *eventLoop) { function aeApiLookupPending (line 109) | static int aeApiLookupPending(aeApiState *state, int fd) { function aeApiAssociate (line 123) | static int aeApiAssociate(const char *where, int portfd, int fd, int mas... function aeApiAddEvent (line 152) | static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiDelEvent (line 183) | static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiPoll (line 243) | static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) { FILE: Chapter02/redis-6.0.3/src/ae_kqueue.c type aeApiState (line 36) | typedef struct aeApiState { function aeApiCreate (line 41) | static int aeApiCreate(aeEventLoop *eventLoop) { function aeApiResize (line 60) | static int aeApiResize(aeEventLoop *eventLoop, int setsize) { function aeApiFree (line 67) | static void aeApiFree(aeEventLoop *eventLoop) { function aeApiAddEvent (line 75) | static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiDelEvent (line 90) | static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiPoll (line 104) | static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) { FILE: Chapter02/redis-6.0.3/src/ae_select.c type aeApiState (line 35) | typedef struct aeApiState { function aeApiCreate (line 42) | static int aeApiCreate(aeEventLoop *eventLoop) { function aeApiResize (line 52) | static int aeApiResize(aeEventLoop *eventLoop, int setsize) { function aeApiFree (line 58) | static void aeApiFree(aeEventLoop *eventLoop) { function aeApiAddEvent (line 62) | static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiDelEvent (line 70) | static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiPoll (line 77) | static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) { FILE: Chapter02/redis-6.0.3/src/anet.c function anetSetError (line 51) | static void anetSetError(char *err, const char *fmt, ...) function anetSetBlock (line 61) | int anetSetBlock(char *err, int fd, int non_block) { function anetNonBlock (line 84) | int anetNonBlock(char *err, int fd) { function anetBlock (line 88) | int anetBlock(char *err, int fd) { function anetKeepAlive (line 95) | int anetKeepAlive(char *err, int fd, int interval) function anetSetTcpNoDelay (line 141) | static int anetSetTcpNoDelay(char *err, int fd, int val) function anetEnableTcpNoDelay (line 151) | int anetEnableTcpNoDelay(char *err, int fd) function anetDisableTcpNoDelay (line 156) | int anetDisableTcpNoDelay(char *err, int fd) function anetSetSendBuffer (line 162) | int anetSetSendBuffer(char *err, int fd, int buffsize) function anetTcpKeepAlive (line 172) | int anetTcpKeepAlive(char *err, int fd) function anetSendTimeout (line 184) | int anetSendTimeout(char *err, int fd, long long ms) { function anetRecvTimeout (line 198) | int anetRecvTimeout(char *err, int fd, long long ms) { function anetGenericResolve (line 217) | int anetGenericResolve(char *err, char *host, char *ipbuf, size_t ipbuf_... function anetResolve (line 244) | int anetResolve(char *err, char *host, char *ipbuf, size_t ipbuf_len) { function anetResolveIP (line 248) | int anetResolveIP(char *err, char *host, char *ipbuf, size_t ipbuf_len) { function anetSetReuseAddr (line 252) | static int anetSetReuseAddr(char *err, int fd) { function anetCreateSocket (line 263) | static int anetCreateSocket(char *err, int domain) { function anetTcpGenericConnect (line 282) | static int anetTcpGenericConnect(char *err, const char *addr, int port, function anetTcpConnect (line 362) | int anetTcpConnect(char *err, const char *addr, int port) function anetTcpNonBlockConnect (line 367) | int anetTcpNonBlockConnect(char *err, const char *addr, int port) function anetTcpNonBlockBindConnect (line 372) | int anetTcpNonBlockBindConnect(char *err, const char *addr, int port, function anetTcpNonBlockBestEffortBindConnect (line 379) | int anetTcpNonBlockBestEffortBindConnect(char *err, const char *addr, in... function anetUnixGenericConnect (line 386) | int anetUnixGenericConnect(char *err, const char *path, int flags) function anetUnixConnect (line 414) | int anetUnixConnect(char *err, const char *path) function anetUnixNonBlockConnect (line 419) | int anetUnixNonBlockConnect(char *err, const char *path) function anetRead (line 426) | int anetRead(int fd, char *buf, int count) function anetWrite (line 441) | int anetWrite(int fd, char *buf, int count) function anetListen (line 454) | static int anetListen(char *err, int s, struct sockaddr *sa, socklen_t l... function anetV6Only (line 469) | static int anetV6Only(char *err, int s) { function _anetTcpServer (line 479) | static int _anetTcpServer(char *err, int port, char *bindaddr, int af, i... function anetTcpServer (line 517) | int anetTcpServer(char *err, int port, char *bindaddr, int backlog) function anetTcp6Server (line 522) | int anetTcp6Server(char *err, int port, char *bindaddr, int backlog) function anetUnixServer (line 527) | int anetUnixServer(char *err, char *path, mode_t perm, int backlog) function anetGenericAccept (line 545) | static int anetGenericAccept(char *err, int s, struct sockaddr *sa, sock... function anetTcpAccept (line 562) | int anetTcpAccept(char *err, int s, char *ip, size_t ip_len, int *port) { function anetUnixAccept (line 581) | int anetUnixAccept(char *err, int s) { function anetPeerToString (line 591) | int anetPeerToString(int fd, char *ip, size_t ip_len, int *port) { function anetFormatAddr (line 630) | int anetFormatAddr(char *buf, size_t buf_len, char *ip, int port) { function anetFormatPeer (line 636) | int anetFormatPeer(int fd, char *buf, size_t buf_len) { function anetSockName (line 644) | int anetSockName(int fd, char *ip, size_t ip_len, int *port) { function anetFormatSock (line 666) | int anetFormatSock(int fd, char *fmt, size_t fmt_len) { FILE: Chapter02/redis-6.0.3/src/aof.c type aofrwblock (line 62) | typedef struct aofrwblock { function aofRewriteBufferReset (line 70) | void aofRewriteBufferReset(void) { function aofRewriteBufferSize (line 79) | unsigned long aofRewriteBufferSize(void) { function aofChildWriteDiffData (line 95) | void aofChildWriteDiffData(aeEventLoop *el, int fd, void *privdata, int ... function aofRewriteBufferAppend (line 125) | void aofRewriteBufferAppend(unsigned char *s, unsigned long len) { function aofRewriteBufferWrite (line 174) | ssize_t aofRewriteBufferWrite(int fd) { function aofFsyncInProgress (line 202) | int aofFsyncInProgress(void) { function aof_background_fsync (line 208) | void aof_background_fsync(int fd) { function killAppendOnlyChild (line 213) | void killAppendOnlyChild(void) { function stopAppendOnly (line 236) | void stopAppendOnly(void) { function startAppendOnly (line 251) | int startAppendOnly(void) { function aofWrite (line 300) | ssize_t aofWrite(int fd, const char *buf, size_t len) { function flushAppendOnlyFile (line 338) | void flushAppendOnlyFile(int force) { function sds (line 522) | sds catAppendOnlyGenericCommand(sds dst, int argc, robj **argv) { function sds (line 554) | sds catAppendOnlyExpireAtCommand(sds buf, struct redisCommand *cmd, robj... function feedAppendOnlyFile (line 584) | void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **arg... type client (line 656) | struct client type client (line 657) | struct client function freeFakeClientArgv (line 686) | void freeFakeClientArgv(struct client *c) { function freeFakeClient (line 694) | void freeFakeClient(struct client *c) { function loadAppendOnlyFile (line 705) | int loadAppendOnlyFile(char *filename) { function rioWriteBulkObject (line 931) | int rioWriteBulkObject(rio *r, robj *obj) { function rewriteListObject (line 945) | int rewriteListObject(rio *r, robj *key, robj *o) { function rewriteSetObject (line 979) | int rewriteSetObject(rio *r, robj *key, robj *o) { function rewriteSortedSetObject (line 1026) | int rewriteSortedSetObject(rio *r, robj *key, robj *o) { function rioWriteHashIteratorCursor (line 1099) | static int rioWriteHashIteratorCursor(rio *r, hashTypeIterator *hi, int ... function rewriteHashObject (line 1121) | int rewriteHashObject(rio *r, robj *key, robj *o) { function rioWriteBulkStreamID (line 1149) | int rioWriteBulkStreamID(rio *r,streamID *id) { function rioWriteStreamPendingEntry (line 1162) | int rioWriteStreamPendingEntry(rio *r, robj *key, const char *groupname,... function rewriteStreamObject (line 1185) | int rewriteStreamObject(rio *r, robj *key, robj *o) { function rewriteModuleObject (line 1285) | int rewriteModuleObject(rio *r, robj *key, robj *o) { function aofReadDiffFromParent (line 1301) | ssize_t aofReadDiffFromParent(void) { function rewriteAppendOnlyFileRio (line 1313) | int rewriteAppendOnlyFileRio(rio *aof) { function rewriteAppendOnlyFile (line 1395) | int rewriteAppendOnlyFile(char *filename) { function aofChildPipeReadable (line 1505) | void aofChildPipeReadable(aeEventLoop *el, int fd, void *privdata, int m... function aofCreatePipes (line 1533) | int aofCreatePipes(void) { function aofClosePipes (line 1561) | void aofClosePipes(void) { function rewriteAppendOnlyFileBackground (line 1588) | int rewriteAppendOnlyFileBackground(void) { function bgrewriteaofCommand (line 1633) | void bgrewriteaofCommand(client *c) { function aofRemoveTempFile (line 1647) | void aofRemoveTempFile(pid_t childpid) { function aofUpdateCurrentSize (line 1661) | void aofUpdateCurrentSize(void) { function backgroundRewriteDoneHandler (line 1678) | void backgroundRewriteDoneHandler(int exitcode, int bysignal) { FILE: Chapter02/redis-6.0.3/src/bio.c type bio_job (line 79) | struct bio_job { function bioInit (line 96) | void bioInit(void) { function bioCreateBackgroundJob (line 131) | void bioCreateBackgroundJob(int type, void *arg1, void *arg2, void *arg3) { type bio_job (line 146) | struct bio_job function bioPendingJobsOfType (line 233) | unsigned long long bioPendingJobsOfType(int type) { function bioWaitStepOfType (line 251) | unsigned long long bioWaitStepOfType(int type) { function bioKillThreads (line 267) | void bioKillThreads(void) { FILE: Chapter02/redis-6.0.3/src/bitops.c function redisPopcount (line 40) | size_t redisPopcount(void *s, long count) { function redisBitpos (line 101) | long redisBitpos(void *s, unsigned long count, int bit) { function setUnsignedBitfield (line 209) | void setUnsignedBitfield(unsigned char *p, uint64_t offset, uint64_t bit... function setSignedBitfield (line 224) | void setSignedBitfield(unsigned char *p, uint64_t offset, uint64_t bits,... function getUnsignedBitfield (line 229) | uint64_t getUnsignedBitfield(unsigned char *p, uint64_t offset, uint64_t... function getSignedBitfield (line 243) | int64_t getSignedBitfield(unsigned char *p, uint64_t offset, uint64_t bi... function checkUnsignedBitfieldOverflow (line 288) | int checkUnsignedBitfieldOverflow(uint64_t value, int64_t incr, uint64_t... function checkSignedBitfieldOverflow (line 325) | int checkSignedBitfieldOverflow(int64_t value, int64_t incr, uint64_t bi... function printBits (line 379) | void printBits(unsigned char *p, unsigned long count) { function getBitOffsetFromArgument (line 411) | int getBitOffsetFromArgument(client *c, robj *o, size_t *offset, int has... function getBitfieldTypeFromArgument (line 447) | int getBitfieldTypeFromArgument(client *c, robj *o, int *sign, int *bits) { function robj (line 478) | robj *lookupStringForBitCommand(client *c, size_t maxbit) { function setbitCommand (line 525) | void setbitCommand(client *c) { function getbitCommand (line 564) | void getbitCommand(client *c) { function bitopCommand (line 591) | void bitopCommand(client *c) { function bitcountCommand (line 769) | void bitcountCommand(client *c) { function bitposCommand (line 818) | void bitposCommand(client *c) { type bitfieldOp (line 908) | struct bitfieldOp { function bitfieldGeneric (line 920) | void bitfieldGeneric(client *c, int flags) { function bitfieldCommand (line 1145) | void bitfieldCommand(client *c) { function bitfieldroCommand (line 1149) | void bitfieldroCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/blocked.c type bkinfo (line 77) | typedef struct bkinfo { function blockClient (line 85) | void blockClient(client *c, int btype) { function processUnblockedClients (line 96) | void processUnblockedClients(void) { function queueClientForReprocessing (line 135) | void queueClientForReprocessing(client *c) { function unblockClient (line 146) | void unblockClient(client *c) { function replyToBlockedClientTimedOut (line 172) | void replyToBlockedClientTimedOut(client *c) { function disconnectAllBlockedClients (line 193) | void disconnectAllBlockedClients(void) { function serveClientsBlockedOnListKey (line 214) | void serveClientsBlockedOnListKey(robj *o, readyList *rl) { function serveClientsBlockedOnSortedSetKey (line 274) | void serveClientsBlockedOnSortedSetKey(robj *o, readyList *rl) { function serveClientsBlockedOnStreamKey (line 320) | void serveClientsBlockedOnStreamKey(robj *o, readyList *rl) { function serveClientsBlockedOnKeyByModule (line 417) | void serveClientsBlockedOnKeyByModule(readyList *rl) { function handleClientsBlockedOnKeys (line 474) | void handleClientsBlockedOnKeys(void) { function blockForKeys (line 556) | void blockForKeys(client *c, int btype, robj **keys, int numkeys, mstime... function unblockClientWaitingData (line 601) | void unblockClientWaitingData(client *c) { function signalKeyAsReady (line 644) | void signalKeyAsReady(redisDb *db, robj *key) { FILE: Chapter02/redis-6.0.3/src/childinfo.c function openChildInfoPipe (line 36) | void openChildInfoPipe(void) { function closeChildInfoPipe (line 49) | void closeChildInfoPipe(void) { function sendChildInfo (line 62) | void sendChildInfo(int ptype) { function receiveChildInfo (line 73) | void receiveChildInfo(void) { FILE: Chapter02/redis-6.0.3/src/cluster.c function clusterLoadConfig (line 90) | int clusterLoadConfig(char *filename) { function clusterSaveConfig (line 326) | int clusterSaveConfig(int do_fsync) { function clusterSaveConfigOrDie (line 373) | void clusterSaveConfigOrDie(int do_fsync) { function clusterLockConfig (line 389) | int clusterLockConfig(char *filename) { function clusterUpdateMyselfFlags (line 431) | void clusterUpdateMyselfFlags(void) { function clusterInit (line 443) | void clusterInit(void) { function clusterReset (line 545) | void clusterReset(int hard) { function clusterLink (line 603) | clusterLink *createClusterLink(clusterNode *node) { function freeClusterLink (line 616) | void freeClusterLink(clusterLink *link) { function clusterConnAcceptHandler (line 628) | static void clusterConnAcceptHandler(connection *conn) { function clusterAcceptHandler (line 652) | void clusterAcceptHandler(aeEventLoop *el, int fd, void *privdata, int m... function keyHashSlot (line 704) | unsigned int keyHashSlot(char *key, int keylen) { function clusterNode (line 736) | clusterNode *createClusterNode(char *nodename, int flags) { function clusterNodeAddFailureReport (line 777) | int clusterNodeAddFailureReport(clusterNode *failing, clusterNode *sende... function clusterNodeCleanupFailureReports (line 807) | void clusterNodeCleanupFailureReports(clusterNode *node) { function clusterNodeDelFailureReport (line 834) | int clusterNodeDelFailureReport(clusterNode *node, clusterNode *sender) { function clusterNodeFailureReportsCount (line 857) | int clusterNodeFailureReportsCount(clusterNode *node) { function clusterNodeRemoveSlave (line 862) | int clusterNodeRemoveSlave(clusterNode *master, clusterNode *slave) { function clusterNodeAddSlave (line 881) | int clusterNodeAddSlave(clusterNode *master, clusterNode *slave) { function clusterCountNonFailingSlaves (line 895) | int clusterCountNonFailingSlaves(clusterNode *n) { function freeClusterNode (line 904) | void freeClusterNode(clusterNode *n) { function clusterAddNode (line 929) | int clusterAddNode(clusterNode *node) { function clusterDelNode (line 948) | void clusterDelNode(clusterNode *delnode) { function clusterNode (line 978) | clusterNode *clusterLookupNode(const char *name) { function clusterRenameNode (line 992) | void clusterRenameNode(clusterNode *node, char *newname) { function clusterGetMaxEpoch (line 1011) | uint64_t clusterGetMaxEpoch(void) { function clusterBumpConfigEpochWithoutConsensus (line 1055) | int clusterBumpConfigEpochWithoutConsensus(void) { function clusterHandleConfigEpochCollision (line 1120) | void clusterHandleConfigEpochCollision(clusterNode *sender) { function clusterBlacklistCleanup (line 1168) | void clusterBlacklistCleanup(void) { function clusterBlacklistAddNode (line 1183) | void clusterBlacklistAddNode(clusterNode *node) { function clusterBlacklistExists (line 1201) | int clusterBlacklistExists(char *nodeid) { function markNodeAsFailingIfNeeded (line 1236) | void markNodeAsFailingIfNeeded(clusterNode *node) { function clearNodeFailureIfNeeded (line 1265) | void clearNodeFailureIfNeeded(clusterNode *node) { function clusterHandshakeInProgress (line 1300) | int clusterHandshakeInProgress(char *ip, int port, int cport) { function clusterStartHandshake (line 1324) | int clusterStartHandshake(char *ip, int port, int cport) { function clusterProcessGossipSection (line 1381) | void clusterProcessGossipSection(clusterMsg *hdr, clusterLink *link) { function nodeIp2String (line 1487) | void nodeIp2String(char *buf, clusterLink *link, char *announced_ip) { function nodeUpdateAddressIfNeeded (line 1508) | int nodeUpdateAddressIfNeeded(clusterNode *node, clusterLink *link, function clusterSetNodeAsMaster (line 1546) | void clusterSetNodeAsMaster(clusterNode *n) { function clusterUpdateSlotsConfigWith (line 1573) | void clusterUpdateSlotsConfigWith(clusterNode *sender, uint64_t senderCo... function clusterProcessPacket (line 1678) | int clusterProcessPacket(clusterLink *link) { function handleLinkIOError (line 2166) | void handleLinkIOError(clusterLink *link) { function clusterWriteHandler (line 2173) | void clusterWriteHandler(connection *conn) { function clusterLinkConnectHandler (line 2192) | void clusterLinkConnectHandler(connection *conn) { function clusterReadHandler (line 2237) | void clusterReadHandler(connection *conn) { function clusterSendMessage (line 2303) | void clusterSendMessage(clusterLink *link, unsigned char *msg, size_t ms... function clusterBroadcastMessage (line 2322) | void clusterBroadcastMessage(void *buf, size_t len) { function clusterBuildMessageHdr (line 2340) | void clusterBuildMessageHdr(clusterMsg *hdr, int type) { function clusterNodeIsInGossipSection (line 2418) | int clusterNodeIsInGossipSection(clusterMsg *hdr, int count, clusterNode... function clusterSetGossipEntry (line 2429) | void clusterSetGossipEntry(clusterMsg *hdr, int i, clusterNode *n) { function clusterSendPing (line 2444) | void clusterSendPing(clusterLink *link, int type) { function clusterBroadcastPong (line 2588) | void clusterBroadcastPong(int target) { function clusterSendPublish (line 2612) | void clusterSendPublish(clusterLink *link, robj *channel, robj *message) { function clusterSendFail (line 2659) | void clusterSendFail(char *nodename) { function clusterSendUpdate (line 2671) | void clusterSendUpdate(clusterLink *link, clusterNode *node) { function clusterSendModule (line 2686) | void clusterSendModule(clusterLink *link, uint64_t module_id, uint8_t type, function clusterSendModuleMessageToTarget (line 2726) | int clusterSendModuleMessageToTarget(const char *target, uint64_t module... function clusterPropagatePublish (line 2746) | void clusterPropagatePublish(robj *channel, robj *message) { function clusterRequestFailoverAuth (line 2760) | void clusterRequestFailoverAuth(void) { function clusterSendFailoverAuth (line 2776) | void clusterSendFailoverAuth(clusterNode *node) { function clusterSendMFStart (line 2789) | void clusterSendMFStart(clusterNode *node) { function clusterSendFailoverAuthIfNeeded (line 2802) | void clusterSendFailoverAuthIfNeeded(clusterNode *node, clusterMsg *requ... function clusterGetSlaveRank (line 2917) | int clusterGetSlaveRank(void) { function clusterLogCantFailover (line 2956) | void clusterLogCantFailover(int reason) { function clusterFailoverReplaceYourMaster (line 3004) | void clusterFailoverReplaceYourMaster(void) { function clusterHandleSlaveFailover (line 3042) | void clusterHandleSlaveFailover(void) { function clusterHandleSlaveMigration (line 3240) | void clusterHandleSlaveMigration(int max_slaves) { function resetManualFailover (line 3359) | void resetManualFailover(void) { function manualFailoverCheckTimeout (line 3371) | void manualFailoverCheckTimeout(void) { function clusterHandleManualFailover (line 3380) | void clusterHandleManualFailover(void) { function clusterCron (line 3405) | void clusterCron(void) { function clusterBeforeSleep (line 3671) | void clusterBeforeSleep(void) { function clusterDoBeforeSleep (line 3693) | void clusterDoBeforeSleep(int flags) { function bitmapTestBit (line 3703) | int bitmapTestBit(unsigned char *bitmap, int pos) { function bitmapSetBit (line 3710) | void bitmapSetBit(unsigned char *bitmap, int pos) { function bitmapClearBit (line 3717) | void bitmapClearBit(unsigned char *bitmap, int pos) { function clusterMastersHaveSlaves (line 3726) | int clusterMastersHaveSlaves(void) { function clusterNodeSetSlotBit (line 3741) | int clusterNodeSetSlotBit(clusterNode *n, int slot) { function clusterNodeClearSlotBit (line 3766) | int clusterNodeClearSlotBit(clusterNode *n, int slot) { function clusterNodeGetSlotBit (line 3774) | int clusterNodeGetSlotBit(clusterNode *n, int slot) { function clusterAddSlot (line 3782) | int clusterAddSlot(clusterNode *n, int slot) { function clusterDelSlot (line 3792) | int clusterDelSlot(int slot) { function clusterDelNodeSlots (line 3803) | int clusterDelNodeSlots(clusterNode *node) { function clusterCloseAllSlots (line 3817) | void clusterCloseAllSlots(void) { function clusterUpdateState (line 3836) | void clusterUpdateState(void) { function verifyClusterConfigWithData (line 3954) | int verifyClusterConfigWithData(void) { function clusterSetMaster (line 4009) | void clusterSetMaster(clusterNode *n) { type redisNodeFlags (line 4031) | struct redisNodeFlags { type redisNodeFlags (line 4036) | struct redisNodeFlags function sds (line 4049) | sds representClusterNodeFlags(sds ci, uint16_t flags) { function sds (line 4066) | sds clusterGenNodeDescription(clusterNode *node) { function sds (line 4143) | sds clusterGenNodesDescription(int filter) { function getSlotOrReply (line 4182) | int getSlotOrReply(client *c, robj *o) { function clusterReplyMultiBulkSlots (line 4194) | void clusterReplyMultiBulkSlots(client *c) { function clusterCommand (line 4271) | void clusterCommand(client *c) { function createDumpPayload (line 4855) | void createDumpPayload(rio *payload, robj *o, robj *key) { function verifyDumpPayload (line 4888) | int verifyDumpPayload(unsigned char *p, size_t len) { function dumpCommand (line 4910) | void dumpCommand(client *c) { function restoreCommand (line 4929) | void restoreCommand(client *c) { type migrateCachedSocket (line 5023) | typedef struct migrateCachedSocket { function migrateCachedSocket (line 5040) | migrateCachedSocket* migrateGetSocket(client *c, robj *host, robj *port,... function migrateCloseSocket (line 5089) | void migrateCloseSocket(robj *host, robj *port) { function migrateCloseTimedoutSockets (line 5108) | void migrateCloseTimedoutSockets(void) { function migrateCommand (line 5131) | void migrateCommand(client *c) { function askingCommand (line 5476) | void askingCommand(client *c) { function readonlyCommand (line 5488) | void readonlyCommand(client *c) { function readwriteCommand (line 5498) | void readwriteCommand(client *c) { function clusterNode (line 5535) | clusterNode *getNodeByQuery(client *c, struct redisCommand *cmd, robj **... function clusterRedirectClient (line 5731) | void clusterRedirectClient(client *c, clusterNode *n, int hashslot, int ... function clusterRedirectBlockedClientIfNeeded (line 5768) | int clusterRedirectBlockedClientIfNeeded(client *c) { FILE: Chapter02/redis-6.0.3/src/cluster.h type clusterNode (line 34) | struct clusterNode type clusterLink (line 37) | typedef struct clusterLink { type clusterNodeFailReport (line 107) | typedef struct clusterNodeFailReport { type clusterNode (line 112) | typedef struct clusterNode { type clusterState (line 140) | typedef struct clusterState { type clusterMsgDataGossip (line 185) | typedef struct { type clusterMsgDataFail (line 196) | typedef struct { type clusterMsgDataPublish (line 200) | typedef struct { type clusterMsgDataUpdate (line 206) | typedef struct { type clusterMsgModule (line 212) | typedef struct { type clusterMsg (line 249) | typedef struct { type redisCommand (line 283) | struct redisCommand FILE: Chapter02/redis-6.0.3/src/config.c type configEnum (line 41) | typedef struct configEnum { type boolConfigData (line 122) | typedef struct boolConfigData { type stringConfigData (line 129) | typedef struct stringConfigData { type enumConfigData (line 138) | typedef struct enumConfigData { type numericType (line 146) | typedef enum numericType { type numericConfigData (line 159) | typedef struct numericConfigData { type typeData (line 181) | typedef union typeData { type typeInterface (line 188) | typedef struct typeInterface { type standardConfig (line 202) | typedef struct standardConfig { function configEnumGetValue (line 217) | int configEnumGetValue(configEnum *ce, char *name) { function yesnotoi (line 250) | int yesnotoi(char *s) { function appendServerSaveParams (line 256) | void appendServerSaveParams(time_t seconds, int changes) { function resetServerSaveParams (line 263) | void resetServerSaveParams(void) { function queueLoadModule (line 269) | void queueLoadModule(sds path, sds *argv, int argc) { function initConfigValues (line 283) | void initConfigValues() { function loadServerConfigFromString (line 289) | void loadServerConfigFromString(char *config) { function loadServerConfig (line 540) | void loadServerConfig(char *filename, char *options) { function configSetCommand (line 602) | void configSetCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/connection.c function connection (line 77) | connection *connCreateSocket() { function connection (line 91) | connection *connCreateAcceptedSocket(int fd) { function connSocketConnect (line 98) | static int connSocketConnect(connection *conn, const char *addr, int por... function connHasWriteHandler (line 118) | int connHasWriteHandler(connection *conn) { function connHasReadHandler (line 123) | int connHasReadHandler(connection *conn) { function connSetPrivateData (line 128) | void connSetPrivateData(connection *conn, void *data) { function connSocketClose (line 144) | static void connSocketClose(connection *conn) { function connSocketWrite (line 163) | static int connSocketWrite(connection *conn, const void *data, size_t da... function connSocketRead (line 173) | static int connSocketRead(connection *conn, void *buf, size_t buf_len) { function connSocketAccept (line 185) | static int connSocketAccept(connection *conn, ConnectionCallbackFunc acc... function connSocketSetWriteHandler (line 206) | static int connSocketSetWriteHandler(connection *conn, ConnectionCallbac... function connSocketSetReadHandler (line 225) | static int connSocketSetReadHandler(connection *conn, ConnectionCallback... function connSocketEventHandler (line 241) | static void connSocketEventHandler(struct aeEventLoop *el, int fd, void ... function connSocketBlockingConnect (line 294) | static int connSocketBlockingConnect(connection *conn, const char *addr,... function connSocketSyncWrite (line 316) | static ssize_t connSocketSyncWrite(connection *conn, char *ptr, ssize_t ... function connSocketSyncRead (line 320) | static ssize_t connSocketSyncRead(connection *conn, char *ptr, ssize_t s... function connSocketSyncReadLine (line 324) | static ssize_t connSocketSyncReadLine(connection *conn, char *ptr, ssize... function connGetSocketError (line 346) | int connGetSocketError(connection *conn) { function connPeerToString (line 355) | int connPeerToString(connection *conn, char *ip, size_t ip_len, int *por... function connFormatPeer (line 359) | int connFormatPeer(connection *conn, char *buf, size_t buf_len) { function connSockName (line 363) | int connSockName(connection *conn, char *ip, size_t ip_len, int *port) { function connBlock (line 367) | int connBlock(connection *conn) { function connNonBlock (line 372) | int connNonBlock(connection *conn) { function connEnableTcpNoDelay (line 377) | int connEnableTcpNoDelay(connection *conn) { function connDisableTcpNoDelay (line 382) | int connDisableTcpNoDelay(connection *conn) { function connKeepAlive (line 387) | int connKeepAlive(connection *conn, int interval) { function connSendTimeout (line 392) | int connSendTimeout(connection *conn, long long ms) { function connRecvTimeout (line 396) | int connRecvTimeout(connection *conn, long long ms) { function connGetState (line 400) | int connGetState(connection *conn) { FILE: Chapter02/redis-6.0.3/src/connection.h type aeEventLoop (line 36) | struct aeEventLoop type connection (line 37) | typedef struct connection connection; type ConnectionState (line 39) | typedef enum { type connection (line 51) | struct connection type ConnectionType (line 53) | typedef struct ConnectionType { type connection (line 69) | struct connection { function connAccept (line 100) | static inline int connAccept(connection *conn, ConnectionCallbackFunc ac... function connConnect (line 113) | static inline int connConnect(connection *conn, const char *addr, int po... function connBlockingConnect (line 124) | static inline int connBlockingConnect(connection *conn, const char *addr... function connWrite (line 135) | static inline int connWrite(connection *conn, const void *data, size_t d... function connRead (line 147) | static inline int connRead(connection *conn, void *buf, size_t buf_len) { function connSetWriteHandler (line 154) | static inline int connSetWriteHandler(connection *conn, ConnectionCallba... function connSetReadHandler (line 161) | static inline int connSetReadHandler(connection *conn, ConnectionCallbac... function connSetWriteHandlerWithBarrier (line 170) | static inline int connSetWriteHandlerWithBarrier(connection *conn, Conne... function connClose (line 174) | static inline void connClose(connection *conn) { function connSyncWrite (line 185) | static inline ssize_t connSyncWrite(connection *conn, char *ptr, ssize_t... function connSyncRead (line 189) | static inline ssize_t connSyncRead(connection *conn, char *ptr, ssize_t ... function connSyncReadLine (line 193) | static inline ssize_t connSyncReadLine(connection *conn, char *ptr, ssiz... FILE: Chapter02/redis-6.0.3/src/connhelpers.h function connIncrRefs (line 52) | static inline void connIncrRefs(connection *conn) { function connDecrRefs (line 64) | static inline void connDecrRefs(connection *conn) { function connHasRefs (line 68) | static inline int connHasRefs(connection *conn) { function callHandler (line 77) | static inline int callHandler(connection *conn, ConnectionCallbackFunc h... FILE: Chapter02/redis-6.0.3/src/crc16.c function crc16 (line 82) | uint16_t crc16(const char *buf, int len) { FILE: Chapter02/redis-6.0.3/src/crc64.c function uint_fast64_t (line 69) | static inline uint_fast64_t crc_reflect(uint_fast64_t data, size_t data_... function _crc64 (line 88) | uint64_t _crc64(uint_fast64_t crc, const void *in_data, const uint64_t l... function crc64_init (line 116) | void crc64_init(void) { function crc64 (line 121) | uint64_t crc64(uint64_t crc, const unsigned char *s, uint64_t l) { function crc64Test (line 130) | int crc64Test(int argc, char *argv[]) { function main (line 156) | int main(int argc, char *argv[]) { FILE: Chapter02/redis-6.0.3/src/crcspeed.c function crcspeed64little_init (line 33) | void crcspeed64little_init(crcfn64 crcfn, uint64_t table[8][256]) { function crcspeed16little_init (line 51) | void crcspeed16little_init(crcfn16 crcfn, uint16_t table[8][256]) { function rev8 (line 70) | static inline uint64_t rev8(uint64_t a) { function crcspeed64big_init (line 86) | void crcspeed64big_init(crcfn64 fn, uint64_t big_table[8][256]) { function crcspeed16big_init (line 96) | void crcspeed16big_init(crcfn16 fn, uint16_t big_table[8][256]) { function crcspeed64little (line 111) | uint64_t crcspeed64little(uint64_t little_table[8][256], uint64_t crc, function crcspeed16little (line 145) | uint16_t crcspeed16little(uint16_t little_table[8][256], uint16_t crc, function crcspeed64big (line 182) | uint64_t crcspeed64big(uint64_t big_table[8][256], uint64_t crc, void *buf, function crcspeed16big (line 215) | uint16_t crcspeed16big(uint16_t big_table[8][256], uint16_t crc_in, void... function crcspeed64native (line 252) | uint64_t crcspeed64native(uint64_t table[8][256], uint64_t crc, void *buf, function crcspeed16native (line 260) | uint16_t crcspeed16native(uint16_t table[8][256], uint16_t crc, void *buf, function crcspeed64native_init (line 269) | void crcspeed64native_init(crcfn64 fn, uint64_t table[8][256]) { function crcspeed16native_init (line 276) | void crcspeed16native_init(crcfn16 fn, uint16_t table[8][256]) { FILE: Chapter02/redis-6.0.3/src/db.c function updateLFU (line 46) | void updateLFU(robj *val) { function robj (line 55) | robj *lookupKey(redisDb *db, robj *key, int flags) { function robj (line 98) | robj *lookupKeyReadWithFlags(redisDb *db, robj *key, int flags) { function robj (line 145) | robj *lookupKeyRead(redisDb *db, robj *key) { function robj (line 154) | robj *lookupKeyWriteWithFlags(redisDb *db, robj *key, int flags) { function robj (line 159) | robj *lookupKeyWrite(redisDb *db, robj *key) { function robj (line 163) | robj *lookupKeyReadOrReply(client *c, robj *key, robj *reply) { function robj (line 169) | robj *lookupKeyWriteOrReply(client *c, robj *key, robj *reply) { function dbAdd (line 179) | void dbAdd(redisDb *db, robj *key, robj *val) { function dbAddRDBLoad (line 202) | int dbAddRDBLoad(redisDb *db, sds key, robj *val) { function dbOverwrite (line 214) | void dbOverwrite(redisDb *db, robj *key, robj *val) { function genericSetKey (line 244) | void genericSetKey(client *c, redisDb *db, robj *key, robj *val, int kee... function setKey (line 256) | void setKey(client *c, redisDb *db, robj *key, robj *val) { function dbExists (line 262) | int dbExists(redisDb *db, robj *key) { function robj (line 270) | robj *dbRandomKey(redisDb *db) { function dbSyncDelete (line 306) | int dbSyncDelete(redisDb *db, robj *key) { function dbDelete (line 320) | int dbDelete(redisDb *db, robj *key) { function robj (line 352) | robj *dbUnshareStringValue(redisDb *db, robj *key, robj *o) { function emptyDbGeneric (line 380) | long long emptyDbGeneric(redisDb *dbarray, int dbnum, int flags, void(ca... function emptyDb (line 443) | long long emptyDb(int dbnum, int flags, void(callback)(void*)) { function selectDb (line 447) | int selectDb(client *c, int id) { function dbTotalServerKeyCount (line 454) | long long dbTotalServerKeyCount() { function signalModifiedKey (line 474) | void signalModifiedKey(client *c, redisDb *db, robj *key) { function signalFlushedDb (line 479) | void signalFlushedDb(int dbid) { function getFlushCommandFlags (line 496) | int getFlushCommandFlags(client *c, int *flags) { function flushAllDataAndResetRDB (line 511) | void flushAllDataAndResetRDB(int flags) { function flushdbCommand (line 536) | void flushdbCommand(client *c) { function flushallCommand (line 554) | void flushallCommand(client *c) { function delGenericCommand (line 562) | void delGenericCommand(client *c, int lazy) { function delCommand (line 580) | void delCommand(client *c) { function unlinkCommand (line 584) | void unlinkCommand(client *c) { function existsCommand (line 590) | void existsCommand(client *c) { function selectCommand (line 600) | void selectCommand(client *c) { function randomkeyCommand (line 618) | void randomkeyCommand(client *c) { function keysCommand (line 630) | void keysCommand(client *c) { function scanCallback (line 659) | void scanCallback(void *privdata, const dictEntry *de) { function parseScanCursorOrReply (line 692) | int parseScanCursorOrReply(client *c, robj *o, unsigned long *cursor) { function scanGenericCommand (line 718) | void scanGenericCommand(client *c, robj *o, unsigned long cursor) { function scanCommand (line 908) | void scanCommand(client *c) { function dbsizeCommand (line 914) | void dbsizeCommand(client *c) { function lastsaveCommand (line 918) | void lastsaveCommand(client *c) { function typeCommand (line 944) | void typeCommand(client *c) { function shutdownCommand (line 950) | void shutdownCommand(client *c) { function renameGenericCommand (line 978) | void renameGenericCommand(client *c, int nx) { function renameCommand (line 1020) | void renameCommand(client *c) { function renamenxCommand (line 1024) | void renamenxCommand(client *c) { function moveCommand (line 1028) | void moveCommand(client *c) { function scanDatabaseForReadyLists (line 1094) | void scanDatabaseForReadyLists(redisDb *db) { function dbSwapDatabases (line 1116) | int dbSwapDatabases(long id1, long id2) { function swapdbCommand (line 1151) | void swapdbCommand(client *c) { function removeExpire (line 1183) | int removeExpire(redisDb *db, robj *key) { function setExpire (line 1194) | void setExpire(client *c, redisDb *db, robj *key, long long when) { function getExpire (line 1210) | long long getExpire(redisDb *db, robj *key) { function propagateExpire (line 1231) | void propagateExpire(redisDb *db, robj *key, int lazy) { function keyIsExpired (line 1248) | int keyIsExpired(redisDb *db, robj *key) { function expireIfNeeded (line 1304) | int expireIfNeeded(redisDb *db, robj *key) { type redisCommand (line 1336) | struct redisCommand type redisCommand (line 1386) | struct redisCommand function getKeysFreeResult (line 1397) | void getKeysFreeResult(int *result) { type redisCommand (line 1405) | struct redisCommand type redisCommand (line 1436) | struct redisCommand type redisCommand (line 1467) | struct redisCommand type redisCommand (line 1509) | struct redisCommand type redisCommand (line 1543) | struct redisCommand type redisCommand (line 1580) | struct redisCommand type redisCommand (line 1607) | struct redisCommand type redisCommand (line 1623) | struct redisCommand function slotToKeyUpdateKey (line 1672) | void slotToKeyUpdateKey(sds key, int add) { function slotToKeyAdd (line 1691) | void slotToKeyAdd(sds key) { function slotToKeyDel (line 1695) | void slotToKeyDel(sds key) { function slotToKeyFlush (line 1699) | void slotToKeyFlush(void) { function getKeysInSlot (line 1709) | unsigned int getKeysInSlot(unsigned int hashslot, robj **keys, unsigned ... function delKeysInSlot (line 1728) | unsigned int delKeysInSlot(unsigned int hashslot) { function countKeysInSlot (line 1749) | unsigned int countKeysInSlot(unsigned int hashslot) { FILE: Chapter02/redis-6.0.3/src/debug.c type ucontext_t (line 43) | typedef ucontext_t sigcontext_t; function xorDigest (line 64) | void xorDigest(unsigned char *digest, void *ptr, size_t len) { function xorStringObjectDigest (line 77) | void xorStringObjectDigest(unsigned char *digest, robj *o) { function mixDigest (line 97) | void mixDigest(unsigned char *digest, void *ptr, size_t len) { function mixStringObjectDigest (line 107) | void mixStringObjectDigest(unsigned char *digest, robj *o) { function xorObjectDigest (line 121) | void xorObjectDigest(redisDb *db, robj *keyobj, unsigned char *digest, r... function computeDatasetDigest (line 258) | void computeDatasetDigest(unsigned char *final) { function mallctl_int (line 301) | void mallctl_int(client *c, robj **argv, int argc) { function mallctl_string (line 335) | void mallctl_string(client *c, robj **argv, int argc) { function debugCommand (line 350) | void debugCommand(client *c) { function _serverAssert (line 790) | void _serverAssert(const char *estr, const char *file, int line) { function _serverAssertPrintClientInfo (line 803) | void _serverAssertPrintClientInfo(const client *c) { function serverLogObjectDebugInfo (line 828) | void serverLogObjectDebugInfo(const robj *o) { function _serverAssertPrintObject (line 854) | void _serverAssertPrintObject(const robj *o) { function _serverAssertWithInfo (line 860) | void _serverAssertWithInfo(const client *c, const robj *o, const char *e... function _serverPanic (line 866) | void _serverPanic(const char *file, int line, const char *msg, ...) { function bugReportStart (line 884) | void bugReportStart(void) { function logStackContent (line 944) | void logStackContent(void **sp) { function logRegisters (line 957) | void logRegisters(ucontext_t *uc) { function openDirectLogFiledes (line 1286) | int openDirectLogFiledes(void) { function closeDirectLogFiledes (line 1295) | void closeDirectLogFiledes(int fd) { function logStackTrace (line 1302) | void logStackTrace(ucontext_t *uc) { function logCurrentClient (line 1330) | void logCurrentClient(void) { function memtest_test_linux_anonymous_maps (line 1371) | int memtest_test_linux_anonymous_maps(void) { function dumpX86Calls (line 1436) | void dumpX86Calls(void *addr, size_t len) { function sigsegvHandler (line 1459) | void sigsegvHandler(int sig, siginfo_t *info, void *secret) { function serverLogHexDump (line 1571) | void serverLogHexDump(int level, char *descr, void *value, size_t len) { function watchdogSignalHandler (line 1596) | void watchdogSignalHandler(int sig, siginfo_t *info, void *secret) { function watchdogScheduleSignal (line 1617) | void watchdogScheduleSignal(int period) { function enableWatchdog (line 1630) | void enableWatchdog(int period) { function disableWatchdog (line 1653) | void disableWatchdog(void) { FILE: Chapter02/redis-6.0.3/src/defrag.c function sds (line 87) | sds activeDefragSds(sds sdsptr) { function robj (line 103) | robj *activeDefragStringOb(robj* ob, long *defragged) { function dictIterDefragEntry (line 141) | long dictIterDefragEntry(dictIterator *iter) { function dictDefragTables (line 173) | long dictDefragTables(dict* d) { function zslUpdateNode (line 190) | void zslUpdateNode(zskiplist *zsl, zskiplistNode *oldnode, zskiplistNode... function activeDefragZsetEntry (line 250) | long activeDefragZsetEntry(zset *zs, dictEntry *de) { function activeDefragSdsDict (line 271) | long activeDefragSdsDict(dict* d, int val_type) { function activeDefragList (line 301) | long activeDefragList(list *l, int val_type) { function activeDefragSdsListAndDict (line 335) | long activeDefragSdsListAndDict(list *l, dict *d, int dict_val_type) { function dictEntry (line 395) | dictEntry* replaceSateliteDictKeyPtrAndOrDefragDictEntry(dict *d, sds ol... function activeDefragQuickListNode (line 411) | long activeDefragQuickListNode(quicklist *ql, quicklistNode **node_ref) { function activeDefragQuickListNodes (line 432) | long activeDefragQuickListNodes(quicklist *ql) { function defragLater (line 445) | void defragLater(redisDb *db, dictEntry *kde) { function scanLaterList (line 451) | long scanLaterList(robj *ob, unsigned long *cursor, long long endtime, l... type scanLaterZsetData (line 494) | typedef struct { function scanLaterZsetCallback (line 499) | void scanLaterZsetCallback(void *privdata, const dictEntry *_de) { function scanLaterZset (line 506) | long scanLaterZset(robj *ob, unsigned long *cursor) { function scanLaterSetCallback (line 516) | void scanLaterSetCallback(void *privdata, const dictEntry *_de) { function scanLaterSet (line 525) | long scanLaterSet(robj *ob, unsigned long *cursor) { function scanLaterHashCallback (line 534) | void scanLaterHashCallback(void *privdata, const dictEntry *_de) { function scanLaterHash (line 546) | long scanLaterHash(robj *ob, unsigned long *cursor) { function defragQuicklist (line 555) | long defragQuicklist(redisDb *db, dictEntry *kde) { function defragZsetSkiplist (line 569) | long defragZsetSkiplist(redisDb *db, dictEntry *kde) { function defragHash (line 602) | long defragHash(redisDb *db, dictEntry *kde) { function defragSet (line 620) | long defragSet(redisDb *db, dictEntry *kde) { function defragRaxNode (line 640) | int defragRaxNode(raxNode **noderef) { function scanLaterStraemListpacks (line 650) | int scanLaterStraemListpacks(robj *ob, unsigned long *cursor, long long ... function defragRadixTree (line 708) | long defragRadixTree(rax **raxref, int defrag_data, raxDefragFunction *e... type PendingEntryContext (line 732) | typedef struct { function defragStream (line 781) | long defragStream(redisDb *db, dictEntry *kde) { function defragKey (line 807) | long defragKey(redisDb *db, dictEntry *de) { function defragScanCallback (line 884) | void defragScanCallback(void *privdata, const dictEntry *de) { function defragDictBucketCallback (line 896) | void defragDictBucketCallback(void *privdata, dictEntry **bucketref) { function getAllocatorFragmentation (line 913) | float getAllocatorFragmentation(size_t *out_frag_bytes) { function defragOtherGlobals (line 930) | long defragOtherGlobals() { function defragLaterItem (line 943) | int defragLaterItem(dictEntry *de, unsigned long *cursor, long long endt... function defragLaterStep (line 970) | int defragLaterStep(redisDb *db, long long endtime) { function computeDefragCycles (line 1036) | void computeDefragCycles() { function activeDefragCycle (line 1069) | void activeDefragCycle(void) { function activeDefragCycle (line 1190) | void activeDefragCycle(void) { FILE: Chapter02/redis-6.0.3/src/dict.c function dictSetHashFunctionSeed (line 76) | void dictSetHashFunctionSeed(uint8_t *seed) { function dictGenHashFunction (line 90) | uint64_t dictGenHashFunction(const void *key, int len) { function dictGenCaseHashFunction (line 94) | uint64_t dictGenCaseHashFunction(const unsigned char *buf, int len) { function _dictReset (line 102) | static void _dictReset(dictht *ht) function dict (line 111) | dict *dictCreate(dictType *type, function _dictInit (line 121) | int _dictInit(dict *d, dictType *type, function dictResize (line 135) | int dictResize(dict *d) function dictExpand (line 147) | int dictExpand(dict *d, unsigned long size) function dictRehash (line 188) | int dictRehash(dict *d, int n) { function timeInMilliseconds (line 233) | long long timeInMilliseconds(void) { function dictRehashMilliseconds (line 241) | int dictRehashMilliseconds(dict *d, int ms) { function _dictRehashStep (line 260) | static void _dictRehashStep(dict *d) { function dictAdd (line 265) | int dictAdd(dict *d, void *key, void *val) function dictEntry (line 292) | dictEntry *dictAddRaw(dict *d, void *key, dictEntry **existing) function dictReplace (line 325) | int dictReplace(dict *d, void *key, void *val) function dictEntry (line 355) | dictEntry *dictAddOrFind(dict *d, void *key) { function dictEntry (line 364) | static dictEntry *dictGenericDelete(dict *d, const void *key, int nofree) { function dictDelete (line 403) | int dictDelete(dict *ht, const void *key) { function dictEntry (line 428) | dictEntry *dictUnlink(dict *ht, const void *key) { function dictFreeUnlinkedEntry (line 434) | void dictFreeUnlinkedEntry(dict *d, dictEntry *he) { function _dictClear (line 442) | int _dictClear(dict *d, dictht *ht, void(callback)(void *)) { function dictRelease (line 469) | void dictRelease(dict *d) function dictEntry (line 476) | dictEntry *dictFind(dict *d, const void *key) function dictFingerprint (line 510) | long long dictFingerprint(dict *d) { function dictIterator (line 542) | dictIterator *dictGetIterator(dict *d) function dictIterator (line 555) | dictIterator *dictGetSafeIterator(dict *d) { function dictEntry (line 562) | dictEntry *dictNext(dictIterator *iter) function dictReleaseIterator (line 597) | void dictReleaseIterator(dictIterator *iter) function dictEntry (line 610) | dictEntry *dictGetRandomKey(dict *d) function dictGetSomeKeys (line 673) | unsigned int dictGetSomeKeys(dict *d, dictEntry **des, unsigned int coun... function dictEntry (line 754) | dictEntry *dictGetFairRandomKey(dict *d) { function rev (line 768) | static unsigned long rev(unsigned long v) { function dictScan (line 862) | unsigned long dictScan(dict *d, function _dictExpandIfNeeded (line 953) | static int _dictExpandIfNeeded(dict *d) function _dictNextPower (line 975) | static unsigned long _dictNextPower(unsigned long size) function _dictKeyIndex (line 994) | static long _dictKeyIndex(dict *d, const void *key, uint64_t hash, dictE... function dictEmpty (line 1019) | void dictEmpty(dict *d, void(callback)(void*)) { function dictEnableResize (line 1026) | void dictEnableResize(void) { function dictDisableResize (line 1030) | void dictDisableResize(void) { function dictGetHash (line 1034) | uint64_t dictGetHash(dict *d, const void *key) { function dictEntry (line 1043) | dictEntry **dictFindEntryRefByPtrAndHash(dict *d, const void *oldptr, ui... function _dictGetStatsHt (line 1066) | size_t _dictGetStatsHt(char *buf, size_t bufsize, dictht *ht, int tablei... function dictGetStats (line 1127) | void dictGetStats(char *buf, size_t bufsize, dict *d) { function hashCallback (line 1148) | uint64_t hashCallback(const void *key) { function compareCallback (line 1152) | int compareCallback(void *privdata, const void *key1, const void *key2) { function freeCallback (line 1162) | void freeCallback(void *privdata, void *val) { function main (line 1184) | int main(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/src/dict.h type dictEntry (line 47) | typedef struct dictEntry { type dictType (line 58) | typedef struct dictType { type dictht (line 69) | typedef struct dictht { type dict (line 76) | typedef struct dict { type dictIterator (line 88) | typedef struct dictIterator { FILE: Chapter02/redis-6.0.3/src/endianconv.c function memrev16 (line 49) | void memrev16(void *p) { function memrev32 (line 59) | void memrev32(void *p) { function memrev64 (line 72) | void memrev64(void *p) { function intrev16 (line 89) | uint16_t intrev16(uint16_t v) { function intrev32 (line 94) | uint32_t intrev32(uint32_t v) { function intrev64 (line 99) | uint64_t intrev64(uint64_t v) { function endianconvTest (line 108) | int endianconvTest(int argc, char *argv[]) { FILE: Chapter02/redis-6.0.3/src/evict.c type evictionPoolEntry (line 54) | struct evictionPoolEntry { type evictionPoolEntry (line 61) | struct evictionPoolEntry function getLRUClock (line 70) | unsigned int getLRUClock(void) { function LRU_CLOCK (line 78) | unsigned int LRU_CLOCK(void) { function estimateObjectIdleTime (line 90) | unsigned long long estimateObjectIdleTime(robj *o) { function evictionPoolAlloc (line 139) | void evictionPoolAlloc(void) { function evictionPoolPopulate (line 162) | void evictionPoolPopulate(int dbid, dict *sampledict, dict *keydict, str... function LFUGetTimeInMinutes (line 299) | unsigned long LFUGetTimeInMinutes(void) { function LFUTimeElapsed (line 307) | unsigned long LFUTimeElapsed(unsigned long ldt) { function LFULogIncr (line 315) | uint8_t LFULogIncr(uint8_t counter) { function LFUDecrAndReturn (line 335) | unsigned long LFUDecrAndReturn(robj *o) { function freeMemoryGetNotCountedMemory (line 352) | size_t freeMemoryGetNotCountedMemory(void) { function getMaxmemoryState (line 396) | int getMaxmemoryState(size_t *total, size_t *logical, size_t *tofree, fl... function freeMemoryIfNeeded (line 446) | int freeMemoryIfNeeded(void) { function freeMemoryIfNeededAndSafe (line 637) | int freeMemoryIfNeededAndSafe(void) { FILE: Chapter02/redis-6.0.3/src/expire.c function activeExpireCycleTryExpire (line 54) | int activeExpireCycleTryExpire(redisDb *db, dictEntry *de, long long now) { function activeExpireCycle (line 123) | void activeExpireCycle(int type) { function expireSlaveKeys (line 369) | void expireSlaveKeys(void) { function rememberSlaveKeyWithExpire (line 428) | void rememberSlaveKeyWithExpire(redisDb *db, robj *key) { function getSlaveKeyWithExpireCount (line 458) | size_t getSlaveKeyWithExpireCount(void) { function flushSlaveKeysWithExpireList (line 471) | void flushSlaveKeysWithExpireList(void) { function expireGenericCommand (line 489) | void expireGenericCommand(client *c, long long basetime, int unit) { function expireCommand (line 537) | void expireCommand(client *c) { function expireatCommand (line 542) | void expireatCommand(client *c) { function pexpireCommand (line 547) | void pexpireCommand(client *c) { function pexpireatCommand (line 552) | void pexpireatCommand(client *c) { function ttlGenericCommand (line 557) | void ttlGenericCommand(client *c, int output_ms) { function ttlCommand (line 580) | void ttlCommand(client *c) { function pttlCommand (line 585) | void pttlCommand(client *c) { function persistCommand (line 590) | void persistCommand(client *c) { function touchCommand (line 605) | void touchCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/geo.c function geoArray (line 53) | geoArray *geoArrayCreate(void) { function geoPoint (line 64) | geoPoint *geoArrayAppend(geoArray *ga) { function geoArrayFree (line 75) | void geoArrayFree(geoArray *ga) { function decodeGeohash (line 85) | int decodeGeohash(double bits, double *xy) { function extractLongLatOrReply (line 93) | int extractLongLatOrReply(client *c, robj **argv, double *xy) { function longLatFromMember (line 113) | int longLatFromMember(robj *zobj, robj *member, double *xy) { function extractUnitOrReply (line 127) | double extractUnitOrReply(client *c, robj *unit) { function extractDistanceOrReply (line 152) | double extractDistanceOrReply(client *c, robj **argv, function addReplyDoubleDistance (line 179) | void addReplyDoubleDistance(client *c, double d) { function geoAppendIfWithinRadius (line 191) | int geoAppendIfWithinRadius(geoArray *ga, double lon, double lat, double... function geoGetPointsInRange (line 225) | int geoGetPointsInRange(robj *zobj, double min, double max, double lon, ... function scoresOfGeoHashBox (line 289) | void scoresOfGeoHashBox(GeoHashBits hash, GeoHashFix52Bits *min, GeoHash... function membersOfGeoHashBox (line 318) | int membersOfGeoHashBox(robj *zobj, GeoHashBits hash, geoArray *ga, doub... function membersOfAllNeighbors (line 326) | int membersOfAllNeighbors(robj *zobj, GeoHashRadius n, double lon, doubl... function sort_gp_asc (line 384) | static int sort_gp_asc(const void *a, const void *b) { function sort_gp_desc (line 396) | static int sort_gp_desc(const void *a, const void *b) { function geoaddCommand (line 405) | void geoaddCommand(client *c) { function georadiusGeneric (line 462) | void georadiusGeneric(client *c, int flags) { function georadiusCommand (line 676) | void georadiusCommand(client *c) { function georadiusbymemberCommand (line 681) | void georadiusbymemberCommand(client *c) { function georadiusroCommand (line 686) | void georadiusroCommand(client *c) { function georadiusbymemberroCommand (line 691) | void georadiusbymemberroCommand(client *c) { function geohashCommand (line 699) | void geohashCommand(client *c) { function geoposCommand (line 761) | void geoposCommand(client *c) { function geodistCommand (line 794) | void geodistCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/geo.h type geoPoint (line 8) | typedef struct geoPoint { type geoArray (line 16) | typedef struct geoArray { FILE: Chapter02/redis-6.0.3/src/geohash.c function interleave64 (line 52) | static inline uint64_t interleave64(uint32_t xlo, uint32_t ylo) { function deinterleave64 (line 82) | static inline uint64_t deinterleave64(uint64_t interleaved) { function geohashGetCoordRange (line 112) | void geohashGetCoordRange(GeoHashRange *long_range, GeoHashRange *lat_ra... function geohashEncode (line 121) | int geohashEncode(const GeoHashRange *long_range, const GeoHashRange *la... function geohashEncodeType (line 153) | int geohashEncodeType(double longitude, double latitude, uint8_t step, G... function geohashEncodeWGS84 (line 159) | int geohashEncodeWGS84(double longitude, double latitude, uint8_t step, function geohashDecode (line 164) | int geohashDecode(const GeoHashRange long_range, const GeoHashRange lat_... function geohashDecodeType (line 196) | int geohashDecodeType(const GeoHashBits hash, GeoHashArea *area) { function geohashDecodeWGS84 (line 202) | int geohashDecodeWGS84(const GeoHashBits hash, GeoHashArea *area) { function geohashDecodeAreaToLongLat (line 206) | int geohashDecodeAreaToLongLat(const GeoHashArea *area, double *xy) { function geohashDecodeToLongLatType (line 217) | int geohashDecodeToLongLatType(const GeoHashBits hash, double *xy) { function geohashDecodeToLongLatWGS84 (line 224) | int geohashDecodeToLongLatWGS84(const GeoHashBits hash, double *xy) { function geohash_move_x (line 228) | static void geohash_move_x(GeoHashBits *hash, int8_t d) { function geohash_move_y (line 248) | static void geohash_move_y(GeoHashBits *hash, int8_t d) { function geohashNeighbors (line 266) | void geohashNeighbors(const GeoHashBits *hash, GeoHashNeighbors *neighbo... FILE: Chapter02/redis-6.0.3/src/geohash.h type GeoDirection (line 55) | typedef enum { type GeoHashBits (line 66) | typedef struct { type GeoHashRange (line 71) | typedef struct { type GeoHashArea (line 76) | typedef struct { type GeoHashNeighbors (line 82) | typedef struct { FILE: Chapter02/redis-6.0.3/src/geohash_helper.c function deg_rad (line 57) | static inline double deg_rad(double ang) { return ang * D_R; } function rad_deg (line 58) | static inline double rad_deg(double ang) { return ang / D_R; } function geohashEstimateStepsByRadius (line 62) | uint8_t geohashEstimateStepsByRadius(double range_meters, double lat) { function geohashBoundingBox (line 103) | int geohashBoundingBox(double longitude, double latitude, double radius_... function GeoHashRadius (line 116) | GeoHashRadius geohashGetAreasByRadius(double longitude, double latitude,... function GeoHashRadius (line 199) | GeoHashRadius geohashGetAreasByRadiusWGS84(double longitude, double lati... function GeoHashFix52Bits (line 204) | GeoHashFix52Bits geohashAlign52Bits(const GeoHashBits hash) { function geohashGetDistance (line 211) | double geohashGetDistance(double lon1d, double lat1d, double lon2d, doub... function geohashGetDistanceIfInRadius (line 223) | int geohashGetDistanceIfInRadius(double x1, double y1, function geohashGetDistanceIfInRadiusWGS84 (line 231) | int geohashGetDistanceIfInRadiusWGS84(double x1, double y1, double x2, FILE: Chapter02/redis-6.0.3/src/geohash_helper.h type GeoHashFix52Bits (line 41) | typedef uint64_t GeoHashFix52Bits; type GeoHashVarBits (line 42) | typedef uint64_t GeoHashVarBits; type GeoHashRadius (line 44) | typedef struct { FILE: Chapter02/redis-6.0.3/src/gopher.c function addReplyGopherItem (line 35) | void addReplyGopherItem(client *c, const char *type, const char *descr, function processGopherRequest (line 51) | void processGopherRequest(client *c) { FILE: Chapter02/redis-6.0.3/src/help.h type commandHelp (line 24) | struct commandHelp { FILE: Chapter02/redis-6.0.3/src/hyperloglog.c type hllhdr (line 182) | struct hllhdr { function MurmurHash64A (line 396) | uint64_t MurmurHash64A (const void * key, int len, unsigned int seed) { function hllPatLen (line 451) | int hllPatLen(unsigned char *ele, size_t elesize, long *regp) { function hllDenseSet (line 493) | int hllDenseSet(uint8_t *registers, long index, uint8_t count) { function hllDenseAdd (line 511) | int hllDenseAdd(uint8_t *registers, unsigned char *ele, size_t elesize) { function hllDenseRegHisto (line 519) | void hllDenseRegHisto(uint8_t *registers, int* reghisto) { function hllSparseToDense (line 584) | int hllSparseToDense(robj *o) { function hllSparseSet (line 654) | int hllSparseSet(robj *o, long index, uint8_t count) { function hllSparseAdd (line 903) | int hllSparseAdd(robj *o, unsigned char *ele, size_t elesize) { function hllSparseRegHisto (line 911) | void hllSparseRegHisto(uint8_t *sparse, int sparselen, int *invalid, int... function hllRawRegHisto (line 945) | void hllRawRegHisto(uint8_t *registers, int* reghisto) { function hllSigma (line 971) | double hllSigma(double x) { function hllTau (line 988) | double hllTau(double x) { function hllCount (line 1013) | uint64_t hllCount(struct hllhdr *hdr, int *invalid) { function hllAdd (line 1051) | int hllAdd(robj *o, unsigned char *ele, size_t elesize) { function hllMerge (line 1068) | int hllMerge(uint8_t *max, robj *hll) { function robj (line 1114) | robj *createHLLObject(void) { function isHLLObjectOrReply (line 1149) | int isHLLObjectOrReply(client *c, robj *o) { function pfaddCommand (line 1181) | void pfaddCommand(client *c) { function pfcountCommand (line 1221) | void pfcountCommand(client *c) { function pfmergeCommand (line 1311) | void pfmergeCommand(client *c) { function pfselftestCommand (line 1390) | void pfselftestCommand(client *c) { function pfdebugCommand (line 1494) | void pfdebugCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/intset.c function _intsetValueEncoding (line 45) | static uint8_t _intsetValueEncoding(int64_t v) { function _intsetGetEncoded (line 55) | static int64_t _intsetGetEncoded(intset *is, int pos, uint8_t enc) { function _intsetGet (line 76) | static int64_t _intsetGet(intset *is, int pos) { function _intsetSet (line 81) | static void _intsetSet(intset *is, int pos, int64_t value) { function intset (line 97) | intset *intsetNew(void) { function intset (line 105) | static intset *intsetResize(intset *is, uint32_t len) { function intsetSearch (line 115) | static uint8_t intsetSearch(intset *is, int64_t value, uint32_t *pos) { function intset (line 157) | static intset *intsetUpgradeAndAdd(intset *is, int64_t value) { function intsetMoveTail (line 182) | static void intsetMoveTail(intset *is, uint32_t from, uint32_t to) { function intset (line 204) | intset *intsetAdd(intset *is, int64_t value, uint8_t *success) { function intset (line 234) | intset *intsetRemove(intset *is, int64_t value, int *success) { function intsetFind (line 254) | uint8_t intsetFind(intset *is, int64_t value) { function intsetRandom (line 260) | int64_t intsetRandom(intset *is) { function intsetGet (line 266) | uint8_t intsetGet(intset *is, uint32_t pos, int64_t *value) { function intsetLen (line 275) | uint32_t intsetLen(const intset *is) { function intsetBlobLen (line 280) | size_t intsetBlobLen(intset *is) { function intsetRepr (line 289) | static void intsetRepr(intset *is) { function error (line 296) | static void error(char *err) { function ok (line 302) | static void ok(void) { function usec (line 306) | static long long usec(void) { function _assert (line 313) | static void _assert(char *estr, char *file, int line) { function intset (line 318) | static intset *createSet(int bits, int size) { function checkConsistency (line 334) | static void checkConsistency(intset *is) { function intsetTest (line 352) | int intsetTest(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/src/intset.h type intset (line 35) | typedef struct intset { FILE: Chapter02/redis-6.0.3/src/latency.c function dictStringKeyCompare (line 39) | int dictStringKeyCompare(void *privdata, const void *key1, const void *k... function dictStringHash (line 44) | uint64_t dictStringHash(const void *key) { function THPIsEnabled (line 64) | int THPIsEnabled(void) { function THPGetAnonHugePagesSize (line 81) | int THPGetAnonHugePagesSize(void) { function latencyMonitorInit (line 90) | void latencyMonitorInit(void) { function latencyAddSample (line 98) | void latencyAddSample(const char *event, mstime_t latency) { function latencyResetEvent (line 135) | int latencyResetEvent(char *event_to_reset) { function analyzeLatencyForEvent (line 160) | void analyzeLatencyForEvent(char *event, struct latencyStats *ls) { function sds (line 217) | sds createLatencyReport(void) { function latencyCommandReplyWithSamples (line 478) | void latencyCommandReplyWithSamples(client *c, struct latencyTimeSeries ... function latencyCommandReplyWithLatestEvents (line 496) | void latencyCommandReplyWithLatestEvents(client *c) { function sds (line 517) | sds latencyCommandGenSparkeline(char *event, struct latencyTimeSeries *t... function latencyCommand (line 569) | void latencyCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/latency.h type latencySample (line 41) | struct latencySample { type latencyTimeSeries (line 47) | struct latencyTimeSeries { type latencyStats (line 54) | struct latencyStats { FILE: Chapter02/redis-6.0.3/src/lazyfree.c function lazyfreeGetPendingObjectsCount (line 10) | size_t lazyfreeGetPendingObjectsCount(void) { function lazyfreeGetFreeEffort (line 31) | size_t lazyfreeGetFreeEffort(robj *obj) { function dbAsyncDelete (line 54) | int dbAsyncDelete(redisDb *db, robj *key) { function freeObjAsync (line 94) | void freeObjAsync(robj *o) { function emptyDbAsync (line 107) | void emptyDbAsync(redisDb *db) { function slotToKeyFlushAsync (line 117) | void slotToKeyFlushAsync(void) { function lazyfreeFreeObjectFromBioThread (line 129) | void lazyfreeFreeObjectFromBioThread(robj *o) { function lazyfreeFreeDatabaseFromBioThread (line 139) | void lazyfreeFreeDatabaseFromBioThread(dict *ht1, dict *ht2) { function lazyfreeFreeSlotsMapFromBioThread (line 148) | void lazyfreeFreeSlotsMapFromBioThread(rax *rt) { FILE: Chapter02/redis-6.0.3/src/listpack.c function lpStringToInt64 (line 141) | int lpStringToInt64(const char *s, unsigned long slen, int64_t *value) { function lpFree (line 216) | void lpFree(unsigned char *lp) { function lpEncodeGetType (line 231) | int lpEncodeGetType(unsigned char *ele, uint32_t size, unsigned char *in... function lpEncodeBacklen (line 296) | unsigned long lpEncodeBacklen(unsigned char *buf, uint64_t l) { function lpDecodeBacklen (line 335) | uint64_t lpDecodeBacklen(unsigned char *p) { function lpEncodeString (line 352) | void lpEncodeString(unsigned char *buf, unsigned char *s, uint32_t len) { function lpCurrentEncodedSize (line 372) | uint32_t lpCurrentEncodedSize(unsigned char *p) { function lpLength (line 438) | uint32_t lpLength(unsigned char *lp) { function lpBytes (line 751) | uint32_t lpBytes(unsigned char *lp) { FILE: Chapter02/redis-6.0.3/src/localtime.c function is_leap_year (line 52) | static int is_leap_year(time_t year) { function nolocks_localtime (line 59) | void nolocks_localtime(struct tm *tmp, time_t t, time_t tz, int dst) { function main (line 109) | int main(void) { FILE: Chapter02/redis-6.0.3/src/lolwut.c function lolwutUnstableCommand (line 45) | void lolwutUnstableCommand(client *c) { function lolwutCommand (line 54) | void lolwutCommand(client *c) { function lwCanvas (line 93) | lwCanvas *lwCreateCanvas(int width, int height, int bgcolor) { function lwFreeCanvas (line 103) | void lwFreeCanvas(lwCanvas *canvas) { function lwDrawPixel (line 112) | void lwDrawPixel(lwCanvas *canvas, int x, int y, int color) { function lwGetPixel (line 119) | int lwGetPixel(lwCanvas *canvas, int x, int y) { function lwDrawLine (line 126) | void lwDrawLine(lwCanvas *canvas, int x1, int y1, int x2, int y2, int co... function lwDrawSquare (line 167) | void lwDrawSquare(lwCanvas *canvas, int x, int y, float size, float angl... FILE: Chapter02/redis-6.0.3/src/lolwut.h type lwCanvas (line 41) | typedef struct lwCanvas { FILE: Chapter02/redis-6.0.3/src/lolwut5.c function lwTranslatePixelsGroup (line 54) | void lwTranslatePixelsGroup(int byte, char *output) { function lwCanvas (line 71) | lwCanvas *lwDrawSchotter(int console_cols, int squares_per_row, int squa... function sds (line 109) | static sds renderCanvas(lwCanvas *canvas) { function lolwut5Command (line 140) | void lolwut5Command(client *c) { FILE: Chapter02/redis-6.0.3/src/lolwut6.c function sds (line 47) | static sds renderCanvas(lwCanvas *canvas) { type skyscraper (line 74) | struct skyscraper { function generateSkyscraper (line 82) | void generateSkyscraper(lwCanvas *canvas, struct skyscraper *si) { function generateSkyline (line 123) | void generateSkyline(lwCanvas *canvas) { function lolwut6Command (line 169) | void lolwut6Command(client *c) { FILE: Chapter02/redis-6.0.3/src/lzfP.h type u8 (line 160) | typedef unsigned char u8; type LZF_HSLOT (line 164) | typedef unsigned int LZF_HSLOT; type u8 (line 167) | typedef const u8 *LZF_HSLOT; type LZF_HSLOT (line 170) | typedef LZF_HSLOT LZF_STATE[1 << (HLOG)]; type u16 (line 175) | typedef unsigned short u16; type u16 (line 177) | typedef unsigned int u16; FILE: Chapter02/redis-6.0.3/src/lzf_c.c function lzf_compress (line 98) | unsigned int FILE: Chapter02/redis-6.0.3/src/lzf_d.c function lzf_decompress (line 59) | unsigned int FILE: Chapter02/redis-6.0.3/src/memtest.c type winsize (line 59) | struct winsize function memtest_progress_start (line 63) | void memtest_progress_start(char *title, int pass) { function memtest_progress_end (line 78) | void memtest_progress_end(void) { function memtest_progress_step (line 82) | void memtest_progress_step(size_t curr, size_t size, char c) { function memtest_addressing (line 93) | int memtest_addressing(unsigned long *l, size_t bytes, int interactive) { function memtest_fill_random (line 138) | void memtest_fill_random(unsigned long *l, size_t bytes, int interactive) { function memtest_fill_value (line 163) | void memtest_fill_value(unsigned long *l, size_t bytes, unsigned long v1, function memtest_compare (line 194) | int memtest_compare(unsigned long *l, size_t bytes, int interactive) { function memtest_compare_times (line 218) | int memtest_compare_times(unsigned long *m, size_t bytes, int pass, int ... function memtest_test (line 237) | int memtest_test(unsigned long *m, size_t bytes, int passes, int interac... function memtest_preserving_test (line 280) | int memtest_preserving_test(unsigned long *m, size_t bytes, int passes) { function memtest_alloc_and_test (line 336) | void memtest_alloc_and_test(size_t megabytes, int passes) { function memtest (line 349) | void memtest(size_t megabytes, int passes) { FILE: Chapter02/redis-6.0.3/src/module.c type RedisModuleInfoCtx (line 43) | typedef struct RedisModuleInfoCtx { type RedisModule (line 55) | struct RedisModule { type RedisModule (line 70) | typedef struct RedisModule RedisModule; type RedisModuleSharedAPI (line 76) | struct RedisModuleSharedAPI { type RedisModuleSharedAPI (line 80) | typedef struct RedisModuleSharedAPI RedisModuleSharedAPI; type AutoMemEntry (line 86) | struct AutoMemEntry { type RedisModulePoolAllocBlock (line 115) | typedef struct RedisModulePoolAllocBlock { type RedisModuleBlockedClient (line 130) | struct RedisModuleBlockedClient type RedisModuleCtx (line 132) | struct RedisModuleCtx { type RedisModuleCtx (line 159) | typedef struct RedisModuleCtx RedisModuleCtx; type RedisModuleKey (line 172) | struct RedisModuleKey { type RedisModuleKey (line 190) | typedef struct RedisModuleKey RedisModuleKey; type RedisModuleBlockedClient (line 200) | struct RedisModuleBlockedClient type RedisModuleBlockedClient (line 202) | struct RedisModuleBlockedClient type RedisModuleCommandProxy (line 205) | struct RedisModuleCommandProxy { type RedisModuleCommandProxy (line 210) | typedef struct RedisModuleCommandProxy RedisModuleCommandProxy; type RedisModuleCallReply (line 220) | typedef struct RedisModuleCallReply { type RedisModuleBlockedClient (line 239) | typedef struct RedisModuleBlockedClient { type RedisModuleKeyspaceSubscriber (line 270) | typedef struct RedisModuleKeyspaceSubscriber { type RedisModuleDict (line 292) | typedef struct RedisModuleDict { type RedisModuleDictIter (line 296) | typedef struct RedisModuleDictIter { type RedisModuleCommandFilterCtx (line 301) | typedef struct RedisModuleCommandFilterCtx { type RedisModuleCommandFilter (line 308) | typedef struct RedisModuleCommandFilter { type RedisModuleForkInfo (line 322) | struct RedisModuleForkInfo { type RedisModuleServerInfoData (line 327) | typedef struct RedisModuleServerInfoData { type RedisModuleEventListener (line 348) | typedef struct RedisModuleEventListener { type RedisModuleUser (line 368) | typedef struct RedisModuleUser { function RM_Free (line 415) | void RM_Free(void *ptr) { function poolAllocRelease (line 429) | void poolAllocRelease(RedisModuleCtx *ctx) { function moduleCreateEmptyKey (line 498) | int moduleCreateEmptyKey(RedisModuleKey *key, int type) { function moduleDelKeyIfEmpty (line 534) | int moduleDelKeyIfEmpty(RedisModuleKey *key) { function RM_GetApi (line 573) | int RM_GetApi(const char *funcname, void **targetPtrPtr) { function moduleHandlePropagationAfterCommandCallback (line 582) | void moduleHandlePropagationAfterCommandCallback(RedisModuleCtx *ctx) { function moduleFreeContext (line 616) | void moduleFreeContext(RedisModuleCtx *ctx) { function RedisModuleCommandDispatcher (line 635) | void RedisModuleCommandDispatcher(client *c) { type redisCommand (line 671) | struct redisCommand function RM_IsKeysPositionRequest (line 688) | int RM_IsKeysPositionRequest(RedisModuleCtx *ctx) { function RM_KeyAtPos (line 706) | void RM_KeyAtPos(RedisModuleCtx *ctx, int pos) { function commandFlagsFromString (line 717) | int64_t commandFlagsFromString(char *s) { function RM_CreateCommand (line 803) | int RM_CreateCommand(RedisModuleCtx *ctx, const char *name, RedisModuleC... function RM_SetModuleAttribs (line 850) | void RM_SetModuleAttribs(RedisModuleCtx *ctx, const char *name, int ver,... function RM_IsModuleNameBusy (line 871) | int RM_IsModuleNameBusy(const char *name) { function RM_Milliseconds (line 879) | long long RM_Milliseconds(void) { function RM_SetModuleOptions (line 892) | void RM_SetModuleOptions(RedisModuleCtx *ctx, int options) { function RM_SignalModifiedKey (line 898) | int RM_SignalModifiedKey(RedisModuleCtx *ctx, RedisModuleString *keyname) { function RM_AutoMemory (line 911) | void RM_AutoMemory(RedisModuleCtx *ctx) { function autoMemoryAdd (line 916) | void autoMemoryAdd(RedisModuleCtx *ctx, int type, void *ptr) { function autoMemoryFreed (line 933) | int autoMemoryFreed(RedisModuleCtx *ctx, int type, void *ptr) { function autoMemoryCollect (line 964) | void autoMemoryCollect(RedisModuleCtx *ctx) { function RedisModuleString (line 1002) | RedisModuleString *RM_CreateString(RedisModuleCtx *ctx, const char *ptr,... function RedisModuleString (line 1016) | RedisModuleString *RM_CreateStringPrintf(RedisModuleCtx *ctx, const char... function RedisModuleString (line 1039) | RedisModuleString *RM_CreateStringFromLongLong(RedisModuleCtx *ctx, long... function RedisModuleString (line 1050) | RedisModuleString *RM_CreateStringFromDouble(RedisModuleCtx *ctx, double... function RedisModuleString (line 1064) | RedisModuleString *RM_CreateStringFromLongDouble(RedisModuleCtx *ctx, lo... function RedisModuleString (line 1079) | RedisModuleString *RM_CreateStringFromString(RedisModuleCtx *ctx, const ... function RM_FreeString (line 1097) | void RM_FreeString(RedisModuleCtx *ctx, RedisModuleString *str) { function RM_RetainString (line 1126) | void RM_RetainString(RedisModuleCtx *ctx, RedisModuleString *str) { function RM_StringToLongLong (line 1162) | int RM_StringToLongLong(const RedisModuleString *str, long long *ll) { function RM_StringToDouble (line 1170) | int RM_StringToDouble(const RedisModuleString *str, double *d) { function RM_StringToLongDouble (line 1178) | int RM_StringToLongDouble(const RedisModuleString *str, long double *ld) { function RM_StringCompare (line 1186) | int RM_StringCompare(RedisModuleString *a, RedisModuleString *b) { function RedisModuleString (line 1192) | RedisModuleString *moduleAssertUnsharedString(RedisModuleString *str) { function RM_StringAppendBuffer (line 1216) | int RM_StringAppendBuffer(RedisModuleCtx *ctx, RedisModuleString *str, c... function RM_WrongArity (line 1241) | int RM_WrongArity(RedisModuleCtx *ctx) { function client (line 1262) | client *moduleGetReplyClient(RedisModuleCtx *ctx) { function RM_ReplyWithLongLong (line 1279) | int RM_ReplyWithLongLong(RedisModuleCtx *ctx, long long ll) { function replyWithStatus (line 1289) | int replyWithStatus(RedisModuleCtx *ctx, const char *msg, char *prefix) { function RM_ReplyWithError (line 1312) | int RM_ReplyWithError(RedisModuleCtx *ctx, const char *err) { function RM_ReplyWithSimpleString (line 1321) | int RM_ReplyWithSimpleString(RedisModuleCtx *ctx, const char *msg) { function RM_ReplyWithArray (line 1336) | int RM_ReplyWithArray(RedisModuleCtx *ctx, long len) { function RM_ReplyWithNullArray (line 1355) | int RM_ReplyWithNullArray(RedisModuleCtx *ctx) { function RM_ReplyWithEmptyArray (line 1365) | int RM_ReplyWithEmptyArray(RedisModuleCtx *ctx) { function RM_ReplySetArrayLength (line 1398) | void RM_ReplySetArrayLength(RedisModuleCtx *ctx, long len) { function RM_ReplyWithStringBuffer (line 1422) | int RM_ReplyWithStringBuffer(RedisModuleCtx *ctx, const char *buf, size_... function RM_ReplyWithCString (line 1433) | int RM_ReplyWithCString(RedisModuleCtx *ctx, const char *buf) { function RM_ReplyWithString (line 1443) | int RM_ReplyWithString(RedisModuleCtx *ctx, RedisModuleString *str) { function RM_ReplyWithEmptyString (line 1453) | int RM_ReplyWithEmptyString(RedisModuleCtx *ctx) { function RM_ReplyWithVerbatimString (line 1464) | int RM_ReplyWithVerbatimString(RedisModuleCtx *ctx, const char *buf, siz... function RM_ReplyWithNull (line 1474) | int RM_ReplyWithNull(RedisModuleCtx *ctx) { function RM_ReplyWithCallReply (line 1487) | int RM_ReplyWithCallReply(RedisModuleCtx *ctx, RedisModuleCallReply *rep... function RM_ReplyWithDouble (line 1501) | int RM_ReplyWithDouble(RedisModuleCtx *ctx, double d) { function RM_ReplyWithLongDouble (line 1516) | int RM_ReplyWithLongDouble(RedisModuleCtx *ctx, long double ld) { function moduleReplicateMultiIfNeeded (line 1530) | void moduleReplicateMultiIfNeeded(RedisModuleCtx *ctx) { function RM_Replicate (line 1588) | int RM_Replicate(RedisModuleCtx *ctx, const char *cmdname, const char *f... function RM_ReplicateVerbatim (line 1639) | int RM_ReplicateVerbatim(RedisModuleCtx *ctx) { function RM_GetClientId (line 1670) | unsigned long long RM_GetClientId(RedisModuleCtx *ctx) { function modulePopulateClientInfoStructure (line 1681) | int modulePopulateClientInfoStructure(void *ci, client *client, int stru... function modulePopulateReplicationInfoStructure (line 1711) | int modulePopulateReplicationInfoStructure(void *ri, int structver) { function RM_GetClientInfoById (line 1769) | int RM_GetClientInfoById(void *ci, uint64_t id) { function RM_PublishMessage (line 1780) | int RM_PublishMessage(RedisModuleCtx *ctx, RedisModuleString *channel, R... function RM_GetSelectedDb (line 1789) | int RM_GetSelectedDb(RedisModuleCtx *ctx) { function RM_GetContextFlags (line 1852) | int RM_GetContextFlags(RedisModuleCtx *ctx) { function RM_AvoidReplicaTraffic (line 1949) | int RM_AvoidReplicaTraffic() { function RM_SelectDb (line 1963) | int RM_SelectDb(RedisModuleCtx *ctx, int newid) { function moduleInitKey (line 1969) | static void moduleInitKey(RedisModuleKey *kp, RedisModuleCtx *ctx, robj ... function moduleCloseKey (line 2016) | static void moduleCloseKey(RedisModuleKey *key) { function RM_CloseKey (line 2026) | void RM_CloseKey(RedisModuleKey *key) { function RM_KeyType (line 2035) | int RM_KeyType(RedisModuleKey *key) { function RM_ValueLength (line 2056) | size_t RM_ValueLength(RedisModuleKey *key) { function RM_DeleteKey (line 2073) | int RM_DeleteKey(RedisModuleKey *key) { function RM_UnlinkKey (line 2087) | int RM_UnlinkKey(RedisModuleKey *key) { function mstime_t (line 2099) | mstime_t RM_GetExpire(RedisModuleKey *key) { function RM_SetExpire (line 2115) | int RM_SetExpire(RedisModuleKey *key, mstime_t expire) { function RM_ResetDataset (line 2131) | void RM_ResetDataset(int restart_aof, int async) { function RM_DbSize (line 2138) | unsigned long long RM_DbSize(RedisModuleCtx *ctx) { function RedisModuleString (line 2143) | RedisModuleString *RM_RandomKey(RedisModuleCtx *ctx) { function RM_StringSet (line 2157) | int RM_StringSet(RedisModuleKey *key, RedisModuleString *str) { function RM_StringTruncate (line 2228) | int RM_StringTruncate(RedisModuleKey *key, size_t newlen) { function RM_ListPush (line 2267) | int RM_ListPush(RedisModuleKey *key, int where, RedisModuleString *ele) { function RedisModuleString (line 2283) | RedisModuleString *RM_ListPop(RedisModuleKey *key, int where) { function RM_ZsetAddFlagsToCoreFlags (line 2302) | int RM_ZsetAddFlagsToCoreFlags(int flags) { function RM_ZsetAddFlagsFromCoreFlags (line 2310) | int RM_ZsetAddFlagsFromCoreFlags(int flags) { function RM_ZsetAdd (line 2346) | int RM_ZsetAdd(RedisModuleKey *key, double score, RedisModuleString *ele... function RM_ZsetIncrby (line 2373) | int RM_ZsetIncrby(RedisModuleKey *key, double score, RedisModuleString *... function RM_ZsetRem (line 2411) | int RM_ZsetRem(RedisModuleKey *key, RedisModuleString *ele, int *deleted) { function RM_ZsetScore (line 2430) | int RM_ZsetScore(RedisModuleKey *key, RedisModuleString *ele, double *sc... function zsetKeyReset (line 2441) | void zsetKeyReset(RedisModuleKey *key) { function RM_ZsetRangeStop (line 2448) | void RM_ZsetRangeStop(RedisModuleKey *key) { function RM_ZsetRangeEndReached (line 2459) | int RM_ZsetRangeEndReached(RedisModuleKey *key) { function zsetInitScoreRange (line 2469) | int zsetInitScoreRange(RedisModuleKey *key, double min, double max, int ... function RM_ZsetFirstInScoreRange (line 2514) | int RM_ZsetFirstInScoreRange(RedisModuleKey *key, double min, double max... function RM_ZsetLastInScoreRange (line 2520) | int RM_ZsetLastInScoreRange(RedisModuleKey *key, double min, double max,... function zsetInitLexRange (line 2533) | int zsetInitLexRange(RedisModuleKey *key, RedisModuleString *min, RedisM... function RM_ZsetFirstInLexRange (line 2576) | int RM_ZsetFirstInLexRange(RedisModuleKey *key, RedisModuleString *min, ... function RM_ZsetLastInLexRange (line 2582) | int RM_ZsetLastInLexRange(RedisModuleKey *key, RedisModuleString *min, R... function RedisModuleString (line 2589) | RedisModuleString *RM_ZsetRangeCurrentElement(RedisModuleKey *key, doubl... function RM_ZsetRangeNext (line 2616) | int RM_ZsetRangeNext(RedisModuleKey *key) { function RM_ZsetRangePrev (line 2679) | int RM_ZsetRangePrev(RedisModuleKey *key) { function RM_HashSet (line 2795) | int RM_HashSet(RedisModuleKey *key, int flags, ...) { function RM_HashGet (line 2898) | int RM_HashGet(RedisModuleKey *key, int flags, ...) { function RedisModuleCallReply (line 2954) | RedisModuleCallReply *moduleCreateCallReplyFromProto(RedisModuleCtx *ctx... function moduleParseCallReply (line 2981) | void moduleParseCallReply(RedisModuleCallReply *reply) { function moduleParseCallReply_Int (line 2994) | void moduleParseCallReply_Int(RedisModuleCallReply *reply) { function moduleParseCallReply_BulkString (line 3003) | void moduleParseCallReply_BulkString(RedisModuleCallReply *reply) { function moduleParseCallReply_SimpleString (line 3020) | void moduleParseCallReply_SimpleString(RedisModuleCallReply *reply) { function moduleParseCallReply_Array (line 3031) | void moduleParseCallReply_Array(RedisModuleCallReply *reply) { function RM_FreeCallReply_Rec (line 3062) | void RM_FreeCallReply_Rec(RedisModuleCallReply *reply, int freenested){ function RM_FreeCallReply (line 3090) | void RM_FreeCallReply(RedisModuleCallReply *reply) { function RM_CallReplyType (line 3098) | int RM_CallReplyType(RedisModuleCallReply *reply) { function RM_CallReplyLength (line 3104) | size_t RM_CallReplyLength(RedisModuleCallReply *reply) { function RedisModuleCallReply (line 3118) | RedisModuleCallReply *RM_CallReplyArrayElement(RedisModuleCallReply *rep... function RM_CallReplyInteger (line 3126) | long long RM_CallReplyInteger(RedisModuleCallReply *reply) { function RedisModuleString (line 3143) | RedisModuleString *RM_CreateStringFromCallReply(RedisModuleCallReply *re... function robj (line 3171) | robj **moduleCreateArgvFromUserFormat(const char *cmdname, const char *f... function RedisModuleCallReply (line 3252) | RedisModuleCallReply *RM_Call(RedisModuleCtx *ctx, const char *cmdname, ... function moduleTypeEncodeId (line 3402) | uint64_t moduleTypeEncodeId(const char *name, int encver) { function moduleType (line 3423) | moduleType *moduleTypeLookupModuleByName(const char *name) { function moduleType (line 3450) | moduleType *moduleTypeLookupModuleByID(uint64_t id) { function moduleTypeNameByID (line 3496) | void moduleTypeNameByID(char *name, uint64_t moduleid) { function moduleType (line 3578) | moduleType *RM_CreateDataType(RedisModuleCtx *ctx, const char *name, int... function RM_ModuleTypeSetValue (line 3624) | int RM_ModuleTypeSetValue(RedisModuleKey *key, moduleType *mt, void *val... function moduleType (line 3639) | moduleType *RM_ModuleTypeGetType(RedisModuleKey *key) { function moduleRDBLoadError (line 3668) | void moduleRDBLoadError(RedisModuleIO *io) { function moduleAllDatatypesHandleErrors (line 3687) | int moduleAllDatatypesHandleErrors() { function RM_IsIOError (line 3707) | int RM_IsIOError(RedisModuleIO *io) { function RM_SaveUnsigned (line 3714) | void RM_SaveUnsigned(RedisModuleIO *io, uint64_t value) { function RM_LoadUnsigned (line 3733) | uint64_t RM_LoadUnsigned(RedisModuleIO *io) { function RM_SaveSigned (line 3750) | void RM_SaveSigned(RedisModuleIO *io, int64_t value) { function RM_LoadSigned (line 3757) | int64_t RM_LoadSigned(RedisModuleIO *io) { function RM_SaveString (line 3769) | void RM_SaveString(RedisModuleIO *io, RedisModuleString *s) { function RM_SaveStringBuffer (line 3787) | void RM_SaveStringBuffer(RedisModuleIO *io, const char *str, size_t len) { function RedisModuleString (line 3829) | RedisModuleString *RM_LoadString(RedisModuleIO *io) { function RM_SaveDouble (line 3847) | void RM_SaveDouble(RedisModuleIO *io, double value) { function RM_LoadDouble (line 3865) | double RM_LoadDouble(RedisModuleIO *io) { function RM_SaveFloat (line 3884) | void RM_SaveFloat(RedisModuleIO *io, float value) { function RM_LoadFloat (line 3902) | float RM_LoadFloat(RedisModuleIO *io) { function RM_SaveLongDouble (line 3921) | void RM_SaveLongDouble(RedisModuleIO *io, long double value) { function RM_LoadLongDouble (line 3932) | long double RM_LoadLongDouble(RedisModuleIO *io) { function rdbSaveModulesAux (line 3945) | ssize_t rdbSaveModulesAux(rio *rdb, int when) { function RM_DigestAddStringBuffer (line 4015) | void RM_DigestAddStringBuffer(RedisModuleDigest *md, unsigned char *ele,... function RM_DigestAddLongLong (line 4021) | void RM_DigestAddLongLong(RedisModuleDigest *md, long long ll) { function RM_DigestEndSequence (line 4028) | void RM_DigestEndSequence(RedisModuleDigest *md) { function RedisModuleString (line 4076) | RedisModuleString *RM_SaveDataTypeToString(RedisModuleCtx *ctx, void *da... function RM_EmitAOF (line 4105) | void RM_EmitAOF(RedisModuleIO *io, const char *cmdname, const char *fmt,... function RedisModuleCtx (line 4155) | RedisModuleCtx *RM_GetContextFromIO(RedisModuleIO *io) { function RedisModuleString (line 4169) | const RedisModuleString *RM_GetKeyNameFromIO(RedisModuleIO *io) { function RedisModuleString (line 4174) | const RedisModuleString *RM_GetKeyNameFromModuleKey(RedisModuleKey *key) { function RM_LogRaw (line 4188) | void RM_LogRaw(RedisModule *module, const char *levelstr, const char *fm... function RM_Log (line 4224) | void RM_Log(RedisModuleCtx *ctx, const char *levelstr, const char *fmt, ... function RM_LogIOError (line 4236) | void RM_LogIOError(RedisModuleIO *io, const char *levelstr, const char *... function RM__Assert (line 4248) | void RM__Assert(const char *estr, const char *file, int line) { function RM_LatencyAddSample (line 4255) | void RM_LatencyAddSample(const char *event, mstime_t latency) { function moduleBlockedClientPipeReadable (line 4268) | void moduleBlockedClientPipeReadable(aeEventLoop *el, int fd, void *priv... function unblockClientFromModule (line 4287) | void unblockClientFromModule(client *c) { function RedisModuleBlockedClient (line 4348) | RedisModuleBlockedClient *moduleBlockClient(RedisModuleCtx *ctx, RedisMo... function moduleTryServeClientBlockedOnKey (line 4398) | int moduleTryServeClientBlockedOnKey(client *c, robj *key) { function RedisModuleBlockedClient (line 4440) | RedisModuleBlockedClient *RM_BlockClient(RedisModuleCtx *ctx, RedisModul... function RedisModuleBlockedClient (line 4502) | RedisModuleBlockedClient *RM_BlockClientOnKeys(RedisModuleCtx *ctx, Redi... function RM_SignalKeyAsReady (line 4510) | void RM_SignalKeyAsReady(RedisModuleCtx *ctx, RedisModuleString *key) { function moduleUnblockClientByHandle (line 4515) | int moduleUnblockClientByHandle(RedisModuleBlockedClient *bc, void *priv... function moduleUnblockClient (line 4529) | void moduleUnblockClient(client *c) { function moduleClientIsBlockedOnKeys (line 4536) | int moduleClientIsBlockedOnKeys(client *c) { function RM_UnblockClient (line 4561) | int RM_UnblockClient(RedisModuleBlockedClient *bc, void *privdata) { function RM_AbortBlock (line 4575) | int RM_AbortBlock(RedisModuleBlockedClient *bc) { function RM_SetDisconnectCallback (line 4597) | void RM_SetDisconnectCallback(RedisModuleBlockedClient *bc, RedisModuleD... function moduleHandleBlockedClients (line 4609) | void moduleHandleBlockedClients(void) { function moduleBlockedClientTimedOut (line 4697) | void moduleBlockedClientTimedOut(client *c) { function RM_IsBlockedReplyRequest (line 4714) | int RM_IsBlockedReplyRequest(RedisModuleCtx *ctx) { function RM_IsBlockedTimeoutRequest (line 4720) | int RM_IsBlockedTimeoutRequest(RedisModuleCtx *ctx) { function RedisModuleString (line 4731) | RedisModuleString *RM_GetBlockedClientReadyKey(RedisModuleCtx *ctx) { function RedisModuleBlockedClient (line 4739) | RedisModuleBlockedClient *RM_GetBlockedClientHandle(RedisModuleCtx *ctx) { function RM_BlockedClientDisconnected (line 4746) | int RM_BlockedClientDisconnected(RedisModuleCtx *ctx) { function RedisModuleCtx (line 4773) | RedisModuleCtx *RM_GetThreadSafeContext(RedisModuleBlockedClient *bc) { function RM_FreeThreadSafeContext (line 4795) | void RM_FreeThreadSafeContext(RedisModuleCtx *ctx) { function RM_ThreadSafeContextLock (line 4803) | void RM_ThreadSafeContextLock(RedisModuleCtx *ctx) { function RM_ThreadSafeContextUnlock (line 4809) | void RM_ThreadSafeContextUnlock(RedisModuleCtx *ctx) { function moduleAcquireGIL (line 4814) | void moduleAcquireGIL(void) { function moduleReleaseGIL (line 4818) | void moduleReleaseGIL(void) { function RM_SubscribeToKeyspaceEvents (line 4877) | int RM_SubscribeToKeyspaceEvents(RedisModuleCtx *ctx, int types, RedisMo... function RM_GetNotifyKeyspaceEvents (line 4890) | int RM_GetNotifyKeyspaceEvents() { function RM_NotifyKeyspaceEvent (line 4895) | int RM_NotifyKeyspaceEvent(RedisModuleCtx *ctx, int type, const char *ev... function moduleNotifyKeyspaceEvent (line 4905) | void moduleNotifyKeyspaceEvent(int type, const char *event, robj *key, i... function moduleUnsubscribeNotifications (line 4938) | void moduleUnsubscribeNotifications(RedisModule *module) { type moduleClusterReceiver (line 4961) | typedef struct moduleClusterReceiver { type mdouleClusterNodeInfo (line 4968) | typedef struct moduleClusterNodeInfo { function moduleCallClusterReceivers (line 4980) | void moduleCallClusterReceivers(const char *sender_id, uint64_t module_i... function RM_RegisterClusterMessageReceiver (line 5001) | void RM_RegisterClusterMessageReceiver(RedisModuleCtx *ctx, uint8_t type... function RM_SendClusterMessage (line 5045) | int RM_SendClusterMessage(RedisModuleCtx *ctx, char *target_id, uint8_t ... function RM_FreeClusterNodesList (line 5100) | void RM_FreeClusterNodesList(char **ids) { function RM_GetClusterSize (line 5117) | size_t RM_GetClusterSize(void) { function RM_GetClusterNodeInfo (line 5144) | int RM_GetClusterNodeInfo(RedisModuleCtx *ctx, const char *id, char *ip,... function RM_SetClusterFlags (line 5199) | void RM_SetClusterFlags(RedisModuleCtx *ctx, uint64_t flags) { type RedisModuleTimer (line 5232) | typedef struct RedisModuleTimer { function moduleTimerHandler (line 5241) | int moduleTimerHandler(struct aeEventLoop *eventLoop, long long id, void... function RedisModuleTimerID (line 5283) | RedisModuleTimerID RM_CreateTimer(RedisModuleCtx *ctx, mstime_t period, ... function RM_StopTimer (line 5331) | int RM_StopTimer(RedisModuleCtx *ctx, RedisModuleTimerID id, void **data) { function RM_GetTimerInfo (line 5347) | int RM_GetTimerInfo(RedisModuleCtx *ctx, RedisModuleTimerID id, uint64_t... function moduleNotifyUserChanged (line 5372) | void moduleNotifyUserChanged(client *c) { function revokeClientAuthentication (line 5385) | void revokeClientAuthentication(client *c) { function moduleFreeAuthenticatedClients (line 5401) | static void moduleFreeAuthenticatedClients(RedisModule *module) { function RedisModuleUser (line 5436) | RedisModuleUser *RM_CreateModuleUser(const char *name) { function RM_FreeModuleUser (line 5448) | int RM_FreeModuleUser(RedisModuleUser *user) { function RM_SetModuleUserACL (line 5461) | int RM_SetModuleUserACL(RedisModuleUser *user, const char* acl) { function authenticateClientWithUser (line 5485) | static int authenticateClientWithUser(RedisModuleCtx *ctx, user *user, R... function RM_AuthenticateClientWithUser (line 5514) | int RM_AuthenticateClientWithUser(RedisModuleCtx *ctx, RedisModuleUser *... function RM_AuthenticateClientWithACLUser (line 5523) | int RM_AuthenticateClientWithACLUser(RedisModuleCtx *ctx, const char *na... function RM_DeauthenticateAndCloseClient (line 5544) | int RM_DeauthenticateAndCloseClient(RedisModuleCtx *ctx, uint64_t client... function RedisModuleDict (line 5575) | RedisModuleDict *RM_CreateDict(RedisModuleCtx *ctx) { function RM_FreeDict (line 5585) | void RM_FreeDict(RedisModuleCtx *ctx, RedisModuleDict *d) { function RM_DictSize (line 5592) | uint64_t RM_DictSize(RedisModuleDict *d) { function RM_DictSetC (line 5600) | int RM_DictSetC(RedisModuleDict *d, void *key, size_t keylen, void *ptr) { function RM_DictReplaceC (line 5607) | int RM_DictReplaceC(RedisModuleDict *d, void *key, size_t keylen, void *... function RM_DictSet (line 5613) | int RM_DictSet(RedisModuleDict *d, RedisModuleString *key, void *ptr) { function RM_DictReplace (line 5618) | int RM_DictReplace(RedisModuleDict *d, RedisModuleString *key, void *ptr) { function RM_DictDelC (line 5645) | int RM_DictDelC(RedisModuleDict *d, void *key, size_t keylen, void *oldv... function RM_DictDel (line 5651) | int RM_DictDel(RedisModuleDict *d, RedisModuleString *key, void *oldval) { function RedisModuleDictIter (line 5675) | RedisModuleDictIter *RM_DictIteratorStartC(RedisModuleDict *d, const cha... function RedisModuleDictIter (line 5685) | RedisModuleDictIter *RM_DictIteratorStart(RedisModuleDict *d, const char... function RM_DictIteratorStop (line 5691) | void RM_DictIteratorStop(RedisModuleDictIter *di) { function RM_DictIteratorReseekC (line 5703) | int RM_DictIteratorReseekC(RedisModuleDictIter *di, const char *op, void... function RM_DictIteratorReseek (line 5709) | int RM_DictIteratorReseek(RedisModuleDictIter *di, const char *op, Redis... function RedisModuleString (line 5762) | RedisModuleString *RM_DictNext(RedisModuleCtx *ctx, RedisModuleDictIter ... function RedisModuleString (line 5772) | RedisModuleString *RM_DictPrev(RedisModuleCtx *ctx, RedisModuleDictIter ... function RM_DictCompareC (line 5791) | int RM_DictCompareC(RedisModuleDictIter *di, const char *op, void *key, ... function RM_DictCompare (line 5799) | int RM_DictCompare(RedisModuleDictIter *di, const char *op, RedisModuleS... function RM_InfoAddSection (line 5818) | int RM_InfoAddSection(RedisModuleInfoCtx *ctx, char *name) { function RM_InfoBeginDictField (line 5849) | int RM_InfoBeginDictField(RedisModuleInfoCtx *ctx, char *name) { function RM_InfoEndDictField (line 5864) | int RM_InfoEndDictField(RedisModuleInfoCtx *ctx) { function RM_InfoAddFieldString (line 5878) | int RM_InfoAddFieldString(RedisModuleInfoCtx *ctx, char *field, RedisMod... function RM_InfoAddFieldCString (line 5896) | int RM_InfoAddFieldCString(RedisModuleInfoCtx *ctx, char *field, char *v... function RM_InfoAddFieldDouble (line 5914) | int RM_InfoAddFieldDouble(RedisModuleInfoCtx *ctx, char *field, double v... function RM_InfoAddFieldLongLong (line 5932) | int RM_InfoAddFieldLongLong(RedisModuleInfoCtx *ctx, char *field, long l... function RM_InfoAddFieldULongLong (line 5950) | int RM_InfoAddFieldULongLong(RedisModuleInfoCtx *ctx, char *field, unsig... function RM_RegisterInfoFunc (line 5968) | int RM_RegisterInfoFunc(RedisModuleCtx *ctx, RedisModuleInfoFunc cb) { function sds (line 5973) | sds modulesCollectInfo(sds info, const char *section, int for_crash_repo... function RedisModuleServerInfoData (line 5999) | RedisModuleServerInfoData *RM_GetServerInfo(RedisModuleCtx *ctx, const c... function RM_FreeServerInfo (line 6025) | void RM_FreeServerInfo(RedisModuleCtx *ctx, RedisModuleServerInfoData *d... function RedisModuleString (line 6044) | RedisModuleString *RM_ServerInfoGetField(RedisModuleCtx *ctx, RedisModul... function RM_ServerInfoGetFieldSigned (line 6062) | long long RM_ServerInfoGetFieldSigned(RedisModuleServerInfoData *data, c... function RM_ServerInfoGetFieldUnsigned (line 6080) | unsigned long long RM_ServerInfoGetFieldUnsigned(RedisModuleServerInfoDa... function RM_ServerInfoGetFieldDouble (line 6098) | double RM_ServerInfoGetFieldDouble(RedisModuleServerInfoData *data, cons... function RM_GetRandomBytes (line 6121) | void RM_GetRandomBytes(unsigned char *dst, size_t len) { function RM_GetRandomHexChars (line 6128) | void RM_GetRandomHexChars(char *dst, size_t len) { function RM_ExportSharedAPI (line 6148) | int RM_ExportSharedAPI(RedisModuleCtx *ctx, const char *apiname, void *f... function moduleUnregisterSharedAPI (line 6209) | int moduleUnregisterSharedAPI(RedisModule *module) { function moduleUnregisterUsedAPI (line 6230) | int moduleUnregisterUsedAPI(RedisModule *module) { function moduleUnregisterFilters (line 6251) | int moduleUnregisterFilters(RedisModule *module) { function RedisModuleCommandFilter (line 6325) | RedisModuleCommandFilter *RM_RegisterCommandFilter(RedisModuleCtx *ctx, ... function RM_UnregisterCommandFilter (line 6338) | int RM_UnregisterCommandFilter(RedisModuleCtx *ctx, RedisModuleCommandFi... function moduleCallCommandFilters (line 6357) | void moduleCallCommandFilters(client *c) { function RM_CommandFilterArgsCount (line 6388) | int RM_CommandFilterArgsCount(RedisModuleCommandFilterCtx *fctx) function RedisModuleString (line 6396) | const RedisModuleString *RM_CommandFilterArgGet(RedisModuleCommandFilter... function RM_CommandFilterArgInsert (line 6408) | int RM_CommandFilterArgInsert(RedisModuleCommandFilterCtx *fctx, int pos... function RM_CommandFilterArgReplace (line 6430) | int RM_CommandFilterArgReplace(RedisModuleCommandFilterCtx *fctx, int po... function RM_CommandFilterArgDelete (line 6443) | int RM_CommandFilterArgDelete(RedisModuleCommandFilterCtx *fctx, int pos) function RM_MallocSize (line 6463) | size_t RM_MallocSize(void* ptr){ function RM_GetUsedMemoryRatio (line 6475) | float RM_GetUsedMemoryRatio(){ type ScanCBData (line 6486) | typedef struct { type RedisModuleScanCursor (line 6492) | typedef struct RedisModuleScanCursor{ function moduleScanCallback (line 6497) | static void moduleScanCallback(void *privdata, const dictEntry *de) { function RedisModuleScanCursor (line 6514) | RedisModuleScanCursor *RM_ScanCursorCreate() { function RM_ScanCursorRestart (line 6522) | void RM_ScanCursorRestart(RedisModuleScanCursor *cursor) { function RM_ScanCursorDestroy (line 6528) | void RM_ScanCursorDestroy(RedisModuleScanCursor *cursor) { function RM_Scan (line 6587) | int RM_Scan(RedisModuleCtx *ctx, RedisModuleScanCursor *cursor, RedisMod... type ScanKeyCBData (line 6604) | typedef struct { function moduleScanKeyCallback (line 6610) | static void moduleScanKeyCallback(void *privdata, const dictEntry *de) { function RM_ScanKey (line 6675) | int RM_ScanKey(RedisModuleKey *key, RedisModuleScanCursor *cursor, Redis... function RM_Fork (line 6762) | int RM_Fork(RedisModuleForkDoneHandler cb, void *user_data) { function RM_ExitFromChild (line 6788) | int RM_ExitFromChild(int retcode) { function TerminateModuleForkChild (line 6797) | int TerminateModuleForkChild(int child_pid, int wait) { function RM_KillForkChild (line 6820) | int RM_KillForkChild(int child_pid) { function ModuleForkDoneHandler (line 6828) | void ModuleForkDoneHandler(int exitcode, int bysignal) { function RM_SubscribeToServerEvent (line 7047) | int RM_SubscribeToServerEvent(RedisModuleCtx *ctx, RedisModuleEvent even... function moduleFireServerEvent (line 7090) | void moduleFireServerEvent(uint64_t eid, int subid, void *data) { function moduleUnsubscribeAllServerEvents (line 7164) | void moduleUnsubscribeAllServerEvents(RedisModule *module) { function processModuleLoadingProgressEvent (line 7179) | void processModuleLoadingProgressEvent(int is_aof) { function dictCStringKeyHash (line 7207) | uint64_t dictCStringKeyHash(const void *key) { function dictCStringKeyCompare (line 7211) | int dictCStringKeyCompare(void *privdata, const void *key1, const void *... function moduleRegisterApi (line 7225) | int moduleRegisterApi(const char *funcname, void *funcptr) { function moduleInitModulesSystem (line 7235) | void moduleInitModulesSystem(void) { function moduleLoadFromQueue (line 7281) | void moduleLoadFromQueue(void) { function moduleFreeModuleStructure (line 7299) | void moduleFreeModuleStructure(struct RedisModule *module) { function moduleUnregisterCommands (line 7308) | void moduleUnregisterCommands(struct RedisModule *module) { function moduleLoad (line 7332) | int moduleLoad(const char *path, void **module_argv, int module_argc) { function moduleUnload (line 7395) | int moduleUnload(sds name) { function addReplyLoadedModules (line 7463) | void addReplyLoadedModules(client *c) { function sds (line 7482) | sds genModulesInfoStringRenderModulesList(list *l) { function sds (line 7497) | sds genModulesInfoStringRenderModuleOptions(struct RedisModule *module) { function sds (line 7512) | sds genModulesInfoString(sds info) { function moduleCommand (line 7539) | void moduleCommand(client *c) { function moduleCount (line 7600) | size_t moduleCount(void) { function RM_SetLRU (line 7607) | int RM_SetLRU(RedisModuleKey *key, mstime_t lru_idle) { function RM_GetLRU (line 7619) | int RM_GetLRU(RedisModuleKey *key, mstime_t *lru_idle) { function RM_SetLFU (line 7634) | int RM_SetLFU(RedisModuleKey *key, long long lfu_freq) { function RM_GetLFU (line 7645) | int RM_GetLFU(RedisModuleKey *key, long long *lfu_freq) { function RM_ModuleTypeReplaceValue (line 7671) | int RM_ModuleTypeReplaceValue(RedisModuleKey *key, moduleType *mt, void ... function moduleRegisterCoreAPI (line 7690) | void moduleRegisterCoreAPI(void) { FILE: Chapter02/redis-6.0.3/src/modules/gendoc.rb function markdown (line 5) | def markdown(s) function docufy (line 25) | def docufy(src,i) FILE: Chapter02/redis-6.0.3/src/modules/helloacl.c function RevokeCommand_RedisCommand (line 45) | int RevokeCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **... function ResetCommand_RedisCommand (line 59) | int ResetCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **a... function HelloACL_UserChanged (line 74) | void HelloACL_UserChanged(uint64_t client_id, void *privdata) { function AuthGlobalCommand_RedisCommand (line 82) | int AuthGlobalCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleStrin... function HelloACL_Reply (line 98) | int HelloACL_Reply(RedisModuleCtx *ctx, RedisModuleString **argv, int ar... function HelloACL_Timeout (line 114) | int HelloACL_Timeout(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function HelloACL_FreeData (line 121) | void HelloACL_FreeData(RedisModuleCtx *ctx, void *privdata) { function AuthAsyncCommand_RedisCommand (line 139) | int AuthAsyncCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString... function RedisModule_OnLoad (line 160) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/src/modules/helloblock.c function HelloBlock_Reply (line 42) | int HelloBlock_Reply(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function HelloBlock_Timeout (line 50) | int HelloBlock_Timeout(RedisModuleCtx *ctx, RedisModuleString **argv, in... function HelloBlock_FreeData (line 57) | void HelloBlock_FreeData(RedisModuleCtx *ctx, void *privdata) { function HelloBlock_Disconnected (line 85) | void HelloBlock_Disconnected(RedisModuleCtx *ctx, RedisModuleBlockedClie... function HelloBlock_RedisCommand (line 97) | int HelloBlock_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **arg... function HelloKeys_RedisCommand (line 181) | int HelloKeys_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv... function RedisModule_OnLoad (line 204) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/src/modules/hellocluster.c function PingallCommand_RedisCommand (line 44) | int PingallCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function ListCommand_RedisCommand (line 53) | int ListCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **ar... function PingReceiver (line 76) | void PingReceiver(RedisModuleCtx *ctx, const char *sender_id, uint8_t ty... function PongReceiver (line 84) | void PongReceiver(RedisModuleCtx *ctx, const char *sender_id, uint8_t ty... function RedisModule_OnLoad (line 91) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/src/modules/hellodict.c function cmd_SET (line 48) | int cmd_SET(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function cmd_GET (line 61) | int cmd_GET(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function cmd_KEYRANGE (line 75) | int cmd_KEYRANGE(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function RedisModule_OnLoad (line 109) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/src/modules/hellohook.c function clientChangeCallback (line 41) | void clientChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint6... function flushdbCallback (line 53) | void flushdbCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t s... function RedisModule_OnLoad (line 81) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/src/modules/hellotimer.c function timerHandler (line 41) | void timerHandler(RedisModuleCtx *ctx, void *data) { function TimerCommand_RedisCommand (line 48) | int TimerCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **a... function RedisModule_OnLoad (line 64) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/src/modules/hellotype.c type HelloTypeNode (line 53) | struct HelloTypeNode { type HelloTypeObject (line 58) | struct HelloTypeObject { type HelloTypeObject (line 63) | struct HelloTypeObject type HelloTypeObject (line 64) | struct HelloTypeObject function HelloTypeInsert (line 71) | void HelloTypeInsert(struct HelloTypeObject *o, int64_t ele) { function HelloTypeReleaseObject (line 89) | void HelloTypeReleaseObject(struct HelloTypeObject *o) { function HelloTypeInsert_RedisCommand (line 103) | int HelloTypeInsert_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloTypeRange_RedisCommand (line 140) | int HelloTypeRange_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function HelloTypeLen_RedisCommand (line 176) | int HelloTypeLen_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **a... function HelloBlock_Reply (line 199) | int HelloBlock_Reply(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function HelloBlock_Timeout (line 220) | int HelloBlock_Timeout(RedisModuleCtx *ctx, RedisModuleString **argv, in... function HelloBlock_FreeData (line 227) | void HelloBlock_FreeData(RedisModuleCtx *ctx, void *privdata) { function HelloTypeBRange_RedisCommand (line 235) | int HelloTypeBRange_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... type HelloTypeObject (line 274) | struct HelloTypeObject function HelloTypeRdbSave (line 282) | void HelloTypeRdbSave(RedisModuleIO *rdb, void *value) { function HelloTypeAofRewrite (line 292) | void HelloTypeAofRewrite(RedisModuleIO *aof, RedisModuleString *key, voi... function HelloTypeMemUsage (line 303) | size_t HelloTypeMemUsage(const void *value) { function HelloTypeFree (line 309) | void HelloTypeFree(void *value) { function HelloTypeDigest (line 313) | void HelloTypeDigest(RedisModuleDigest *md, void *value) { function RedisModule_OnLoad (line 325) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/src/modules/helloworld.c function HelloSimple_RedisCommand (line 48) | int HelloSimple_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **ar... function HelloPushNative_RedisCommand (line 61) | int HelloPushNative_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloPushCall_RedisCommand (line 80) | int HelloPushCall_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **... function HelloPushCall2_RedisCommand (line 96) | int HelloPushCall2_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function HelloListSumLen_RedisCommand (line 111) | int HelloListSumLen_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloListSplice_RedisCommand (line 134) | int HelloListSplice_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloListSpliceAuto_RedisCommand (line 179) | int HelloListSpliceAuto_RedisCommand(RedisModuleCtx *ctx, RedisModuleStr... function HelloRandArray_RedisCommand (line 221) | int HelloRandArray_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function HelloRepl1_RedisCommand (line 240) | int HelloRepl1_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **arg... function HelloRepl2_RedisCommand (line 278) | int HelloRepl2_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **arg... function HelloToggleCase_RedisCommand (line 314) | int HelloToggleCase_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloMoreExpire_RedisCommand (line 350) | int HelloMoreExpire_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloZsumRange_RedisCommand (line 375) | int HelloZsumRange_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function HelloLexRange_RedisCommand (line 430) | int HelloLexRange_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **... function HelloHCopy_RedisCommand (line 468) | int HelloHCopy_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **arg... function HelloLeftPad_RedisCommand (line 509) | int HelloLeftPad_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **a... function RedisModule_OnLoad (line 545) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/src/modules/testmodule.c function TestMatchReply (line 40) | int TestMatchReply(RedisModuleCallReply *reply, char *str) { function TestCall (line 51) | int TestCall(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function TestStringAppend (line 81) | int TestStringAppend(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function TestStringAppendAM (line 93) | int TestStringAppendAM(RedisModuleCtx *ctx, RedisModuleString **argv, in... function TestStringPrintf (line 107) | int TestStringPrintf(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function failTest (line 124) | int failTest(RedisModuleCtx *ctx, const char *msg) { function TestUnlink (line 129) | int TestUnlink(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function NotifyCallback (line 158) | int NotifyCallback(RedisModuleCtx *ctx, int type, const char *event, function TestNotifications (line 170) | int TestNotifications(RedisModuleCtx *ctx, RedisModuleString **argv, int... function TestCtxFlags (line 252) | int TestCtxFlags(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function TestAssertStringReply (line 324) | int TestAssertStringReply(RedisModuleCtx *ctx, RedisModuleCallReply *rep... function TestAssertIntegerReply (line 347) | int TestAssertIntegerReply(RedisModuleCtx *ctx, RedisModuleCallReply *re... function TestIt (line 370) | int TestIt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function RedisModule_OnLoad (line 414) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/src/multi.c function initClientMultiState (line 35) | void initClientMultiState(client *c) { function freeClientMultiState (line 42) | void freeClientMultiState(client *c) { function queueMultiCommand (line 57) | void queueMultiCommand(client *c) { function discardTransaction (line 74) | void discardTransaction(client *c) { function flagTransaction (line 83) | void flagTransaction(client *c) { function multiCommand (line 88) | void multiCommand(client *c) { function discardCommand (line 97) | void discardCommand(client *c) { function execCommandPropagateMulti (line 108) | void execCommandPropagateMulti(client *c) { function execCommandPropagateExec (line 113) | void execCommandPropagateExec(client *c) { function execCommand (line 118) | void execCommand(client *c) { type watchedKey (line 247) | typedef struct watchedKey { function watchForKey (line 253) | void watchForKey(client *c, robj *key) { function unwatchAllKeys (line 284) | void unwatchAllKeys(client *c) { function touchWatchedKey (line 312) | void touchWatchedKey(redisDb *db, robj *key) { function touchWatchedKeysOnFlush (line 335) | void touchWatchedKeysOnFlush(int dbid) { function watchCommand (line 358) | void watchCommand(client *c) { function unwatchCommand (line 370) | void unwatchCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/networking.c function sdsZmallocSize (line 44) | size_t sdsZmallocSize(sds s) { function getStringObjectSdsUsedMemory (line 51) | size_t getStringObjectSdsUsedMemory(robj *o) { function freeClientReplyValue (line 68) | void freeClientReplyValue(void *o) { function listMatchObjects (line 72) | int listMatchObjects(void *a, void *b) { function linkClient (line 78) | void linkClient(client *c) { function client (line 88) | client *createClient(connection *conn) { function clientInstallWriteHandler (line 179) | void clientInstallWriteHandler(client *c) { function prepareClientToWrite (line 220) | int prepareClientToWrite(client *c) { function _addReplyToBuffer (line 247) | int _addReplyToBuffer(client *c, const char *s, size_t len) { function _addReplyProtoToList (line 264) | void _addReplyProtoToList(client *c, const char *s, size_t len) { function addReply (line 306) | void addReply(client *c, robj *obj) { function addReplySds (line 327) | void addReplySds(client *c, sds s) { function addReplyProto (line 346) | void addReplyProto(client *c, const char *s, size_t len) { function addReplyErrorLength (line 360) | void addReplyErrorLength(client *c, const char *s, size_t len) { function addReplyError (line 429) | void addReplyError(client *c, const char *err) { function addReplyErrorFormat (line 433) | void addReplyErrorFormat(client *c, const char *fmt, ...) { function addReplyStatusLength (line 449) | void addReplyStatusLength(client *c, const char *s, size_t len) { function addReplyStatus (line 455) | void addReplyStatus(client *c, const char *status) { function addReplyStatusFormat (line 459) | void addReplyStatusFormat(client *c, const char *fmt, ...) { function trimReplyUnusedTailSpace (line 471) | void trimReplyUnusedTailSpace(client *c) { function setDeferredAggregateLen (line 509) | void setDeferredAggregateLen(client *c, void *node, long length, char pr... function setDeferredArrayLen (line 550) | void setDeferredArrayLen(client *c, void *node, long length) { function setDeferredMapLen (line 554) | void setDeferredMapLen(client *c, void *node, long length) { function setDeferredSetLen (line 560) | void setDeferredSetLen(client *c, void *node, long length) { function setDeferredAttributeLen (line 565) | void setDeferredAttributeLen(client *c, void *node, long length) { function setDeferredPushLen (line 571) | void setDeferredPushLen(client *c, void *node, long length) { function addReplyDouble (line 577) | void addReplyDouble(client *c, double d) { function addReplyHumanLongDouble (line 605) | void addReplyHumanLongDouble(client *c, long double d) { function addReplyLongLongWithPrefix (line 621) | void addReplyLongLongWithPrefix(client *c, long long ll, char prefix) { function addReplyLongLong (line 643) | void addReplyLongLong(client *c, long long ll) { function addReplyAggregateLen (line 652) | void addReplyAggregateLen(client *c, long length, int prefix) { function addReplyArrayLen (line 659) | void addReplyArrayLen(client *c, long length) { function addReplyMapLen (line 663) | void addReplyMapLen(client *c, long length) { function addReplySetLen (line 669) | void addReplySetLen(client *c, long length) { function addReplyAttributeLen (line 674) | void addReplyAttributeLen(client *c, long length) { function addReplyPushLen (line 680) | void addReplyPushLen(client *c, long length) { function addReplyNull (line 685) | void addReplyNull(client *c) { function addReplyBool (line 693) | void addReplyBool(client *c, int b) { function addReplyNullArray (line 705) | void addReplyNullArray(client *c) { function addReplyBulkLen (line 714) | void addReplyBulkLen(client *c, robj *obj) { function addReplyBulk (line 724) | void addReplyBulk(client *c, robj *obj) { function addReplyBulkCBuffer (line 731) | void addReplyBulkCBuffer(client *c, const void *p, size_t len) { function addReplyBulkSds (line 738) | void addReplyBulkSds(client *c, sds s) { function addReplyBulkCString (line 745) | void addReplyBulkCString(client *c, const char *s) { function addReplyBulkLongLong (line 754) | void addReplyBulkLongLong(client *c, long long ll) { function addReplyVerbatim (line 771) | void addReplyVerbatim(client *c, const char *s, size_t len, const char *... function addReplyHelp (line 795) | void addReplyHelp(client *c, const char **help) { function addReplySubcommandSyntaxError (line 814) | void addReplySubcommandSyntaxError(client *c) { function AddReplyFromClient (line 825) | void AddReplyFromClient(client *dst, client *src) { function copyClientOutputBuffer (line 839) | void copyClientOutputBuffer(client *dst, client *src) { function clientHasPendingReplies (line 850) | int clientHasPendingReplies(client *c) { function clientAcceptHandler (line 854) | void clientAcceptHandler(connection *conn) { function acceptCommonHandler (line 915) | static void acceptCommonHandler(connection *conn, int flags, char *ip) { function acceptTcpHandler (line 971) | void acceptTcpHandler(aeEventLoop *el, int fd, void *privdata, int mask) { function acceptTLSHandler (line 991) | void acceptTLSHandler(aeEventLoop *el, int fd, void *privdata, int mask) { function acceptUnixHandler (line 1011) | void acceptUnixHandler(aeEventLoop *el, int fd, void *privdata, int mask) { function freeClientArgv (line 1030) | static void freeClientArgv(client *c) { function disconnectSlaves (line 1041) | void disconnectSlaves(void) { function unlinkClient (line 1051) | void unlinkClient(client *c) { function freeClient (line 1117) | void freeClient(client *c) { function freeClientAsync (line 1241) | void freeClientAsync(client *c) { function freeClientsInAsyncFreeQueue (line 1262) | int freeClientsInAsyncFreeQueue(void) { function client (line 1278) | client *lookupClientByID(uint64_t id) { function writeToClient (line 1292) | int writeToClient(client *c, int handler_installed) { function sendReplyToClient (line 1389) | void sendReplyToClient(connection *conn) { function handleClientsWithPendingWrites (line 1398) | int handleClientsWithPendingWrites(void) { function resetClient (line 1439) | void resetClient(client *c) { function protectClient (line 1481) | void protectClient(client *c) { function unprotectClient (line 1488) | void unprotectClient(client *c) { function processInlineBuffer (line 1503) | int processInlineBuffer(client *c) { function setProtocolError (line 1564) | static void setProtocolError(const char *errstr, client *c) { function processMultibulkBuffer (line 1602) | int processMultibulkBuffer(client *c) { function commandProcessed (line 1742) | void commandProcessed(client *c) { function processCommandAndResetClient (line 1789) | int processCommandAndResetClient(client *c) { function processInputBuffer (line 1807) | void processInputBuffer(client *c) { function readQueryFromClient (line 1890) | void readQueryFromClient(connection *conn) { function getClientsMaxBuffers (line 1960) | void getClientsMaxBuffers(unsigned long *longest_output_list, function genClientPeerId (line 1989) | void genClientPeerId(client *client, char *peerid, function sds (line 2016) | sds catClientInfoString(sds s, client *client) { function sds (line 2070) | sds getAllClientsInfoString(int type) { function clientSetNameOrReply (line 2095) | int clientSetNameOrReply(client *c, robj *name) { function clientCommand (line 2124) | void clientCommand(client *c) { function helloCommand (line 2489) | void helloCommand(client *c) { function securityWarningCommand (line 2565) | void securityWarningCommand(client *c) { function rewriteClientCommandVector (line 2579) | void rewriteClientCommandVector(client *c, int argc, ...) { function replaceClientCommandVector (line 2607) | void replaceClientCommandVector(client *c, int argc, robj **argv) { function rewriteClientCommandArgument (line 2627) | void rewriteClientCommandArgument(client *c, int i, robj *newval) { function getClientOutputBufferMemoryUsage (line 2653) | unsigned long getClientOutputBufferMemoryUsage(client *c) { function getClientType (line 2667) | int getClientType(client *c) { function getClientTypeByName (line 2677) | int getClientTypeByName(char *name) { function checkClientOutputBufferLimits (line 2702) | int checkClientOutputBufferLimits(client *c) { function asyncCloseClientOnOutputBufferLimitReached (line 2747) | void asyncCloseClientOnOutputBufferLimitReached(client *c) { function flushSlavesOutputBuffers (line 2764) | void flushSlavesOutputBuffers(void) { function pauseClients (line 2815) | void pauseClients(mstime_t end) { function clientsArePaused (line 2823) | int clientsArePaused(void) { function processEventsWhileBlocked (line 2860) | void processEventsWhileBlocked(void) { function initThreadedIO (line 2953) | void initThreadedIO(void) { function startThreadedIO (line 2985) | void startThreadedIO(void) { function stopThreadedIO (line 2994) | void stopThreadedIO(void) { function stopThreadedIOIfNeeded (line 3017) | int stopThreadedIOIfNeeded(void) { function handleClientsWithPendingWritesUsingThreads (line 3031) | int handleClientsWithPendingWritesUsingThreads(void) { function postponeClientRead (line 3106) | int postponeClientRead(client *c) { function handleClientsWithPendingReadsUsingThreads (line 3126) | int handleClientsWithPendingReadsUsingThreads(void) { FILE: Chapter02/redis-6.0.3/src/notify.c function keyspaceEventsStringToFlags (line 40) | int keyspaceEventsStringToFlags(char *classes) { function sds (line 69) | sds keyspaceEventsFlagsToString(int flags) { function notifyKeyspaceEvent (line 99) | void notifyKeyspaceEvent(int type, char *event, robj *key, int dbid) { FILE: Chapter02/redis-6.0.3/src/object.c function robj (line 41) | robj *createObject(int type, void *ptr) { function robj (line 69) | robj *makeObjectShared(robj *o) { function robj (line 77) | robj *createRawStringObject(const char *ptr, size_t len) { function robj (line 84) | robj *createEmbeddedStringObject(const char *ptr, size_t len) { function robj (line 119) | robj *createStringObject(const char *ptr, size_t len) { function robj (line 133) | robj *createStringObjectFromLongLongWithOptions(long long value, int val... function robj (line 161) | robj *createStringObjectFromLongLong(long long value) { function robj (line 169) | robj *createStringObjectFromLongLongForValue(long long value) { function robj (line 179) | robj *createStringObjectFromLongDouble(long double value, int humanfrien... function robj (line 193) | robj *dupStringObject(const robj *o) { function robj (line 214) | robj *createQuicklistObject(void) { function robj (line 221) | robj *createZiplistObject(void) { function robj (line 228) | robj *createSetObject(void) { function robj (line 235) | robj *createIntsetObject(void) { function robj (line 242) | robj *createHashObject(void) { function robj (line 249) | robj *createZsetObject(void) { function robj (line 260) | robj *createZsetZiplistObject(void) { function robj (line 267) | robj *createStreamObject(void) { function robj (line 274) | robj *createModuleObject(moduleType *mt, void *value) { function freeStringObject (line 281) | void freeStringObject(robj *o) { function freeListObject (line 287) | void freeListObject(robj *o) { function freeSetObject (line 295) | void freeSetObject(robj *o) { function freeZsetObject (line 308) | void freeZsetObject(robj *o) { function freeHashObject (line 325) | void freeHashObject(robj *o) { function freeModuleObject (line 339) | void freeModuleObject(robj *o) { function freeStreamObject (line 345) | void freeStreamObject(robj *o) { function incrRefCount (line 349) | void incrRefCount(robj *o) { function decrRefCount (line 361) | void decrRefCount(robj *o) { function decrRefCountVoid (line 383) | void decrRefCountVoid(void *o) { function robj (line 399) | robj *resetRefCount(robj *obj) { function checkType (line 404) | int checkType(client *c, robj *o, int type) { function isSdsRepresentableAsLongLong (line 412) | int isSdsRepresentableAsLongLong(sds s, long long *llval) { function isObjectRepresentableAsLongLong (line 416) | int isObjectRepresentableAsLongLong(robj *o, long long *llval) { function trimStringObjectIfNeeded (line 430) | void trimStringObjectIfNeeded(robj *o) { function robj (line 439) | robj *tryObjectEncoding(robj *o) { function robj (line 520) | robj *getDecodedObject(robj *o) { function compareStringObjectsWithFlags (line 549) | int compareStringObjectsWithFlags(robj *a, robj *b, int flags) { function compareStringObjects (line 582) | int compareStringObjects(robj *a, robj *b) { function collateStringObjects (line 587) | int collateStringObjects(robj *a, robj *b) { function equalStringObjects (line 595) | int equalStringObjects(robj *a, robj *b) { function stringObjectLen (line 606) | size_t stringObjectLen(robj *o) { function getDoubleFromObject (line 615) | int getDoubleFromObject(const robj *o, double *target) { function getDoubleFromObjectOrReply (line 635) | int getDoubleFromObjectOrReply(client *c, robj *o, double *target, const... function getLongDoubleFromObject (line 649) | int getLongDoubleFromObject(robj *o, long double *target) { function getLongDoubleFromObjectOrReply (line 669) | int getLongDoubleFromObjectOrReply(client *c, robj *o, long double *targ... function getLongLongFromObject (line 683) | int getLongLongFromObject(robj *o, long long *target) { function getLongLongFromObjectOrReply (line 702) | int getLongLongFromObjectOrReply(client *c, robj *o, long long *target, ... function getLongFromObjectOrReply (line 716) | int getLongFromObjectOrReply(client *c, robj *o, long *target, const cha... function streamRadixTreeMemoryUsage (line 763) | size_t streamRadixTreeMemoryUsage(rax *rax) { function objectComputeSize (line 777) | size_t objectComputeSize(robj *o, size_t sample_size) { function freeMemoryOverheadData (line 942) | void freeMemoryOverheadData(struct redisMemOverhead *mh) { type redisMemOverhead (line 950) | struct redisMemOverhead type redisMemOverhead (line 955) | struct redisMemOverhead function inputCatSds (line 1055) | void inputCatSds(void *result, const char *str) { function sds (line 1063) | sds getMemoryDoctorReport(void) { function objectSetLRUOrLFU (line 1180) | int objectSetLRUOrLFU(robj *val, long long lfu_freq, long long lru_idle, function robj (line 1212) | robj *objectCommandLookup(client *c, robj *key) { function robj (line 1219) | robj *objectCommandLookupOrReply(client *c, robj *key, robj *reply) { function objectCommand (line 1228) | void objectCommand(client *c) { function memoryCommand (line 1277) | void memoryCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/pqsort.c function swapfunc (line 68) | static inline void function _pqsort (line 98) | static void function pqsort (line 179) | void FILE: Chapter02/redis-6.0.3/src/pubsub.c function addReplyPubsubMessage (line 43) | void addReplyPubsubMessage(client *c, robj *channel, robj *msg) { function addReplyPubsubPatMessage (line 56) | void addReplyPubsubPatMessage(client *c, robj *pat, robj *channel, robj ... function addReplyPubsubSubscribed (line 68) | void addReplyPubsubSubscribed(client *c, robj *channel) { function addReplyPubsubUnsubscribed (line 82) | void addReplyPubsubUnsubscribed(client *c, robj *channel) { function addReplyPubsubPatSubscribed (line 96) | void addReplyPubsubPatSubscribed(client *c, robj *pattern) { function addReplyPubsubPatUnsubscribed (line 110) | void addReplyPubsubPatUnsubscribed(client *c, robj *pattern) { function freePubsubPattern (line 127) | void freePubsubPattern(void *p) { function listMatchPubsubPattern (line 134) | int listMatchPubsubPattern(void *a, void *b) { function clientSubscriptionsCount (line 142) | int clientSubscriptionsCount(client *c) { function pubsubSubscribeChannel (line 149) | int pubsubSubscribeChannel(client *c, robj *channel) { function pubsubUnsubscribeChannel (line 176) | int pubsubUnsubscribeChannel(client *c, robj *channel, int notify) { function pubsubSubscribePattern (line 208) | int pubsubSubscribePattern(client *c, robj *pattern) { function pubsubUnsubscribePattern (line 240) | int pubsubUnsubscribePattern(client *c, robj *pattern, int notify) { function pubsubUnsubscribeAllChannels (line 276) | int pubsubUnsubscribeAllChannels(client *c, int notify) { function pubsubUnsubscribeAllPatterns (line 294) | int pubsubUnsubscribeAllPatterns(client *c, int notify) { function pubsubPublishMessage (line 310) | int pubsubPublishMessage(robj *channel, robj *message) { function subscribeCommand (line 360) | void subscribeCommand(client *c) { function unsubscribeCommand (line 368) | void unsubscribeCommand(client *c) { function psubscribeCommand (line 380) | void psubscribeCommand(client *c) { function punsubscribeCommand (line 388) | void punsubscribeCommand(client *c) { function publishCommand (line 400) | void publishCommand(client *c) { function pubsubCommand (line 410) | void pubsubCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/quicklist.c function quicklist (line 100) | quicklist *quicklistCreate(void) { function quicklistSetCompressDepth (line 114) | void quicklistSetCompressDepth(quicklist *quicklist, int compress) { function quicklistSetFill (line 124) | void quicklistSetFill(quicklist *quicklist, int fill) { function quicklistSetOptions (line 133) | void quicklistSetOptions(quicklist *quicklist, int fill, int depth) { function quicklist (line 139) | quicklist *quicklistNew(int fill, int compress) { function REDIS_STATIC (line 145) | REDIS_STATIC quicklistNode *quicklistCreateNode(void) { function quicklistCount (line 159) | unsigned long quicklistCount(const quicklist *ql) { return ql->count; } function quicklistRelease (line 162) | void quicklistRelease(quicklist *quicklist) { function REDIS_STATIC (line 186) | REDIS_STATIC int __quicklistCompressNode(quicklistNode *node) { function REDIS_STATIC (line 223) | REDIS_STATIC int __quicklistDecompressNode(quicklistNode *node) { function quicklistGetLzf (line 261) | size_t quicklistGetLzf(const quicklistNode *node, void **data) { function REDIS_STATIC (line 273) | REDIS_STATIC void __quicklistCompress(const quicklist *quicklist, function REDIS_STATIC (line 360) | REDIS_STATIC void __quicklistInsertNode(quicklist *quicklist, function REDIS_STATIC (line 396) | REDIS_STATIC void _quicklistInsertNodeBefore(quicklist *quicklist, function REDIS_STATIC (line 402) | REDIS_STATIC void _quicklistInsertNodeAfter(quicklist *quicklist, function REDIS_STATIC (line 408) | REDIS_STATIC int function REDIS_STATIC (line 428) | REDIS_STATIC int _quicklistNodeAllowInsert(const quicklistNode *node, function REDIS_STATIC (line 460) | REDIS_STATIC int _quicklistNodeAllowMerge(const quicklistNode *a, function quicklistPushHead (line 488) | int quicklistPushHead(quicklist *quicklist, void *value, size_t sz) { function quicklistPushTail (line 511) | int quicklistPushTail(quicklist *quicklist, void *value, size_t sz) { function quicklistAppendZiplist (line 533) | void quicklistAppendZiplist(quicklist *quicklist, unsigned char *zl) { function quicklist (line 550) | quicklist *quicklistAppendValuesFromZiplist(quicklist *quicklist, function quicklist (line 574) | quicklist *quicklistCreateFromZiplist(int fill, int compress, function REDIS_STATIC (line 587) | REDIS_STATIC void __quicklistDelNode(quicklist *quicklist, function REDIS_STATIC (line 630) | REDIS_STATIC int quicklistDelIndex(quicklist *quicklist, quicklistNode *... function quicklistDelEntry (line 651) | void quicklistDelEntry(quicklistIter *iter, quicklistEntry *entry) { function quicklistReplaceAtIndex (line 684) | int quicklistReplaceAtIndex(quicklist *quicklist, long index, void *data, function REDIS_STATIC (line 712) | REDIS_STATIC quicklistNode *_quicklistZiplistMerge(quicklist *quicklist, function REDIS_STATIC (line 750) | REDIS_STATIC void _quicklistMergeNodes(quicklist *quicklist, function REDIS_STATIC (line 814) | REDIS_STATIC quicklistNode *_quicklistSplitNode(quicklistNode *node, int... function REDIS_STATIC (line 849) | REDIS_STATIC void _quicklistInsert(quicklist *quicklist, quicklistEntry ... function quicklistInsertBefore (line 959) | void quicklistInsertBefore(quicklist *quicklist, quicklistEntry *entry, function quicklistInsertAfter (line 964) | void quicklistInsertAfter(quicklist *quicklist, quicklistEntry *entry, function quicklistDelRange (line 975) | int quicklistDelRange(quicklist *quicklist, const long start, function quicklistCompare (line 1059) | int quicklistCompare(unsigned char *p1, unsigned char *p2, int p2_len) { function quicklistIter (line 1065) | quicklistIter *quicklistGetIterator(const quicklist *quicklist, int dire... function quicklistIter (line 1088) | quicklistIter *quicklistGetIteratorAtIdx(const quicklist *quicklist, function quicklistReleaseIterator (line 1106) | void quicklistReleaseIterator(quicklistIter *iter) { function quicklistNext (line 1134) | int quicklistNext(quicklistIter *iter, quicklistEntry *entry) { function quicklist (line 1203) | quicklist *quicklistDup(quicklist *orig) { function quicklistIndex (line 1242) | int quicklistIndex(const quicklist *quicklist, const long long idx, function quicklistRotate (line 1299) | void quicklistRotate(quicklist *quicklist) { function quicklistPopCustom (line 1341) | int quicklistPopCustom(quicklist *quicklist, int where, unsigned char **... function REDIS_STATIC (line 1389) | REDIS_STATIC void *_quicklistSaver(unsigned char *data, unsigned int sz) { function quicklistPop (line 1402) | int quicklistPop(quicklist *quicklist, int where, unsigned char **data, function quicklistPush (line 1421) | void quicklistPush(quicklist *quicklist, void *value, const size_t sz, function quicklistBookmarkCreate (line 1438) | int quicklistBookmarkCreate(quicklist **ql_ref, const char *name, quickl... function quicklistNode (line 1458) | quicklistNode *quicklistBookmarkFind(quicklist *ql, const char *name) { function quicklistBookmarkDelete (line 1467) | int quicklistBookmarkDelete(quicklist *ql, const char *name) { function quicklistBookmark (line 1475) | quicklistBookmark *_quicklistBookmarkFindByName(quicklist *ql, const cha... function quicklistBookmark (line 1485) | quicklistBookmark *_quicklistBookmarkFindByNode(quicklist *ql, quicklist... function _quicklistBookmarkDelete (line 1495) | void _quicklistBookmarkDelete(quicklist *ql, quicklistBookmark *bm) { function quicklistBookmarksClear (line 1504) | void quicklistBookmarksClear(quicklist *ql) { function ql_info (line 1548) | static void ql_info(quicklist *ql) { function ustime (line 1563) | static long long ustime(void) { function mstime (line 1574) | static long long mstime(void) { return ustime() / 1000; } function _itrprintr (line 1580) | static int _itrprintr(quicklist *ql, int print, int forward) { function itrprintr (line 1602) | static int itrprintr(quicklist *ql, int print) { function itrprintr_rev (line 1606) | static int itrprintr_rev(quicklist *ql, int print) { function _ql_verify (line 1616) | static int _ql_verify(quicklist *ql, uint32_t len, uint32_t count, function quicklistTest (line 1710) | int quicklistTest(int argc, char *argv[]) { FILE: Chapter02/redis-6.0.3/src/quicklist.h type quicklistNode (line 46) | typedef struct quicklistNode { type quicklistLZF (line 64) | typedef struct quicklistLZF { type quicklistBookmark (line 77) | typedef struct quicklistBookmark { type quicklist (line 105) | typedef struct quicklist { type quicklistIter (line 116) | typedef struct quicklistIter { type quicklistEntry (line 124) | typedef struct quicklistEntry { FILE: Chapter02/redis-6.0.3/src/rand.c function redisLrand48 (line 71) | int32_t redisLrand48() { function redisSrand48 (line 76) | void redisSrand48(int32_t seedval) { function next (line 80) | static void next(void) { FILE: Chapter02/redis-6.0.3/src/rax.c function raxSetDebugMsg (line 81) | void raxSetDebugMsg(int onoff) { function raxStackInit (line 94) | static inline void raxStackInit(raxStack *ts) { function raxStackPush (line 102) | static inline int raxStackPush(raxStack *ts, void *ptr) { function raxStackFree (line 145) | static inline void raxStackFree(raxStack *ts) { function raxNode (line 188) | raxNode *raxNewNode(size_t children, int datafield) { function rax (line 203) | rax *raxNew(void) { function raxNode (line 219) | raxNode *raxReallocForData(raxNode *n, void *data) { function raxSetData (line 226) | void raxSetData(raxNode *n, void *data) { function raxNode (line 256) | raxNode *raxAddChild(raxNode *n, unsigned char c, raxNode **childptr, ra... function raxNode (line 397) | raxNode *raxCompressNode(raxNode *n, unsigned char *s, size_t len, raxNo... function raxLowWalk (line 459) | static inline size_t raxLowWalk(rax *rax, unsigned char *s, size_t len, ... function raxGenericInsert (line 509) | int raxGenericInsert(rax *rax, unsigned char *s, size_t len, void *data,... function raxInsert (line 904) | int raxInsert(rax *rax, unsigned char *s, size_t len, void *data, void *... function raxTryInsert (line 911) | int raxTryInsert(rax *rax, unsigned char *s, size_t len, void *data, voi... function raxNode (line 934) | raxNode **raxFindParentLink(raxNode *parent, raxNode *child) { function raxNode (line 949) | raxNode *raxRemoveChild(raxNode *parent, raxNode *child) { function raxRemove (line 1022) | int raxRemove(rax *rax, unsigned char *s, size_t len, void **old) { function raxRecursiveFree (line 1223) | void raxRecursiveFree(rax *rax, raxNode *n, void (*free_callback)(void*)) { function raxFreeWithCallback (line 1242) | void raxFreeWithCallback(rax *rax, void (*free_callback)(void*)) { function raxFree (line 1249) | void raxFree(rax *rax) { function raxStart (line 1258) | void raxStart(raxIterator *it, rax *rt) { function raxIteratorAddChars (line 1272) | int raxIteratorAddChars(raxIterator *it, unsigned char *s, size_t len) { function raxIteratorDelChars (line 1295) | void raxIteratorDelChars(raxIterator *it, size_t count) { function raxIteratorNextStep (line 1313) | int raxIteratorNextStep(raxIterator *it, int noup) { function raxSeekGreatest (line 1414) | int raxSeekGreatest(raxIterator *it) { function raxIteratorPrevStep (line 1433) | int raxIteratorPrevStep(raxIterator *it, int noup) { function raxSeek (line 1510) | int raxSeek(raxIterator *it, const char *op, unsigned char *ele, size_t ... function raxNext (line 1696) | int raxNext(raxIterator *it) { function raxPrev (line 1711) | int raxPrev(raxIterator *it) { function raxRandomWalk (line 1735) | int raxRandomWalk(raxIterator *it, size_t steps) { function raxCompare (line 1778) | int raxCompare(raxIterator *iter, const char *op, unsigned char *key, si... function raxStop (line 1807) | void raxStop(raxIterator *it) { function raxEOF (line 1816) | int raxEOF(raxIterator *it) { function raxSize (line 1821) | uint64_t raxSize(rax *rax) { function raxRecursiveShow (line 1853) | void raxRecursiveShow(int level, int lpad, raxNode *n) { function raxShow (line 1887) | void raxShow(rax *rax) { function raxDebugShowNode (line 1893) | void raxDebugShowNode(const char *msg, raxNode *n) { function raxTouch (line 1926) | unsigned long raxTouch(raxNode *n) { FILE: Chapter02/redis-6.0.3/src/rax.h type raxNode (line 98) | typedef struct raxNode { type rax (line 133) | typedef struct rax { type raxStack (line 143) | typedef struct raxStack { type raxIterator (line 175) | typedef struct raxIterator { FILE: Chapter02/redis-6.0.3/src/rdb.c function rdbReportError (line 55) | void rdbReportError(int corruption_error, int linenum, char *reason, ...) { function rdbWriteRaw (line 83) | static int rdbWriteRaw(rio *rdb, void *p, size_t len) { function rdbSaveType (line 89) | int rdbSaveType(rio *rdb, unsigned char type) { function rdbLoadType (line 96) | int rdbLoadType(rio *rdb) { function time_t (line 107) | time_t rdbLoadTime(rio *rdb) { function rdbSaveMillisecondTime (line 113) | int rdbSaveMillisecondTime(rio *rdb, long long t) { function rdbLoadMillisecondTime (line 134) | long long rdbLoadMillisecondTime(rio *rdb, int rdbver) { function rdbSaveLen (line 145) | int rdbSaveLen(rio *rdb, uint64_t len) { function rdbLoadLenByRef (line 188) | int rdbLoadLenByRef(rio *rdb, int *isencoded, uint64_t *lenptr) { function rdbLoadLen (line 228) | uint64_t rdbLoadLen(rio *rdb, int *isencoded) { function rdbEncodeInteger (line 239) | int rdbEncodeInteger(long long value, unsigned char *enc) { function rdbTryIntegerEncoding (line 305) | int rdbTryIntegerEncoding(char *s, size_t len, unsigned char *enc) { function rdbSaveLzfBlob (line 321) | ssize_t rdbSaveLzfBlob(rio *rdb, void *data, size_t compress_len, function rdbSaveLzfStringObject (line 346) | ssize_t rdbSaveLzfStringObject(rio *rdb, unsigned char *s, size_t len) { function rdbSaveRawString (line 409) | ssize_t rdbSaveRawString(rio *rdb, unsigned char *s, size_t len) { function rdbSaveLongLongAsStringObject (line 442) | ssize_t rdbSaveLongLongAsStringObject(rio *rdb, long long value) { function rdbSaveStringObject (line 461) | ssize_t rdbSaveStringObject(rio *rdb, robj *obj) { function robj (line 530) | robj *rdbLoadStringObject(rio *rdb) { function robj (line 534) | robj *rdbLoadEncodedStringObject(rio *rdb) { function rdbSaveDoubleValue (line 546) | int rdbSaveDoubleValue(rio *rdb, double val) { function rdbLoadDoubleValue (line 581) | int rdbLoadDoubleValue(rio *rdb, double *val) { function rdbSaveBinaryDoubleValue (line 603) | int rdbSaveBinaryDoubleValue(rio *rdb, double val) { function rdbLoadBinaryDoubleValue (line 610) | int rdbLoadBinaryDoubleValue(rio *rdb, double *val) { function rdbSaveBinaryFloatValue (line 617) | int rdbSaveBinaryFloatValue(rio *rdb, float val) { function rdbLoadBinaryFloatValue (line 623) | int rdbLoadBinaryFloatValue(rio *rdb, float *val) { function rdbSaveObjectType (line 630) | int rdbSaveObjectType(rio *rdb, robj *o) { function rdbLoadObjectType (line 672) | int rdbLoadObjectType(rio *rdb) { function rdbSaveStreamPEL (line 686) | ssize_t rdbSaveStreamPEL(rio *rdb, rax *pel, int nacks) { function rdbSaveStreamConsumers (line 722) | size_t rdbSaveStreamConsumers(rio *rdb, streamCG *cg) { function rdbSaveObject (line 759) | ssize_t rdbSaveObject(rio *rdb, robj *o, robj *key) { function rdbSavedObjectLen (line 1005) | size_t rdbSavedObjectLen(robj *o, robj *key) { function rdbSaveKeyValuePair (line 1015) | int rdbSaveKeyValuePair(rio *rdb, robj *key, robj *val, long long expire... function rdbSaveAuxField (line 1058) | ssize_t rdbSaveAuxField(rio *rdb, void *key, size_t keylen, void *val, s... function rdbSaveAuxFieldStrStr (line 1071) | ssize_t rdbSaveAuxFieldStrStr(rio *rdb, char *key, char *val) { function rdbSaveAuxFieldStrInt (line 1076) | ssize_t rdbSaveAuxFieldStrInt(rio *rdb, char *key, long long val) { function rdbSaveInfoAuxFields (line 1083) | int rdbSaveInfoAuxFields(rio *rdb, int rdbflags, rdbSaveInfo *rsi) { function rdbSaveSingleModuleAux (line 1106) | ssize_t rdbSaveSingleModuleAux(rio *rdb, int when, moduleType *mt) { function rdbSaveRio (line 1153) | int rdbSaveRio(rio *rdb, int *error, int rdbflags, rdbSaveInfo *rsi) { function rdbSaveRioWithEOFMark (line 1251) | int rdbSaveRioWithEOFMark(rio *rdb, int *error, rdbSaveInfo *rsi) { function rdbSave (line 1273) | int rdbSave(char *filename, rdbSaveInfo *rsi) { function rdbSaveBackground (line 1340) | int rdbSaveBackground(char *filename, rdbSaveInfo *rsi) { function rdbRemoveTempFile (line 1378) | void rdbRemoveTempFile(pid_t childpid) { function robj (line 1389) | robj *rdbLoadCheckModuleValue(rio *rdb, char *modulename) { function robj (line 1426) | robj *rdbLoadObject(int rdbtype, rio *rdb, sds key) { function startLoading (line 1959) | void startLoading(size_t size, int rdbflags) { function startLoadingFile (line 1980) | void startLoadingFile(FILE *fp, char* filename, int rdbflags) { function loadingProgress (line 1989) | void loadingProgress(off_t pos) { function stopLoading (line 1996) | void stopLoading(int success) { function startSaving (line 2008) | void startSaving(int rdbflags) { function stopSaving (line 2020) | void stopSaving(int success) { function rdbLoadProgressCallback (line 2031) | void rdbLoadProgressCallback(rio *r, const void *buf, size_t len) { function rdbLoadRio (line 2051) | int rdbLoadRio(rio *rdb, int rdbflags, rdbSaveInfo *rsi) { function rdbLoad (line 2351) | int rdbLoad(char *filename, rdbSaveInfo *rsi, int rdbflags) { function backgroundSaveDoneHandlerDisk (line 2367) | void backgroundSaveDoneHandlerDisk(int exitcode, int bysignal) { function backgroundSaveDoneHandlerSocket (line 2403) | void backgroundSaveDoneHandlerSocket(int exitcode, int bysignal) { function backgroundSaveDoneHandler (line 2421) | void backgroundSaveDoneHandler(int exitcode, int bysignal) { function killRDBChild (line 2438) | void killRDBChild(void) { function rdbSaveToSlavesSockets (line 2447) | int rdbSaveToSlavesSockets(rdbSaveInfo *rsi) { function saveCommand (line 2544) | void saveCommand(client *c) { function bgsaveCommand (line 2559) | void bgsaveCommand(client *c) { function rdbSaveInfo (line 2604) | rdbSaveInfo *rdbPopulateSaveInfo(rdbSaveInfo *rsi) { FILE: Chapter02/redis-6.0.3/src/redis-benchmark.c type benchmarkThread (line 63) | struct benchmarkThread type clusterNode (line 64) | struct clusterNode type redisConfig (line 65) | struct redisConfig type config (line 67) | struct config { type _client (line 119) | struct _client { type benchmarkThread (line 143) | typedef struct benchmarkThread { type clusterNode (line 150) | typedef struct clusterNode { type redisConfig (line 171) | typedef struct redisConfig { type aeEventLoop (line 189) | struct aeEventLoop function ustime (line 198) | static long long ustime(void) { function mstime (line 208) | static long long mstime(void) { function dictSdsHash (line 218) | static uint64_t dictSdsHash(const void *key) { function dictSdsKeyCompare (line 222) | static int dictSdsKeyCompare(void *privdata, const void *key1, function _serverAssert (line 235) | void _serverAssert(const char *estr, const char *file, int line) { function redisConfig (line 241) | static redisConfig *getRedisConfig(const char *ip, int port, function freeRedisConfig (line 309) | static void freeRedisConfig(redisConfig *cfg) { function freeClient (line 315) | static void freeClient(client c) { function freeAllClients (line 340) | static void freeAllClients(void) { function resetClient (line 350) | static void resetClient(client c) { function randomizeClientKey (line 359) | static void randomizeClientKey(client c) { function setClusterKeyHashTag (line 377) | static void setClusterKeyHashTag(client c) { function clientDone (line 403) | static void clientDone(client c) { function readHandler (line 424) | static void readHandler(aeEventLoop *el, int fd, void *privdata, int mas... function writeHandler (line 524) | static void writeHandler(aeEventLoop *el, int fd, void *privdata, int ma... function client (line 585) | static client createClient(char *cmd, size_t len, client from, int threa... function createMissingClients (line 754) | static void createMissingClients(client c) { function compareLatency (line 770) | static int compareLatency(const void *a, const void *b) { function ipow (line 774) | static int ipow(int base, int exp) { function showLatencyReport (line 784) | static void showLatencyReport(void) { function initBenchmarkThreads (line 851) | static void initBenchmarkThreads() { function startBenchmarkThreads (line 861) | static void startBenchmarkThreads() { function benchmark (line 874) | static void benchmark(char *title, char *cmd, int len) { function benchmarkThread (line 899) | static benchmarkThread *createBenchmarkThread(int index) { function freeBenchmarkThread (line 908) | static void freeBenchmarkThread(benchmarkThread *thread) { function freeBenchmarkThreads (line 913) | static void freeBenchmarkThreads() { function clusterNode (line 931) | static clusterNode *createClusterNode(char *ip, int port) { function freeClusterNode (line 953) | static void freeClusterNode(clusterNode *node) { function freeClusterNodes (line 974) | static void freeClusterNodes() { function clusterNode (line 984) | static clusterNode **addClusterNode(clusterNode *node) { function fetchClusterConfiguration (line 993) | static int fetchClusterConfiguration() { function fetchClusterSlotsConfiguration (line 1168) | static int fetchClusterSlotsConfiguration(client c) { function updateClusterSlotsConfiguration (line 1260) | static void updateClusterSlotsConfiguration() { function parseOptions (line 1282) | int parseOptions(int argc, const char **argv) { function showThroughput (line 1444) | int showThroughput(struct aeEventLoop *eventLoop, long long id, void *cl... function test_is_selected (line 1476) | int test_is_selected(char *name) { function main (line 1488) | int main(int argc, const char **argv) { FILE: Chapter02/redis-6.0.3/src/redis-check-aof.c function consumeNewline (line 43) | int consumeNewline(char *buf) { function readLong (line 51) | int readLong(FILE *fp, char prefix, long *target) { function readBytes (line 65) | int readBytes(FILE *fp, char *target, long length) { function readString (line 76) | int readString(FILE *fp, char** target) { function readArgc (line 96) | int readArgc(FILE *fp, long *target) { function off_t (line 100) | off_t process(FILE *fp) { function redis_check_aof_main (line 144) | int redis_check_aof_main(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/src/redis-check-rdb.c function rdbShowGenericInfo (line 92) | void rdbShowGenericInfo(void) { function rdbCheckError (line 100) | void rdbCheckError(const char *fmt, ...) { function rdbCheckInfo (line 127) | void rdbCheckInfo(const char *fmt, ...) { function rdbCheckSetError (line 142) | void rdbCheckSetError(const char *fmt, ...) { function rdbCheckHandleCrash (line 154) | void rdbCheckHandleCrash(int sig, siginfo_t *info, void *secret) { function rdbCheckSetupSignals (line 163) | void rdbCheckSetupSignals(void) { function redis_check_rdb (line 179) | int redis_check_rdb(char *rdbfilename, FILE *fp) { function redis_check_rdb_main (line 346) | int redis_check_rdb_main(int argc, char **argv, FILE *fp) { FILE: Chapter02/redis-6.0.3/src/redis-cli.c type clusterManagerCommand (line 171) | typedef struct clusterManagerCommand { type config (line 193) | struct config { type pref (line 251) | struct pref { function ustime (line 271) | static long long ustime(void) { function mstime (line 281) | static long long mstime(void) { function cliRefreshPrompt (line 285) | static void cliRefreshPrompt(void) { function sds (line 315) | static sds getDotfilePath(char *envoverride, char *dotfilename) { function sds (line 343) | static sds percentDecode(const char *pe, size_t len) { function parseRedisUri (line 380) | static void parseRedisUri(const char *uri) { function dictSdsHash (line 424) | static uint64_t dictSdsHash(const void *key) { function dictSdsKeyCompare (line 428) | static int dictSdsKeyCompare(void *privdata, const void *key1, function dictSdsDestructor (line 440) | static void dictSdsDestructor(void *privdata, void *val) function dictListDestructor (line 446) | void dictListDestructor(void *privdata, void *val) function _serverAssert (line 453) | void _serverAssert(const char *estr, const char *file, int line) { type helpEntry (line 466) | typedef struct { function sds (line 479) | static sds cliVersion(void) { function cliInitHelp (line 493) | static void cliInitHelp(void) { function cliIntegrateHelp (line 526) | static void cliIntegrateHelp(void) { function cliOutputCommandHelp (line 582) | static void cliOutputCommandHelp(struct commandHelp *help, int group) { function cliOutputGenericHelp (line 592) | static void cliOutputGenericHelp(void) { function cliOutputHelp (line 612) | static void cliOutputHelp(int argc, char **argv) { function completionCallback (line 657) | static void completionCallback(const char *buf, linenoiseCompletions *lc) { function freeHintsCallback (line 734) | static void freeHintsCallback(void *ptr) { function cliAuth (line 743) | static int cliAuth(void) { function cliSelect (line 761) | static int cliSelect(void) { function cliSecureConnection (line 778) | static int cliSecureConnection(redisContext *c, const char **err) { function cliSwitchProto (line 841) | static int cliSwitchProto(void) { function cliConnect (line 859) | static int cliConnect(int flags) { function cliPrintContextError (line 914) | static void cliPrintContextError(void) { function sds (line 919) | static sds cliFormatReplyTTY(redisReply *r, char *prefix) { function isColorTerm (line 1027) | int isColorTerm(void) { function sds (line 1034) | sds sdscatcolor(sds o, char *s, size_t len, char *color) { function sds (line 1055) | sds sdsCatColorizedLdbReply(sds o, char *s, size_t len) { function sds (line 1071) | static sds cliFormatReplyRaw(redisReply *r) { function sds (line 1142) | static sds cliFormatReplyCSV(redisReply *r) { function cliReadReply (line 1186) | static int cliReadReply(int output_raw_strings) { function cliSendCommand (line 1266) | static int cliSendCommand(int argc, char **argv, long repeat) { function redisReply (line 1388) | static redisReply *reconnectingRedisCommand(redisContext *c, const char ... function parseOptions (line 1432) | static int parseOptions(int argc, char **argv) { function parseEnv (line 1665) | static void parseEnv() { function sds (line 1673) | static sds readArgFromStdin(void) { function usage (line 1690) | static void usage(void) { function confirmWithYes (line 1800) | static int confirmWithYes(char *msg) { function issueCommandRepeat (line 1820) | static int issueCommandRepeat(int argc, char **argv, long repeat) { function issueCommand (line 1843) | static int issueCommand(int argc, char **argv) { function sds (line 1853) | static sds *cliSplitArgs(char *line, int *argc) { function cliSetPreferences (line 1872) | void cliSetPreferences(char **argv, int argc, int interactive) { function cliLoadPreferences (line 1889) | void cliLoadPreferences(void) { function repl (line 1909) | static void repl(void) { function noninteractive (line 2047) | static int noninteractive(int argc, char **argv) { function evalMode (line 2063) | static int evalMode(int argc, char **argv) { type clusterManager (line 2151) | struct clusterManager { type clusterManagerNode (line 2160) | typedef struct clusterManagerNode { type clusterManagerNodeArray (line 2187) | typedef struct clusterManagerNodeArray { type clusterManagerReshardTableItem (line 2195) | typedef struct clusterManagerReshardTableItem { type clusterManagerLink (line 2202) | typedef struct clusterManagerLink { type clusterManagerCommandDef (line 2282) | typedef struct clusterManagerCommandDef { function createClusterManagerCommand (line 2320) | static void createClusterManagerCommand(char *cmdname, int argc, char **... function clusterManagerCommandProc (line 2329) | static clusterManagerCommandProc *validateClusterManagerCommand(void) { function parseClusterNodeAddress (line 2351) | static int parseClusterNodeAddress(char *addr, char **ip_ptr, int *port_... function getClusterHostFromCmdArgs (line 2375) | static int getClusterHostFromCmdArgs(int argc, char **argv, function freeClusterManagerNodeFlags (line 2394) | static void freeClusterManagerNodeFlags(list *flags) { function freeClusterManagerNode (line 2405) | static void freeClusterManagerNode(clusterManagerNode *node) { function freeClusterManager (line 2438) | static void freeClusterManager(void) { function clusterManagerNode (line 2463) | static clusterManagerNode *clusterManagerNewNode(char *ip, int port) { function sds (line 2488) | static sds clusterManagerGetNodeRDBFilename(clusterManagerNode *node) { function clusterManagerCheckRedisReply (line 2502) | static int clusterManagerCheckRedisReply(clusterManagerNode *n, function clusterManagerStartTransaction (line 2519) | static int clusterManagerStartTransaction(clusterManagerNode *node) { function clusterManagerExecTransaction (line 2527) | static int clusterManagerExecTransaction(clusterManagerNode *node, function clusterManagerNodeConnect (line 2556) | static int clusterManagerNodeConnect(clusterManagerNode *node) { function clusterManagerRemoveNodeFromList (line 2595) | static void clusterManagerRemoveNodeFromList(list *nodelist, function clusterManagerNode (line 2609) | static clusterManagerNode *clusterManagerNodeByName(const char *name) { function clusterManagerNode (line 2633) | static clusterManagerNode *clusterManagerNodeByAbbreviatedName(const cha... function clusterManagerNodeResetSlots (line 2655) | static void clusterManagerNodeResetSlots(clusterManagerNode *node) { function redisReply (line 2661) | static redisReply *clusterManagerGetNodeRedisInfo(clusterManagerNode *node, function clusterManagerNodeIsCluster (line 2678) | static int clusterManagerNodeIsCluster(clusterManagerNode *node, char **... function clusterManagerNodeIsEmpty (line 2688) | static int clusterManagerNodeIsEmpty(clusterManagerNode *node, char **er... function clusterManagerGetAntiAffinityScore (line 2739) | static int clusterManagerGetAntiAffinityScore(clusterManagerNodeArray *i... function clusterManagerOptimizeAntiAffinity (line 2806) | static void clusterManagerOptimizeAntiAffinity(clusterManagerNodeArray *... function sds (line 2885) | static sds clusterManagerNodeFlagString(clusterManagerNode *node) { function sds (line 2903) | static sds clusterManagerNodeSlotsString(clusterManagerNode *node) { function sds (line 2932) | static sds clusterManagerNodeGetJSON(clusterManagerNode *node, function clusterManagerKeyHashSlot (line 3017) | static unsigned int clusterManagerKeyHashSlot(char *key, int keylen) { function sds (line 3039) | static sds clusterManagerNodeInfo(clusterManagerNode *node, int indent) { function clusterManagerShowNodes (line 3070) | static void clusterManagerShowNodes(void) { function clusterManagerShowClusterInfo (line 3082) | static void clusterManagerShowClusterInfo(void) { function clusterManagerAddSlots (line 3132) | static int clusterManagerAddSlots(clusterManagerNode *node, char**err) function clusterManagerNode (line 3180) | static clusterManagerNode *clusterManagerGetSlotOwner(clusterManagerNode... function clusterManagerSetSlot (line 3226) | static int clusterManagerSetSlot(clusterManagerNode *node1, function clusterManagerClearSlotStatus (line 3249) | static int clusterManagerClearSlotStatus(clusterManagerNode *node, int s... function clusterManagerDelSlot (line 3257) | static int clusterManagerDelSlot(clusterManagerNode *node, int slot, function clusterManagerAddSlot (line 3286) | static int clusterManagerAddSlot(clusterManagerNode *node, int slot) { function clusterManagerCountKeysInSlot (line 3294) | static signed int clusterManagerCountKeysInSlot(clusterManagerNode *node, function clusterManagerBumpEpoch (line 3306) | static int clusterManagerBumpEpoch(clusterManagerNode *node) { function clusterManagerOnSetOwnerErr (line 3316) | static int clusterManagerOnSetOwnerErr(redisReply *reply, function clusterManagerSetSlotOwner (line 3325) | static int clusterManagerSetSlotOwner(clusterManagerNode *owner, function clusterManagerCompareKeysValues (line 3346) | static int clusterManagerCompareKeysValues(clusterManagerNode *n1, function redisReply (line 3408) | static redisReply *clusterManagerMigrateKeysInReply(clusterManagerNode *... function clusterManagerMigrateKeysInSlot (line 3478) | static int clusterManagerMigrateKeysInSlot(clusterManagerNode *source, function clusterManagerMoveSlot (line 3644) | static int clusterManagerMoveSlot(clusterManagerNode *source, function clusterManagerFlushNodeConfig (line 3707) | static int clusterManagerFlushNodeConfig(clusterManagerNode *node, char ... function clusterManagerWaitForClusterJoin (line 3738) | static void clusterManagerWaitForClusterJoin(void) { function clusterManagerNodeLoadInfo (line 3798) | static int clusterManagerNodeLoadInfo(clusterManagerNode *node, int opts, function clusterManagerLoadInfoFromNode (line 3978) | static int clusterManagerLoadInfoFromNode(clusterManagerNode *node, int ... function clusterManagerSlotCompare (line 4058) | int clusterManagerSlotCompare(const void *slot1, const void *slot2) { function clusterManagerSlotCountCompareDesc (line 4064) | int clusterManagerSlotCountCompareDesc(const void *n1, const void *n2) { function clusterManagerCompareNodeBalance (line 4070) | int clusterManagerCompareNodeBalance(const void *n1, const void *n2) { function sds (line 4076) | static sds clusterManagerGetConfigSignature(clusterManagerNode *node) { function clusterManagerIsConfigConsistent (line 4169) | static int clusterManagerIsConfigConsistent(void) { function list (line 4196) | static list *clusterManagerGetDisconnectedLinks(clusterManagerNode *node) { function dict (line 4243) | static dict *clusterManagerGetLinkStatus(void) { function clusterManagerOnError (line 4279) | static void clusterManagerOnError(sds err) { function clusterManagerGetCoveredSlots (line 4289) | static int clusterManagerGetCoveredSlots(char *all_slots) { function clusterManagerPrintSlotsList (line 4307) | static void clusterManagerPrintSlotsList(list *slots) { function clusterManagerNode (line 4324) | static clusterManagerNode * clusterManagerGetNodeWithMostKeysInSlot(list... function clusterManagerNode (line 4363) | static clusterManagerNode *clusterManagerNodeWithLeastReplicas() { function clusterManagerNode (line 4382) | static clusterManagerNode *clusterManagerNodeMasterRandom() { function clusterManagerFixSlotsCoverage (line 4408) | static int clusterManagerFixSlotsCoverage(char *all_slots) { function clusterManagerFixOpenSlot (line 4605) | static int clusterManagerFixOpenSlot(int slot) { function clusterManagerFixMultipleSlotOwners (line 4942) | static int clusterManagerFixMultipleSlotOwners(int slot, list *owners) { function clusterManagerCheckCluster (line 4979) | static int clusterManagerCheckCluster(int quiet) { function clusterManagerNode (line 5143) | static clusterManagerNode *clusterNodeForResharding(char *id, function list (line 5167) | static list *clusterManagerComputeReshardTable(list *sources, int numslo... function clusterManagerShowReshardTable (line 5202) | static void clusterManagerShowReshardTable(list *table) { function clusterManagerReleaseReshardTable (line 5213) | static void clusterManagerReleaseReshardTable(list *table) { function clusterManagerLog (line 5226) | static void clusterManagerLog(int level, const char* fmt, ...) { function clusterManagerNodeArrayInit (line 5246) | static void clusterManagerNodeArrayInit(clusterManagerNodeArray *array, function clusterManagerNodeArrayReset (line 5257) | static void clusterManagerNodeArrayReset(clusterManagerNodeArray *array) { function clusterManagerNodeArrayShift (line 5270) | static void clusterManagerNodeArrayShift(clusterManagerNodeArray *array, function clusterManagerNodeArrayAdd (line 5283) | static void clusterManagerNodeArrayAdd(clusterManagerNodeArray *array, function clusterManagerPrintNotEmptyNodeError (line 5292) | static void clusterManagerPrintNotEmptyNodeError(clusterManagerNode *node, function clusterManagerPrintNotClusterNodeError (line 5305) | static void clusterManagerPrintNotClusterNodeError(clusterManagerNode *n... function clusterManagerMode (line 5313) | static void clusterManagerMode(clusterManagerCommandProc *proc) { function clusterManagerCommandCreate (line 5329) | static int clusterManagerCommandCreate(int argc, char **argv) { function clusterManagerCommandAddNode (line 5604) | static int clusterManagerCommandAddNode(int argc, char **argv) { function clusterManagerCommandDeleteNode (line 5701) | static int clusterManagerCommandDeleteNode(int argc, char **argv) { function clusterManagerCommandInfo (line 5768) | static int clusterManagerCommandInfo(int argc, char **argv) { function clusterManagerCommandCheck (line 5781) | static int clusterManagerCommandCheck(int argc, char **argv) { function clusterManagerCommandFix (line 5794) | static int clusterManagerCommandFix(int argc, char **argv) { function clusterManagerCommandReshard (line 5799) | static int clusterManagerCommandReshard(int argc, char **argv) { function clusterManagerCommandRebalance (line 5986) | static int clusterManagerCommandRebalance(int argc, char **argv) { function clusterManagerCommandSetTimeout (line 6175) | static int clusterManagerCommandSetTimeout(int argc, char **argv) { function clusterManagerCommandImport (line 6233) | static int clusterManagerCommandImport(int argc, char **argv) { function clusterManagerCommandCall (line 6372) | static int clusterManagerCommandCall(int argc, char **argv) { function clusterManagerCommandBackup (line 6412) | static int clusterManagerCommandBackup(int argc, char **argv) { function clusterManagerCommandHelp (line 6476) | static int clusterManagerCommandHelp(int argc, char **argv) { function latencyModePrint (line 6520) | static void latencyModePrint(long long min, long long max, double avg, l... function latencyMode (line 6534) | static void latencyMode(void) { type distsamples (line 6601) | struct distsamples { function showLatencyDistSamples (line 6618) | void showLatencyDistSamples(struct distsamples *samples, long long tot) { function showLatencyDistLegend (line 6641) | void showLatencyDistLegend(void) { function latencyDistMode (line 6658) | static void latencyDistMode(void) { function sendReplconf (line 6742) | void sendReplconf(const char* arg1, const char* arg2) { function sendCapa (line 6757) | void sendCapa() { function sendSync (line 6764) | unsigned long long sendSync(int fd, char *out_eof) { function slaveMode (line 6801) | static void slaveMode(void) { function getRDB (line 6868) | static void getRDB(clusterManagerNode *node) { function pipeMode (line 6961) | static void pipeMode(void) { function redisReply (line 7127) | static redisReply *sendScan(unsigned long long *it) { function getDbSize (line 7155) | static int getDbSize(void) { type typeinfo (line 7173) | typedef struct { function typeinfo (line 7191) | static typeinfo* typeinfo_add(dict *types, char* name, typeinfo* type_te... function type_free (line 7199) | void type_free(void* priv_data, void* val) { function getKeyTypes (line 7217) | static void getKeyTypes(dict *types_dict, redisReply *keys, typeinfo **t... function getKeySizes (line 7256) | static void getKeySizes(redisReply *keys, typeinfo **types, function findBigKeys (line 7309) | static void findBigKeys(int memkeys, unsigned memkeys_samples) { function getKeyFreqs (line 7444) | static void getKeyFreqs(redisReply *keys, unsigned long long *freqs) { function findHotKeys (line 7475) | static void findHotKeys(void) { function getLongInfoField (line 7592) | static long getLongInfoField(char *info, char *field) { function bytesToHuman (line 7604) | void bytesToHuman(char *s, long long n) { function statMode (line 7628) | static void statMode(void) { function scanMode (line 7718) | static void scanMode(void) { function powerLawRand (line 7757) | long long powerLawRand(long long min, long long max, double alpha) { function LRUTestGenKey (line 7770) | void LRUTestGenKey(char *buf, size_t buflen) { function LRUTestMode (line 7777) | static void LRUTestMode(void) { function compute_something_fast (line 7849) | unsigned long compute_something_fast(void) { function intrinsicLatencyModeStop (line 7869) | static void intrinsicLatencyModeStop(int s) { function intrinsicLatencyMode (line 7874) | static void intrinsicLatencyMode(void) { function sds (line 7911) | static sds askPassword() { function main (line 7922) | int main(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/src/redis-trib.rb function colorized (line 3) | def colorized(str, color) class String (line 21) | class String function parse_options (line 44) | def parse_options(cmd) function command_example (line 86) | def command_example(cmd, args, opts) FILE: Chapter02/redis-6.0.3/src/redismodule.h type RedisModuleTimerID (line 167) | typedef uint64_t RedisModuleTimerID; type RedisModuleEvent (line 194) | typedef struct RedisModuleEvent { type RedisModuleCtx (line 199) | struct RedisModuleCtx type RedisModuleCtx (line 200) | struct RedisModuleCtx type RedisModuleClientInfoV1 (line 306) | typedef struct RedisModuleClientInfo { type RedisModuleReplicationInfoV1 (line 318) | typedef struct RedisModuleReplicationInfo { type RedisModuleFlushInfoV1 (line 334) | typedef struct RedisModuleFlushInfo { type RedisModuleModuleChangeV1 (line 345) | typedef struct RedisModuleModuleChange { type RedisModuleCronLoopV1 (line 356) | typedef struct RedisModuleCronLoopInfo { type RedisModuleLoadingProgressV1 (line 366) | typedef struct RedisModuleLoadingProgressInfo { type mstime_t (line 381) | typedef long long mstime_t; type RedisModuleCtx (line 384) | typedef struct RedisModuleCtx RedisModuleCtx; type RedisModuleKey (line 385) | typedef struct RedisModuleKey RedisModuleKey; type RedisModuleString (line 386) | typedef struct RedisModuleString RedisModuleString; type RedisModuleCallReply (line 387) | typedef struct RedisModuleCallReply RedisModuleCallReply; type RedisModuleIO (line 388) | typedef struct RedisModuleIO RedisModuleIO; type RedisModuleType (line 389) | typedef struct RedisModuleType RedisModuleType; type RedisModuleDigest (line 390) | typedef struct RedisModuleDigest RedisModuleDigest; type RedisModuleBlockedClient (line 391) | typedef struct RedisModuleBlockedClient RedisModuleBlockedClient; type RedisModuleClusterInfo (line 392) | typedef struct RedisModuleClusterInfo RedisModuleClusterInfo; type RedisModuleDict (line 393) | typedef struct RedisModuleDict RedisModuleDict; type RedisModuleDictIter (line 394) | typedef struct RedisModuleDictIter RedisModuleDictIter; type RedisModuleCommandFilterCtx (line 395) | typedef struct RedisModuleCommandFilterCtx RedisModuleCommandFilterCtx; type RedisModuleCommandFilter (line 396) | typedef struct RedisModuleCommandFilter RedisModuleCommandFilter; type RedisModuleInfoCtx (line 397) | typedef struct RedisModuleInfoCtx RedisModuleInfoCtx; type RedisModuleServerInfoData (line 398) | typedef struct RedisModuleServerInfoData RedisModuleServerInfoData; type RedisModuleScanCursor (line 399) | typedef struct RedisModuleScanCursor RedisModuleScanCursor; type RedisModuleUser (line 400) | typedef struct RedisModuleUser RedisModuleUser; type RedisModuleTypeMethods (line 423) | typedef struct RedisModuleTypeMethods { function RedisModule_Init (line 689) | static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int v... FILE: Chapter02/redis-6.0.3/src/release.c function redisBuildId (line 49) | uint64_t redisBuildId(void) { FILE: Chapter02/redis-6.0.3/src/replication.c function bg_unlink (line 89) | int bg_unlink(const char *filename) { function createReplicationBacklog (line 113) | void createReplicationBacklog(void) { function resizeReplicationBacklog (line 131) | void resizeReplicationBacklog(long long newsize) { function freeReplicationBacklog (line 152) | void freeReplicationBacklog(void) { function feedReplicationBacklog (line 162) | void feedReplicationBacklog(void *ptr, size_t len) { function feedReplicationBacklogWithObject (line 190) | void feedReplicationBacklogWithObject(robj *o) { function replicationFeedSlaves (line 210) | void replicationFeedSlaves(list *slaves, int dictid, robj **argv, int ar... function replicationFeedSlavesFromMasterStream (line 315) | void replicationFeedSlavesFromMasterStream(list *slaves, char *buf, size... function replicationFeedMonitors (line 340) | void replicationFeedMonitors(client *c, list *monitors, int dictid, robj... function addReplyReplicationBacklog (line 381) | long long addReplyReplicationBacklog(client *c, long long offset) { function getPsyncInitialOffset (line 435) | long long getPsyncInitialOffset(void) { function replicationSetupSlaveForFullResync (line 455) | int replicationSetupSlaveForFullResync(client *slave, long long offset) { function masterTryPartialResynchronization (line 484) | int masterTryPartialResynchronization(client *c) { function startBgsaveForReplication (line 606) | int startBgsaveForReplication(int mincapa) { function syncCommand (line 679) | void syncCommand(client *c) { function replconfCommand (line 828) | void replconfCommand(client *c) { function putSlaveOnline (line 911) | void putSlaveOnline(client *slave) { function removeRDBUsedToSyncReplicas (line 934) | void removeRDBUsedToSyncReplicas(void) { function sendBulkToSlave (line 976) | void sendBulkToSlave(connection *conn) { function rdbPipeWriteHandlerConnRemoved (line 1033) | void rdbPipeWriteHandlerConnRemoved(struct connection *conn) { function rdbPipeWriteHandler (line 1048) | void rdbPipeWriteHandler(struct connection *conn) { function RdbPipeCleanup (line 1073) | void RdbPipeCleanup() { function rdbPipeReadHandler (line 1089) | void rdbPipeReadHandler(struct aeEventLoop *eventLoop, int fd, void *cli... function updateSlavesWaitingBgsave (line 1191) | void updateSlavesWaitingBgsave(int bgsaveerr, int type) { function changeReplicationId (line 1278) | void changeReplicationId(void) { function clearReplicationId2 (line 1286) | void clearReplicationId2(void) { function shiftReplicationId (line 1297) | void shiftReplicationId(void) { function slaveIsInHandshakeState (line 1315) | int slaveIsInHandshakeState(void) { function replicationSendNewlineToMaster (line 1328) | void replicationSendNewlineToMaster(void) { function replicationEmptyDbCallback (line 1339) | void replicationEmptyDbCallback(void *privdata) { function replicationCreateMasterClient (line 1347) | void replicationCreateMasterClient(connection *conn, int dbid) { function restartAOFAfterSYNC (line 1369) | void restartAOFAfterSYNC() { function useDisklessLoad (line 1386) | static int useDisklessLoad() { function redisDb (line 1402) | redisDb *disklessLoadMakeBackups(void) { function disklessLoadRestoreBackups (line 1422) | void disklessLoadRestoreBackups(redisDb *backup, int restore, int empty_... function readSyncBulkPayload (line 1445) | void readSyncBulkPayload(connection *conn) { function slaveTryPartialResynchronization (line 1916) | int slaveTryPartialResynchronization(connection *conn, int read_reply) { function syncWithMaster (line 2076) | void syncWithMaster(connection *conn) { function connectWithMaster (line 2370) | int connectWithMaster(void) { function undoConnectWithMaster (line 2391) | void undoConnectWithMaster(void) { function replicationAbortSyncTransfer (line 2399) | void replicationAbortSyncTransfer(void) { function cancelReplicationHandshake (line 2419) | int cancelReplicationHandshake(void) { function replicationSetMaster (line 2435) | void replicationSetMaster(char *ip, int port) { function replicationUnsetMaster (line 2472) | void replicationUnsetMaster(void) { function replicationHandleMasterDisconnection (line 2522) | void replicationHandleMasterDisconnection(void) { function replicaofCommand (line 2537) | void replicaofCommand(client *c) { function roleCommand (line 2595) | void roleCommand(client *c) { function replicationSendAck (line 2651) | void replicationSendAck(void) { function replicationCacheMaster (line 2684) | void replicationCacheMaster(client *c) { function adjustMeaningfulReplOffset (line 2733) | long long adjustMeaningfulReplOffset() { function replicationCacheMasterUsingMyself (line 2766) | void replicationCacheMasterUsingMyself(void) { function replicationDiscardCachedMaster (line 2793) | void replicationDiscardCachedMaster(void) { function replicationResurrectCachedMaster (line 2808) | void replicationResurrectCachedMaster(connection *conn) { function refreshGoodSlavesCount (line 2841) | void refreshGoodSlavesCount(void) { function replicationScriptCacheInit (line 2892) | void replicationScriptCacheInit(void) { function replicationScriptCacheFlush (line 2909) | void replicationScriptCacheFlush(void) { function replicationScriptCacheAdd (line 2917) | void replicationScriptCacheAdd(sds sha1) { function replicationScriptCacheExists (line 2940) | int replicationScriptCacheExists(sds sha1) { function replicationRequestAckFromSlaves (line 2974) | void replicationRequestAckFromSlaves(void) { function replicationCountAcksByOffset (line 2980) | int replicationCountAcksByOffset(long long offset) { function waitCommand (line 2997) | void waitCommand(client *c) { function unblockClientWaitingReplicas (line 3037) | void unblockClientWaitingReplicas(client *c) { function processClientsWaitingReplicas (line 3045) | void processClientsWaitingReplicas(void) { function replicationGetSlaveOffset (line 3080) | long long replicationGetSlaveOffset(void) { function replicationCron (line 3101) | void replicationCron(void) { FILE: Chapter02/redis-6.0.3/src/rio.c function rioBufferWrite (line 61) | static size_t rioBufferWrite(rio *r, const void *buf, size_t len) { function rioBufferRead (line 68) | static size_t rioBufferRead(rio *r, void *buf, size_t len) { function off_t (line 77) | static off_t rioBufferTell(rio *r) { function rioBufferFlush (line 83) | static int rioBufferFlush(rio *r) { function rioInitWithBuffer (line 101) | void rioInitWithBuffer(rio *r, sds s) { function rioFileWrite (line 110) | static size_t rioFileWrite(rio *r, const void *buf, size_t len) { function rioFileRead (line 127) | static size_t rioFileRead(rio *r, void *buf, size_t len) { function off_t (line 132) | static off_t rioFileTell(rio *r) { function rioFileFlush (line 138) | static int rioFileFlush(rio *r) { function rioInitWithFile (line 155) | void rioInitWithFile(rio *r, FILE *fp) { function rioConnWrite (line 168) | static size_t rioConnWrite(rio *r, const void *buf, size_t len) { function rioConnRead (line 176) | static size_t rioConnRead(rio *r, void *buf, size_t len) { function off_t (line 225) | static off_t rioConnTell(rio *r) { function rioConnFlush (line 231) | static int rioConnFlush(rio *r) { function rioInitWithConn (line 252) | void rioInitWithConn(rio *r, connection *conn, size_t read_limit) { function rioFreeConn (line 264) | void rioFreeConn(rio *r, sds *remaining) { function rioFdWrite (line 286) | static size_t rioFdWrite(rio *r, const void *buf, size_t len) { function rioFdRead (line 335) | static size_t rioFdRead(rio *r, void *buf, size_t len) { function off_t (line 343) | static off_t rioFdTell(rio *r) { function rioFdFlush (line 349) | static int rioFdFlush(rio *r) { function rioInitWithFd (line 368) | void rioInitWithFd(rio *r, int fd) { function rioFreeFd (line 376) | void rioFreeFd(rio *r) { function rioGenericUpdateChecksum (line 384) | void rioGenericUpdateChecksum(rio *r, const void *buf, size_t len) { function rioSetAutoSync (line 396) | void rioSetAutoSync(rio *r, off_t bytes) { function rioWriteBulkCount (line 407) | size_t rioWriteBulkCount(rio *r, char prefix, long count) { function rioWriteBulkString (line 420) | size_t rioWriteBulkString(rio *r, const char *buf, size_t len) { function rioWriteBulkLongLong (line 430) | size_t rioWriteBulkLongLong(rio *r, long long l) { function rioWriteBulkDouble (line 439) | size_t rioWriteBulkDouble(rio *r, double d) { FILE: Chapter02/redis-6.0.3/src/rio.h type _rio (line 43) | struct _rio { type rio (line 97) | typedef struct _rio rio; function rioWrite (line 103) | static inline size_t rioWrite(rio *r, const void *buf, size_t len) { function rioRead (line 119) | static inline size_t rioRead(rio *r, void *buf, size_t len) { function off_t (line 135) | static inline off_t rioTell(rio *r) { function rioFlush (line 139) | static inline int rioFlush(rio *r) { function rioGetReadError (line 146) | static inline int rioGetReadError(rio *r) { function rioGetWriteError (line 151) | static inline int rioGetWriteError(rio *r) { function rioClearErrors (line 155) | static inline void rioClearErrors(rio *r) { type redisObject (line 172) | struct redisObject type redisObject (line 173) | struct redisObject FILE: Chapter02/redis-6.0.3/src/scripting.c type ldbState (line 63) | struct ldbState { function sha1hex (line 92) | void sha1hex(char *digest, char *script, size_t len) { function luaPushError (line 270) | void luaPushError(lua_State *lua, char *error) { function luaRaiseError (line 298) | int luaRaiseError(lua_State *lua) { function luaSortArray (line 310) | void luaSortArray(lua_State *lua) { function luaReplyToRedisReply (line 341) | void luaReplyToRedisReply(client *c, lua_State *lua) { function luaRedisGenericCommand (line 475) | int luaRedisGenericCommand(lua_State *lua, int raise_error) { function luaRedisCallCommand (line 809) | int luaRedisCallCommand(lua_State *lua) { function luaRedisPCallCommand (line 814) | int luaRedisPCallCommand(lua_State *lua) { function luaRedisSha1hexCommand (line 820) | int luaRedisSha1hexCommand(lua_State *lua) { function luaRedisReturnSingleFieldTable (line 844) | int luaRedisReturnSingleFieldTable(lua_State *lua, char *field) { function luaRedisErrorReplyCommand (line 858) | int luaRedisErrorReplyCommand(lua_State *lua) { function luaRedisStatusReplyCommand (line 863) | int luaRedisStatusReplyCommand(lua_State *lua) { function luaRedisReplicateCommandsCommand (line 873) | int luaRedisReplicateCommandsCommand(lua_State *lua) { function luaRedisBreakpointCommand (line 892) | int luaRedisBreakpointCommand(lua_State *lua) { function luaRedisDebugCommand (line 907) | int luaRedisDebugCommand(lua_State *lua) { function luaRedisSetReplCommand (line 923) | int luaRedisSetReplCommand(lua_State *lua) { function luaLogCommand (line 945) | int luaLogCommand(lua_State *lua) { function luaSetResp (line 982) | int luaSetResp(lua_State *lua) { function luaLoadLib (line 1004) | void luaLoadLib(lua_State *lua, const char *libname, lua_CFunction luafu... function luaLoadLibraries (line 1015) | void luaLoadLibraries(lua_State *lua) { function luaRemoveUnsupportedFunctions (line 1034) | void luaRemoveUnsupportedFunctions(lua_State *lua) { function scriptingEnableGlobalsProtection (line 1046) | void scriptingEnableGlobalsProtection(lua_State *lua) { function scriptingInit (line 1090) | void scriptingInit(int setup) { function scriptingRelease (line 1270) | void scriptingRelease(void) { function scriptingReset (line 1276) | void scriptingReset(void) { function luaSetGlobalArray (line 1283) | void luaSetGlobalArray(lua_State *lua, char *var, robj **elev, int elec) { function redis_math_random (line 1304) | int redis_math_random (lua_State *L) { function redis_math_randomseed (line 1332) | int redis_math_randomseed (lua_State *L) { function sds (line 1358) | sds luaCreateFunction(client *c, lua_State *lua, robj *body) { function luaMaskCountHook (line 1413) | void luaMaskCountHook(lua_State *lua, lua_Debug *ar) { function prepareLuaClient (line 1442) | void prepareLuaClient(void) { function resetLuaClient (line 1453) | void resetLuaClient(void) { function evalGenericCommand (line 1458) | void evalGenericCommand(client *c, int evalsha) { function evalCommand (line 1663) | void evalCommand(client *c) { function evalShaCommand (line 1670) | void evalShaCommand(client *c) { function scriptCommand (line 1687) | void scriptCommand(client *c) { function ldbInit (line 1758) | void ldbInit(void) { function ldbFlushLog (line 1770) | void ldbFlushLog(list *log) { function ldbEnable (line 1778) | void ldbEnable(client *c) { function ldbDisable (line 1794) | void ldbDisable(client *c) { function ldbLog (line 1799) | void ldbLog(sds entry) { function ldbLogWithMaxLen (line 1807) | void ldbLogWithMaxLen(sds entry) { function ldbSendLogs (line 1825) | void ldbSendLogs(void) { function ldbStartSession (line 1856) | int ldbStartSession(client *c) { function ldbEndSession (line 1909) | void ldbEndSession(client *c) { function ldbRemoveChild (line 1941) | int ldbRemoveChild(pid_t pid) { function ldbPendingChildren (line 1952) | int ldbPendingChildren(void) { function ldbKillForkedSessions (line 1957) | void ldbKillForkedSessions(void) { function evalGenericCommandWithDebugging (line 1973) | void evalGenericCommandWithDebugging(client *c, int evalsha) { function ldbIsBreakpoint (line 1991) | int ldbIsBreakpoint(int line) { function ldbAddBreakpoint (line 2002) | int ldbAddBreakpoint(int line) { function ldbDelBreakpoint (line 2013) | int ldbDelBreakpoint(int line) { function sds (line 2029) | sds *ldbReplParseCommand(int *argcp) { function ldbLogSourceLine (line 2076) | void ldbLogSourceLine(int lnum) { function ldbList (line 2099) | void ldbList(int around, int context) { function sds (line 2116) | sds ldbCatStackValueRec(sds s, lua_State *lua, int idx, int level) { function sds (line 2201) | sds ldbCatStackValue(sds s, lua_State *lua, int idx) { function ldbLogStackValue (line 2208) | void ldbLogStackValue(lua_State *lua, char *prefix) { function ldbLogRedisReply (line 2355) | void ldbLogRedisReply(char *reply) { function ldbPrint (line 2364) | void ldbPrint(lua_State *lua, char *varname) { function ldbPrintAll (line 2396) | void ldbPrintAll(lua_State *lua) { function ldbBreak (line 2421) | void ldbBreak(sds *argv, int argc) { function ldbEval (line 2465) | void ldbEval(lua_State *lua, sds *argv, int argc) { function ldbRedis (line 2499) | void ldbRedis(lua_State *lua, sds *argv, int argc) { function ldbTrace (line 2517) | void ldbTrace(lua_State *lua) { function ldbMaxlen (line 2538) | void ldbMaxlen(sds *argv, int argc) { function ldbRepl (line 2555) | int ldbRepl(lua_State *lua) { function luaLdbLineHook (line 2672) | void luaLdbLineHook(lua_State *lua, lua_Debug *ar) { FILE: Chapter02/redis-6.0.3/src/sds.c function sdsHdrSize (line 44) | static inline int sdsHdrSize(char type) { function sdsReqType (line 60) | static inline char sdsReqType(size_t string_size) { function sds (line 89) | sds sdsnewlen(const void *init, size_t initlen) { function sds (line 149) | sds sdsempty(void) { function sds (line 154) | sds sdsnew(const char *init) { function sds (line 160) | sds sdsdup(const sds s) { function sdsfree (line 165) | void sdsfree(sds s) { function sdsupdatelen (line 184) | void sdsupdatelen(sds s) { function sdsclear (line 193) | void sdsclear(sds s) { function sds (line 204) | sds sdsMakeRoomFor(sds s, size_t addlen) { function sds (line 255) | sds sdsRemoveFreeSpace(sds s) { function sdsAllocSize (line 299) | size_t sdsAllocSize(sds s) { function sdsIncrLen (line 333) | void sdsIncrLen(sds s, ssize_t incr) { function sds (line 379) | sds sdsgrowzero(sds s, size_t len) { function sds (line 397) | sds sdscatlen(sds s, const void *t, size_t len) { function sds (line 412) | sds sdscat(sds s, const char *t) { function sds (line 420) | sds sdscatsds(sds s, const sds t) { function sds (line 426) | sds sdscpylen(sds s, const char *t, size_t len) { function sds (line 439) | sds sdscpy(sds s, const char *t) { function sdsll2str (line 450) | int sdsll2str(char *s, long long value) { function sdsull2str (line 482) | int sdsull2str(char *s, unsigned long long v) { function sds (line 514) | sds sdsfromlonglong(long long value) { function sds (line 522) | sds sdscatvprintf(sds s, const char *fmt, va_list ap) { function sds (line 575) | sds sdscatprintf(sds s, const char *fmt, ...) { function sds (line 600) | sds sdscatfmt(sds s, char const *fmt, ...) { function sds (line 708) | sds sdstrim(sds s, const char *cset) { function sdsrange (line 739) | void sdsrange(sds s, ssize_t start, ssize_t end) { function sdstolower (line 768) | void sdstolower(sds s) { function sdstoupper (line 775) | void sdstoupper(sds s) { function sdscmp (line 792) | int sdscmp(const sds s1, const sds s2) { function sds (line 820) | sds *sdssplitlen(const char *s, ssize_t len, const char *sep, int seplen... function sdsfreesplitres (line 871) | void sdsfreesplitres(sds *tokens, int count) { function sds (line 884) | sds sdscatrepr(sds s, const char *p, size_t len) { function is_hex_digit (line 911) | int is_hex_digit(char c) { function hex_digit_to_int (line 918) | int hex_digit_to_int(char c) { function sds (line 959) | sds *sdssplitargs(const char *line, int *argc) { function sds (line 1078) | sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen) { function sds (line 1094) | sds sdsjoin(char **argv, int argc, char *sep) { function sds (line 1106) | sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen) { function sds_free (line 1124) | void sds_free(void *ptr) { s_free(ptr); } function sdsTest (line 1132) | int sdsTest(void) { function main (line 1297) | int main(void) { FILE: Chapter02/redis-6.0.3/src/sds.h type sdshdr5 (line 47) | struct __attribute__ ((__packed__)) sdshdr5 { type sdshdr8 (line 51) | struct __attribute__ ((__packed__)) sdshdr8 { type sdshdr16 (line 57) | struct __attribute__ ((__packed__)) sdshdr16 { type sdshdr32 (line 63) | struct __attribute__ ((__packed__)) sdshdr32 { type sdshdr64 (line 69) | struct __attribute__ ((__packed__)) sdshdr64 { function sdslen (line 87) | static inline size_t sdslen(const sds s) { function sdsavail (line 104) | static inline size_t sdsavail(const sds s) { function sdssetlen (line 130) | static inline void sdssetlen(sds s, size_t newlen) { function sdsinclen (line 154) | static inline void sdsinclen(sds s, size_t inc) { function sdsalloc (line 180) | static inline size_t sdsalloc(const sds s) { function sdssetalloc (line 197) | static inline void sdssetalloc(sds s, size_t newlen) { FILE: Chapter02/redis-6.0.3/src/sentinel.c type sentinelAddr (line 56) | typedef struct sentinelAddr { type instanceLink (line 145) | typedef struct instanceLink { type sentinelRedisInstance (line 172) | typedef struct sentinelRedisInstance { type sentinelState (line 242) | struct sentinelState { type sentinelScriptJob (line 263) | typedef struct sentinelScriptJob { type redisAeEvents (line 280) | typedef struct redisAeEvents { function redisAeReadEvent (line 287) | static void redisAeReadEvent(aeEventLoop *el, int fd, void *privdata, in... function redisAeWriteEvent (line 294) | static void redisAeWriteEvent(aeEventLoop *el, int fd, void *privdata, i... function redisAeAddRead (line 301) | static void redisAeAddRead(void *privdata) { function redisAeDelRead (line 310) | static void redisAeDelRead(void *privdata) { function redisAeAddWrite (line 319) | static void redisAeAddWrite(void *privdata) { function redisAeDelWrite (line 328) | static void redisAeDelWrite(void *privdata) { function redisAeCleanup (line 337) | static void redisAeCleanup(void *privdata) { function redisAeAttach (line 344) | static int redisAeAttach(aeEventLoop *loop, redisAsyncContext *ac) { function dictInstancesValDestructor (line 404) | void dictInstancesValDestructor (void *privdata, void *obj) { type redisCommand (line 453) | struct redisCommand function initSentinelConfig (line 471) | void initSentinelConfig(void) { function initSentinel (line 477) | void initSentinel(void) { function sentinelIsRunning (line 513) | void sentinelIsRunning(void) { function sentinelAddr (line 554) | sentinelAddr *createSentinelAddr(char *hostname, int port) { function sentinelAddr (line 573) | sentinelAddr *dupSentinelAddr(sentinelAddr *src) { function releaseSentinelAddr (line 583) | void releaseSentinelAddr(sentinelAddr *sa) { function sentinelAddrIsEqual (line 589) | int sentinelAddrIsEqual(sentinelAddr *a, sentinelAddr *b) { function sentinelEvent (line 619) | void sentinelEvent(int level, char *type, sentinelRedisInstance *ri, function sentinelGenerateInitialMonitorEvents (line 680) | void sentinelGenerateInitialMonitorEvents(void) { function sentinelReleaseScriptJob (line 695) | void sentinelReleaseScriptJob(sentinelScriptJob *sj) { function sentinelScheduleScriptExecution (line 704) | void sentinelScheduleScriptExecution(char *path, ...) { function listNode (line 752) | listNode *sentinelGetScriptListNodeByPid(pid_t pid) { function sentinelRunPendingScripts (line 768) | void sentinelRunPendingScripts(void) { function mstime_t (line 821) | mstime_t sentinelScriptRetryDelay(int retry_num) { function sentinelCollectTerminatedScripts (line 832) | void sentinelCollectTerminatedScripts(void) { function sentinelKillTimedoutScripts (line 879) | void sentinelKillTimedoutScripts(void) { function sentinelPendingScriptsCommand (line 899) | void sentinelPendingScriptsCommand(client *c) { function sentinelCallClientReconfScript (line 951) | void sentinelCallClientReconfScript(sentinelRedisInstance *master, int r... function instanceLink (line 966) | instanceLink *createInstanceLink(void) { function instanceLinkCloseConnection (line 990) | void instanceLinkCloseConnection(instanceLink *link, redisAsyncContext *... function instanceLink (line 1011) | instanceLink *releaseInstanceLink(instanceLink *link, sentinelRedisInsta... function sentinelTryConnectionSharing (line 1055) | int sentinelTryConnectionSharing(sentinelRedisInstance *ri) { function sentinelUpdateSentinelAddressInAllMasters (line 1091) | int sentinelUpdateSentinelAddressInAllMasters(sentinelRedisInstance *ri) { function instanceLinkConnectionError (line 1133) | void instanceLinkConnectionError(const redisAsyncContext *c) { function sentinelLinkEstablishedCallback (line 1149) | void sentinelLinkEstablishedCallback(const redisAsyncContext *c, int sta... function sentinelDisconnectCallback (line 1153) | void sentinelDisconnectCallback(const redisAsyncContext *c, int status) { function sentinelRedisInstance (line 1182) | sentinelRedisInstance *createSentinelRedisInstance(char *name, int flags... function releaseSentinelRedisInstance (line 1278) | void releaseSentinelRedisInstance(sentinelRedisInstance *ri) { function sentinelRedisInstance (line 1307) | sentinelRedisInstance *sentinelRedisInstanceLookupSlave( function removeMatchingSentinelFromMaster (line 1341) | int removeMatchingSentinelFromMaster(sentinelRedisInstance *master, char... function sentinelRedisInstance (line 1367) | sentinelRedisInstance *getSentinelRedisInstanceByAddrAndRunID(dict *inst... function sentinelRedisInstance (line 1391) | sentinelRedisInstance *sentinelGetMasterByName(char *name) { function sentinelAddFlagsToDictOfRedisInstances (line 1401) | void sentinelAddFlagsToDictOfRedisInstances(dict *instances, int flags) { function sentinelDelFlagsToDictOfRedisInstances (line 1415) | void sentinelDelFlagsToDictOfRedisInstances(dict *instances, int flags) { function sentinelResetMaster (line 1439) | void sentinelResetMaster(sentinelRedisInstance *ri, int flags) { function sentinelResetMastersByPattern (line 1474) | int sentinelResetMastersByPattern(char *pattern, int flags) { function sentinelResetMasterAndChangeAddress (line 1501) | int sentinelResetMasterAndChangeAddress(sentinelRedisInstance *master, c... function sentinelRedisInstanceNoDownFor (line 1560) | int sentinelRedisInstanceNoDownFor(sentinelRedisInstance *ri, mstime_t m... function sentinelAddr (line 1571) | sentinelAddr *sentinelGetCurrentMasterAddress(sentinelRedisInstance *mas... function sentinelPropagateDownAfterPeriod (line 1589) | void sentinelPropagateDownAfterPeriod(sentinelRedisInstance *master) { function rewriteConfigSentinelOption (line 1778) | void rewriteConfigSentinelOption(struct rewriteConfigState *state) { function sentinelFlushConfig (line 1950) | void sentinelFlushConfig(void) { function sentinelSendAuthIfNeeded (line 1984) | void sentinelSendAuthIfNeeded(sentinelRedisInstance *ri, redisAsyncConte... function sentinelSetClientName (line 2018) | void sentinelSetClientName(sentinelRedisInstance *ri, redisAsyncContext ... function instanceLinkNegotiateTLS (line 2031) | static int instanceLinkNegotiateTLS(redisAsyncContext *context) { function sentinelReconnectInstance (line 2047) | void sentinelReconnectInstance(sentinelRedisInstance *ri) { function sentinelMasterLooksSane (line 2131) | int sentinelMasterLooksSane(sentinelRedisInstance *master) { function sentinelRefreshInstanceInfo (line 2140) | void sentinelRefreshInstanceInfo(sentinelRedisInstance *ri, const char *... function sentinelInfoReplyCallback (line 2392) | void sentinelInfoReplyCallback(redisAsyncContext *c, void *reply, void *... function sentinelDiscardReplyCallback (line 2407) | void sentinelDiscardReplyCallback(redisAsyncContext *c, void *reply, voi... function sentinelPingReplyCallback (line 2415) | void sentinelPingReplyCallback(redisAsyncContext *c, void *reply, void *... function sentinelPublishReplyCallback (line 2457) | void sentinelPublishReplyCallback(redisAsyncContext *c, void *reply, voi... function sentinelProcessHelloMessage (line 2477) | void sentinelProcessHelloMessage(char *hello, int hello_len) { function sentinelReceiveHelloMessages (line 2581) | void sentinelReceiveHelloMessages(redisAsyncContext *c, void *reply, voi... function sentinelSendHello (line 2620) | int sentinelSendHello(sentinelRedisInstance *ri) { function sentinelForceHelloUpdateDictOfRedisInstances (line 2664) | void sentinelForceHelloUpdateDictOfRedisInstances(dict *instances) { function sentinelForceHelloUpdateForMaster (line 2685) | int sentinelForceHelloUpdateForMaster(sentinelRedisInstance *master) { function sentinelSendPing (line 2699) | int sentinelSendPing(sentinelRedisInstance *ri) { function sentinelSendPeriodicCommands (line 2719) | void sentinelSendPeriodicCommands(sentinelRedisInstance *ri) { function addReplySentinelRedisInstance (line 2799) | void addReplySentinelRedisInstance(client *c, sentinelRedisInstance *ri) { function addReplyDictOfRedisInstances (line 2990) | void addReplyDictOfRedisInstances(client *c, dict *instances) { function sentinelRedisInstance (line 3007) | sentinelRedisInstance *sentinelGetMasterByNameOrReplyError(client *c, function sentinelIsQuorumReachable (line 3023) | int sentinelIsQuorumReachable(sentinelRedisInstance *master, int *usable... function sentinelCommand (line 3045) | void sentinelCommand(client *c) { function sentinelInfoCommand (line 3376) | void sentinelInfoCommand(client *c) { function sentinelRoleCommand (line 3441) | void sentinelRoleCommand(client *c) { function sentinelSetCommand (line 3459) | void sentinelSetCommand(client *c) { function sentinelPublishCommand (line 3627) | void sentinelPublishCommand(client *c) { function sentinelCheckSubjectivelyDown (line 3639) | void sentinelCheckSubjectivelyDown(sentinelRedisInstance *ri) { function sentinelCheckObjectivelyDown (line 3711) | void sentinelCheckObjectivelyDown(sentinelRedisInstance *master) { function sentinelReceiveIsMasterDownReply (line 3748) | void sentinelReceiveIsMasterDownReply(redisAsyncContext *c, void *reply,... function sentinelAskMasterStateToOtherSentinels (line 3791) | void sentinelAskMasterStateToOtherSentinels(sentinelRedisInstance *maste... function sentinelSimFailureCrash (line 3838) | void sentinelSimFailureCrash(void) { type sentinelLeader (line 3876) | struct sentinelLeader { function sentinelLeaderIncr (line 3883) | int sentinelLeaderIncr(dict *counters, char *runid) { function sentinelSendSlaveOf (line 3980) | int sentinelSendSlaveOf(sentinelRedisInstance *ri, char *host, int port) { function sentinelStartFailover (line 4046) | void sentinelStartFailover(sentinelRedisInstance *master) { function sentinelStartFailoverIfNeeded (line 4070) | int sentinelStartFailoverIfNeeded(sentinelRedisInstance *master) { function compareSlavesForPromotion (line 4132) | int compareSlavesForPromotion(const void *a, const void *b) { function sentinelRedisInstance (line 4160) | sentinelRedisInstance *sentinelSelectSlave(sentinelRedisInstance *master) { function sentinelFailoverWaitStart (line 4205) | void sentinelFailoverWaitStart(sentinelRedisInstance *ri) { function sentinelFailoverSelectSlave (line 4238) | void sentinelFailoverSelectSlave(sentinelRedisInstance *ri) { function sentinelFailoverSendSlaveOfNoOne (line 4257) | void sentinelFailoverSendSlaveOfNoOne(sentinelRedisInstance *ri) { function sentinelFailoverWaitPromotion (line 4285) | void sentinelFailoverWaitPromotion(sentinelRedisInstance *ri) { function sentinelFailoverDetectEnd (line 4294) | void sentinelFailoverDetectEnd(sentinelRedisInstance *master) { function sentinelFailoverReconfNextSlave (line 4359) | void sentinelFailoverReconfNextSlave(sentinelRedisInstance *master) { function sentinelFailoverSwitchToPromotedSlave (line 4421) | void sentinelFailoverSwitchToPromotedSlave(sentinelRedisInstance *master) { function sentinelFailoverStateMachine (line 4432) | void sentinelFailoverStateMachine(sentinelRedisInstance *ri) { function sentinelAbortFailover (line 4461) | void sentinelAbortFailover(sentinelRedisInstance *ri) { function sentinelHandleRedisInstance (line 4480) | void sentinelHandleRedisInstance(sentinelRedisInstance *ri) { function sentinelHandleDictOfRedisInstances (line 4516) | void sentinelHandleDictOfRedisInstances(dict *instances) { function sentinelCheckTiltCondition (line 4559) | void sentinelCheckTiltCondition(void) { function sentinelTimer (line 4571) | void sentinelTimer(void) { FILE: Chapter02/redis-6.0.3/src/server.c type sharedObjectsStruct (line 61) | struct sharedObjectsStruct type redisServer (line 72) | struct redisServer type redisCommand (line 182) | struct redisCommand type tm (line 1018) | struct tm function serverLogRaw (line 1022) | void serverLogRaw(int level, const char *msg) { function serverLog (line 1068) | void serverLog(int level, const char *fmt, ...) { function serverLogFromHandler (line 1087) | void serverLogFromHandler(int level, const char *msg) { function ustime (line 1110) | long long ustime(void) { function mstime_t (line 1121) | mstime_t mstime(void) { function exitFromChild (line 1129) | void exitFromChild(int retcode) { function dictVanillaFree (line 1143) | void dictVanillaFree(void *privdata, void *val) function dictListDestructor (line 1149) | void dictListDestructor(void *privdata, void *val) function dictSdsKeyCompare (line 1155) | int dictSdsKeyCompare(void *privdata, const void *key1, function dictSdsKeyCaseCompare (line 1169) | int dictSdsKeyCaseCompare(void *privdata, const void *key1, function dictObjectDestructor (line 1177) | void dictObjectDestructor(void *privdata, void *val) function dictSdsDestructor (line 1185) | void dictSdsDestructor(void *privdata, void *val) function dictObjKeyCompare (line 1192) | int dictObjKeyCompare(void *privdata, const void *key1, function dictObjHash (line 1199) | uint64_t dictObjHash(const void *key) { function dictSdsHash (line 1204) | uint64_t dictSdsHash(const void *key) { function dictSdsCaseHash (line 1208) | uint64_t dictSdsCaseHash(const void *key) { function dictEncObjKeyCompare (line 1212) | int dictEncObjKeyCompare(void *privdata, const void *key1, function dictEncObjHash (line 1234) | uint64_t dictEncObjHash(const void *key) { function htNeedsResize (line 1418) | int htNeedsResize(dict *dict) { function tryResizeHashTables (line 1429) | void tryResizeHashTables(int dbid) { function incrementallyRehash (line 1443) | int incrementallyRehash(int dbid) { function updateDictResizePolicy (line 1463) | void updateDictResizePolicy(void) { function hasActiveChildProcess (line 1472) | int hasActiveChildProcess() { function allPersistenceDisabled (line 1480) | int allPersistenceDisabled(void) { function trackInstantaneousMetric (line 1487) | void trackInstantaneousMetric(int metric, long long current_reading) { function getInstantaneousMetric (line 1504) | long long getInstantaneousMetric(int metric) { function clientsCronResizeQueryBuffer (line 1517) | int clientsCronResizeQueryBuffer(client *c) { function clientsCronTrackExpansiveClients (line 1573) | int clientsCronTrackExpansiveClients(client *c) { function clientsCronTrackClientsMemUsage (line 1605) | int clientsCronTrackClientsMemUsage(client *c) { function getExpansiveClientsInfo (line 1624) | void getExpansiveClientsInfo(size_t *in_usage, size_t *out_usage) { function clientsCron (line 1650) | void clientsCron(void) { function databasesCron (line 1689) | void databasesCron(void) { function updateCachedTime (line 1752) | void updateCachedTime(int update_daylight_info) { function checkChildrenDone (line 1770) | void checkChildrenDone(void) { function serverCron (line 1845) | int serverCron(struct aeEventLoop *eventLoop, long long id, void *client... function beforeSleep (line 2106) | void beforeSleep(struct aeEventLoop *eventLoop) { function afterSleep (line 2200) | void afterSleep(struct aeEventLoop *eventLoop) { function createSharedObjects (line 2210) | void createSharedObjects(void) { function initServerConfig (line 2325) | void initServerConfig(void) { function restartServer (line 2470) | int restartServer(int flags, mstime_t delay) { function adjustOpenFilesLimit (line 2527) | void adjustOpenFilesLimit(void) { function checkTcpBacklogSettings (line 2604) | void checkTcpBacklogSettings(void) { function listenToPort (line 2637) | int listenToPort(int port, int *fds, int *count) { function resetServerStats (line 2703) | void resetServerStats(void) { function initServer (line 2739) | void initServer(void) { function InitServerLast (line 2952) | void InitServerLast() { function populateCommandTableParseFlags (line 2962) | int populateCommandTableParseFlags(struct redisCommand *c, char *strflag... function populateCommandTable (line 3024) | void populateCommandTable(void) { function resetCommandTableStats (line 3046) | void resetCommandTableStats(void) { function redisOpArrayInit (line 3063) | void redisOpArrayInit(redisOpArray *oa) { function redisOpArrayAppend (line 3068) | int redisOpArrayAppend(redisOpArray *oa, struct redisCommand *cmd, int d... function redisOpArrayFree (line 3084) | void redisOpArrayFree(redisOpArray *oa) { type redisCommand (line 3100) | struct redisCommand type redisCommand (line 3104) | struct redisCommand type redisCommand (line 3105) | struct redisCommand type redisCommand (line 3120) | struct redisCommand type redisCommand (line 3121) | struct redisCommand function propagate (line 3143) | void propagate(struct redisCommand *cmd, int dbid, robj **argv, int argc, function alsoPropagate (line 3164) | void alsoPropagate(struct redisCommand *cmd, int dbid, robj **argv, int ... function forceCommandPropagation (line 3183) | void forceCommandPropagation(client *c, int flags) { function preventCommandPropagation (line 3191) | void preventCommandPropagation(client *c) { function preventCommandAOF (line 3196) | void preventCommandAOF(client *c) { function preventCommandReplication (line 3201) | void preventCommandReplication(client *c) { function call (line 3242) | void call(client *c, int flags) { function processCommand (line 3410) | int processCommand(client *c) { function closeListeningSockets (line 3663) | void closeListeningSockets(int unlink_unix_socket) { function prepareForShutdown (line 3677) | int prepareForShutdown(int flags) { function writeCommandsDeniedByDiskError (line 3776) | int writeCommandsDeniedByDiskError(void) { function pingCommand (line 3793) | void pingCommand(client *c) { function echoCommand (line 3816) | void echoCommand(client *c) { function timeCommand (line 3820) | void timeCommand(client *c) { function addReplyCommandFlag (line 3832) | int addReplyCommandFlag(client *c, struct redisCommand *cmd, int f, char... function addReplyCommand (line 3841) | void addReplyCommand(client *c, struct redisCommand *cmd) { function commandCommand (line 3884) | void commandCommand(client *c) { function bytesToHuman (line 3944) | void bytesToHuman(char *s, unsigned long long n) { function sds (line 3974) | sds genRedisInfoString(const char *section) { function infoCommand (line 4572) | void infoCommand(client *c) { function monitorCommand (line 4584) | void monitorCommand(client *c) { function linuxOvercommitMemoryValue (line 4596) | int linuxOvercommitMemoryValue(void) { function linuxMemoryWarnings (line 4610) | void linuxMemoryWarnings(void) { function createPidFile (line 4620) | void createPidFile(void) { function daemonize (line 4633) | void daemonize(void) { function version (line 4650) | void version(void) { function usage (line 4661) | void usage(void) { function redisAsciiArt (line 4678) | void redisAsciiArt(void) { function sigShutdownHandler (line 4714) | static void sigShutdownHandler(int sig) { function setupSignalHandlers (line 4745) | void setupSignalHandlers(void) { function sigKillChildHandler (line 4772) | static void sigKillChildHandler(int sig) { function setupChildSignalHandlers (line 4778) | void setupChildSignalHandlers(void) { function redisFork (line 4790) | int redisFork() { function sendChildCOWInfo (line 4810) | void sendChildCOWInfo(int ptype, char *pname) { function checkForSentinelMode (line 4827) | int checkForSentinelMode(int argc, char **argv) { function loadDataFromDisk (line 4837) | void loadDataFromDisk(void) { function redisOutOfMemoryHandler (line 4875) | void redisOutOfMemoryHandler(size_t allocation_size) { function redisSetProcTitle (line 4881) | void redisSetProcTitle(char *title) { function redisSetCpuAffinity (line 4897) | void redisSetCpuAffinity(const char *cpulist) { function redisSupervisedUpstart (line 4909) | int redisSupervisedUpstart(void) { function redisCommunicateSystemd (line 4924) | int redisCommunicateSystemd(const char *sd_notify_msg) { function redisIsSupervised (line 4939) | int redisIsSupervised(int mode) { function iAmMaster (line 4963) | int iAmMaster(void) { function main (line 4969) | int main(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/src/server.h type mstime_t (line 57) | typedef long long mstime_t; type ustime_t (line 58) | typedef long long ustime_t; type RedisModule (line 481) | struct RedisModule type RedisModuleIO (line 482) | struct RedisModuleIO type RedisModuleDigest (line 483) | struct RedisModuleDigest type RedisModuleCtx (line 484) | struct RedisModuleCtx type redisObject (line 485) | struct redisObject type RedisModuleIO (line 491) | struct RedisModuleIO type RedisModuleIO (line 492) | struct RedisModuleIO type RedisModuleIO (line 493) | struct RedisModuleIO type RedisModuleIO (line 494) | struct RedisModuleIO type RedisModuleIO (line 495) | struct RedisModuleIO type redisObject (line 495) | struct redisObject type RedisModuleDigest (line 496) | struct RedisModuleDigest type moduleType (line 507) | typedef struct RedisModuleType { type moduleValue (line 537) | typedef struct moduleValue { type RedisModuleIO (line 545) | typedef struct RedisModuleIO { type RedisModuleDigest (line 573) | typedef struct RedisModuleDigest { type robj (line 606) | typedef struct redisObject { type evictionPoolEntry (line 632) | struct evictionPoolEntry type clientReplyBlock (line 636) | typedef struct clientReplyBlock { type redisDb (line 644) | typedef struct redisDb { type multiCmd (line 657) | typedef struct multiCmd { type multiState (line 663) | typedef struct multiState { type blockingState (line 675) | typedef struct blockingState { type readyList (line 714) | typedef struct readyList { type user (line 736) | typedef struct { type client (line 768) | typedef struct client { type saveparam (line 854) | struct saveparam { type moduleLoadQueueEntry (line 859) | struct moduleLoadQueueEntry { type sharedObjectsStruct (line 865) | struct sharedObjectsStruct { type zskiplistNode (line 883) | typedef struct zskiplistNode { type zskiplist (line 893) | typedef struct zskiplist { type zset (line 899) | typedef struct zset { type clientBufferLimitsConfig (line 904) | typedef struct clientBufferLimitsConfig { type redisOp (line 918) | typedef struct redisOp { type redisOpArray (line 931) | typedef struct redisOpArray { type redisMemOverhead (line 938) | struct redisMemOverhead { type rdbSaveInfo (line 977) | typedef struct rdbSaveInfo { type malloc_stats (line 989) | struct malloc_stats { type redisTLSContextConfig (line 1001) | typedef struct redisTLSContextConfig { type clusterState (line 1017) | struct clusterState type redisServer (line 1030) | struct redisServer { type pubsubPattern (line 1445) | typedef struct pubsubPattern { type redisCommand (line 1451) | struct redisCommand type redisCommand (line 1452) | struct redisCommand { type redisFunctionSym (line 1473) | struct redisFunctionSym { type redisSortObject (line 1478) | typedef struct _redisSortObject { type redisSortOperation (line 1486) | typedef struct _redisSortOperation { type listTypeIterator (line 1492) | typedef struct { type listTypeEntry (line 1500) | typedef struct { type setTypeIterator (line 1506) | typedef struct { type hashTypeIterator (line 1517) | typedef struct { type redisServer (line 1536) | struct redisServer type sharedObjectsStruct (line 1537) | struct sharedObjectsStruct type redisCommand (line 1560) | struct redisCommand type RedisModuleCtx (line 1563) | struct RedisModuleCtx type aeEventLoop (line 1814) | struct aeEventLoop type connection (line 1815) | struct connection type redisCommand (line 1837) | struct redisCommand type redisCommand (line 1883) | struct redisCommand type zrangespec (line 1906) | typedef struct { type zlexrangespec (line 1912) | typedef struct { type redisCommand (line 1959) | struct redisCommand type redisCommand (line 1960) | struct redisCommand type redisCommand (line 1961) | struct redisCommand type redisCommand (line 1963) | struct redisCommand type redisCommand (line 1964) | struct redisCommand type redisMemOverhead (line 1993) | struct redisMemOverhead type redisMemOverhead (line 1994) | struct redisMemOverhead type rewriteConfigState (line 2057) | struct rewriteConfigState type rewriteConfigState (line 2058) | struct rewriteConfigState type redisCommand (line 2119) | struct redisCommand type redisCommand (line 2121) | struct redisCommand type redisCommand (line 2122) | struct redisCommand type redisCommand (line 2123) | struct redisCommand type redisCommand (line 2124) | struct redisCommand type redisCommand (line 2125) | struct redisCommand type redisCommand (line 2126) | struct redisCommand type redisCommand (line 2127) | struct redisCommand type redisCommand (line 2128) | struct redisCommand type redisCommand (line 2425) | struct redisCommand FILE: Chapter02/redis-6.0.3/src/setcpuaffinity.c function next_num (line 55) | static int next_num(const char *str, char **end, int *result) { function setcpuaffinity (line 69) | void setcpuaffinity(const char *cpulist) { FILE: Chapter02/redis-6.0.3/src/setproctitle.c function spt_min (line 74) | static inline size_t spt_min(size_t a, size_t b) { function spt_clearenv (line 83) | static int spt_clearenv(void) { function spt_copyenv (line 103) | static int spt_copyenv(char *oldenv[]) { function spt_copyargs (line 134) | static int spt_copyargs(int argc, char *argv[]) { function spt_init (line 152) | void spt_init(int argc, char *argv[]) { function setproctitle (line 220) | void setproctitle(const char *fmt, ...) { FILE: Chapter02/redis-6.0.3/src/sha1.c function SHA1Transform (line 56) | void SHA1Transform(uint32_t state[5], const unsigned char buffer[64]) function SHA1Init (line 117) | void SHA1Init(SHA1_CTX* context) function SHA1Update (line 131) | void SHA1Update(SHA1_CTX* context, const unsigned char* data, uint32_t len) function SHA1Final (line 155) | void SHA1Final(unsigned char digest[20], SHA1_CTX* context) function sha1Test (line 204) | int sha1Test(int argc, char **argv) FILE: Chapter02/redis-6.0.3/src/sha1.h type SHA1_CTX (line 10) | typedef struct { FILE: Chapter02/redis-6.0.3/src/sha256.c function sha256_transform (line 44) | void sha256_transform(SHA256_CTX *ctx, const BYTE data[]) function sha256_init (line 85) | void sha256_init(SHA256_CTX *ctx) function sha256_update (line 99) | void sha256_update(SHA256_CTX *ctx, const BYTE data[], size_t len) function sha256_final (line 114) | void sha256_final(SHA256_CTX *ctx, BYTE hash[]) FILE: Chapter02/redis-6.0.3/src/sha256.h type BYTE (line 20) | typedef uint8_t BYTE; type WORD (line 21) | typedef uint32_t WORD; type SHA256_CTX (line 23) | typedef struct { FILE: Chapter02/redis-6.0.3/src/siphash.c function siptlw (line 50) | int siptlw(int c) { function siphash (line 116) | uint64_t siphash(const uint8_t *in, const size_t inlen, const uint8_t *k) { function siphash_nocase (line 175) | uint64_t siphash_nocase(const uint8_t *in, const size_t inlen, const uin... function siphash_test (line 314) | int siphash_test(void) { function main (line 351) | int main(void) { FILE: Chapter02/redis-6.0.3/src/slowlog.c function slowlogEntry (line 48) | slowlogEntry *slowlogCreateEntry(client *c, robj **argv, int argc, long ... function slowlogFreeEntry (line 100) | void slowlogFreeEntry(void *septr) { function slowlogInit (line 114) | void slowlogInit(void) { function slowlogPushEntryIfNeeded (line 123) | void slowlogPushEntryIfNeeded(client *c, robj **argv, int argc, long lon... function slowlogReset (line 135) | void slowlogReset(void) { function slowlogCommand (line 142) | void slowlogCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/slowlog.h type slowlogEntry (line 37) | typedef struct slowlogEntry { FILE: Chapter02/redis-6.0.3/src/sort.c function redisSortOperation (line 38) | redisSortOperation *createSortOperation(int type, robj *pattern) { function robj (line 61) | robj *lookupKeyByPattern(redisDb *db, robj *pattern, robj *subst, int wr... function sortCompare (line 141) | int sortCompare(const void *s1, const void *s2) { function sortCommand (line 192) | void sortCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/sparkline.c type sequence (line 57) | struct sequence type sequence (line 58) | struct sequence function sparklineSequenceAddSample (line 65) | void sparklineSequenceAddSample(struct sequence *seq, double value, char... function freeSparklineSequence (line 81) | void freeSparklineSequence(struct sequence *seq) { function sds (line 97) | sds sparklineRenderRange(sds output, struct sequence *seq, int rows, int... function sds (line 165) | sds sparklineRender(sds output, struct sequence *seq, int columns, int r... FILE: Chapter02/redis-6.0.3/src/sparkline.h type sample (line 34) | struct sample { type sequence (line 39) | struct sequence { type sequence (line 50) | struct sequence type sequence (line 51) | struct sequence type sequence (line 52) | struct sequence type sequence (line 53) | struct sequence type sequence (line 54) | struct sequence FILE: Chapter02/redis-6.0.3/src/stream.h type streamID (line 11) | typedef struct streamID { type stream (line 16) | typedef struct stream { type streamIterator (line 29) | typedef struct streamIterator { type streamCG (line 51) | typedef struct streamCG { type streamConsumer (line 67) | typedef struct streamConsumer { type streamNACK (line 82) | typedef struct streamNACK { type streamPropInfo (line 91) | typedef struct streamPropInfo { type client (line 97) | struct client FILE: Chapter02/redis-6.0.3/src/syncio.c function syncWrite (line 49) | ssize_t syncWrite(int fd, char *ptr, ssize_t size, long long timeout) { function syncRead (line 85) | ssize_t syncRead(int fd, char *ptr, ssize_t size, long long timeout) { function syncReadLine (line 125) | ssize_t syncReadLine(int fd, char *ptr, ssize_t size, long long timeout) { FILE: Chapter02/redis-6.0.3/src/t_hash.c function hashTypeTryConversion (line 40) | void hashTypeTryConversion(robj *o, robj **argv, int start, int end) { function hashTypeGetFromZiplist (line 57) | int hashTypeGetFromZiplist(robj *o, sds field, function sds (line 90) | sds hashTypeGetFromHashTable(robj *o, sds field) { function hashTypeGetValue (line 109) | int hashTypeGetValue(robj *o, sds field, unsigned char **vstr, unsigned ... function robj (line 131) | robj *hashTypeGetValueObject(robj *o, sds field) { function hashTypeGetValueLength (line 144) | size_t hashTypeGetValueLength(robj *o, sds field) { function hashTypeExists (line 166) | int hashTypeExists(robj *o, sds field) { function hashTypeSet (line 202) | int hashTypeSet(robj *o, sds field, sds value, int flags) { function hashTypeDelete (line 279) | int hashTypeDelete(robj *o, sds field) { function hashTypeLength (line 311) | unsigned long hashTypeLength(const robj *o) { function hashTypeIterator (line 324) | hashTypeIterator *hashTypeInitIterator(robj *subject) { function hashTypeReleaseIterator (line 340) | void hashTypeReleaseIterator(hashTypeIterator *hi) { function hashTypeNext (line 348) | int hashTypeNext(hashTypeIterator *hi) { function hashTypeCurrentFromZiplist (line 385) | void hashTypeCurrentFromZiplist(hashTypeIterator *hi, int what, function sds (line 406) | sds hashTypeCurrentFromHashTable(hashTypeIterator *hi, int what) { function hashTypeCurrentObject (line 426) | void hashTypeCurrentObject(hashTypeIterator *hi, int what, unsigned char... function sds (line 441) | sds hashTypeCurrentObjectNewSds(hashTypeIterator *hi, int what) { function robj (line 451) | robj *hashTypeLookupWriteOrCreate(client *c, robj *key) { function hashTypeConvertZiplist (line 465) | void hashTypeConvertZiplist(robj *o, int enc) { function hashTypeConvert (line 500) | void hashTypeConvert(robj *o, int enc) { function hsetnxCommand (line 514) | void hsetnxCommand(client *c) { function hsetCommand (line 530) | void hsetCommand(client *c) { function hincrbyCommand (line 559) | void hincrbyCommand(client *c) { function hincrbyfloatCommand (line 594) | void hincrbyfloatCommand(client *c) { function addHashFieldToReply (line 644) | static void addHashFieldToReply(client *c, robj *o, sds field) { function hgetCommand (line 679) | void hgetCommand(client *c) { function hmgetCommand (line 688) | void hmgetCommand(client *c) { function hdelCommand (line 706) | void hdelCommand(client *c) { function hlenCommand (line 734) | void hlenCommand(client *c) { function hstrlenCommand (line 743) | void hstrlenCommand(client *c) { function addHashIteratorCursorToReply (line 751) | static void addHashIteratorCursorToReply(client *c, hashTypeIterator *hi... function genericHgetallCommand (line 770) | void genericHgetallCommand(client *c, int flags) { function hkeysCommand (line 806) | void hkeysCommand(client *c) { function hvalsCommand (line 810) | void hvalsCommand(client *c) { function hgetallCommand (line 814) | void hgetallCommand(client *c) { function hexistsCommand (line 818) | void hexistsCommand(client *c) { function hscanCommand (line 826) | void hscanCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/t_list.c function listTypePush (line 41) | void listTypePush(robj *subject, robj *value, int where) { function robj (line 57) | robj *listTypePop(robj *subject, int where) { function listTypeLength (line 74) | unsigned long listTypeLength(const robj *subject) { function listTypeIterator (line 83) | listTypeIterator *listTypeInitIterator(robj *subject, long index, function listTypeReleaseIterator (line 104) | void listTypeReleaseIterator(listTypeIterator *li) { function listTypeNext (line 112) | int listTypeNext(listTypeIterator *li, listTypeEntry *entry) { function robj (line 126) | robj *listTypeGet(listTypeEntry *entry) { function listTypeInsert (line 141) | void listTypeInsert(listTypeEntry *entry, robj *value, int where) { function listTypeEqual (line 160) | int listTypeEqual(listTypeEntry *entry, robj *o) { function listTypeDelete (line 170) | void listTypeDelete(listTypeIterator *iter, listTypeEntry *entry) { function listTypeConvert (line 179) | void listTypeConvert(robj *subject, int enc) { function pushGenericCommand (line 197) | void pushGenericCommand(client *c, int where) { function lpushCommand (line 226) | void lpushCommand(client *c) { function rpushCommand (line 230) | void rpushCommand(client *c) { function pushxGenericCommand (line 234) | void pushxGenericCommand(client *c, int where) { function lpushxCommand (line 256) | void lpushxCommand(client *c) { function rpushxCommand (line 260) | void rpushxCommand(client *c) { function linsertCommand (line 264) | void linsertCommand(client *c) { function llenCommand (line 308) | void llenCommand(client *c) { function lindexCommand (line 314) | void lindexCommand(client *c) { function lsetCommand (line 341) | void lsetCommand(client *c) { function popGenericCommand (line 367) | void popGenericCommand(client *c, int where) { function lpopCommand (line 390) | void lpopCommand(client *c) { function rpopCommand (line 394) | void rpopCommand(client *c) { function lrangeCommand (line 398) | void lrangeCommand(client *c) { function ltrimCommand (line 444) | void ltrimCommand(client *c) { function lremCommand (line 490) | void lremCommand(client *c) { function rpoplpushHandlePush (line 550) | void rpoplpushHandlePush(client *c, robj *dstkey, robj *dstobj, robj *va... function rpoplpushCommand (line 565) | void rpoplpushCommand(client *c) { function serveClientBlockedOnList (line 628) | int serveClientBlockedOnList(client *receiver, robj *key, robj *dstkey, ... function blockingPopGenericCommand (line 679) | void blockingPopGenericCommand(client *c, int where) { function blpopCommand (line 735) | void blpopCommand(client *c) { function brpopCommand (line 739) | void brpopCommand(client *c) { function brpoplpushCommand (line 743) | void brpoplpushCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/t_set.c function robj (line 42) | robj *setTypeCreate(sds value) { function setTypeAdd (line 52) | int setTypeAdd(robj *subject, sds value) { function setTypeRemove (line 88) | int setTypeRemove(robj *setobj, sds value) { function setTypeIsMember (line 107) | int setTypeIsMember(robj *subject, sds value) { function setTypeIterator (line 121) | setTypeIterator *setTypeInitIterator(robj *subject) { function setTypeReleaseIterator (line 135) | void setTypeReleaseIterator(setTypeIterator *si) { function setTypeNext (line 154) | int setTypeNext(setTypeIterator *si, sds *sdsele, int64_t *llele) { function sds (line 177) | sds setTypeNextObject(setTypeIterator *si) { function setTypeRandomElement (line 208) | int setTypeRandomElement(robj *setobj, sds *sdsele, int64_t *llele) { function setTypeSize (line 222) | unsigned long setTypeSize(const robj *subject) { function setTypeConvert (line 235) | void setTypeConvert(robj *setobj, int enc) { function saddCommand (line 264) | void saddCommand(client *c) { function sremCommand (line 290) | void sremCommand(client *c) { function smoveCommand (line 318) | void smoveCommand(client *c) { function sismemberCommand (line 373) | void sismemberCommand(client *c) { function scardCommand (line 385) | void scardCommand(client *c) { function spopWithCountCommand (line 402) | void spopWithCountCommand(client *c) { function spopCommand (line 553) | void spopCommand(client *c) { function srandmemberWithCountCommand (line 614) | void srandmemberWithCountCommand(client *c) { function srandmemberCommand (line 749) | void srandmemberCommand(client *c) { function qsortCompareSetsByCardinality (line 774) | int qsortCompareSetsByCardinality(const void *s1, const void *s2) { function qsortCompareSetsByRevCardinality (line 782) | int qsortCompareSetsByRevCardinality(const void *s1, const void *s2) { function sinterGenericCommand (line 792) | void sinterGenericCommand(client *c, robj **setkeys, function sinterCommand (line 919) | void sinterCommand(client *c) { function sinterstoreCommand (line 923) | void sinterstoreCommand(client *c) { function sunionDiffGenericCommand (line 931) | void sunionDiffGenericCommand(client *c, robj **setkeys, int setnum, function sunionCommand (line 1092) | void sunionCommand(client *c) { function sunionstoreCommand (line 1096) | void sunionstoreCommand(client *c) { function sdiffCommand (line 1100) | void sdiffCommand(client *c) { function sdiffstoreCommand (line 1104) | void sdiffstoreCommand(client *c) { function sscanCommand (line 1108) | void sscanCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/t_stream.c function stream (line 52) | stream *streamNew(void) { function freeStream (line 63) | void freeStream(stream *s) { function streamLength (line 71) | unsigned long streamLength(const robj *subject) { function streamIncrID (line 77) | void streamIncrID(streamID *id) { function streamNextID (line 95) | void streamNextID(streamID *last_id, streamID *new_id) { function lpGetInteger (line 127) | int64_t lpGetInteger(unsigned char *ele) { function streamLogListpackContent (line 143) | void streamLogListpackContent(unsigned char *lp) { function streamEncodeID (line 156) | void streamEncodeID(void *buf, streamID *id) { function streamDecodeID (line 166) | void streamDecodeID(void *buf, streamID *id) { function streamCompareID (line 174) | int streamCompareID(streamID *a, streamID *b) { function streamAppendItem (line 196) | int streamAppendItem(stream *s, robj **argv, int64_t numfields, streamID... function streamTrimByLength (line 398) | int64_t streamTrimByLength(stream *s, size_t maxlen, int approx) { function streamIteratorStart (line 512) | void streamIteratorStart(streamIterator *si, stream *s, streamID *start,... function streamIteratorGetID (line 557) | int streamIteratorGetID(streamIterator *si, streamID *id, int64_t *numfi... function streamIteratorGetField (line 702) | void streamIteratorGetField(streamIterator *si, unsigned char **fieldptr... function streamIteratorRemoveEntry (line 724) | void streamIteratorRemoveEntry(streamIterator *si, streamID *current) { function streamIteratorStop (line 780) | void streamIteratorStop(streamIterator *si) { function streamDeleteItem (line 786) | int streamDeleteItem(stream *s, streamID *id) { function streamLastValidID (line 801) | void streamLastValidID(stream *s, streamID *maxid) function addReplyStreamID (line 813) | void addReplyStreamID(client *c, streamID *id) { function robj (line 820) | robj *createObjectFromStreamID(streamID *id) { function streamPropagateXCLAIM (line 828) | void streamPropagateXCLAIM(client *c, robj *key, streamCG *group, robj *... function streamPropagateGroupID (line 876) | void streamPropagateGroupID(client *c, robj *key, streamCG *group, robj ... function streamReplyWithRange (line 942) | size_t streamReplyWithRange(client *c, stream *s, streamID *start, strea... function streamReplyWithRangeFromConsumerPEL (line 1063) | size_t streamReplyWithRangeFromConsumerPEL(client *c, stream *s, streamI... function robj (line 1106) | robj *streamTypeLookupWriteOrCreate(client *c, robj *key) { function streamGenericParseIDOrReply (line 1132) | int streamGenericParseIDOrReply(client *c, robj *o, streamID *id, uint64... function streamParseIDOrReply (line 1170) | int streamParseIDOrReply(client *c, robj *o, streamID *id, uint64_t miss... function streamParseStrictIDOrReply (line 1177) | int streamParseStrictIDOrReply(client *c, robj *o, streamID *id, uint64_... function streamRewriteApproxMaxlen (line 1183) | void streamRewriteApproxMaxlen(client *c, stream *s, int maxlen_arg_idx) { function xaddCommand (line 1195) | void xaddCommand(client *c) { function xrangeGenericCommand (line 1304) | void xrangeGenericCommand(client *c, int rev) { function xrangeCommand (line 1346) | void xrangeCommand(client *c) { function xrevrangeCommand (line 1351) | void xrevrangeCommand(client *c) { function xlenCommand (line 1356) | void xlenCommand(client *c) { function xreadCommand (line 1372) | void xreadCommand(client *c) { function streamNACK (line 1648) | streamNACK *streamCreateNACK(streamConsumer *consumer) { function streamFreeNACK (line 1657) | void streamFreeNACK(streamNACK *na) { function streamFreeConsumer (line 1666) | void streamFreeConsumer(streamConsumer *sc) { function streamCG (line 1677) | streamCG *streamCreateCG(stream *s, char *name, size_t namelen, streamID... function streamFreeCG (line 1691) | void streamFreeCG(streamCG *cg) { function streamCG (line 1699) | streamCG *streamLookupCG(stream *s, sds groupname) { function streamConsumer (line 1710) | streamConsumer *streamLookupConsumer(streamCG *cg, sds name, int flags) { function streamDelConsumer (line 1730) | uint64_t streamDelConsumer(streamCG *cg, sds name) { function xgroupCommand (line 1763) | void xgroupCommand(client *c) { function xsetidCommand (line 1898) | void xsetidCommand(client *c) { function xackCommand (line 1934) | void xackCommand(client *c) { function xpendingCommand (line 1989) | void xpendingCommand(client *c) { function xclaimCommand (line 2197) | void xclaimCommand(client *c) { function xdelCommand (line 2390) | void xdelCommand(client *c) { function xtrimCommand (line 2433) | void xtrimCommand(client *c) { function xinfoReplyWithStreamInfo (line 2501) | void xinfoReplyWithStreamInfo(client *c, stream *s) { function xinfoCommand (line 2687) | void xinfoCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/t_string.c function checkStringLength (line 37) | static int checkStringLength(client *c, long long size) { function setGenericCommand (line 68) | void setGenericCommand(client *c, int flags, robj *key, robj *val, robj ... function setCommand (line 97) | void setCommand(client *c) { function setnxCommand (line 149) | void setnxCommand(client *c) { function setexCommand (line 154) | void setexCommand(client *c) { function psetexCommand (line 159) | void psetexCommand(client *c) { function getGenericCommand (line 164) | int getGenericCommand(client *c) { function getCommand (line 179) | void getCommand(client *c) { function getsetCommand (line 183) | void getsetCommand(client *c) { function setrangeCommand (line 191) | void setrangeCommand(client *c) { function getrangeCommand (line 251) | void getrangeCommand(client *c) { function mgetCommand (line 292) | void mgetCommand(client *c) { function msetGenericCommand (line 310) | void msetGenericCommand(client *c, int nx) { function msetCommand (line 338) | void msetCommand(client *c) { function msetnxCommand (line 342) | void msetnxCommand(client *c) { function incrDecrCommand (line 346) | void incrDecrCommand(client *c, long long incr) { function incrCommand (line 384) | void incrCommand(client *c) { function decrCommand (line 388) | void decrCommand(client *c) { function incrbyCommand (line 392) | void incrbyCommand(client *c) { function decrbyCommand (line 399) | void decrbyCommand(client *c) { function incrbyfloatCommand (line 406) | void incrbyfloatCommand(client *c) { function appendCommand (line 443) | void appendCommand(client *c) { function strlenCommand (line 476) | void strlenCommand(client *c) { function stralgoCommand (line 488) | void stralgoCommand(client *c) { function stralgoLCS (line 500) | void stralgoLCS(client *c) { FILE: Chapter02/redis-6.0.3/src/t_zset.c function zskiplistNode (line 71) | zskiplistNode *zslCreateNode(int level, double score, sds ele) { function zskiplist (line 80) | zskiplist *zslCreate(void) { function zslFreeNode (line 100) | void zslFreeNode(zskiplistNode *node) { function zslFree (line 106) | void zslFree(zskiplist *zsl) { function zslRandomLevel (line 122) | int zslRandomLevel(void) { function zskiplistNode (line 132) | zskiplistNode *zslInsert(zskiplist *zsl, double score, sds ele) { function zslDeleteNode (line 191) | void zslDeleteNode(zskiplist *zsl, zskiplistNode *x, zskiplistNode **upd... function zslDelete (line 219) | int zslDelete(zskiplist *zsl, double score, sds ele, zskiplistNode **nod... function zskiplistNode (line 259) | zskiplistNode *zslUpdateScore(zskiplist *zsl, double curscore, sds ele, ... function zslValueGteMin (line 303) | int zslValueGteMin(double value, zrangespec *spec) { function zslValueLteMax (line 307) | int zslValueLteMax(double value, zrangespec *spec) { function zslIsInRange (line 312) | int zslIsInRange(zskiplist *zsl, zrangespec *range) { function zskiplistNode (line 330) | zskiplistNode *zslFirstInRange(zskiplist *zsl, zrangespec *range) { function zskiplistNode (line 356) | zskiplistNode *zslLastInRange(zskiplist *zsl, zrangespec *range) { function zslDeleteRangeByScore (line 383) | unsigned long zslDeleteRangeByScore(zskiplist *zsl, zrangespec *range, d... function zslDeleteRangeByLex (line 414) | unsigned long zslDeleteRangeByLex(zskiplist *zsl, zlexrangespec *range, ... function zslDeleteRangeByRank (line 445) | unsigned long zslDeleteRangeByRank(zskiplist *zsl, unsigned int start, u... function zslGetRank (line 477) | unsigned long zslGetRank(zskiplist *zsl, double score, sds ele) { function zskiplistNode (line 501) | zskiplistNode* zslGetElementByRank(zskiplist *zsl, unsigned long rank) { function zslParseRange (line 521) | static int zslParseRange(robj *min, robj *max, zrangespec *spec) { function zslParseLexRangeItem (line 572) | int zslParseLexRangeItem(robj *item, sds *dest, int *ex) { function zslFreeLexRange (line 601) | void zslFreeLexRange(zlexrangespec *spec) { function zslParseLexRange (line 613) | int zslParseLexRange(robj *min, robj *max, zlexrangespec *spec) { function sdscmplex (line 632) | int sdscmplex(sds a, sds b) { function zslLexValueGteMin (line 639) | int zslLexValueGteMin(sds value, zlexrangespec *spec) { function zslLexValueLteMax (line 645) | int zslLexValueLteMax(sds value, zlexrangespec *spec) { function zslIsInLexRange (line 652) | int zslIsInLexRange(zskiplist *zsl, zlexrangespec *range) { function zskiplistNode (line 670) | zskiplistNode *zslFirstInLexRange(zskiplist *zsl, zlexrangespec *range) { function zskiplistNode (line 696) | zskiplistNode *zslLastInLexRange(zskiplist *zsl, zlexrangespec *range) { function zzlGetScore (line 723) | double zzlGetScore(unsigned char *sptr) { function sds (line 745) | sds ziplistGetObject(unsigned char *sptr) { function zzlCompareElements (line 761) | int zzlCompareElements(unsigned char *eptr, unsigned char *cstr, unsigne... function zzlLength (line 781) | unsigned int zzlLength(unsigned char *zl) { function zzlNext (line 787) | void zzlNext(unsigned char *zl, unsigned char **eptr, unsigned char **sp... function zzlPrev (line 806) | void zzlPrev(unsigned char *zl, unsigned char **eptr, unsigned char **sp... function zzlIsInRange (line 825) | int zzlIsInRange(unsigned char *zl, zrangespec *range) { function zzlLexValueGteMin (line 910) | int zzlLexValueGteMin(unsigned char *p, zlexrangespec *spec) { function zzlLexValueLteMax (line 917) | int zzlLexValueLteMax(unsigned char *p, zlexrangespec *spec) { function zzlIsInLexRange (line 926) | int zzlIsInLexRange(unsigned char *zl, zlexrangespec *range) { function zsetLength (line 1157) | unsigned long zsetLength(const robj *zobj) { function zsetConvert (line 1169) | void zsetConvert(robj *zobj, int encoding) { function zsetConvertToZiplistIfNeeded (line 1243) | void zsetConvertToZiplistIfNeeded(robj *zobj, size_t maxelelen) { function zsetScore (line 1256) | int zsetScore(robj *zobj, sds member, double *score) { function zsetAdd (line 1315) | int zsetAdd(robj *zobj, double score, sds ele, int *flags, double *newsc... function zsetDel (line 1424) | int zsetDel(robj *zobj, sds ele) { function zsetRank (line 1473) | long zsetRank(robj *zobj, sds ele, int reverse) { function zaddGenericCommand (line 1533) | void zaddGenericCommand(client *c, int flags) { function zaddCommand (line 1655) | void zaddCommand(client *c) { function zincrbyCommand (line 1659) | void zincrbyCommand(client *c) { function zremCommand (line 1663) | void zremCommand(client *c) { function zremrangeGenericCommand (line 1694) | void zremrangeGenericCommand(client *c, int rangetype) { function zremrangebyrankCommand (line 1794) | void zremrangebyrankCommand(client *c) { function zremrangebyscoreCommand (line 1798) | void zremrangebyscoreCommand(client *c) { function zremrangebylexCommand (line 1802) | void zremrangebylexCommand(client *c) { type zsetopsrc (line 1806) | typedef struct { type zsetopval (line 1852) | typedef struct { type iterset (line 1862) | typedef union _iterset iterset; type iterzset (line 1863) | typedef union _iterzset iterzset; function zuiInitIterator (line 1865) | void zuiInitIterator(zsetopsrc *op) { function zuiClearIterator (line 1901) | void zuiClearIterator(zsetopsrc *op) { function zuiLength (line 1928) | unsigned long zuiLength(zsetopsrc *op) { function zuiNext (line 1958) | int zuiNext(zsetopsrc *op, zsetopval *val) { function zuiLongLongFromValue (line 2018) | int zuiLongLongFromValue(zsetopval *val) { function sds (line 2036) | sds zuiSdsFromValue(zsetopval *val) { function sds (line 2050) | sds zuiNewSdsFromValue(zsetopval *val) { function zuiBufferFromValue (line 2066) | int zuiBufferFromValue(zsetopval *val) { function zuiFind (line 2081) | int zuiFind(zsetopsrc *op, zsetopval *val, double *score) { function zuiCompareByCardinality (line 2134) | int zuiCompareByCardinality(const void *s1, const void *s2) { function zunionInterAggregate (line 2147) | inline static void zunionInterAggregate(double *target, double val, int ... function zunionInterGenericCommand (line 2176) | void zunionInterGenericCommand(client *c, robj *dstkey, int op) { function zunionstoreCommand (line 2403) | void zunionstoreCommand(client *c) { function zinterstoreCommand (line 2407) | void zinterstoreCommand(client *c) { function zrangeGenericCommand (line 2411) | void zrangeGenericCommand(client *c, int reverse) { function zrangeCommand (line 2518) | void zrangeCommand(client *c) { function zrevrangeCommand (line 2522) | void zrevrangeCommand(client *c) { function genericZrangebyscoreCommand (line 2527) | void genericZrangebyscoreCommand(client *c, int reverse) { function zrangebyscoreCommand (line 2712) | void zrangebyscoreCommand(client *c) { function zrevrangebyscoreCommand (line 2716) | void zrevrangebyscoreCommand(client *c) { function zcountCommand (line 2720) | void zcountCommand(client *c) { function zlexcountCommand (line 2797) | void zlexcountCommand(client *c) { function genericZrangebylexCommand (line 2877) | void genericZrangebylexCommand(client *c, int reverse) { function zrangebylexCommand (line 3056) | void zrangebylexCommand(client *c) { function zrevrangebylexCommand (line 3060) | void zrevrangebylexCommand(client *c) { function zcardCommand (line 3064) | void zcardCommand(client *c) { function zscoreCommand (line 3074) | void zscoreCommand(client *c) { function zrankGenericCommand (line 3089) | void zrankGenericCommand(client *c, int reverse) { function zrankCommand (line 3107) | void zrankCommand(client *c) { function zrevrankCommand (line 3111) | void zrevrankCommand(client *c) { function zscanCommand (line 3115) | void zscanCommand(client *c) { function genericZpopCommand (line 3134) | void genericZpopCommand(client *c, robj **keyv, int keyc, int where, int... function zpopminCommand (line 3239) | void zpopminCommand(client *c) { function zpopmaxCommand (line 3249) | void zpopmaxCommand(client *c) { function blockingGenericZpopCommand (line 3259) | void blockingGenericZpopCommand(client *c, int where) { function bzpopminCommand (line 3299) | void bzpopminCommand(client *c) { function bzpopmaxCommand (line 3304) | void bzpopmaxCommand(client *c) { FILE: Chapter02/redis-6.0.3/src/timeout.c function checkBlockedClientTimeout (line 37) | int checkBlockedClientTimeout(client *c, mstime_t now) { function clientsCronHandleTimeout (line 55) | int clientsCronHandleTimeout(client *c, mstime_t now_ms) { function encodeTimeoutKey (line 96) | void encodeTimeoutKey(unsigned char *buf, uint64_t timeout, client *c) { function decodeTimeoutKey (line 105) | void decodeTimeoutKey(unsigned char *buf, uint64_t *toptr, client **cptr) { function addClientToTimeoutTable (line 114) | void addClientToTimeoutTable(client *c) { function removeClientFromTimeoutTable (line 125) | void removeClientFromTimeoutTable(client *c) { function handleBlockedClientsTimeout (line 136) | void handleBlockedClientsTimeout(void) { function getTimeoutFromObjectOrReply (line 163) | int getTimeoutFromObjectOrReply(client *c, robj *object, mstime_t *timeo... FILE: Chapter02/redis-6.0.3/src/tls.c function parseProtocolsConfig (line 57) | static int parseProtocolsConfig(const char *str) { function sslLockingCallback (line 109) | static void sslLockingCallback(int mode, int lock_id, const char *f, int... function initCryptoLocks (line 122) | static void initCryptoLocks(void) { function tlsInit (line 137) | void tlsInit(void) { function tlsConfigure (line 159) | int tlsConfigure(redisTLSContextConfig *ctx_config) { type WantIOType (line 309) | typedef enum { type tls_connection (line 318) | typedef struct tls_connection { function connection (line 326) | connection *connCreateTLS(void) { function connection (line 334) | connection *connCreateAcceptedTLS(int fd, int require_auth) { type aeEventLoop (line 351) | struct aeEventLoop function handleSSLReturnCode (line 358) | static int handleSSLReturnCode(tls_connection *conn, int ret_value, Want... function registerSSLEvent (line 388) | void registerSSLEvent(tls_connection *conn, WantIOType want) { function updateSSLEvent (line 408) | void updateSSLEvent(tls_connection *conn) { function tlsHandleEvent (line 424) | static void tlsHandleEvent(tls_connection *conn, int mask) { function tlsEventHandler (line 550) | static void tlsEventHandler(struct aeEventLoop *el, int fd, void *client... function connTLSClose (line 557) | static void connTLSClose(connection *conn_) { function connTLSAccept (line 578) | static int connTLSAccept(connection *_conn, ConnectionCallbackFunc accep... function connTLSConnect (line 607) | static int connTLSConnect(connection *conn_, const char *addr, int port,... function connTLSWrite (line 622) | static int connTLSWrite(connection *conn_, const void *data, size_t data... function connTLSRead (line 652) | static int connTLSRead(connection *conn_, void *buf, size_t buf_len) { function connTLSSetWriteHandler (line 690) | int connTLSSetWriteHandler(connection *conn, ConnectionCallbackFunc func... function connTLSSetReadHandler (line 700) | int connTLSSetReadHandler(connection *conn, ConnectionCallbackFunc func) { function setBlockingTimeout (line 706) | static void setBlockingTimeout(tls_connection *conn, long long timeout) { function unsetBlockingTimeout (line 712) | static void unsetBlockingTimeout(tls_connection *conn) { function connTLSBlockingConnect (line 718) | static int connTLSBlockingConnect(connection *conn_, const char *addr, i... function connTLSSyncWrite (line 742) | static ssize_t connTLSSyncWrite(connection *conn_, char *ptr, ssize_t si... function connTLSSyncRead (line 754) | static ssize_t connTLSSyncRead(connection *conn_, char *ptr, ssize_t siz... function connTLSSyncReadLine (line 764) | static ssize_t connTLSSyncReadLine(connection *conn_, char *ptr, ssize_t... function tlsHasPendingData (line 810) | int tlsHasPendingData() { function tlsProcessPendingData (line 816) | int tlsProcessPendingData() { function tlsInit (line 831) | void tlsInit(void) { function tlsConfigure (line 834) | int tlsConfigure(redisTLSContextConfig *ctx_config) { function connection (line 839) | connection *connCreateTLS(void) { function connection (line 843) | connection *connCreateAcceptedTLS(int fd, int require_auth) { function tlsHasPendingData (line 850) | int tlsHasPendingData() { function tlsProcessPendingData (line 854) | int tlsProcessPendingData() { FILE: Chapter02/redis-6.0.3/src/tracking.c type bcastState (line 55) | typedef struct bcastState { function disableTracking (line 67) | void disableTracking(client *c) { function enableBcastTrackingForPrefix (line 104) | void enableBcastTrackingForPrefix(client *c, char *prefix, size_t plen) { function enableTracking (line 129) | void enableTracking(client *c, uint64_t redirect_to, uint64_t options, r... function trackingRememberKeys (line 166) | void trackingRememberKeys(client *c) { function sendTrackingMessage (line 204) | void sendTrackingMessage(client *c, char *keyname, size_t keylen, int pr... function trackingRememberKeyToBroadcast (line 257) | void trackingRememberKeyToBroadcast(client *c, char *keyname, size_t key... function trackingInvalidateKeyRaw (line 291) | void trackingInvalidateKeyRaw(client *c, char *key, size_t keylen, int b... function trackingInvalidateKey (line 340) | void trackingInvalidateKey(client *c, robj *keyobj) { function freeTrackingRadixTree (line 351) | void freeTrackingRadixTree(void *rt) { function trackingInvalidateKeysOnFlush (line 355) | void trackingInvalidateKeysOnFlush(int dbid) { function trackingLimitUsedSlots (line 386) | void trackingLimitUsedSlots(void) { function sds (line 429) | sds trackingBuildBroadcastReply(client *c, rax *keys) { function trackingBroadcastInvalidationMessages (line 474) | void trackingBroadcastInvalidationMessages(void) { function trackingGetTotalItems (line 524) | uint64_t trackingGetTotalItems(void) { function trackingGetTotalKeys (line 528) | uint64_t trackingGetTotalKeys(void) { function trackingGetTotalPrefixes (line 533) | uint64_t trackingGetTotalPrefixes(void) { FILE: Chapter02/redis-6.0.3/src/util.c function stringmatchlen (line 48) | int stringmatchlen(const char *pattern, int patternLen, function stringmatch (line 168) | int stringmatch(const char *pattern, const char *string, int nocase) { function stringmatchlen_fuzz_test (line 173) | int stringmatchlen_fuzz_test(void) { function memtoll (line 195) | long long memtoll(const char *p, int *err) { function digits10 (line 249) | uint32_t digits10(uint64_t v) { function sdigits10 (line 270) | uint32_t sdigits10(int64_t v) { function ll2string (line 292) | int ll2string(char *dst, size_t dstlen, long long svalue) { function string2ll (line 358) | int string2ll(const char *s, size_t slen, long long *value) { function string2ull (line 429) | int string2ull(const char *s, unsigned long long *value) { function string2l (line 447) | int string2l(const char *s, size_t slen, long *lval) { function string2ld (line 467) | int string2ld(const char *s, size_t slen, long double *dp) { function string2d (line 497) | int string2d(const char *s, size_t slen, double *dp) { function d2string (line 516) | int d2string(char *buf, size_t len, double value) { function ld2string (line 562) | int ld2string(char *buf, size_t len, long double value, ld2string_mode m... function getRandomBytes (line 620) | void getRandomBytes(unsigned char *p, size_t len) { function getRandomHexChars (line 688) | void getRandomHexChars(char *p, size_t len) { function sds (line 703) | sds getAbsolutePath(char *filename) { function getTimeZone (line 753) | unsigned long getTimeZone(void) { function pathIsBaseName (line 770) | int pathIsBaseName(char *path) { function test_string2ll (line 777) | static void test_string2ll(void) { function test_string2l (line 832) | static void test_string2l(void) { function test_ll2string (line 881) | static void test_ll2string(void) { function utilTest (line 923) | int utilTest(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/src/util.h type ld2string_mode (line 42) | typedef enum { FILE: Chapter02/redis-6.0.3/src/ziplist.c type zlentry (line 271) | typedef struct zlentry { function zipIntSize (line 306) | unsigned int zipIntSize(unsigned char encoding) { function zipStoreEntryEncoding (line 332) | unsigned int zipStoreEntryEncoding(unsigned char *p, unsigned char encod... function zipStorePrevEntryLengthLarge (line 397) | int zipStorePrevEntryLengthLarge(unsigned char *p, unsigned int len) { function zipStorePrevEntryLength (line 408) | unsigned int zipStorePrevEntryLength(unsigned char *p, unsigned int len) { function zipPrevLenByteDiff (line 464) | int zipPrevLenByteDiff(unsigned char *p, unsigned int len) { function zipRawEntryLength (line 471) | unsigned int zipRawEntryLength(unsigned char *p) { function zipTryEncoding (line 480) | int zipTryEncoding(unsigned char *entry, unsigned int entrylen, long lon... function zipSaveInteger (line 507) | void zipSaveInteger(unsigned char *p, int64_t value, unsigned char encod... function zipLoadInteger (line 537) | int64_t zipLoadInteger(unsigned char *p, unsigned char encoding) { function zipEntry (line 569) | void zipEntry(unsigned char *p, zlentry *e) { function ziplistGet (line 1034) | unsigned int ziplistGet(unsigned char *p, unsigned char **sstr, unsigned... function ziplistCompare (line 1081) | unsigned int ziplistCompare(unsigned char *p, unsigned char *sstr, unsig... function ziplistLen (line 1168) | unsigned int ziplistLen(unsigned char *zl) { function ziplistBlobLen (line 1186) | size_t ziplistBlobLen(unsigned char *zl) { function ziplistRepr (line 1190) | void ziplistRepr(unsigned char *zl) { function usec (line 1283) | static long long usec(void) { function stress (line 1289) | static void stress(int pos, int num, int maxsize, int dnum) { function randstring (line 1339) | static int randstring(char *target, unsigned int min, unsigned int max) { function verify (line 1365) | static void verify(unsigned char *zl, zlentry *e) { function ziplistTest (line 1382) | int ziplistTest(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/src/zipmap.c function zipmapDecodeLength (line 105) | static unsigned int zipmapDecodeLength(unsigned char *p) { function zipmapEncodeLength (line 116) | static unsigned int zipmapEncodeLength(unsigned char *p, unsigned int le... function zipmapRequiredLength (line 168) | static unsigned long zipmapRequiredLength(unsigned int klen, unsigned in... function zipmapRawKeyLength (line 178) | static unsigned int zipmapRawKeyLength(unsigned char *p) { function zipmapRawValueLength (line 185) | static unsigned int zipmapRawValueLength(unsigned char *p) { function zipmapRawEntryLength (line 197) | static unsigned int zipmapRawEntryLength(unsigned char *p) { function zipmapGet (line 334) | int zipmapGet(unsigned char *zm, unsigned char *key, unsigned int klen, ... function zipmapExists (line 345) | int zipmapExists(unsigned char *zm, unsigned char *key, unsigned int kle... function zipmapLen (line 350) | unsigned int zipmapLen(unsigned char *zm) { function zipmapBlobLen (line 367) | size_t zipmapBlobLen(unsigned char *zm) { function zipmapRepr (line 374) | static void zipmapRepr(unsigned char *p) { function zipmapTest (line 408) | int zipmapTest(int argc, char *argv[]) { FILE: Chapter02/redis-6.0.3/src/zmalloc.c function zlibc_free (line 39) | void zlibc_free(void *ptr) { function zmalloc_default_oom (line 89) | static void zmalloc_default_oom(size_t size) { function zfree_no_tcache (line 123) | void zfree_no_tcache(void *ptr) { function zmalloc_size (line 181) | size_t zmalloc_size(void *ptr) { function zmalloc_usable (line 189) | size_t zmalloc_usable(void *ptr) { function zfree (line 194) | void zfree(void *ptr) { function zmalloc_used_memory (line 220) | size_t zmalloc_used_memory(void) { function zmalloc_set_oom_handler (line 226) | void zmalloc_set_oom_handler(void (*oom_handler)(size_t)) { function zmalloc_get_rss (line 246) | size_t zmalloc_get_rss(void) { function zmalloc_get_rss (line 286) | size_t zmalloc_get_rss(void) { function zmalloc_get_rss (line 303) | size_t zmalloc_get_rss(void) { function zmalloc_get_rss (line 318) | size_t zmalloc_get_rss(void) { function zmalloc_get_allocator_info (line 330) | int zmalloc_get_allocator_info(size_t *allocated, function set_jemalloc_bg_thread (line 352) | void set_jemalloc_bg_thread(int enable) { function jemalloc_purge (line 359) | int jemalloc_purge() { function zmalloc_get_allocator_info (line 374) | int zmalloc_get_allocator_info(size_t *allocated, function set_jemalloc_bg_thread (line 381) | void set_jemalloc_bg_thread(int enable) { function jemalloc_purge (line 385) | int jemalloc_purge() { function zmalloc_get_smap_bytes_by_field (line 410) | size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) { function zmalloc_get_smap_bytes_by_field (line 445) | size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) { function zmalloc_get_private_dirty (line 466) | size_t zmalloc_get_private_dirty(long pid) { function zmalloc_get_memory_size (line 483) | size_t zmalloc_get_memory_size(void) { function zmalloc_test (line 528) | int zmalloc_test(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/tests/modules/auth.c function UserChangedCallback (line 8) | void UserChangedCallback(uint64_t client_id, void *privdata) { function Auth_CreateModuleUser (line 14) | int Auth_CreateModuleUser(RedisModuleCtx *ctx, RedisModuleString **argv,... function Auth_AuthModuleUser (line 30) | int Auth_AuthModuleUser(RedisModuleCtx *ctx, RedisModuleString **argv, i... function Auth_AuthRealUser (line 39) | int Auth_AuthRealUser(RedisModuleCtx *ctx, RedisModuleString **argv, int... function Auth_ChangeCount (line 56) | int Auth_ChangeCount(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function RedisModule_OnLoad (line 66) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/tests/modules/blockonkeys.c type fsl_t (line 10) | typedef struct { function fsl_t (line 17) | fsl_t *fsl_type_create() { function fsl_type_free (line 24) | void fsl_type_free(fsl_t *o) { function fsl_rdb_save (line 41) | void fsl_rdb_save(RedisModuleIO *rdb, void *value) { function fsl_aofrw (line 48) | void fsl_aofrw(RedisModuleIO *aof, RedisModuleString *key, void *value) { function fsl_free (line 54) | void fsl_free(void *value) { function get_fsl (line 60) | int get_fsl(RedisModuleCtx *ctx, RedisModuleString *keyname, int mode, i... function fsl_push (line 93) | int fsl_push(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function bpop_reply_callback (line 117) | int bpop_reply_callback(RedisModuleCtx *ctx, RedisModuleString **argv, i... function bpop_timeout_callback (line 130) | int bpop_timeout_callback(RedisModuleCtx *ctx, RedisModuleString **argv,... function fsl_bpop (line 138) | int fsl_bpop(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function bpopgt_reply_callback (line 160) | int bpopgt_reply_callback(RedisModuleCtx *ctx, RedisModuleString **argv,... function bpopgt_timeout_callback (line 177) | int bpopgt_timeout_callback(RedisModuleCtx *ctx, RedisModuleString **arg... function bpopgt_free_privdata (line 183) | void bpopgt_free_privdata(RedisModuleCtx *ctx, void *privdata) { function fsl_bpopgt (line 190) | int fsl_bpopgt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function bpoppush_reply_callback (line 219) | int bpoppush_reply_callback(RedisModuleCtx *ctx, RedisModuleString **arg... function bpoppush_timeout_callback (line 239) | int bpoppush_timeout_callback(RedisModuleCtx *ctx, RedisModuleString **a... function bpoppush_free_privdata (line 245) | void bpoppush_free_privdata(RedisModuleCtx *ctx, void *privdata) { function fsl_bpoppush (line 252) | int fsl_bpoppush(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function fsl_getall (line 284) | int fsl_getall(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function RedisModule_OnLoad (line 301) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/tests/modules/commandfilter.c function CommandFilter_UnregisterCommand (line 15) | int CommandFilter_UnregisterCommand(RedisModuleCtx *ctx, RedisModuleStri... function CommandFilter_PingCommand (line 26) | int CommandFilter_PingCommand(RedisModuleCtx *ctx, RedisModuleString **a... function CommandFilter_LogCommand (line 42) | int CommandFilter_LogCommand(RedisModuleCtx *ctx, RedisModuleString **ar... function CommandFilter_CommandFilter (line 77) | void CommandFilter_CommandFilter(RedisModuleCommandFilterCtx *filter) function RedisModule_OnLoad (line 119) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... function RedisModule_OnUnload (line 151) | int RedisModule_OnUnload(RedisModuleCtx *ctx) { FILE: Chapter02/redis-6.0.3/tests/modules/datatype.c type DataType (line 9) | typedef struct { function datatype_save (line 29) | static void datatype_save(RedisModuleIO *io, void *value) { function datatype_free (line 35) | static void datatype_free(void *value) { function datatype_set (line 44) | static int datatype_set(RedisModuleCtx *ctx, RedisModuleString **argv, i... function datatype_restore (line 70) | static int datatype_restore(RedisModuleCtx *ctx, RedisModuleString **arg... function datatype_get (line 90) | static int datatype_get(RedisModuleCtx *ctx, RedisModuleString **argv, i... function datatype_dump (line 106) | static int datatype_dump(RedisModuleCtx *ctx, RedisModuleString **argv, ... function datatype_swap (line 127) | static int datatype_swap(RedisModuleCtx *ctx, RedisModuleString **argv, ... function RedisModule_OnLoad (line 150) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/tests/modules/fork.c function done_handler (line 17) | void done_handler(int exitcode, int bysignal, void *user_data) { function fork_create (line 24) | int fork_create(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function fork_exitcode (line 52) | int fork_exitcode(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function fork_kill (line 60) | int fork_kill(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function RedisModule_OnLoad (line 72) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/tests/modules/hooks.c type EventElement (line 42) | typedef struct EventElement { function LogStringEvent (line 48) | void LogStringEvent(RedisModuleCtx *ctx, const char* keyname, const char... function LogNumericEvent (line 60) | void LogNumericEvent(RedisModuleCtx *ctx, const char* keyname, long data) { function FreeEvent (line 72) | void FreeEvent(RedisModuleCtx *ctx, EventElement *event) { function cmdEventCount (line 78) | int cmdEventCount(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function cmdEventLast (line 90) | int cmdEventLast(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function clearEvents (line 107) | void clearEvents(RedisModuleCtx *ctx) function cmdEventsClear (line 123) | int cmdEventsClear(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function clientChangeCallback (line 132) | void clientChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint6... function flushdbCallback (line 142) | void flushdbCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t s... function roleChangeCallback (line 152) | void roleChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_... function replicationChangeCallback (line 163) | void replicationChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, ... function rasterLinkChangeCallback (line 173) | void rasterLinkChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, u... function persistenceCallback (line 183) | void persistenceCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64... function loadingCallback (line 202) | void loadingCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t s... function loadingProgressCallback (line 218) | void loadingProgressCallback(RedisModuleCtx *ctx, RedisModuleEvent e, ui... function shutdownCallback (line 228) | void shutdownCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t ... function cronLoopCallback (line 237) | void cronLoopCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t ... function moduleChangeCallback (line 246) | void moduleChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint6... function RedisModule_OnLoad (line 258) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... function RedisModule_OnUnload (line 305) | int RedisModule_OnUnload(RedisModuleCtx *ctx) { FILE: Chapter02/redis-6.0.3/tests/modules/infotest.c function InfoFunc (line 5) | void InfoFunc(RedisModuleInfoCtx *ctx, int for_crash_report) { function info_get (line 33) | int info_get(RedisModuleCtx *ctx, RedisModuleString **argv, int argc, ch... function info_gets (line 74) | int info_gets(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function info_getc (line 78) | int info_getc(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function info_geti (line 82) | int info_geti(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function info_getu (line 86) | int info_getu(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function info_getd (line 90) | int info_getd(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function RedisModule_OnLoad (line 94) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/tests/modules/misc.c function test_call_generic (line 11) | int test_call_generic(RedisModuleCtx *ctx, RedisModuleString **argv, int... function test_call_info (line 29) | int test_call_info(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_ld_conv (line 45) | int test_ld_conv(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function test_flushall (line 97) | int test_flushall(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_dbsize (line 106) | int test_dbsize(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_randomkey (line 115) | int test_randomkey(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function RedisModuleKey (line 125) | RedisModuleKey *open_key_or_reply(RedisModuleCtx *ctx, RedisModuleString... function test_getlru (line 134) | int test_getlru(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_setlru (line 148) | int test_setlru(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_getlfu (line 166) | int test_getlfu(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_setlfu (line 180) | int test_setlfu(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function RedisModule_OnLoad (line 198) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/tests/modules/propagate.c function timerHandler (line 45) | void timerHandler(RedisModuleCtx *ctx, void *data) { function propagateTestCommand (line 75) | int propagateTestCommand(RedisModuleCtx *ctx, RedisModuleString **argv, ... function propagateTest2Command (line 93) | int propagateTest2Command(RedisModuleCtx *ctx, RedisModuleString **argv,... function propagateTest3Command (line 105) | int propagateTest3Command(RedisModuleCtx *ctx, RedisModuleString **argv,... function RedisModule_OnLoad (line 125) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/tests/modules/scan.c type scan_strings_pd (line 7) | typedef struct { function scan_strings_callback (line 11) | void scan_strings_callback(RedisModuleCtx *ctx, RedisModuleString* keyna... function scan_strings (line 31) | int scan_strings(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) type scan_key_pd (line 49) | typedef struct { function scan_key_callback (line 54) | void scan_key_callback(RedisModuleKey *key, RedisModuleString* field, Re... function scan_key (line 66) | int scan_key(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function RedisModule_OnLoad (line 94) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter02/redis-6.0.3/tests/modules/testrdb.c function testrdb_type_save (line 35) | void testrdb_type_save(RedisModuleIO *rdb, void *value) { function testrdb_aux_save (line 43) | void testrdb_aux_save(RedisModuleIO *rdb, int when) { function testrdb_aux_load (line 63) | int testrdb_aux_load(RedisModuleIO *rdb, int encver, int when) { function testrdb_type_free (line 92) | void testrdb_type_free(void *value) { function testrdb_set_before (line 97) | int testrdb_set_before(RedisModuleCtx *ctx, RedisModuleString **argv, in... function testrdb_get_before (line 112) | int testrdb_get_before(RedisModuleCtx *ctx, RedisModuleString **argv, in... function testrdb_set_after (line 126) | int testrdb_set_after(RedisModuleCtx *ctx, RedisModuleString **argv, int... function testrdb_get_after (line 141) | int testrdb_get_after(RedisModuleCtx *ctx, RedisModuleString **argv, int... function testrdb_set_key (line 155) | int testrdb_set_key(RedisModuleCtx *ctx, RedisModuleString **argv, int a... function testrdb_get_key (line 173) | int testrdb_get_key(RedisModuleCtx *ctx, RedisModuleString **argv, int a... function RedisModule_OnLoad (line 187) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... function RedisModule_OnUnload (line 253) | int RedisModule_OnUnload(RedisModuleCtx *ctx) { FILE: Chapter02/redis-6.0.3/utils/corrupt_rdb.c function main (line 14) | int main(int argc, char **argv) { FILE: Chapter02/redis-6.0.3/utils/generate-command-help.rb function argument (line 27) | def argument arg function arguments (line 40) | def arguments command function commands (line 47) | def commands function generate_groups (line 67) | def generate_groups function generate_commands (line 73) | def generate_commands FILE: Chapter02/redis-6.0.3/utils/hashtable/rehashing.c function _redisAssert (line 4) | void _redisAssert(char *x, char *y, int l) { function dictKeyHash (line 9) | unsigned int dictKeyHash(const void *keyp) { function dictKeyCompare (line 21) | int dictKeyCompare(void *privdata, const void *key1, const void *key2) { function showBuckets (line 36) | void showBuckets(dictht ht) { function show (line 48) | void show(dict *d) { function sortPointers (line 63) | int sortPointers(const void *a, const void *b) { function stressGetKeys (line 71) | void stressGetKeys(dict *d, int times, int *perfect_run, int *approx_run) { function main (line 101) | int main(void) { FILE: Chapter02/redis-6.0.3/utils/hyperloglog/hll-gnuplot-graph.rb function run_experiment (line 21) | def run_experiment(r,seed,max,step) function filter_samples (line 42) | def filter_samples(numsets,max,step,filter) FILE: Chapter02/redis-6.0.3/utils/lru/lfu-simulation.c type entry (line 10) | struct entry { function minutes_diff (line 28) | uint16_t minutes_diff(uint16_t now, uint16_t prev) { function log_incr (line 36) | uint8_t log_incr(uint8_t counter) { function access_entry (line 47) | void access_entry(struct entry *e) { function scan_entry (line 54) | uint8_t scan_entry(struct entry *e) { function show_entry (line 71) | void show_entry(long pos, struct entry *e) { function main (line 83) | int main(void) { FILE: Chapter02/redis-6.0.3/utils/lru/test-lru.rb function testit (line 7) | def testit(filename) function print_avg (line 187) | def print_avg FILE: Chapter02/redis-6.0.3/utils/redis-copy.rb function redisCopy (line 11) | def redisCopy(opts={}) FILE: Chapter02/redis-6.0.3/utils/redis-sha1.rb function redisSha1 (line 15) | def redisSha1(opts={}) FILE: Chapter02/redis-6.0.3/utils/tracking_collisions.c function crc64Hash (line 34) | uint64_t crc64Hash(char *key, size_t len) { function sha1Hash (line 38) | uint64_t sha1Hash(char *key, size_t len) { function testHashingFunction (line 52) | unsigned long testHashingFunction(uint64_t (*hash)(char *, size_t)) { function main (line 72) | int main(void) { FILE: Chapter03/code/SharedMutex.h function class (line 16) | class SharedMutex final function class (line 39) | class SharedLockGuard final function class (line 53) | class UniqueLockGuard final FILE: Chapter03/code/SingleInstance/SingleInstance.cpp function CheckInstance (line 20) | bool CheckInstance() function _tWinMain (line 34) | int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, function ATOM (line 96) | ATOM MyRegisterClass(HINSTANCE hInstance) function BOOL (line 127) | BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) function LRESULT (line 157) | LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM ... function INT_PTR (line 196) | INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lP... FILE: Chapter03/code/TaskPool.h function class (line 13) | class Task function class (line 28) | class TaskPool final FILE: Chapter03/code/TestFiber.cpp function workerFiberProc (line 8) | void WINAPI workerFiberProc(LPVOID lpFiberParameter) function main (line 23) | int main() FILE: Chapter03/code/TestSharedMutexBenchmark.cpp class shared_mutex_counter (line 16) | class shared_mutex_counter method shared_mutex_counter (line 19) | shared_mutex_counter() = default; method get (line 23) | unsigned int get() const method increment (line 31) | void increment() method reset (line 39) | void reset() class mutex_counter (line 52) | class mutex_counter method mutex_counter (line 55) | mutex_counter() = default; method get (line 59) | unsigned int get() const method increment (line 66) | void increment() function test_shared_mutex (line 79) | void test_shared_mutex() function test_mutex (line 129) | void test_mutex() function main (line 179) | int main() FILE: Chapter03/code/TestWindowsConditionVariable/TestWindowsConditionVariable.cpp class Task (line 10) | class Task method Task (line 13) | Task(int taskID) method doTask (line 18) | void doTask() function DWORD (line 31) | DWORD WINAPI consumerThread(LPVOID param) function DWORD (line 63) | DWORD WINAPI producerThread(LPVOID param) function main (line 90) | int main() FILE: Chapter03/code/c11mutex.cpp function slow_increment (line 10) | void slow_increment(int id) function main (line 23) | int main() FILE: Chapter03/code/c11threadlocal.cpp function thread_func1 (line 7) | void thread_func1() function thread_func2 (line 15) | void thread_func2() function main (line 24) | int main() FILE: Chapter03/code/cpp11cv.cpp class Task (line 9) | class Task method Task (line 12) | Task(int taskID) method doTask (line 17) | void doTask() function main (line 85) | int main() FILE: Chapter03/code/cv.cpp class Task (line 8) | class Task method Task (line 11) | Task(int taskID) method doTask (line 16) | void doTask() function main (line 85) | int main() FILE: Chapter03/code/insecurecrtfunction.cpp function main (line 7) | int main() FILE: Chapter03/code/linuxtid.cpp function main (line 20) | int main() FILE: Chapter03/code/linuxtls.cpp function write_to_thread_log (line 8) | void write_to_thread_log(const char* message) function close_thread_log (line 18) | void close_thread_log(void* logfile) function main (line 43) | int main() FILE: Chapter03/code/linuxtls2.cpp function main (line 29) | int main() FILE: Chapter03/code/makesurethread.cpp function thread_func (line 10) | void thread_func() function main (line 26) | int main() FILE: Chapter03/code/makesurethreadgroup.cpp function thread_func (line 12) | void thread_func() function main (line 28) | int main() FILE: Chapter03/code/rwlock.cpp function main (line 45) | int main() FILE: Chapter03/code/rwlock2.cpp function main (line 45) | int main() FILE: Chapter03/code/rwlock3.cpp function main (line 45) | int main() FILE: Chapter03/code/semaphore.cpp class Task (line 8) | class Task method Task (line 11) | Task(int taskID) method doTask (line 16) | void doTask() type timespec (line 34) | struct timespec function main (line 89) | int main() FILE: Chapter03/code/semaphore_timewait.cpp class Task (line 8) | class Task method Task (line 11) | Task(int taskID) method doTask (line 16) | void doTask() type timespec (line 34) | struct timespec function main (line 89) | int main() FILE: Chapter03/code/taskpoolmain.cpp function main (line 4) | int main() FILE: Chapter03/code/test_cpp11_thread_id.cpp function worker_thread_func (line 6) | void worker_thread_func() function main (line 14) | int main() FILE: Chapter03/code/test_destroy_locked_mutex.cpp function main (line 6) | int main() FILE: Chapter03/code/windowstls.cpp function DWORD (line 6) | DWORD __stdcall WorkerThreadProc1(LPVOID lpThreadParameter) function DWORD (line 17) | DWORD __stdcall WorkerThreadProc2(LPVOID lpThreadParameter) function main (line 27) | int main() FILE: Chapter04/code/IOCPServerDemo/IOCPModel.cpp function DWORD (line 52) | DWORD WINAPI CIOCPModel::_WorkerThread(LPVOID lpParam) type sockaddr_in (line 284) | struct sockaddr_in type sockaddr (line 318) | struct sockaddr function CString (line 613) | CString CIOCPModel::GetLocalIP() FILE: Chapter04/code/IOCPServerDemo/IOCPModel.h type OPERATION_TYPE (line 41) | typedef enum _OPERATION_TYPE type _PER_IO_CONTEXT (line 56) | struct _PER_IO_CONTEXT function ResetBuffer (line 84) | void ResetBuffer() type _PER_SOCKET_CONTEXT (line 98) | struct _PER_SOCKET_CONTEXT function _PER_IO_CONTEXT (line 129) | _PER_IO_CONTEXT* GetNewIoContext() function RemoveContext (line 139) | void RemoveContext(_PER_IO_CONTEXT* pContext) type THREADPARAMS_WORKER (line 168) | typedef struct _tagThreadParams_WORKER function class (line 176) | class CIOCPModel FILE: Chapter04/code/IOCPServerDemo/IOCPServerApp.cpp function BOOL (line 32) | BOOL CIOCPServerApp::InitInstance() FILE: Chapter04/code/IOCPServerDemo/IOCPServerApp.h function class (line 16) | class CIOCPServerApp : public CWinApp FILE: Chapter04/code/IOCPServerDemo/MainDlg.cpp function BOOL (line 36) | BOOL CMainDlg::OnInitDialog() function HCURSOR (line 85) | HCURSOR CMainDlg::OnQueryDragIcon() FILE: Chapter04/code/IOCPServerDemo/MainDlg.h function class (line 8) | class CMainDlg : public CDialog FILE: Chapter04/code/WSAAsyncSelect/WSAAsyncSelect.cpp function _tWinMain (line 22) | int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPT... function SOCKET (line 54) | SOCKET InitSocket() function ATOM (line 96) | ATOM MyRegisterClass(HINSTANCE hInstance) function HWND (line 117) | HWND InitInstance(HINSTANCE hInstance, int nCmdShow) function LRESULT (line 129) | LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPa... function LRESULT (line 157) | LRESULT OnSocketEvent(HWND hWnd, WPARAM wParam, LPARAM lParam) FILE: Chapter04/code/WSAEventSelect/WSAEventSelect.cpp function main (line 12) | int main(int argc, _TCHAR* argv[]) FILE: Chapter04/code/blocking_client.cpp function main (line 16) | int main(int argc, char* argv[]) FILE: Chapter04/code/blocking_client_recv.cpp function main (line 16) | int main(int argc, char* argv[]) FILE: Chapter04/code/blocking_client_send.cpp function main (line 16) | int main(int argc, char* argv[]) FILE: Chapter04/code/blocking_server.cpp function main (line 12) | int main(int argc, char* argv[]) FILE: Chapter04/code/client.cpp function main (line 16) | int main(int argc, char* argv[]) FILE: Chapter04/code/client2.cpp function main (line 16) | int main(int argc, char* argv[]) FILE: Chapter04/code/epoll_server.cpp function main (line 18) | int main() FILE: Chapter04/code/epoll_server_with_oneshot.cpp function main (line 18) | int main() FILE: Chapter04/code/epoll_server_with_oneshot_2.cpp function main (line 18) | int main() FILE: Chapter04/code/epoll_server_write_event_et.cpp function main (line 18) | int main() FILE: Chapter04/code/epoll_server_write_event_lt.cpp function main (line 18) | int main() FILE: Chapter04/code/gethostbyname_linux.cpp function connect_to_server (line 10) | bool connect_to_server(const char* server, short port) function main (line 41) | int main() FILE: Chapter04/code/linux_ioctl.cpp function main (line 20) | int main(int argc, char* argv[]) FILE: Chapter04/code/linux_nonblocking_connect.cpp function main (line 19) | int main(int argc, char* argv[]) FILE: Chapter04/code/linux_nonblocking_connect_poll.cpp function main (line 20) | int main(int argc, char* argv[]) FILE: Chapter04/code/nagle_client.cpp function main (line 16) | int main(int argc, char* argv[]) FILE: Chapter04/code/nodelay_client.cpp function main (line 18) | int main(int argc, char* argv[]) FILE: Chapter04/code/nonblocking_client.cpp function main (line 19) | int main(int argc, char* argv[]) FILE: Chapter04/code/nonblocking_client_recv.cpp function main (line 20) | int main(int argc, char* argv[]) FILE: Chapter04/code/nonblocking_client_send.cpp function main (line 19) | int main(int argc, char* argv[]) FILE: Chapter04/code/nonblocking_client_send_zero_bytes.cpp function main (line 20) | int main(int argc, char* argv[]) FILE: Chapter04/code/nonblocking_connect.cpp function main (line 19) | int main(int argc, char* argv[]) FILE: Chapter04/code/poll_server.cpp function main (line 19) | int main(int argc, char *argv[]) FILE: Chapter04/code/select_client_tv0.cpp function main (line 16) | int main(int argc, char* argv[]) FILE: Chapter04/code/select_client_tvnull.cpp function main (line 16) | int main(int argc, char* argv[]) FILE: Chapter04/code/select_server.cpp function main (line 18) | int main(int argc, char* argv[]) FILE: Chapter04/code/server.cpp function main (line 12) | int main(int argc, char* argv[]) FILE: Chapter04/code/server2.cpp function main (line 13) | int main(int argc, char* argv[]) FILE: Chapter04/code/server_recv_zero_bytes.cpp function main (line 13) | int main(int argc, char* argv[]) FILE: Chapter06/code/ProtocolStream.cpp type net (line 18) | namespace net function checksum (line 21) | unsigned short checksum(const unsigned short* buffer, int size) function write7BitEncoded (line 41) | void write7BitEncoded(uint32_t value, std::string& buf) function write7BitEncoded (line 55) | void write7BitEncoded(uint64_t value, std::string& buf) function read7BitEncoded (line 69) | void read7BitEncoded(const char* buf, uint32_t len, uint32_t& value) function read7BitEncoded (line 87) | void read7BitEncoded(const char* buf, uint32_t len, uint64_t& value) FILE: Chapter06/code/ProtocolStream.h function namespace (line 16) | namespace net FILE: Chapter06/code/RecvMail/Base64Util.h function class (line 5) | class Base64Util final FILE: Chapter06/code/RecvMail/EncodeUtil.cpp function wchar_t (line 11) | wchar_t* EncodeUtil::AnsiToUnicode(const char* lpszStr) function wchar_t (line 198) | wchar_t* EncodeUtil::Utf8ToUnicode(const char* lpszStr) FILE: Chapter06/code/RecvMail/EncodeUtil.h function class (line 18) | class ENCODE_API EncodeUtil FILE: Chapter06/code/RecvMail/MailHelper.h type TEXT_TYPE_ID (line 43) | enum TEXT_TYPE_ID type ENCODE_TYPE_ID (line 51) | enum ENCODE_TYPE_ID type CHARSET_TYPE_ID (line 58) | enum CHARSET_TYPE_ID type TimeItem (line 66) | struct TimeItem function class (line 77) | class MailHelper final FILE: Chapter06/code/RecvMail/MailThread.cpp function DWORD (line 16) | DWORD MailThread::execute() FILE: Chapter06/code/RecvMail/MailThread.h function class (line 5) | class MailThread FILE: Chapter06/code/RecvMail/Platform.h type socklen_t (line 20) | typedef int socklen_t; type in_addr_t (line 22) | typedef unsigned int in_addr_t; type epoll_data_t (line 38) | typedef union epoll_data { type epoll_event (line 45) | struct epoll_event { function class (line 59) | class NetworkInitializer type SOCKET (line 70) | typedef int SOCKET; FILE: Chapter06/code/RecvMail/Pop3Socket.cpp type MailItem (line 14) | struct MailItem type Pop3Socket::Impl (line 37) | struct Pop3Socket::Impl type sockaddr_in (line 97) | struct sockaddr_in type hostent (line 98) | struct hostent type sockaddr (line 126) | struct sockaddr FILE: Chapter06/code/RecvMail/Pop3Socket.h function class (line 16) | class Pop3Socket FILE: Chapter06/code/RecvMail/main.cpp function main (line 17) | int main() FILE: Chapter06/code/SendMail/Base64Util.h function class (line 3) | class Base64Util final FILE: Chapter06/code/SendMail/MailMonitor.cpp function MailMonitor (line 8) | MailMonitor& MailMonitor::getInstance() FILE: Chapter06/code/SendMail/MailMonitor.h type MailItem (line 16) | struct MailItem function class (line 22) | class MailMonitor final FILE: Chapter06/code/SendMail/Platform.h type socklen_t (line 20) | typedef int socklen_t; type in_addr_t (line 22) | typedef unsigned int in_addr_t; type epoll_data_t (line 38) | typedef union epoll_data { type epoll_event (line 45) | struct epoll_event { function class (line 59) | class NetworkInitializer type SOCKET (line 68) | typedef int SOCKET; FILE: Chapter06/code/SendMail/SmtpSocket.cpp type sockaddr_in (line 133) | struct sockaddr_in type hostent (line 134) | struct hostent type sockaddr (line 164) | struct sockaddr FILE: Chapter06/code/SendMail/SmtpSocket.h function class (line 12) | class SmtpSocket final FILE: Chapter06/code/SendMail/main.cpp function prog_exit (line 18) | void prog_exit(int signo) function main (line 35) | int main(int argc, char* argv[]) FILE: Chapter06/code/WebSocketServer/appsrc/BusinessSession.h function class (line 21) | class BusinessSession : public MyWebSocketSession FILE: Chapter06/code/WebSocketServer/appsrc/main.cpp function prog_exit (line 27) | void prog_exit(int signo) function main (line 40) | int main(int argc, char* argv[]) FILE: Chapter06/code/WebSocketServer/base/AsyncLog.cpp type timeb (line 431) | struct timeb FILE: Chapter06/code/WebSocketServer/base/AsyncLog.h type LOG_LEVEL (line 26) | enum LOG_LEVEL function class (line 53) | class LOG_API CAsyncLog FILE: Chapter06/code/WebSocketServer/base/ConfigFileReader.h function class (line 11) | class CConfigFileReader FILE: Chapter06/code/WebSocketServer/base/Platform.h type socklen_t (line 20) | typedef int socklen_t; type in_addr_t (line 22) | typedef unsigned int in_addr_t; type epoll_data_t (line 38) | typedef union epoll_data { type epoll_event (line 45) | struct epoll_event { function class (line 59) | class NetworkInitializer type SOCKET (line 68) | typedef int SOCKET; FILE: Chapter06/code/WebSocketServer/base/RAIIWrapper.h function virtual (line 10) | virtual ~RAIIWrapper() FILE: Chapter06/code/WebSocketServer/base/Singleton.h function init (line 24) | static void init() function destroy (line 30) | static void destroy() FILE: Chapter06/code/WebSocketServer/base/Timestamp.cpp function string (line 15) | string Timestamp::toString() const function string (line 24) | string Timestamp::toFormattedString(bool showMicroseconds) const function Timestamp (line 73) | Timestamp Timestamp::now() function Timestamp (line 83) | Timestamp Timestamp::invalid() FILE: Chapter06/code/WebSocketServer/base/Timestamp.h function class (line 9) | class Timestamp function string (line 56) | string toString() const; function timeDifference (line 117) | inline double timeDifference(Timestamp high, Timestamp low) function Timestamp (line 128) | inline Timestamp addTime(Timestamp timestamp, int64_t microseconds) FILE: Chapter06/code/WebSocketServer/net/Acceptor.h function namespace (line 9) | namespace net FILE: Chapter06/code/WebSocketServer/net/Buffer.cpp type iovec (line 20) | struct iovec FILE: Chapter06/code/WebSocketServer/net/Buffer.h function namespace (line 14) | namespace net FILE: Chapter06/code/WebSocketServer/net/Callbacks.h function namespace (line 65) | namespace net FILE: Chapter06/code/WebSocketServer/net/Channel.cpp function string (line 163) | string Channel::reventsToString() const FILE: Chapter06/code/WebSocketServer/net/Channel.h function namespace (line 8) | namespace net FILE: Chapter06/code/WebSocketServer/net/Connector.h function namespace (line 8) | namespace net FILE: Chapter06/code/WebSocketServer/net/Endian.h function namespace (line 3) | namespace net FILE: Chapter06/code/WebSocketServer/net/EpollPoller.cpp function Timestamp (line 58) | Timestamp EPollPoller::poll(int timeoutMs, ChannelList* activeChannels) type epoll_event (line 207) | struct epoll_event FILE: Chapter06/code/WebSocketServer/net/EpollPoller.h type epoll_event (line 12) | struct epoll_event function namespace (line 14) | namespace net FILE: Chapter06/code/WebSocketServer/net/EventLoop.cpp function EventLoop (line 28) | EventLoop* getEventLoopOfCurrentThread() function TimerId (line 186) | TimerId EventLoop::runAt(const Timestamp& time, const TimerCallback& cb) function TimerId (line 192) | TimerId EventLoop::runAfter(int64_t delay, const TimerCallback& cb) function TimerId (line 198) | TimerId EventLoop::runEvery(int64_t interval, const TimerCallback& cb) function TimerId (line 205) | TimerId EventLoop::runAt(const Timestamp& time, TimerCallback&& cb) function TimerId (line 210) | TimerId EventLoop::runAfter(int64_t delay, TimerCallback&& cb) function TimerId (line 216) | TimerId EventLoop::runEvery(int64_t interval, TimerCallback&& cb) type sockaddr_in (line 280) | struct sockaddr_in type sockaddr_in (line 289) | struct sockaddr_in type sockaddr (line 304) | struct sockaddr type sockaddr_in (line 311) | struct sockaddr_in type sockaddr (line 313) | struct sockaddr FILE: Chapter06/code/WebSocketServer/net/EventLoop.h function namespace (line 17) | namespace net FILE: Chapter06/code/WebSocketServer/net/EventLoopThread.cpp function EventLoop (line 27) | EventLoop* EventLoopThread::startLoop() FILE: Chapter06/code/WebSocketServer/net/EventLoopThread.h function namespace (line 10) | namespace net FILE: Chapter06/code/WebSocketServer/net/EventLoopThreadPool.cpp function EventLoop (line 70) | EventLoop* EventLoopThreadPool::getNextLoop() function EventLoop (line 92) | EventLoop* EventLoopThreadPool::getLoopForHash(size_t hashCode) FILE: Chapter06/code/WebSocketServer/net/EventLoopThreadPool.h function namespace (line 9) | namespace net FILE: Chapter06/code/WebSocketServer/net/InetAddress.cpp type hostent (line 70) | struct hostent type hostent (line 71) | struct hostent type in_addr (line 80) | struct in_addr FILE: Chapter06/code/WebSocketServer/net/InetAddress.h function namespace (line 6) | namespace net FILE: Chapter06/code/WebSocketServer/net/PollPoller.cpp function Timestamp (line 22) | Timestamp PollPoller::poll(int timeoutMs, ChannelList* activeChannels) type pollfd (line 83) | struct pollfd type pollfd (line 105) | struct pollfd type pollfd (line 137) | struct pollfd FILE: Chapter06/code/WebSocketServer/net/PollPoller.h type pollfd (line 9) | struct pollfd function namespace (line 11) | namespace net FILE: Chapter06/code/WebSocketServer/net/Poller.h function namespace (line 6) | namespace net FILE: Chapter06/code/WebSocketServer/net/ProtocolStream.cpp type net (line 18) | namespace net function checksum (line 21) | unsigned short checksum(const unsigned short *buffer, int size) function compress_ (line 41) | bool compress_(unsigned int i, char *buf, size_t &len) function uncompress_ (line 70) | bool uncompress_(char *buf, size_t len, unsigned int &i) FILE: Chapter06/code/WebSocketServer/net/ProtocolStream.h function namespace (line 18) | namespace net FILE: Chapter06/code/WebSocketServer/net/SelectPoller.cpp function Timestamp (line 41) | Timestamp SelectPoller::poll(int timeoutMs, ChannelList* activeChannels) type epoll_event (line 243) | struct epoll_event FILE: Chapter06/code/WebSocketServer/net/SelectPoller.h function namespace (line 8) | namespace net FILE: Chapter06/code/WebSocketServer/net/Sockets.cpp type sockaddr_in (line 67) | struct sockaddr_in type sockaddr (line 122) | struct sockaddr type sockaddr_in (line 122) | struct sockaddr_in type sockaddr (line 124) | struct sockaddr type sockaddr (line 127) | struct sockaddr type sockaddr_in (line 127) | struct sockaddr_in type sockaddr (line 129) | struct sockaddr type sockaddr_in (line 132) | struct sockaddr_in type sockaddr (line 132) | struct sockaddr type sockaddr_in (line 134) | struct sockaddr_in type sockaddr_in (line 137) | struct sockaddr_in type sockaddr (line 137) | struct sockaddr type sockaddr_in (line 139) | struct sockaddr_in function SOCKET (line 142) | SOCKET sockets::createOrDie() function SOCKET (line 161) | SOCKET sockets::createNonblockingOrDie() type sockaddr_in (line 204) | struct sockaddr_in type sockaddr_in (line 222) | struct sockaddr_in type sockaddr_in (line 298) | struct sockaddr_in type iovec (line 313) | struct iovec type sockaddr_in (line 353) | struct sockaddr_in type sockaddr_in (line 367) | struct sockaddr_in type sockaddr_in (line 369) | struct sockaddr_in type sockaddr_in (line 375) | struct sockaddr_in type sockaddr_in (line 406) | struct sockaddr_in type sockaddr_in (line 408) | struct sockaddr_in type sockaddr_in (line 420) | struct sockaddr_in type sockaddr_in (line 422) | struct sockaddr_in type sockaddr_in (line 435) | struct sockaddr_in type sockaddr_in (line 436) | struct sockaddr_in FILE: Chapter06/code/WebSocketServer/net/Sockets.h type tcp_info (line 7) | struct tcp_info function namespace (line 9) | namespace net FILE: Chapter06/code/WebSocketServer/net/TcpClient.cpp type net (line 24) | namespace net type detail (line 26) | namespace detail function removeConnection (line 29) | void removeConnection(EventLoop* loop, const TcpConnectionPtr& conn) function removeConnector (line 34) | void removeConnector(const ConnectorPtr& connector) FILE: Chapter06/code/WebSocketServer/net/TcpClient.h function namespace (line 7) | namespace net FILE: Chapter06/code/WebSocketServer/net/TcpConnection.cpp type tcp_info (line 54) | struct tcp_info function string (line 60) | string TcpConnection::getTcpInfoString() const FILE: Chapter06/code/WebSocketServer/net/TcpConnection.h type tcp_info (line 11) | struct tcp_info function namespace (line 13) | namespace net FILE: Chapter06/code/WebSocketServer/net/TcpServer.h function namespace (line 11) | namespace net FILE: Chapter06/code/WebSocketServer/net/Timer.h function namespace (line 8) | namespace net FILE: Chapter06/code/WebSocketServer/net/TimerId.h function namespace (line 3) | namespace net FILE: Chapter06/code/WebSocketServer/net/TimerQueue.cpp type net (line 11) | namespace net function TimerId (line 100) | TimerId TimerQueue::addTimer(const TimerCallback& cb, Timestamp when, in... function TimerId (line 107) | TimerId TimerQueue::addTimer(TimerCallback&& cb, Timestamp when, int64_t... FILE: Chapter06/code/WebSocketServer/net/TimerQueue.h function namespace (line 10) | namespace net FILE: Chapter06/code/WebSocketServer/utils/DaemonRun.cpp function daemon_run (line 15) | void daemon_run() FILE: Chapter06/code/WebSocketServer/utils/StringUtil.h function class (line 11) | class StringUtil FILE: Chapter06/code/WebSocketServer/utils/UUIDGenerator.h function class (line 11) | class UUIDGenerator final FILE: Chapter06/code/WebSocketServer/websocketsrc/MyWebSocketServer.h function class (line 21) | class MyWebSocketServer final FILE: Chapter06/code/WebSocketServer/websocketsrc/MyWebSocketSession.h type MyOpCode (line 20) | enum MyOpCode : unsigned char function class (line 40) | class MyWebSocketSession FILE: Chapter06/code/WebSocketServer/websocketsrc/WebSocketHandshake.h function namespace (line 24) | namespace js { function rol (line 42) | static inline uint32_t rol(uint32_t value, size_t bits) {return (value <... function blk (line 43) | static inline uint32_t blk(uint32_t b[16], size_t i) { function f (line 48) | inline void f(uint32_t *a, uint32_t *b) { function sha1 (line 80) | static inline void sha1(uint32_t hash[5], uint32_t b[16]) { function base64 (line 90) | static inline void base64(unsigned char *src, char *dst) { FILE: Chapter06/code/WebSocketServer/zlib1.2.11/ZlibUtil.h function class (line 9) | class ZlibUtil FILE: Chapter06/code/WebSocketServer/zlib1.2.11/adler32.c function uLong (line 63) | uLong ZEXPORT adler32_z(adler, buf, len) function uLong (line 134) | uLong ZEXPORT adler32(adler, buf, len) function local (line 143) | local uLong adler32_combine_(adler1, adler2, len2) function uLong (line 172) | uLong ZEXPORT adler32_combine(adler1, adler2, len2) function uLong (line 180) | uLong ZEXPORT adler32_combine64(adler1, adler2, len2) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/compress.c function compress2 (line 22) | int ZEXPORT compress2 (dest, destLen, source, sourceLen, level) function compress (line 68) | int ZEXPORT compress (dest, destLen, source, sourceLen) function uLong (line 81) | uLong ZEXPORT compressBound (sourceLen) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/crc32.c function local (line 88) | local void make_crc_table() function local (line 165) | local void write_table(out, table) function z_crc_t (line 188) | const z_crc_t FAR * ZEXPORT get_crc_table() function crc32_z (line 202) | unsigned long ZEXPORT crc32_z(crc, buf, len) function crc32 (line 237) | unsigned long ZEXPORT crc32(crc, buf, len) function crc32_little (line 266) | local unsigned long crc32_little(crc, buf, len) function crc32_big (line 306) | local unsigned long crc32_big(crc, buf, len) function gf2_matrix_times (line 344) | local unsigned long gf2_matrix_times(mat, vec) function local (line 361) | local void gf2_matrix_square(square, mat) function local (line 372) | local uLong crc32_combine_(crc1, crc2, len2) function uLong (line 428) | uLong ZEXPORT crc32_combine(crc1, crc2, len2) function uLong (line 436) | uLong ZEXPORT crc32_combine64(crc1, crc2, len2) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/deflate.c type block_state (line 66) | typedef enum { type block_state (line 73) | typedef block_state (*compress_func) type config (line 120) | typedef struct config_s { function local (line 201) | local void slide_hash(s) function deflateInit_ (line 228) | int ZEXPORT deflateInit_(strm, level, version, stream_size) function deflateInit2_ (line 240) | int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, str... function local (line 353) | local int deflateStateCheck (strm) function deflateSetDictionary (line 376) | int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength) function deflateGetDictionary (line 445) | int ZEXPORT deflateGetDictionary (strm, dictionary, dictLength) function deflateReset (line 505) | int ZEXPORT deflateReset (strm) function deflateSetHeader (line 517) | int ZEXPORT deflateSetHeader (strm, head) function deflatePending (line 528) | int ZEXPORT deflatePending (strm, pending, bits) function deflatePrime (line 542) | int ZEXPORT deflatePrime (strm, bits, value) function deflateParams (line 568) | int ZEXPORT deflateParams(strm, level, strategy) function deflateTune (line 617) | int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_ch... function uLong (line 652) | uLong ZEXPORT deflateBound(strm, sourceLen) function local (line 716) | local void putShortMSB (s, b) function local (line 730) | local void flush_pending(strm) function deflate (line 763) | int ZEXPORT deflate (strm, flush) function deflateEnd (line 1076) | int ZEXPORT deflateEnd (strm) function deflateCopy (line 1102) | int ZEXPORT deflateCopy (dest, source) function read_buf (line 1164) | local unsigned read_buf(strm, buf, size) function local (line 1194) | local void lm_init (s) function local (line 1236) | local uInt longest_match(s, cur_match) function local (line 1385) | local uInt longest_match(s, cur_match) function local (line 1448) | local void check_match(s, start, match, length) function local (line 1482) | local void fill_window(s) function local (line 1643) | local block_state deflate_stored(s, flush) function local (line 1824) | local block_state deflate_fast(s, flush) function local (line 1926) | local block_state deflate_slow(s, flush) function local (line 2057) | local block_state deflate_rle(s, flush) function local (line 2130) | local block_state deflate_huff(s, flush) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/deflate.h type ct_data (line 68) | typedef struct ct_data_s { type static_tree_desc (line 84) | typedef struct static_tree_desc_s static_tree_desc; type tree_desc (line 86) | typedef struct tree_desc_s { type ush (line 92) | typedef ush Pos; type Pos (line 93) | typedef Pos FAR Posf; type IPos (line 94) | typedef unsigned IPos; type deflate_state (line 100) | typedef struct internal_state { FILE: Chapter06/code/WebSocketServer/zlib1.2.11/gzclose.c function gzclose (line 11) | int ZEXPORT gzclose(file) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/gzguts.h type gz_state (line 173) | typedef struct { type gz_state (line 205) | typedef gz_state FAR *gz_statep; FILE: Chapter06/code/WebSocketServer/zlib1.2.11/gzlib.c function local (line 74) | local void gz_reset(state) function local (line 90) | local gzFile gz_open(path, fd, mode) function gzFile (line 269) | gzFile ZEXPORT gzopen(path, mode) function gzFile (line 277) | gzFile ZEXPORT gzopen64(path, mode) function gzFile (line 285) | gzFile ZEXPORT gzdopen(fd, mode) function gzFile (line 306) | gzFile ZEXPORT gzopen_w(path, mode) function gzbuffer (line 315) | int ZEXPORT gzbuffer(file, size) function gzrewind (line 342) | int ZEXPORT gzrewind(file) function z_off64_t (line 365) | z_off64_t ZEXPORT gzseek64(file, offset, whence) function z_off_t (line 442) | z_off_t ZEXPORT gzseek(file, offset, whence) function z_off64_t (line 454) | z_off64_t ZEXPORT gztell64(file) function z_off_t (line 471) | z_off_t ZEXPORT gztell(file) function z_off64_t (line 481) | z_off64_t ZEXPORT gzoffset64(file) function z_off_t (line 504) | z_off_t ZEXPORT gzoffset(file) function gzeof (line 514) | int ZEXPORT gzeof(file) function gzclearerr (line 552) | void ZEXPORT gzclearerr(file) function gz_error (line 578) | void ZLIB_INTERNAL gz_error(state, err, msg) function gz_intmax (line 624) | unsigned ZLIB_INTERNAL gz_intmax() FILE: Chapter06/code/WebSocketServer/zlib1.2.11/gzread.c function local (line 20) | local int gz_load(state, buf, len, have) function local (line 55) | local int gz_avail(state) function local (line 90) | local int gz_look(state) function local (line 174) | local int gz_decomp(state) function local (line 228) | local int gz_fetch(state) function local (line 258) | local int gz_skip(state, len) function local (line 293) | local z_size_t gz_read(state, buf, len) function gzread (line 374) | int ZEXPORT gzread(file, buf, len) function z_size_t (line 410) | z_size_t ZEXPORT gzfread(buf, size, nitems, file) function gzgetc (line 446) | int ZEXPORT gzgetc(file) function gzgetc_ (line 475) | int ZEXPORT gzgetc_(file) function gzungetc (line 482) | int ZEXPORT gzungetc(c, file) function gzdirect (line 606) | int ZEXPORT gzdirect(file) function gzclose_r (line 626) | int ZEXPORT gzclose_r(file) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/gzwrite.c function local (line 17) | local int gz_init(state) function local (line 73) | local int gz_comp(state, flush) function local (line 145) | local int gz_zero(state, len) function local (line 178) | local z_size_t gz_write(state, buf, len) function gzwrite (line 246) | int ZEXPORT gzwrite(file, buf, len) function z_size_t (line 274) | z_size_t ZEXPORT gzfwrite(buf, size, nitems, file) function gzputc (line 304) | int ZEXPORT gzputc(file, c) function gzputs (line 352) | int ZEXPORT gzputs(file, str) function gzvprintf (line 379) | int ZEXPORTVA gzvprintf(gzFile file, const char *format, va_list va) function gzprintf (line 451) | int ZEXPORTVA gzprintf(gzFile file, const char *format, ...) function ZEXPORTVA (line 465) | int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9... function gzflush (line 553) | int ZEXPORT gzflush(file, flush) function gzsetparams (line 585) | int ZEXPORT gzsetparams(file, level, strategy) function gzclose_w (line 627) | int ZEXPORT gzclose_w(file) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/infback.c type inflate_state (line 19) | struct inflate_state function inflateBackInit_ (line 28) | int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_s... function local (line 82) | local void fixedtables(state) function inflateBack (line 250) | int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc) function inflateBackEnd (line 631) | int ZEXPORT inflateBackEnd(strm) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/inffast.c function inflate_fast (line 50) | void ZLIB_INTERNAL inflate_fast(strm, start) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/inflate.c type inflate_state (line 96) | struct inflate_state function local (line 105) | local int inflateStateCheck(strm) function inflateResetKeep (line 119) | int ZEXPORT inflateResetKeep(strm) function inflateReset (line 144) | int ZEXPORT inflateReset(strm) function inflateReset2 (line 157) | int ZEXPORT inflateReset2(strm, windowBits) function inflateInit2_ (line 195) | int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size) function inflateInit_ (line 239) | int ZEXPORT inflateInit_(strm, version, stream_size) function inflatePrime (line 247) | int ZEXPORT inflatePrime(strm, bits, value) function local (line 278) | local void fixedtables(state) function makefixed (line 342) | void makefixed() function local (line 396) | local int updatewindow(strm, end, copy) type inflate_state (line 626) | struct inflate_state type inflate_state (line 649) | struct inflate_state type inflate_state (line 1280) | struct inflate_state type inflate_state (line 1283) | struct inflate_state type inflate_state (line 1296) | struct inflate_state type inflate_state (line 1300) | struct inflate_state type inflate_state (line 1319) | struct inflate_state type inflate_state (line 1325) | struct inflate_state type inflate_state (line 1353) | struct inflate_state type inflate_state (line 1357) | struct inflate_state type inflate_state (line 1406) | struct inflate_state type inflate_state (line 1410) | struct inflate_state type inflate_state (line 1454) | struct inflate_state type inflate_state (line 1457) | struct inflate_state type inflate_state (line 1465) | struct inflate_state type inflate_state (line 1466) | struct inflate_state type inflate_state (line 1473) | struct inflate_state type inflate_state (line 1476) | struct inflate_state type inflate_state (line 1477) | struct inflate_state type inflate_state (line 1491) | struct inflate_state type internal_state (line 1504) | struct internal_state type inflate_state (line 1512) | struct inflate_state type inflate_state (line 1515) | struct inflate_state type inflate_state (line 1530) | struct inflate_state type inflate_state (line 1533) | struct inflate_state type inflate_state (line 1544) | struct inflate_state type inflate_state (line 1548) | struct inflate_state type inflate_state (line 1557) | struct inflate_state type inflate_state (line 1559) | struct inflate_state FILE: Chapter06/code/WebSocketServer/zlib1.2.11/inflate.h type inflate_mode (line 20) | typedef enum { type inflate_state (line 82) | struct inflate_state { FILE: Chapter06/code/WebSocketServer/zlib1.2.11/inftrees.c function inflate_table (line 32) | int ZLIB_INTERNAL inflate_table(type, lens, codes, table, bits, work) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/inftrees.h type code (line 24) | typedef struct { type codetype (line 54) | typedef enum { FILE: Chapter06/code/WebSocketServer/zlib1.2.11/trees.c type static_tree_desc_s (line 117) | struct static_tree_desc_s { function local (line 186) | local void send_bits(s, value, length) function local (line 232) | local void tr_static_init() function gen_trees_header (line 326) | void gen_trees_header() function _tr_init (line 379) | void ZLIB_INTERNAL _tr_init(s) function local (line 407) | local void init_block(s) function local (line 451) | local void pqdownheap(s, tree, k) function local (line 486) | local void gen_bitlen(s, desc) function local (line 572) | local void gen_codes (tree, max_code, bl_count) function local (line 615) | local void build_tree(s, desc) function local (line 703) | local void scan_tree (s, tree, max_code) function local (line 748) | local void send_tree (s, tree, max_code) function local (line 799) | local int build_bl_tree(s) function local (line 834) | local void send_all_trees(s, lcodes, dcodes, blcodes) function _tr_stored_block (line 863) | void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last) function _tr_flush_bits (line 886) | void ZLIB_INTERNAL _tr_flush_bits(s) function _tr_align (line 896) | void ZLIB_INTERNAL _tr_align(s) function ZLIB_INTERNAL (line 1014) | int ZLIB_INTERNAL _tr_tally (s, dist, lc) function local (line 1064) | local void compress_block(s, ltree, dtree) function local (line 1124) | local int detect_data_type(s) function bi_reverse (line 1158) | local unsigned bi_reverse(code, len) function local (line 1173) | local void bi_flush(s) function local (line 1190) | local void bi_windup(s) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/uncompr.c function uncompress2 (line 27) | int ZEXPORT uncompress2 (dest, destLen, source, sourceLen) function uncompress (line 86) | int ZEXPORT uncompress (dest, destLen, source, sourceLen) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/zconf.h type z_size_t (line 241) | typedef unsigned long z_size_t; type z_size_t (line 245) | typedef unsigned NO_SIZE_T z_size_t; type z_size_t (line 248) | typedef size_t z_size_t; type z_size_t (line 250) | typedef unsigned long z_size_t; type Byte (line 391) | typedef unsigned char Byte; type uInt (line 393) | typedef unsigned int uInt; type uLong (line 394) | typedef unsigned long uLong; type Byte (line 400) | typedef Byte FAR Bytef; type charf (line 402) | typedef char FAR charf; type intf (line 403) | typedef int FAR intf; type uInt (line 404) | typedef uInt FAR uIntf; type uLong (line 405) | typedef uLong FAR uLongf; type Byte (line 412) | typedef Byte const *voidpc; type Byte (line 413) | typedef Byte FAR *voidpf; type Byte (line 414) | typedef Byte *voidp; type Z_U4 (line 429) | typedef Z_U4 z_crc_t; type z_crc_t (line 431) | typedef unsigned long z_crc_t; FILE: Chapter06/code/WebSocketServer/zlib1.2.11/zlib.h type voidpf (line 81) | typedef voidpf (*alloc_func) type internal_state (line 84) | struct internal_state type z_stream (line 86) | typedef struct z_stream_s { type z_stream (line 108) | typedef z_stream FAR *z_streamp; type gz_header (line 114) | typedef struct gz_header_s { type gz_header (line 131) | typedef gz_header FAR *gz_headerp; type gzFile_s (line 1300) | struct gzFile_s type gzFile_s (line 1817) | struct gzFile_s { FILE: Chapter06/code/WebSocketServer/zlib1.2.11/zutil.c function uLong (line 32) | uLong ZEXPORT zlibCompileFlags() function ZLIB_INTERNAL (line 122) | void ZLIB_INTERNAL z_error (m) function zmemcpy (line 149) | void ZLIB_INTERNAL zmemcpy(dest, source, len) function zmemcmp (line 160) | int ZLIB_INTERNAL zmemcmp(s1, s2, len) function zmemzero (line 173) | void ZLIB_INTERNAL zmemzero(dest, len) type ptr_table (line 204) | typedef struct ptr_table_s { function voidpf (line 217) | voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size) function ZLIB_INTERNAL (line 243) | void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr) function voidpf (line 280) | voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size) function ZLIB_INTERNAL (line 286) | void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr) function voidpf (line 305) | voidpf ZLIB_INTERNAL zcalloc (opaque, items, size) function ZLIB_INTERNAL (line 315) | void ZLIB_INTERNAL zcfree (opaque, ptr) FILE: Chapter06/code/WebSocketServer/zlib1.2.11/zutil.h type uch (line 43) | typedef unsigned char uch; type uch (line 44) | typedef uch FAR uchf; type ush (line 45) | typedef unsigned short ush; type ush (line 46) | typedef ush FAR ushf; type ulg (line 47) | typedef unsigned long ulg; FILE: Chapter06/code/curl/CurlClient.cpp function reqReply (line 10) | size_t reqReply(void* ptr, size_t size, size_t nmemb, void* stream) type curl_slist (line 83) | struct curl_slist type curl_slist (line 140) | struct curl_slist FILE: Chapter06/code/curl/CurlClient.h function class (line 13) | class CCurlClient final FILE: Chapter06/code/curl/curl.h type CURL (line 104) | typedef struct Curl_easy CURL; type CURLSH (line 105) | typedef struct Curl_share CURLSH; type CURL (line 107) | typedef void CURL; type CURLSH (line 108) | typedef void CURLSH; type SOCKET (line 134) | typedef SOCKET curl_socket_t; type curl_socket_t (line 137) | typedef int curl_socket_t; type curl_sslbackend (line 144) | typedef enum { type curl_httppost (line 168) | struct curl_httppost { type curlfiletype (line 264) | typedef enum { type curl_fileinfo (line 290) | struct curl_fileinfo { type curl_slist (line 380) | struct curl_slist type curlsocktype (line 383) | typedef enum { type curl_sockaddr (line 400) | struct curl_sockaddr { type curl_socket_t (line 410) | typedef curl_socket_t type curlioerr (line 418) | typedef enum { type curliocmd (line 425) | typedef enum { type curlioerr (line 431) | typedef curlioerr (*curl_ioctl_callback)(CURL *handle, type curl_infotype (line 452) | typedef enum { type CURLcode (line 477) | typedef enum { type CURLcode (line 685) | typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length); type CURLcode (line 687) | typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */ type curl_proxytype (line 692) | typedef enum { type curl_khtype (line 757) | enum curl_khtype { type curl_khkey (line 766) | struct curl_khkey { type curl_khstat (line 775) | enum curl_khstat { type curl_khmatch (line 786) | enum curl_khmatch { type curl_khkey (line 795) | struct curl_khkey type curl_khkey (line 796) | struct curl_khkey type curl_khmatch (line 797) | enum curl_khmatch type curl_usessl (line 801) | typedef enum { type curl_ftpccc (line 845) | typedef enum { type curl_ftpauth (line 853) | typedef enum { type curl_ftpcreatedir (line 861) | typedef enum { type curl_ftpmethod (line 872) | typedef enum { type CURLoption (line 959) | typedef enum { type CURL_NETRC_OPTION (line 2003) | enum CURL_NETRC_OPTION { type CURL_TLSAUTH (line 2039) | enum CURL_TLSAUTH { type curl_TimeCond (line 2057) | typedef enum { type curl_mime (line 2076) | typedef struct curl_mime_s curl_mime; type curl_mimepart (line 2077) | typedef struct curl_mimepart_s curl_mimepart; type curl_slist (line 2197) | struct curl_slist type CURLformoption (line 2213) | typedef enum { type curl_forms (line 2247) | struct curl_forms { type CURLFORMcode (line 2268) | typedef enum { type curl_httppost (line 2291) | struct curl_httppost type curl_httppost (line 2292) | struct curl_httppost type curl_httppost (line 2316) | struct curl_httppost type curl_httppost (line 2325) | struct curl_httppost type curl_slist (line 2437) | struct curl_slist { type curl_ssl_backend (line 2468) | typedef struct { type CURLsslset (line 2473) | typedef enum { type curl_slist (line 2491) | struct curl_slist type curl_slist (line 2501) | struct curl_slist type curl_certinfo (line 2516) | struct curl_certinfo { type curl_tlssessioninfo (line 2526) | struct curl_tlssessioninfo { type CURLINFO (line 2541) | typedef enum { type curl_closepolicy (line 2618) | typedef enum { type curl_lock_data (line 2643) | typedef enum { type curl_lock_access (line 2659) | typedef enum { type CURLSHcode (line 2675) | typedef enum { type CURLSHoption (line 2685) | typedef enum { type CURLversion (line 2704) | typedef enum { type curl_version_info_data (line 2720) | typedef struct { FILE: Chapter06/code/curl/multi.h type CURLM (line 56) | typedef struct Curl_multi CURLM; type CURLM (line 58) | typedef void CURLM; type CURLMcode (line 61) | typedef enum { type CURLMSG (line 88) | typedef enum { type CURLMsg (line 95) | struct CURLMsg { type CURLMsg (line 103) | typedef struct CURLMsg CURLMsg; type curl_waitfd (line 112) | struct curl_waitfd { type curl_waitfd (line 171) | struct curl_waitfd type CURLMoption (line 335) | typedef enum { type curl_pushheaders (line 424) | struct curl_pushheaders type curl_pushheaders (line 426) | struct curl_pushheaders type curl_pushheaders (line 428) | struct curl_pushheaders type curl_pushheaders (line 434) | struct curl_pushheaders FILE: Chapter06/code/curl/system.h type CURL_TYPEOF_CURL_SOCKLEN_T (line 436) | typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; type CURL_TYPEOF_CURL_OFF_T (line 442) | typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; FILE: Chapter06/code/curl/typecheck-gcc.h type curlioerr (line 570) | typedef curlioerr (*_curl_ioctl_callback1)(CURL *, int, void *); type curlioerr (line 571) | typedef curlioerr (*_curl_ioctl_callback2)(CURL *, int, const void *); type curlioerr (line 572) | typedef curlioerr (*_curl_ioctl_callback3)(CURL *, curliocmd, void *); type curlioerr (line 573) | typedef curlioerr (*_curl_ioctl_callback4)(CURL *, curliocmd, const void... type curl_socket_t (line 594) | typedef curl_socket_t (*_curl_opensocket_callback1) type curl_socket_t (line 596) | typedef curl_socket_t (*_curl_opensocket_callback2) type curl_socket_t (line 598) | typedef curl_socket_t (*_curl_opensocket_callback3) type curl_socket_t (line 600) | typedef curl_socket_t (*_curl_opensocket_callback4) type CURLcode (line 656) | typedef CURLcode (*_curl_ssl_ctx_callback1)(CURL *, void *, void *); type CURLcode (line 657) | typedef CURLcode (*_curl_ssl_ctx_callback2)(CURL *, void *, const void *); type CURLcode (line 658) | typedef CURLcode (*_curl_ssl_ctx_callback3)(CURL *, const void *, void *); type CURLcode (line 659) | typedef CURLcode (*_curl_ssl_ctx_callback4)(CURL *, const void *, type CURLcode (line 665) | typedef CURLcode (*_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); type CURLcode (line 666) | typedef CURLcode (*_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); type CURLcode (line 667) | typedef CURLcode (*_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); type CURLcode (line 668) | typedef CURLcode (*_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, type _curl_ssl_ctx_callback1 (line 671) | typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; type _curl_ssl_ctx_callback1 (line 672) | typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; type _curl_ssl_ctx_callback1 (line 673) | typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; type _curl_ssl_ctx_callback1 (line 674) | typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; type CURLcode (line 685) | typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); type CURLcode (line 686) | typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); type CURLcode (line 687) | typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); type CURLcode (line 688) | typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); type CURLcode (line 696) | typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); type CURLcode (line 697) | typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); FILE: Chapter06/code/curl/urlapi.h type CURLUcode (line 32) | typedef enum { type CURLUPart (line 53) | typedef enum { type CURLU (line 80) | typedef struct Curl_URL CURLU; FILE: Chapter06/code/包分片逻辑.cpp type tagNtPkgHead (line 2) | struct tagNtPkgHead function UINT (line 17) | UINT CSocketClient::RecvDataThreadProc(LPVOID lpParam) FILE: Chapter07/codes/timerV1/Timer.h type std (line 6) | typedef std::function TimerCallback; function class (line 8) | class Timer FILE: Chapter07/codes/timerV1/TimerManager.h type TimerCompare (line 23) | struct TimerCompare function defaultTimerCallback (line 31) | void defaultTimerCallback() function class (line 36) | class TimerManager FILE: Chapter07/codes/timerV2/Timer.h type std (line 6) | typedef std::function TimerCallback; function class (line 8) | class Timer FILE: Chapter07/codes/timerV2/TimerManager.h type TimerCompare (line 23) | struct TimerCompare function defaultTimerCallback (line 31) | void defaultTimerCallback() function class (line 36) | class TimerManager FILE: Chapter07/codes/timerV3/Timer.h type std (line 6) | typedef std::function TimerCallback; function class (line 8) | class Timer FILE: Chapter07/codes/timerV3/TimerManager.h type std (line 12) | typedef std::list TimerList; function defaultTimerCallback (line 14) | void defaultTimerCallback() function class (line 19) | class TimerManager FILE: Chapter07/redis-6.0.3/deps/hiredis/adapters/ae.h type redisAeEvents (line 38) | typedef struct redisAeEvents { function redisAeReadEvent (line 45) | static void redisAeReadEvent(aeEventLoop *el, int fd, void *privdata, in... function redisAeWriteEvent (line 52) | static void redisAeWriteEvent(aeEventLoop *el, int fd, void *privdata, i... function redisAeAddRead (line 59) | static void redisAeAddRead(void *privdata) { function redisAeDelRead (line 68) | static void redisAeDelRead(void *privdata) { function redisAeAddWrite (line 77) | static void redisAeAddWrite(void *privdata) { function redisAeDelWrite (line 86) | static void redisAeDelWrite(void *privdata) { function redisAeCleanup (line 95) | static void redisAeCleanup(void *privdata) { function redisAeAttach (line 102) | static int redisAeAttach(aeEventLoop *loop, redisAsyncContext *ac) { FILE: Chapter07/redis-6.0.3/deps/hiredis/adapters/glib.h type RedisSource (line 9) | typedef struct function redis_source_add_read (line 16) | static void function redis_source_del_read (line 25) | static void function redis_source_add_write (line 34) | static void function redis_source_del_write (line 43) | static void function redis_source_cleanup (line 52) | static void function gboolean (line 71) | static gboolean function gboolean (line 80) | static gboolean function gboolean (line 87) | static gboolean function redis_source_finalize (line 111) | static void function GSource (line 122) | static GSource * FILE: Chapter07/redis-6.0.3/deps/hiredis/adapters/ivykis.h type redisIvykisEvents (line 7) | typedef struct redisIvykisEvents { function redisIvykisReadEvent (line 12) | static void redisIvykisReadEvent(void *arg) { function redisIvykisWriteEvent (line 17) | static void redisIvykisWriteEvent(void *arg) { function redisIvykisAddRead (line 22) | static void redisIvykisAddRead(void *privdata) { function redisIvykisDelRead (line 27) | static void redisIvykisDelRead(void *privdata) { function redisIvykisAddWrite (line 32) | static void redisIvykisAddWrite(void *privdata) { function redisIvykisDelWrite (line 37) | static void redisIvykisDelWrite(void *privdata) { function redisIvykisCleanup (line 42) | static void redisIvykisCleanup(void *privdata) { function redisIvykisAttach (line 49) | static int redisIvykisAttach(redisAsyncContext *ac) { FILE: Chapter07/redis-6.0.3/deps/hiredis/adapters/libev.h type redisLibevEvents (line 39) | typedef struct redisLibevEvents { function redisLibevReadEvent (line 46) | static void redisLibevReadEvent(EV_P_ ev_io *watcher, int revents) { function redisLibevWriteEvent (line 56) | static void redisLibevWriteEvent(EV_P_ ev_io *watcher, int revents) { function redisLibevAddRead (line 66) | static void redisLibevAddRead(void *privdata) { function redisLibevDelRead (line 76) | static void redisLibevDelRead(void *privdata) { function redisLibevAddWrite (line 86) | static void redisLibevAddWrite(void *privdata) { function redisLibevDelWrite (line 96) | static void redisLibevDelWrite(void *privdata) { function redisLibevCleanup (line 106) | static void redisLibevCleanup(void *privdata) { function redisLibevAttach (line 113) | static int redisLibevAttach(EV_P_ redisAsyncContext *ac) { FILE: Chapter07/redis-6.0.3/deps/hiredis/adapters/libevent.h type redisLibeventEvents (line 40) | typedef struct redisLibeventEvents { function redisLibeventDestroy (line 49) | static void redisLibeventDestroy(redisLibeventEvents *e) { function redisLibeventHandler (line 53) | static void redisLibeventHandler(int fd, short event, void *arg) { function redisLibeventUpdate (line 82) | static void redisLibeventUpdate(void *privdata, short flag, int isRemove) { function redisLibeventAddRead (line 106) | static void redisLibeventAddRead(void *privdata) { function redisLibeventDelRead (line 110) | static void redisLibeventDelRead(void *privdata) { function redisLibeventAddWrite (line 114) | static void redisLibeventAddWrite(void *privdata) { function redisLibeventDelWrite (line 118) | static void redisLibeventDelWrite(void *privdata) { function redisLibeventCleanup (line 122) | static void redisLibeventCleanup(void *privdata) { function redisLibeventSetTimeout (line 138) | static void redisLibeventSetTimeout(void *privdata, struct timeval tv) { function redisLibeventAttach (line 146) | static int redisLibeventAttach(redisAsyncContext *ac, struct event_base ... FILE: Chapter07/redis-6.0.3/deps/hiredis/adapters/libuv.h type redisLibuvEvents (line 9) | typedef struct redisLibuvEvents { function redisLibuvPoll (line 16) | static void redisLibuvPoll(uv_poll_t* handle, int status, int events) { function redisLibuvAddRead (line 29) | static void redisLibuvAddRead(void *privdata) { function redisLibuvDelRead (line 38) | static void redisLibuvDelRead(void *privdata) { function redisLibuvAddWrite (line 51) | static void redisLibuvAddWrite(void *privdata) { function redisLibuvDelWrite (line 60) | static void redisLibuvDelWrite(void *privdata) { function on_close (line 73) | static void on_close(uv_handle_t* handle) { function redisLibuvCleanup (line 80) | static void redisLibuvCleanup(void *privdata) { function redisLibuvAttach (line 88) | static int redisLibuvAttach(redisAsyncContext* ac, uv_loop_t* loop) { FILE: Chapter07/redis-6.0.3/deps/hiredis/adapters/macosx.h type RedisRunLoop (line 14) | typedef struct { function freeRedisRunLoop (line 20) | static int freeRedisRunLoop(RedisRunLoop* redisRunLoop) { function redisMacOSAddRead (line 35) | static void redisMacOSAddRead(void *privdata) { function redisMacOSDelRead (line 40) | static void redisMacOSDelRead(void *privdata) { function redisMacOSAddWrite (line 45) | static void redisMacOSAddWrite(void *privdata) { function redisMacOSDelWrite (line 50) | static void redisMacOSDelWrite(void *privdata) { function redisMacOSCleanup (line 55) | static void redisMacOSCleanup(void *privdata) { function redisMacOSAsyncCallback (line 60) | static void redisMacOSAsyncCallback(CFSocketRef __unused s, CFSocketCall... function redisMacOSAttach (line 77) | static int redisMacOSAttach(redisAsyncContext *redisAsyncCtx, CFRunLoopR... FILE: Chapter07/redis-6.0.3/deps/hiredis/adapters/qt.h function class (line 37) | class RedisQtAdapter : public QObject { FILE: Chapter07/redis-6.0.3/deps/hiredis/async.c function callbackHash (line 53) | static unsigned int callbackHash(const void *key) { function callbackKeyCompare (line 65) | static int callbackKeyCompare(void *privdata, const void *key1, const vo... function callbackKeyDestructor (line 75) | static void callbackKeyDestructor(void *privdata, void *key) { function callbackValDestructor (line 80) | static void callbackValDestructor(void *privdata, void *val) { function redisAsyncContext (line 94) | static redisAsyncContext *redisAsyncInitialize(redisContext *c) { function __redisAsyncCopyError (line 134) | static void __redisAsyncCopyError(redisAsyncContext *ac) { function redisAsyncContext (line 143) | redisAsyncContext *redisAsyncConnectWithOptions(const redisOptions *opti... function redisAsyncContext (line 162) | redisAsyncContext *redisAsyncConnect(const char *ip, int port) { function redisAsyncContext (line 168) | redisAsyncContext *redisAsyncConnectBind(const char *ip, int port, function redisAsyncContext (line 176) | redisAsyncContext *redisAsyncConnectBindWithReuse(const char *ip, int port, function redisAsyncContext (line 185) | redisAsyncContext *redisAsyncConnectUnix(const char *path) { function redisAsyncSetConnectCallback (line 191) | int redisAsyncSetConnectCallback(redisAsyncContext *ac, redisConnectCall... function redisAsyncSetDisconnectCallback (line 204) | int redisAsyncSetDisconnectCallback(redisAsyncContext *ac, redisDisconne... function __redisPushCallback (line 213) | static int __redisPushCallback(redisCallbackList *list, redisCallback *s... function __redisShiftCallback (line 235) | static int __redisShiftCallback(redisCallbackList *list, redisCallback *... function __redisRunCallback (line 251) | static void __redisRunCallback(redisAsyncContext *ac, redisCallback *cb,... function __redisAsyncFree (line 261) | static void __redisAsyncFree(redisAsyncContext *ac) { function redisAsyncFree (line 309) | void redisAsyncFree(redisAsyncContext *ac) { function __redisAsyncDisconnect (line 317) | void __redisAsyncDisconnect(redisAsyncContext *ac) { function redisAsyncDisconnect (line 350) | void redisAsyncDisconnect(redisAsyncContext *ac) { function __redisGetSubscribeCallback (line 360) | static int __redisGetSubscribeCallback(redisAsyncContext *ac, redisReply... function redisProcessCallbacks (line 420) | void redisProcessCallbacks(redisAsyncContext *ac) { function __redisAsyncHandleConnect (line 503) | static int __redisAsyncHandleConnect(redisAsyncContext *ac) { function redisAsyncRead (line 522) | void redisAsyncRead(redisAsyncContext *ac) { function redisAsyncHandleRead (line 537) | void redisAsyncHandleRead(redisAsyncContext *ac) { function redisAsyncWrite (line 552) | void redisAsyncWrite(redisAsyncContext *ac) { function redisAsyncHandleWrite (line 570) | void redisAsyncHandleWrite(redisAsyncContext *ac) { function redisAsyncHandleTimeout (line 587) | void redisAsyncHandleTimeout(redisAsyncContext *ac) { function __redisAsyncCommand (line 634) | static int __redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *f... function redisvAsyncCommand (line 714) | int redisvAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void ... function redisAsyncCommand (line 729) | int redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *... function redisAsyncCommandArgv (line 738) | int redisAsyncCommandArgv(redisAsyncContext *ac, redisCallbackFn *fn, vo... function redisAsyncFormattedCommand (line 750) | int redisAsyncFormattedCommand(redisAsyncContext *ac, redisCallbackFn *f... function redisAsyncSetTimeout (line 755) | void redisAsyncSetTimeout(redisAsyncContext *ac, struct timeval tv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/async.h type redisAsyncContext (line 40) | struct redisAsyncContext type dict (line 41) | struct dict type redisAsyncContext (line 44) | struct redisAsyncContext type redisCallback (line 45) | typedef struct redisCallback { type redisCallbackList (line 53) | typedef struct redisCallbackList { type redisAsyncContext (line 58) | struct redisAsyncContext type redisAsyncContext (line 59) | struct redisAsyncContext type redisAsyncContext (line 63) | typedef struct redisAsyncContext { type timeval (line 120) | struct timeval FILE: Chapter07/redis-6.0.3/deps/hiredis/async_private.h function refreshTimeout (line 56) | static inline void refreshTimeout(redisAsyncContext *ctx) { FILE: Chapter07/redis-6.0.3/deps/hiredis/dict.c function dictGenHashFunction (line 53) | static unsigned int dictGenHashFunction(const unsigned char *buf, int le... function _dictReset (line 65) | static void _dictReset(dict *ht) { function dict (line 73) | static dict *dictCreate(dictType *type, void *privDataPtr) { function _dictInit (line 80) | static int _dictInit(dict *ht, dictType *type, void *privDataPtr) { function dictExpand (line 88) | static int dictExpand(dict *ht, unsigned long size) { function dictAdd (line 135) | static int dictAdd(dict *ht, void *key, void *val) { function dictReplace (line 160) | static int dictReplace(dict *ht, void *key, void *val) { function dictDelete (line 182) | static int dictDelete(dict *ht, const void *key) { function _dictClear (line 213) | static int _dictClear(dict *ht) { function dictRelease (line 238) | static void dictRelease(dict *ht) { function dictEntry (line 243) | static dictEntry *dictFind(dict *ht, const void *key) { function dictIterator (line 258) | static dictIterator *dictGetIterator(dict *ht) { function dictEntry (line 268) | static dictEntry *dictNext(dictIterator *iter) { function dictReleaseIterator (line 288) | static void dictReleaseIterator(dictIterator *iter) { function _dictExpandIfNeeded (line 295) | static int _dictExpandIfNeeded(dict *ht) { function _dictNextPower (line 306) | static unsigned long _dictNextPower(unsigned long size) { function _dictKeyIndex (line 320) | static int _dictKeyIndex(dict *ht, const void *key) { FILE: Chapter07/redis-6.0.3/deps/hiredis/dict.h type dictEntry (line 45) | typedef struct dictEntry { type dictType (line 51) | typedef struct dictType { type dict (line 60) | typedef struct dict { type dictIterator (line 69) | typedef struct dictIterator { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-ae.c function getCallback (line 13) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 22) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 32) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 43) | int main (int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-glib.c function connect_cb (line 9) | static void function disconnect_cb (line 21) | static void function command_cb (line 33) | static void function gint (line 47) | gint FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-ivykis.c function getCallback (line 10) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 19) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 27) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 35) | int main (int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-libev.c function getCallback (line 10) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 19) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 27) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 35) | int main (int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-libevent-ssl.c function getCallback (line 11) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 20) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 28) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 36) | int main (int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-libevent.c function getCallback (line 10) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 24) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 32) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 40) | int main (int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-libuv.c function getCallback (line 10) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 19) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 27) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 35) | int main (int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-macosx.c function getCallback (line 12) | void getCallback(redisAsyncContext *c, void *r, void *privdata) { function connectCallback (line 21) | void connectCallback(const redisAsyncContext *c, int status) { function disconnectCallback (line 29) | void disconnectCallback(const redisAsyncContext *c, int status) { function main (line 38) | int main (int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-qt.cpp function getCallback (line 9) | void getCallback(redisAsyncContext *, void * r, void * privdata) { function main (line 36) | int main (int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-qt.h function class (line 6) | class ExampleQt : public QObject { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example-ssl.c function main (line 8) | int main(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/examples/example.c function main (line 7) | int main(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/hiredis.c function redisReply (line 76) | static redisReply *createReplyObject(int type) { function freeReplyObject (line 87) | void freeReplyObject(void *reply) { function countDigits (line 279) | static uint32_t countDigits(uint64_t v) { function bulklen (line 292) | static size_t bulklen(size_t len) { function redisvFormatCommand (line 296) | int redisvFormatCommand(char **target, const char *format, va_list ap) { function redisFormatCommand (line 538) | int redisFormatCommand(char **target, const char *format, ...) { function redisFormatSdsCommandArgv (line 559) | int redisFormatSdsCommandArgv(sds *target, int argc, const char **argv, function redisFreeSdsCommand (line 603) | void redisFreeSdsCommand(sds cmd) { function redisFormatCommandArgv (line 612) | int redisFormatCommandArgv(char **target, int argc, const char **argv, c... function redisFreeCommand (line 650) | void redisFreeCommand(char *cmd) { function __redisSetError (line 654) | void __redisSetError(redisContext *c, int type, const char *str) { function redisReader (line 670) | redisReader *redisReaderCreate(void) { function redisContext (line 674) | static redisContext *redisContextInit(const redisOptions *options) { function redisFree (line 694) | void redisFree(redisContext *c) { function redisFD (line 713) | redisFD redisFreeKeepFd(redisContext *c) { function redisReconnect (line 720) | int redisReconnect(redisContext *c) { function redisContext (line 751) | redisContext *redisConnectWithOptions(const redisOptions *options) { function redisContext (line 789) | redisContext *redisConnect(const char *ip, int port) { function redisContext (line 795) | redisContext *redisConnectWithTimeout(const char *ip, int port, const st... function redisContext (line 802) | redisContext *redisConnectNonBlock(const char *ip, int port) { function redisContext (line 809) | redisContext *redisConnectBindNonBlock(const char *ip, int port, function redisContext (line 818) | redisContext *redisConnectBindNonBlockWithReuse(const char *ip, int port, function redisContext (line 827) | redisContext *redisConnectUnix(const char *path) { function redisContext (line 833) | redisContext *redisConnectUnixWithTimeout(const char *path, const struct... function redisContext (line 840) | redisContext *redisConnectUnixNonBlock(const char *path) { function redisContext (line 847) | redisContext *redisConnectFd(redisFD fd) { function redisSetTimeout (line 855) | int redisSetTimeout(redisContext *c, const struct timeval tv) { function redisEnableKeepAlive (line 862) | int redisEnableKeepAlive(redisContext *c) { function redisBufferRead (line 873) | int redisBufferRead(redisContext *c) { function redisBufferWrite (line 903) | int redisBufferWrite(redisContext *c, int *done) { function redisGetReplyFromReader (line 928) | int redisGetReplyFromReader(redisContext *c, void **reply) { function redisGetReply (line 936) | int redisGetReply(redisContext *c, void **reply) { function __redisAppendCommand (line 973) | int __redisAppendCommand(redisContext *c, const char *cmd, size_t len) { function redisAppendFormattedCommand (line 986) | int redisAppendFormattedCommand(redisContext *c, const char *cmd, size_t... function redisvAppendCommand (line 995) | int redisvAppendCommand(redisContext *c, const char *format, va_list ap) { function redisAppendCommand (line 1017) | int redisAppendCommand(redisContext *c, const char *format, ...) { function redisAppendCommandArgv (line 1027) | int redisAppendCommandArgv(redisContext *c, int argc, const char **argv,... FILE: Chapter07/redis-6.0.3/deps/hiredis/hiredis.h type timeval (line 41) | struct timeval type redisReply (line 98) | typedef struct redisReply { type redisConnectionType (line 124) | enum redisConnectionType { type redisSsl (line 130) | struct redisSsl type redisFD (line 146) | typedef int redisFD; type redisFD (line 150) | typedef unsigned long long redisFD; type redisFD (line 152) | typedef unsigned long redisFD; type redisOptions (line 157) | typedef struct { type redisAsyncContext (line 195) | struct redisAsyncContext type redisContext (line 196) | struct redisContext type redisContextFuncs (line 198) | typedef struct redisContextFuncs { type redisContext (line 207) | typedef struct redisContext { type timeval (line 240) | struct timeval type timeval (line 247) | struct timeval type timeval (line 262) | struct timeval FILE: Chapter07/redis-6.0.3/deps/hiredis/hiredis_ssl.h type ssl_st (line 38) | struct ssl_st type ssl_st (line 51) | struct ssl_st FILE: Chapter07/redis-6.0.3/deps/hiredis/net.c function redisNetClose (line 53) | void redisNetClose(redisContext *c) { function redisNetRead (line 60) | int redisNetRead(redisContext *c, char *buf, size_t bufcap) { function redisNetWrite (line 82) | int redisNetWrite(redisContext *c) { function __redisSetErrorFromErrno (line 95) | static void __redisSetErrorFromErrno(redisContext *c, int type, const ch... function redisSetReuseAddr (line 106) | static int redisSetReuseAddr(redisContext *c) { function redisCreateSocket (line 116) | static int redisCreateSocket(redisContext *c, int type) { function redisSetBlocking (line 131) | static int redisSetBlocking(redisContext *c, int blocking) { function redisKeepAlive (line 165) | int redisKeepAlive(redisContext *c, int interval) { function redisSetTcpNoDelay (line 206) | static int redisSetTcpNoDelay(redisContext *c) { function redisContextTimeoutMsec (line 218) | static int redisContextTimeoutMsec(redisContext *c, long *result) function redisContextWaitReady (line 241) | static int redisContextWaitReady(redisContext *c, long msec) { function redisCheckConnectDone (line 274) | int redisCheckConnectDone(redisContext *c, int *completed) { function redisCheckSocketError (line 294) | int redisCheckSocketError(redisContext *c) { function redisContextSetTimeout (line 316) | int redisContextSetTimeout(redisContext *c, const struct timeval tv) { function _redisContextConnectTcp (line 335) | static int _redisContextConnectTcp(redisContext *c, const char *addr, in... function redisContextConnectTcp (line 505) | int redisContextConnectTcp(redisContext *c, const char *addr, int port, function redisContextConnectBindTcp (line 510) | int redisContextConnectBindTcp(redisContext *c, const char *addr, int port, function redisContextConnectUnix (line 516) | int redisContextConnectUnix(redisContext *c, const char *path, const str... FILE: Chapter07/redis-6.0.3/deps/hiredis/net.h type timeval (line 45) | struct timeval type timeval (line 46) | struct timeval type timeval (line 48) | struct timeval type timeval (line 50) | struct timeval FILE: Chapter07/redis-6.0.3/deps/hiredis/read.c function __redisReaderSetError (line 49) | static void __redisReaderSetError(redisReader *r, int type, const char *... function chrtos (line 73) | static size_t chrtos(char *buf, size_t size, char byte) { function __redisReaderSetErrorProtocolByte (line 97) | static void __redisReaderSetErrorProtocolByte(redisReader *r, char byte) { function __redisReaderSetErrorOOM (line 106) | static void __redisReaderSetErrorOOM(redisReader *r) { function string2ll (line 159) | static int string2ll(const char *s, size_t slen, long long *value) { function moveToNextTask (line 237) | static void moveToNextTask(redisReader *r) { function processLineItem (line 264) | static int processLineItem(redisReader *r) { function processBulkItem (line 346) | static int processBulkItem(redisReader *r) { function processAggregateItem (line 419) | static int processAggregateItem(redisReader *r) { function processItem (line 497) | static int processItem(redisReader *r) { function redisReader (line 570) | redisReader *redisReaderCreateWithFunctions(redisReplyObjectFunctions *f... function redisReaderFree (line 589) | void redisReaderFree(redisReader *r) { function redisReaderFeed (line 598) | int redisReaderFeed(redisReader *r, const char *buf, size_t len) { function redisReaderGetReply (line 630) | int redisReaderGetReply(redisReader *r, void **reply) { FILE: Chapter07/redis-6.0.3/deps/hiredis/read.h type redisReadTask (line 72) | typedef struct redisReadTask { type redisReplyObjectFunctions (line 81) | typedef struct redisReplyObjectFunctions { type redisReader (line 91) | typedef struct redisReader { FILE: Chapter07/redis-6.0.3/deps/hiredis/sds.c function sdsHdrSize (line 41) | static inline int sdsHdrSize(char type) { function sdsReqType (line 57) | static inline char sdsReqType(size_t string_size) { function sds (line 81) | sds sdsnewlen(const void *init, size_t initlen) { function sds (line 139) | sds sdsempty(void) { function sds (line 144) | sds sdsnew(const char *init) { function sds (line 150) | sds sdsdup(const sds s) { function sdsfree (line 155) | void sdsfree(sds s) { function sdsupdatelen (line 174) | void sdsupdatelen(sds s) { function sdsclear (line 183) | void sdsclear(sds s) { function sds (line 194) | sds sdsMakeRoomFor(sds s, size_t addlen) { function sds (line 248) | sds sdsRemoveFreeSpace(sds s) { function sdsAllocSize (line 281) | size_t sdsAllocSize(sds s) { function sdsIncrLen (line 315) | void sdsIncrLen(sds s, int incr) { function sds (line 361) | sds sdsgrowzero(sds s, size_t len) { function sds (line 379) | sds sdscatlen(sds s, const void *t, size_t len) { function sds (line 394) | sds sdscat(sds s, const char *t) { function sds (line 402) | sds sdscatsds(sds s, const sds t) { function sds (line 408) | sds sdscpylen(sds s, const char *t, size_t len) { function sds (line 421) | sds sdscpy(sds s, const char *t) { function sdsll2str (line 432) | int sdsll2str(char *s, long long value) { function sdsull2str (line 464) | int sdsull2str(char *s, unsigned long long v) { function sds (line 496) | sds sdsfromlonglong(long long value) { function sds (line 504) | sds sdscatvprintf(sds s, const char *fmt, va_list ap) { function sds (line 557) | sds sdscatprintf(sds s, const char *fmt, ...) { function sds (line 582) | sds sdscatfmt(sds s, char const *fmt, ...) { function sds (line 692) | sds sdstrim(sds s, const char *cset) { function sdsrange (line 723) | void sdsrange(sds s, int start, int end) { function sdstolower (line 752) | void sdstolower(sds s) { function sdstoupper (line 759) | void sdstoupper(sds s) { function sdscmp (line 776) | int sdscmp(const sds s1, const sds s2) { function sds (line 804) | sds *sdssplitlen(const char *s, int len, const char *sep, int seplen, in... function sdsfreesplitres (line 854) | void sdsfreesplitres(sds *tokens, int count) { function sds (line 867) | sds sdscatrepr(sds s, const char *p, size_t len) { function is_hex_digit (line 894) | int is_hex_digit(char c) { function hex_digit_to_int (line 901) | int hex_digit_to_int(char c) { function sds (line 942) | sds *sdssplitargs(const char *line, int *argc) { function sds (line 1069) | sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen) { function sds (line 1085) | sds sdsjoin(char **argv, int argc, char *sep) { function sds (line 1097) | sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen) { function sds_free (line 1115) | void sds_free(void *ptr) { s_free(ptr); } function sdsTest (line 1123) | int sdsTest(void) { function main (line 1288) | int main(void) { FILE: Chapter07/redis-6.0.3/deps/hiredis/sds.h type sdshdr5 (line 49) | struct __attribute__ ((__packed__)) sdshdr5 { type sdshdr8 (line 53) | struct __attribute__ ((__packed__)) sdshdr8 { type sdshdr16 (line 59) | struct __attribute__ ((__packed__)) sdshdr16 { type sdshdr32 (line 65) | struct __attribute__ ((__packed__)) sdshdr32 { type sdshdr64 (line 71) | struct __attribute__ ((__packed__)) sdshdr64 { function sdslen (line 89) | static inline size_t sdslen(const sds s) { function sdsavail (line 106) | static inline size_t sdsavail(const sds s) { function sdssetlen (line 132) | static inline void sdssetlen(sds s, size_t newlen) { function sdsinclen (line 156) | static inline void sdsinclen(sds s, size_t inc) { function sdsalloc (line 182) | static inline size_t sdsalloc(const sds s) { function sdssetalloc (line 199) | static inline void sdssetalloc(sds s, size_t newlen) { FILE: Chapter07/redis-6.0.3/deps/hiredis/sockcompat.c function _wsaErrorToErrno (line 35) | static int _wsaErrorToErrno(int err) { function _updateErrno (line 97) | static void _updateErrno(int success) { function _initWinsock (line 101) | static int _initWinsock() { function win32_getaddrinfo (line 115) | int win32_getaddrinfo(const char *node, const char *service, const struc... function win32_freeaddrinfo (line 149) | void win32_freeaddrinfo(struct addrinfo *res) { function SOCKET (line 153) | SOCKET win32_socket(int domain, int type, int protocol) { function win32_ioctl (line 165) | int win32_ioctl(SOCKET fd, unsigned long request, unsigned long *argp) { function win32_bind (line 171) | int win32_bind(SOCKET sockfd, const struct sockaddr *addr, socklen_t add... function win32_connect (line 177) | int win32_connect(SOCKET sockfd, const struct sockaddr *addr, socklen_t ... function win32_getsockopt (line 191) | int win32_getsockopt(SOCKET sockfd, int level, int optname, void *optval... function win32_setsockopt (line 212) | int win32_setsockopt(SOCKET sockfd, int level, int optname, const void *... function win32_close (line 225) | int win32_close(SOCKET fd) { function win32_recv (line 231) | ssize_t win32_recv(SOCKET sockfd, void *buf, size_t len, int flags) { function win32_send (line 237) | ssize_t win32_send(SOCKET sockfd, const void *buf, size_t len, int flags) { function win32_poll (line 243) | int win32_poll(struct pollfd *fds, nfds_t nfds, int timeout) { FILE: Chapter07/redis-6.0.3/deps/hiredis/sockcompat.h type addrinfo (line 58) | struct addrinfo type addrinfo (line 58) | struct addrinfo type addrinfo (line 60) | struct addrinfo type sockaddr (line 63) | struct sockaddr type sockaddr (line 64) | struct sockaddr type ULONG (line 70) | typedef ULONG nfds_t; type pollfd (line 71) | struct pollfd FILE: Chapter07/redis-6.0.3/deps/hiredis/ssl.c type redisSSLContext (line 49) | typedef struct redisSSLContext { function sslLogCallback (line 84) | static void sslLogCallback(const SSL *ssl, int where, int ret) { type pthread_mutex_t (line 122) | typedef pthread_mutex_t sslLockType; function sslLockInit (line 123) | static void sslLockInit(sslLockType *l) { function sslLockAcquire (line 126) | static void sslLockAcquire(sslLockType *l) { function sslLockRelease (line 129) | static void sslLockRelease(sslLockType *l) { function opensslDoLock (line 134) | static void opensslDoLock(int mode, int lkid, const char *f, int line) { function initOpensslLocks (line 147) | static void initOpensslLocks(void) { function redisSSLConnect (line 166) | static int redisSSLConnect(redisContext *c, SSL_CTX *ssl_ctx, SSL *ssl) { function redisInitiateSSL (line 209) | int redisInitiateSSL(redisContext *c, SSL *ssl) { function redisSecureConnection (line 213) | int redisSecureConnection(redisContext *c, const char *capath, function maybeCheckWant (line 282) | static int maybeCheckWant(redisSSLContext *rssl, int rv) { function redisSSLFreeContext (line 302) | static void redisSSLFreeContext(void *privdata){ function redisSSLRead (line 317) | static int redisSSLRead(redisContext *c, char *buf, size_t bufcap) { function redisSSLWrite (line 359) | static int redisSSLWrite(redisContext *c) { function redisSSLAsyncRead (line 381) | static void redisSSLAsyncRead(redisAsyncContext *ac) { function redisSSLAsyncWrite (line 411) | static void redisSSLAsyncWrite(redisAsyncContext *ac) { FILE: Chapter07/redis-6.0.3/deps/hiredis/test.c type connection_type (line 21) | enum connection_type { type config (line 28) | struct config { function usec (line 55) | static long long usec(void) { function redisContext (line 68) | static redisContext *select_database(redisContext *c) { function disconnect (line 90) | static int disconnect(redisContext *c, int keep_fd) { function do_ssl_handshake (line 108) | static void do_ssl_handshake(redisContext *c, struct config config) { function redisContext (line 122) | static redisContext *do_connect(struct config config) { function do_reconnect (line 159) | static void do_reconnect(redisContext *c, struct config config) { function test_format_commands (line 167) | static void test_format_commands(void) { function test_append_formatted_commands (line 287) | static void test_append_formatted_commands(struct config config) { function test_reply_reader (line 309) | static void test_reply_reader(void) { function test_free_null (line 464) | static void test_free_null(void) { function test_blocking_connection_errors (line 478) | static void test_blocking_connection_errors(void) { function test_blocking_connection (line 519) | static void test_blocking_connection(struct config config) { function test_blocking_connection_timeouts (line 597) | static void test_blocking_connection_timeouts(struct config config) { function test_blocking_io_errors (line 644) | static void test_blocking_io_errors(struct config config) { function test_invalid_timeout_errors (line 695) | static void test_invalid_timeout_errors(struct config config) { function test_throughput (line 719) | static void test_throughput(struct config config) { function main (line 907) | int main(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/hiredis/win32.h function c99_vsnprintf (line 26) | __inline int c99_vsnprintf(char* str, size_t size, const char* format, v... function c99_snprintf (line 38) | __inline int c99_snprintf(char* str, size_t size, const char* format, ...) FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_inlines_a.h function arena_ind_get (line 4) | static inline unsigned function arena_internal_add (line 9) | static inline void function arena_internal_sub (line 14) | static inline void function arena_internal_get (line 19) | static inline size_t function arena_prof_accum (line 24) | static inline bool function percpu_arena_update (line 35) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_inlines_b.h function JEMALLOC_ALWAYS_INLINE (line 11) | JEMALLOC_ALWAYS_INLINE prof_tctx_t * function JEMALLOC_ALWAYS_INLINE (line 30) | JEMALLOC_ALWAYS_INLINE void function arena_prof_tctx_reset (line 49) | static inline void function JEMALLOC_ALWAYS_INLINE (line 60) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 78) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 86) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 108) | JEMALLOC_ALWAYS_INLINE arena_t * function JEMALLOC_ALWAYS_INLINE (line 113) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 127) | JEMALLOC_ALWAYS_INLINE size_t function arena_dalloc_no_tcache (line 160) | static inline void function JEMALLOC_ALWAYS_INLINE (line 189) | JEMALLOC_ALWAYS_INLINE void function arena_sdalloc_no_tcache (line 242) | static inline void function JEMALLOC_ALWAYS_INLINE (line 286) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_stats.h type atomic_u64_t (line 15) | typedef atomic_u64_t arena_stats_u64_t; type arena_stats_u64_t (line 18) | typedef uint64_t arena_stats_u64_t; type arena_stats_large_t (line 21) | typedef struct arena_stats_large_s arena_stats_large_t; type arena_stats_large_s (line 22) | struct arena_stats_large_s { type arena_stats_decay_t (line 41) | typedef struct arena_stats_decay_s arena_stats_decay_t; type arena_stats_decay_s (line 42) | struct arena_stats_decay_s { type arena_stats_t (line 56) | typedef struct arena_stats_s arena_stats_t; type arena_stats_s (line 57) | struct arena_stats_s { function arena_stats_init (line 97) | static inline bool function arena_stats_lock (line 114) | static inline void function arena_stats_unlock (line 121) | static inline void function arena_stats_read_u64 (line 128) | static inline uint64_t function arena_stats_add_u64 (line 139) | static inline void function UNUSED (line 150) | UNUSED static inline void function arena_stats_accum_u64 (line 168) | static inline void function arena_stats_read_zu (line 178) | static inline size_t function arena_stats_add_zu (line 188) | static inline void function arena_stats_sub_zu (line 200) | static inline void function arena_stats_accum_zu (line 214) | static inline void function arena_stats_large_nrequests_add (line 220) | static inline void function arena_stats_mapped_add (line 229) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_structs_a.h type arena_slab_data_s (line 6) | struct arena_slab_data_s { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_structs_b.h type arena_decay_s (line 17) | struct arena_decay_s { type arena_s (line 77) | struct arena_s { type arena_tdata_s (line 219) | struct arena_tdata_s { type alloc_ctx_s (line 224) | struct alloc_ctx_s { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/arena_types.h type arena_slab_data_t (line 14) | typedef struct arena_slab_data_s arena_slab_data_t; type arena_decay_t (line 15) | typedef struct arena_decay_s arena_decay_t; type arena_t (line 16) | typedef struct arena_s arena_t; type arena_tdata_t (line 17) | typedef struct arena_tdata_s arena_tdata_t; type alloc_ctx_t (line 18) | typedef struct alloc_ctx_s alloc_ctx_t; type percpu_arena_mode_t (line 20) | typedef enum { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/atomic_gcc_atomic.h type atomic_memory_order_t (line 8) | typedef enum { function ATOMIC_INLINE (line 16) | ATOMIC_INLINE int function ATOMIC_INLINE (line 34) | ATOMIC_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/atomic_gcc_sync.h type atomic_memory_order_t (line 6) | typedef enum { function ATOMIC_INLINE (line 14) | ATOMIC_INLINE void function ATOMIC_INLINE (line 63) | ATOMIC_INLINE void function ATOMIC_INLINE (line 73) | ATOMIC_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/atomic_msvc.h type atomic_memory_order_t (line 6) | typedef enum { type atomic_repr_0_t (line 14) | typedef char atomic_repr_0_t; type atomic_repr_1_t (line 15) | typedef short atomic_repr_1_t; type atomic_repr_2_t (line 16) | typedef long atomic_repr_2_t; type __int64 (line 17) | typedef __int64 atomic_repr_3_t; function ATOMIC_INLINE (line 19) | ATOMIC_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/background_thread_inlines.h function JEMALLOC_ALWAYS_INLINE (line 4) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 9) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 15) | JEMALLOC_ALWAYS_INLINE background_thread_info_t * function JEMALLOC_ALWAYS_INLINE (line 21) | JEMALLOC_ALWAYS_INLINE uint64_t function JEMALLOC_ALWAYS_INLINE (line 29) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 38) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 43) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/background_thread_structs.h type background_thread_state_t (line 13) | typedef enum { type background_thread_info_s (line 20) | struct background_thread_info_s { type background_thread_info_t (line 44) | typedef struct background_thread_info_s background_thread_info_t; type background_thread_stats_s (line 46) | struct background_thread_stats_s { type background_thread_stats_t (line 51) | typedef struct background_thread_stats_s background_thread_stats_t; FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/base_inlines.h function base_ind_get (line 4) | static inline unsigned function metadata_thp_enabled (line 9) | static inline bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/base_structs.h type base_block_s (line 9) | struct base_block_s { type base_s (line 20) | struct base_s { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/base_types.h type base_block_t (line 4) | typedef struct base_block_s base_block_t; type base_t (line 5) | typedef struct base_s base_t; type metadata_thp_mode_t (line 18) | typedef enum { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/bin.h type bin_info_t (line 33) | typedef struct bin_info_s bin_info_t; type bin_info_s (line 34) | struct bin_info_s { type bin_t (line 54) | typedef struct bin_s bin_t; type bin_s (line 55) | struct bin_s { function bin_stats_merge (line 90) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/bin_stats.h type bin_stats_t (line 6) | typedef struct bin_stats_s bin_stats_t; type bin_stats_s (line 7) | struct bin_stats_s { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/bit_util.h function ffs_llu (line 15) | BIT_UTIL_INLINE unsigned function ffs_lu (line 20) | BIT_UTIL_INLINE unsigned function ffs_u (line 25) | BIT_UTIL_INLINE unsigned function ffs_zu (line 30) | BIT_UTIL_INLINE unsigned function ffs_u64 (line 43) | BIT_UTIL_INLINE unsigned function ffs_u32 (line 54) | BIT_UTIL_INLINE unsigned function BIT_UTIL_INLINE (line 64) | BIT_UTIL_INLINE uint64_t function BIT_UTIL_INLINE (line 77) | BIT_UTIL_INLINE uint32_t function BIT_UTIL_INLINE (line 90) | BIT_UTIL_INLINE size_t function lg_floor (line 100) | BIT_UTIL_INLINE unsigned function lg_floor (line 113) | BIT_UTIL_INLINE unsigned function lg_floor (line 130) | BIT_UTIL_INLINE unsigned function lg_floor (line 143) | BIT_UTIL_INLINE unsigned FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/bitmap.h type bitmap_t (line 8) | typedef unsigned long bitmap_t; type bitmap_info_t (line 152) | typedef struct bitmap_info_s { function bitmap_full (line 175) | static inline bool function bitmap_get (line 194) | static inline bool function bitmap_set (line 205) | static inline void function bitmap_ffu (line 241) | static inline size_t function bitmap_sfu (line 300) | static inline size_t function bitmap_unset (line 330) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/cache_bin.h type cache_bin_sz_t (line 22) | typedef int32_t cache_bin_sz_t; type cache_bin_stats_t (line 24) | typedef struct cache_bin_stats_s cache_bin_stats_t; type cache_bin_stats_s (line 25) | struct cache_bin_stats_s { type cache_bin_info_t (line 37) | typedef struct cache_bin_info_s cache_bin_info_t; type cache_bin_info_s (line 38) | struct cache_bin_info_s { type cache_bin_t (line 43) | typedef struct cache_bin_s cache_bin_t; type cache_bin_s (line 44) | struct cache_bin_s { type cache_bin_array_descriptor_t (line 67) | typedef struct cache_bin_array_descriptor_s cache_bin_array_descriptor_t; type cache_bin_array_descriptor_s (line 68) | struct cache_bin_array_descriptor_s { function cache_bin_array_descriptor_init (line 79) | static inline void function JEMALLOC_ALWAYS_INLINE (line 87) | JEMALLOC_ALWAYS_INLINE void * FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/ckh.h type ckhc_t (line 28) | typedef struct { type ckh_t (line 34) | typedef struct { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/ctl.h type ctl_node_t (line 14) | typedef struct ctl_node_s { type ctl_named_node_t (line 18) | typedef struct ctl_named_node_s { type ctl_indexed_node_t (line 28) | typedef struct ctl_indexed_node_s { type ctl_arena_stats_t (line 34) | typedef struct ctl_arena_stats_s { type ctl_stats_t (line 47) | typedef struct ctl_stats_s { type ctl_arena_t (line 60) | typedef struct ctl_arena_s ctl_arena_t; type ctl_arena_s (line 61) | struct ctl_arena_s { type ctl_arenas_t (line 79) | typedef struct ctl_arenas_s { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/div.h type div_info_t (line 15) | typedef struct div_info_s div_info_t; type div_info_s (line 16) | struct div_info_s { function div_compute (line 25) | static inline size_t FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/emitter.h type emitter_output_t (line 6) | typedef enum emitter_output_e emitter_output_t; type emitter_output_e (line 7) | enum emitter_output_e { type emitter_justify_t (line 12) | typedef enum emitter_justify_e emitter_justify_t; type emitter_justify_e (line 13) | enum emitter_justify_e { type emitter_type_t (line 20) | typedef enum emitter_type_e emitter_type_t; type emitter_type_e (line 21) | enum emitter_type_e { type emitter_col_t (line 37) | typedef struct emitter_col_s emitter_col_t; type emitter_col_s (line 38) | struct emitter_col_s { type emitter_row_t (line 58) | typedef struct emitter_row_s emitter_row_t; type emitter_row_s (line 59) | struct emitter_row_s { function emitter_row_init (line 63) | static inline void function emitter_col_init (line 68) | static inline void type emitter_t (line 74) | typedef struct emitter_s emitter_t; type emitter_s (line 75) | struct emitter_s { function emitter_init (line 85) | static inline void function emitter_printf (line 97) | static inline void function emitter_table_printf (line 108) | static inline void function emitter_gen_fmt (line 118) | static inline void function emitter_print_value (line 143) | static inline void function emitter_nest_inc (line 209) | static inline void function emitter_nest_dec (line 215) | static inline void function emitter_indent (line 221) | static inline void function emitter_json_key_prefix (line 236) | static inline void function emitter_begin (line 242) | static inline void function emitter_end (line 254) | static inline void function emitter_kv_note (line 267) | static inline void function emitter_kv (line 294) | static inline void function emitter_json_kv (line 301) | static inline void function emitter_table_kv (line 309) | static inline void function emitter_dict_begin (line 317) | static inline void function emitter_dict_end (line 331) | static inline void function emitter_json_dict_begin (line 344) | static inline void function emitter_json_dict_end (line 351) | static inline void function emitter_table_dict_begin (line 358) | static inline void function emitter_table_dict_end (line 365) | static inline void function emitter_json_arr_begin (line 372) | static inline void function emitter_json_arr_end (line 381) | static inline void function emitter_json_arr_obj_begin (line 392) | static inline void function emitter_json_arr_obj_end (line 401) | static inline void function emitter_json_arr_value (line 412) | static inline void function emitter_table_row (line 422) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/extent_dss.h type dss_prec_t (line 4) | typedef enum { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/extent_inlines.h function extent_lock (line 11) | static inline void function extent_unlock (line 17) | static inline void function extent_lock2 (line 23) | static inline void function extent_unlock2 (line 30) | static inline void function arena_t (line 37) | static inline arena_t * function szind_t (line 52) | static inline szind_t function szind_t (line 60) | static inline szind_t function extent_usize_get (line 67) | static inline size_t function extent_sn_get (line 72) | static inline size_t function extent_state_t (line 78) | static inline extent_state_t function extent_zeroed_get (line 84) | static inline bool function extent_committed_get (line 90) | static inline bool function extent_dumpable_get (line 96) | static inline bool function extent_slab_get (line 102) | static inline bool function extent_nfree_get (line 108) | static inline unsigned function extent_size_get (line 129) | static inline size_t function extent_esn_get (line 134) | static inline size_t function extent_bsize_get (line 139) | static inline size_t function arena_slab_data_t (line 161) | static inline arena_slab_data_t * function arena_slab_data_t (line 167) | static inline const arena_slab_data_t * function prof_tctx_t (line 173) | static inline prof_tctx_t * function extent_arena_set (line 179) | static inline void function extent_addr_set (line 187) | static inline void function extent_addr_randomize (line 192) | static inline void function extent_size_set (line 218) | static inline void function extent_esn_set (line 224) | static inline void function extent_bsize_set (line 230) | static inline void function extent_szind_set (line 235) | static inline void function extent_nfree_set (line 242) | static inline void function extent_nfree_inc (line 249) | static inline void function extent_nfree_dec (line 255) | static inline void function extent_sn_set (line 261) | static inline void function extent_state_set (line 267) | static inline void function extent_zeroed_set (line 273) | static inline void function extent_committed_set (line 279) | static inline void function extent_dumpable_set (line 285) | static inline void function extent_slab_set (line 291) | static inline void function extent_prof_tctx_set (line 297) | static inline void function extent_init (line 302) | static inline void function extent_binit (line 324) | static inline void function extent_list_init (line 338) | static inline void function extent_t (line 343) | static inline extent_t * function extent_t (line 348) | static inline extent_t * function extent_list_append (line 353) | static inline void function extent_list_prepend (line 358) | static inline void function extent_list_replace (line 363) | static inline void function extent_list_remove (line 370) | static inline void function extent_sn_comp (line 375) | static inline int function extent_esn_comp (line 383) | static inline int function extent_ad_comp (line 391) | static inline int function extent_ead_comp (line 399) | static inline int function extent_snad_comp (line 407) | static inline int function extent_esnead_comp (line 420) | static inline int FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/extent_structs.h type extent_state_t (line 11) | typedef enum { type extent_s (line 19) | struct extent_s { type extent_list_t (line 170) | typedef ql_head(extent_t) extent_list_t; type extent_tree_t (line 171) | typedef ph(extent_t) extent_tree_t; type extent_heap_t (line 172) | typedef ph(extent_t) extent_heap_t; type extents_s (line 175) | struct extents_s { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/extent_types.h type extent_t (line 4) | typedef struct extent_s extent_t; type extents_t (line 5) | typedef struct extents_s extents_t; FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/hash.h function hash_rotl_32 (line 14) | static inline uint32_t function hash_rotl_64 (line 19) | static inline uint64_t function hash_get_block_32 (line 24) | static inline uint32_t function hash_get_block_64 (line 37) | static inline uint64_t function hash_fmix_32 (line 50) | static inline uint32_t function hash_fmix_64 (line 61) | static inline uint64_t function hash_x86_32 (line 72) | static inline uint32_t function UNUSED (line 122) | UNUSED static inline void function UNUSED (line 223) | UNUSED static inline void function hash (line 302) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_decls.h function isblank (line 81) | static int FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_a.h function malloc_getcpu (line 11) | malloc_getcpu(void) { function percpu_arena_choose (line 22) | JEMALLOC_ALWAYS_INLINE unsigned function percpu_arena_ind_limit (line 43) | JEMALLOC_ALWAYS_INLINE unsigned function arena_tdata_t (line 57) | static inline arena_tdata_t * function arena_t (line 82) | static inline arena_t * function ticker_t (line 98) | static inline ticker_t * function JEMALLOC_ALWAYS_INLINE (line 109) | JEMALLOC_ALWAYS_INLINE cache_bin_t * function JEMALLOC_ALWAYS_INLINE (line 115) | JEMALLOC_ALWAYS_INLINE cache_bin_t * function JEMALLOC_ALWAYS_INLINE (line 121) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 139) | JEMALLOC_ALWAYS_INLINE tcache_t * function pre_reentrancy (line 148) | static inline void function post_reentrancy (line 163) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_b.h function arena_t (line 7) | static inline arena_t * function arena_t (line 61) | static inline arena_t * function arena_t (line 66) | static inline arena_t * function arena_is_auto (line 71) | static inline bool function JEMALLOC_ALWAYS_INLINE (line 77) | JEMALLOC_ALWAYS_INLINE extent_t * FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_c.h function JEMALLOC_ALWAYS_INLINE (line 26) | JEMALLOC_ALWAYS_INLINE arena_t * function JEMALLOC_ALWAYS_INLINE (line 33) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 40) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 60) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 66) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 86) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 92) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 98) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 103) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 121) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 126) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 134) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 172) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 194) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 201) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 218) | JEMALLOC_ALWAYS_INLINE int FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/jemalloc_internal_types.h type pszind_t (line 5) | typedef unsigned pszind_t; type szind_t (line 8) | typedef unsigned szind_t; type malloc_cpuid_t (line 11) | typedef int malloc_cpuid_t; FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/log.h type log_var_t (line 41) | typedef struct log_var_s log_var_t; type log_var_s (line 42) | struct log_var_s { function log_impl_varargs (line 88) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/malloc_io.h function malloc_write_fd (line 66) | static inline ssize_t function malloc_read_fd (line 88) | static inline ssize_t FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/mutex.h type malloc_mutex_lock_order_t (line 9) | typedef enum { type malloc_mutex_t (line 19) | typedef struct malloc_mutex_s malloc_mutex_t; type malloc_mutex_s (line 20) | struct malloc_mutex_s { function malloc_mutex_lock_final (line 139) | static inline void function malloc_mutex_trylock_final (line 144) | static inline bool function mutex_owner_stats_update (line 149) | static inline void function malloc_mutex_trylock (line 162) | static inline bool function malloc_mutex_prof_merge (line 177) | static inline void function malloc_mutex_lock (line 200) | static inline void function malloc_mutex_unlock (line 212) | static inline void function malloc_mutex_assert_owner (line 220) | static inline void function malloc_mutex_assert_not_owner (line 225) | static inline void function malloc_mutex_prof_read (line 231) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/mutex_pool.h type mutex_pool_t (line 11) | typedef struct mutex_pool_s mutex_pool_t; type mutex_pool_s (line 12) | struct mutex_pool_s { function malloc_mutex_t (line 19) | static inline malloc_mutex_t * function mutex_pool_assert_not_held (line 26) | static inline void function mutex_pool_lock (line 40) | static inline void function mutex_pool_unlock (line 48) | static inline void function mutex_pool_lock2 (line 56) | static inline void function mutex_pool_unlock2 (line 74) | static inline void function mutex_pool_assert_owner (line 89) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/mutex_prof.h type mutex_prof_global_ind_t (line 13) | typedef enum { type mutex_prof_arena_ind_t (line 31) | typedef enum { type mutex_prof_data_t (line 67) | typedef struct { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/nstime.h type nstime_t (line 8) | typedef struct { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/pages.h type thp_mode_t (line 61) | typedef enum { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prng.h function JEMALLOC_ALWAYS_INLINE (line 35) | JEMALLOC_ALWAYS_INLINE uint32_t function JEMALLOC_ALWAYS_INLINE (line 40) | JEMALLOC_ALWAYS_INLINE uint64_t function JEMALLOC_ALWAYS_INLINE (line 45) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 66) | JEMALLOC_ALWAYS_INLINE uint32_t function JEMALLOC_ALWAYS_INLINE (line 89) | JEMALLOC_ALWAYS_INLINE uint64_t function JEMALLOC_ALWAYS_INLINE (line 103) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 131) | JEMALLOC_ALWAYS_INLINE uint32_t function JEMALLOC_ALWAYS_INLINE (line 149) | JEMALLOC_ALWAYS_INLINE uint64_t function JEMALLOC_ALWAYS_INLINE (line 167) | JEMALLOC_ALWAYS_INLINE size_t FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prof_inlines_a.h function prof_accum_add (line 6) | static inline bool function prof_accum_cancel (line 44) | static inline void function JEMALLOC_ALWAYS_INLINE (line 72) | JEMALLOC_ALWAYS_INLINE bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prof_inlines_b.h function JEMALLOC_ALWAYS_INLINE (line 6) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 16) | JEMALLOC_ALWAYS_INLINE prof_tdata_t * function JEMALLOC_ALWAYS_INLINE (line 39) | JEMALLOC_ALWAYS_INLINE prof_tctx_t * function JEMALLOC_ALWAYS_INLINE (line 47) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 56) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 64) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 101) | JEMALLOC_ALWAYS_INLINE prof_tctx_t * function JEMALLOC_ALWAYS_INLINE (line 121) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 136) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 194) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prof_structs.h type prof_bt_s (line 9) | struct prof_bt_s { type prof_unwind_data_t (line 17) | typedef struct { type prof_accum_s (line 23) | struct prof_accum_s { type prof_cnt_s (line 32) | struct prof_cnt_s { type prof_tctx_state_t (line 40) | typedef enum { type prof_tctx_s (line 47) | struct prof_tctx_s { type prof_tctx_tree_t (line 97) | typedef rb_tree(prof_tctx_t) prof_tctx_tree_t; type prof_gctx_s (line 99) | struct prof_gctx_s { type prof_gctx_tree_t (line 133) | typedef rb_tree(prof_gctx_t) prof_gctx_tree_t; type prof_tdata_s (line 135) | struct prof_tdata_s { type prof_tdata_tree_t (line 199) | typedef rb_tree(prof_tdata_t) prof_tdata_tree_t; FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/prof_types.h type prof_bt_t (line 4) | typedef struct prof_bt_s prof_bt_t; type prof_accum_t (line 5) | typedef struct prof_accum_s prof_accum_t; type prof_cnt_t (line 6) | typedef struct prof_cnt_s prof_cnt_t; type prof_tctx_t (line 7) | typedef struct prof_tctx_s prof_tctx_t; type prof_gctx_t (line 8) | typedef struct prof_gctx_s prof_gctx_t; type prof_tdata_t (line 9) | typedef struct prof_tdata_s prof_tdata_t; FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/rtree.h type rtree_node_elm_t (line 41) | typedef struct rtree_node_elm_s rtree_node_elm_t; type rtree_node_elm_s (line 42) | struct rtree_node_elm_s { type rtree_leaf_elm_s (line 46) | struct rtree_leaf_elm_s { type rtree_level_t (line 68) | typedef struct rtree_level_s rtree_level_t; type rtree_level_s (line 69) | struct rtree_level_s { type rtree_t (line 79) | typedef struct rtree_s rtree_t; type rtree_s (line 80) | struct rtree_s { type rtree_node_elm_t (line 114) | typedef rtree_node_elm_t *(rtree_node_alloc_t)(tsdn_t *, rtree_t *, size... type rtree_leaf_elm_t (line 117) | typedef rtree_leaf_elm_t *(rtree_leaf_alloc_t)(tsdn_t *, rtree_t *, size... function JEMALLOC_ALWAYS_INLINE (line 131) | JEMALLOC_ALWAYS_INLINE uintptr_t function JEMALLOC_ALWAYS_INLINE (line 141) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 150) | JEMALLOC_ALWAYS_INLINE uintptr_t function JEMALLOC_ALWAYS_INLINE (line 172) | JEMALLOC_ALWAYS_INLINE uintptr_t function JEMALLOC_ALWAYS_INLINE (line 179) | JEMALLOC_ALWAYS_INLINE extent_t * function JEMALLOC_ALWAYS_INLINE (line 198) | JEMALLOC_ALWAYS_INLINE szind_t function JEMALLOC_ALWAYS_INLINE (line 203) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 210) | JEMALLOC_ALWAYS_INLINE extent_t * function JEMALLOC_ALWAYS_INLINE (line 223) | JEMALLOC_ALWAYS_INLINE szind_t function JEMALLOC_ALWAYS_INLINE (line 235) | JEMALLOC_ALWAYS_INLINE bool function rtree_leaf_elm_extent_write (line 247) | static inline void function rtree_leaf_elm_szind_write (line 261) | static inline void function rtree_leaf_elm_slab_write (line 279) | static inline void function rtree_leaf_elm_write (line 294) | static inline void function rtree_leaf_elm_szind_slab_update (line 313) | static inline void function JEMALLOC_ALWAYS_INLINE (line 326) | JEMALLOC_ALWAYS_INLINE rtree_leaf_elm_t * function rtree_write (line 385) | static inline bool function JEMALLOC_ALWAYS_INLINE (line 403) | JEMALLOC_ALWAYS_INLINE rtree_leaf_elm_t * function JEMALLOC_ALWAYS_INLINE (line 415) | JEMALLOC_ALWAYS_INLINE extent_t * function JEMALLOC_ALWAYS_INLINE (line 426) | JEMALLOC_ALWAYS_INLINE szind_t function JEMALLOC_ALWAYS_INLINE (line 442) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 455) | JEMALLOC_ALWAYS_INLINE bool function rtree_szind_slab_update (line 474) | static inline void function rtree_clear (line 483) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/rtree_tsd.h type rtree_leaf_elm_t (line 32) | typedef struct rtree_leaf_elm_s rtree_leaf_elm_t; type rtree_ctx_cache_elm_t (line 34) | typedef struct rtree_ctx_cache_elm_s rtree_ctx_cache_elm_t; type rtree_ctx_cache_elm_s (line 35) | struct rtree_ctx_cache_elm_s { type rtree_ctx_t (line 40) | typedef struct rtree_ctx_s rtree_ctx_t; type rtree_ctx_s (line 41) | struct rtree_ctx_s { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/spin.h type spin_t (line 6) | typedef struct { function spin_cpu_spinwait (line 10) | static inline void function spin_adaptive (line 20) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/sz.h function JEMALLOC_ALWAYS_INLINE (line 50) | JEMALLOC_ALWAYS_INLINE pszind_t function sz_pind2sz_compute (line 73) | static inline size_t function sz_pind2sz_lookup (line 95) | static inline size_t function sz_pind2sz (line 102) | static inline size_t function sz_psz2u (line 108) | static inline size_t function szind_t (line 124) | static inline szind_t function JEMALLOC_ALWAYS_INLINE (line 154) | JEMALLOC_ALWAYS_INLINE szind_t function JEMALLOC_ALWAYS_INLINE (line 164) | JEMALLOC_ALWAYS_INLINE szind_t function sz_index2size_compute (line 173) | static inline size_t function JEMALLOC_ALWAYS_INLINE (line 199) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 206) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 212) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 236) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 248) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_ALWAYS_INLINE (line 261) | JEMALLOC_ALWAYS_INLINE size_t FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tcache_inlines.h function tcache_enabled_get (line 11) | static inline bool function tcache_enabled_set (line 16) | static inline void function JEMALLOC_ALWAYS_INLINE (line 30) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 41) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 103) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 163) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 188) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 214) | JEMALLOC_ALWAYS_INLINE tcache_t * FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tcache_structs.h type tcache_s (line 9) | struct tcache_s { type tcaches_s (line 54) | struct tcaches_s { FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tcache_types.h type tcache_t (line 6) | typedef struct tcache_s tcache_t; type tcaches_t (line 7) | typedef struct tcaches_s tcaches_t; FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/ticker.h type ticker_t (line 14) | typedef struct { function ticker_init (line 19) | static inline void function ticker_copy (line 25) | static inline void function ticker_read (line 30) | static inline int32_t function ticker_fixup (line 58) | static bool function ticker_ticks (line 64) | static inline bool function ticker_tick (line 73) | static inline bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd.h type tsd_state_t (line 111) | typedef uint8_t tsd_state_t; type tsd_s (line 114) | struct tsd_s { type tsdn_s (line 132) | struct tsdn_s { function JEMALLOC_ALWAYS_INLINE (line 136) | JEMALLOC_ALWAYS_INLINE tsdn_t * function JEMALLOC_ALWAYS_INLINE (line 141) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 146) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 239) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 245) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 255) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 274) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 280) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 289) | JEMALLOC_ALWAYS_INLINE tsd_t * function tsd_nominal (line 294) | static inline bool function JEMALLOC_ALWAYS_INLINE (line 299) | JEMALLOC_ALWAYS_INLINE tsdn_t * function JEMALLOC_ALWAYS_INLINE (line 308) | JEMALLOC_ALWAYS_INLINE rtree_ctx_t * function JEMALLOC_ALWAYS_INLINE (line 313) | JEMALLOC_ALWAYS_INLINE rtree_ctx_t * FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_generic.h type tsd_init_block_t (line 6) | typedef struct tsd_init_block_s tsd_init_block_t; type tsd_init_block_s (line 7) | struct tsd_init_block_s { type tsd_init_head_t (line 14) | typedef struct tsd_init_head_s tsd_init_head_t; type tsd_wrapper_t (line 16) | typedef struct { function JEMALLOC_ALWAYS_INLINE (line 31) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 53) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 61) | JEMALLOC_ALWAYS_INLINE tsd_wrapper_t * function JEMALLOC_ALWAYS_INLINE (line 89) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 99) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 115) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 124) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 129) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 135) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 147) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_malloc_thread_cleanup.h function JEMALLOC_ALWAYS_INLINE (line 11) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 20) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 27) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 32) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 37) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 42) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 48) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 53) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_tls.h function JEMALLOC_ALWAYS_INLINE (line 11) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 20) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 25) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 30) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 35) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 41) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 47) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_types.h type tsd_t (line 6) | typedef struct tsd_s tsd_t; type tsdn_t (line 7) | typedef struct tsdn_s tsdn_t; FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/tsd_win.h type tsd_wrapper_t (line 6) | typedef struct { function JEMALLOC_ALWAYS_INLINE (line 16) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 38) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 46) | JEMALLOC_ALWAYS_INLINE tsd_wrapper_t * function JEMALLOC_ALWAYS_INLINE (line 69) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 81) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 97) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 106) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 111) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 117) | JEMALLOC_ALWAYS_INLINE tsd_t * function JEMALLOC_ALWAYS_INLINE (line 129) | JEMALLOC_ALWAYS_INLINE void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/util.h function UTIL_INLINE (line 46) | UTIL_INLINE void function UTIL_INLINE (line 56) | UTIL_INLINE int FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/jemalloc/internal/witness.h type witness_t (line 73) | typedef struct witness_s witness_t; type witness_rank_t (line 74) | typedef unsigned witness_rank_t; type witness_list_t (line 75) | typedef ql_head(witness_t) witness_list_t; type witness_s (line 79) | struct witness_s { type witness_tsd_t (line 106) | typedef struct witness_tsd_s witness_tsd_t; type witness_tsd_s (line 107) | struct witness_tsd_s { type witness_tsdn_t (line 118) | typedef struct witness_tsdn_s witness_tsdn_t; type witness_tsdn_s (line 119) | struct witness_tsdn_s { function JEMALLOC_ALWAYS_INLINE (line 123) | JEMALLOC_ALWAYS_INLINE witness_tsdn_t * function JEMALLOC_ALWAYS_INLINE (line 128) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 133) | JEMALLOC_ALWAYS_INLINE witness_tsd_t * function witness_owner (line 164) | static inline bool function witness_assert_owner (line 181) | static inline void function witness_assert_not_owner (line 203) | static inline void function witness_assert_depth_to_rank (line 230) | static inline void function witness_assert_depth (line 263) | static inline void function witness_assert_lockless (line 268) | static inline void function witness_lock (line 273) | static inline void function witness_unlock (line 316) | static inline void FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/msvc_compat/C99/stdbool.h type BOOL (line 11) | typedef BOOL _Bool; FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/msvc_compat/C99/stdint.h type int_least8_t (line 94) | typedef int8_t int_least8_t; type int_least16_t (line 95) | typedef int16_t int_least16_t; type int_least32_t (line 96) | typedef int32_t int_least32_t; type int_least64_t (line 97) | typedef int64_t int_least64_t; type uint_least8_t (line 98) | typedef uint8_t uint_least8_t; type uint_least16_t (line 99) | typedef uint16_t uint_least16_t; type uint_least32_t (line 100) | typedef uint32_t uint_least32_t; type uint_least64_t (line 101) | typedef uint64_t uint_least64_t; type int_fast8_t (line 104) | typedef int8_t int_fast8_t; type int_fast16_t (line 105) | typedef int16_t int_fast16_t; type int_fast32_t (line 106) | typedef int32_t int_fast32_t; type int_fast64_t (line 107) | typedef int64_t int_fast64_t; type uint_fast8_t (line 108) | typedef uint8_t uint_fast8_t; type uint_fast16_t (line 109) | typedef uint16_t uint_fast16_t; type uint_fast32_t (line 110) | typedef uint32_t uint_fast32_t; type uint_fast64_t (line 111) | typedef uint64_t uint_fast64_t; type intmax_t (line 123) | typedef int64_t intmax_t; type uintmax_t (line 124) | typedef uint64_t uintmax_t; FILE: Chapter07/redis-6.0.3/deps/jemalloc/include/msvc_compat/strings.h function ffsl (line 9) | static __forceinline int ffsl(long x) { function ffs (line 18) | static __forceinline int ffs(int x) { function ffsll (line 26) | static __forceinline int ffsll(unsigned __int64 x) { FILE: Chapter07/redis-6.0.3/deps/jemalloc/msvc/test_threads/test_threads.cpp function test_threads (line 19) | int test_threads() { FILE: Chapter07/redis-6.0.3/deps/jemalloc/msvc/test_threads/test_threads_main.cpp function main (line 8) | int main(int argc, char** argv) { FILE: Chapter07/redis-6.0.3/deps/jemalloc/scripts/gen_run_tests.py function powerset (line 16) | def powerset(items): FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/arena.c function arena_basic_stats_merge (line 63) | void function arena_stats_merge (line 76) | void function arena_extents_dirty_dalloc (line 208) | void function arena_slab_regind (line 240) | static function arena_slab_reg_dalloc (line 263) | static void function arena_nactive_add (line 277) | static void function arena_nactive_sub (line 282) | static void function arena_large_malloc_stats_update (line 288) | static void function arena_large_dalloc_stats_update (line 304) | static void function arena_large_ralloc_stats_update (line 320) | static void function extent_t (line 327) | extent_t * function arena_extent_dalloc_large_prep (line 379) | void function arena_extent_ralloc_large_shrink (line 390) | void function arena_extent_ralloc_large_expand (line 404) | void function arena_decay_ms_read (line 418) | static ssize_t function arena_decay_ms_write (line 423) | static void function arena_decay_deadline_init (line 428) | static void function arena_decay_deadline_reached (line 445) | static bool function arena_decay_backlog_npages_limit (line 450) | static size_t function arena_decay_backlog_update_last (line 470) | static void function arena_decay_backlog_update (line 488) | static void function arena_decay_try_purge (line 510) | static void function arena_decay_epoch_advance_helper (line 521) | static void function arena_decay_epoch_advance (line 545) | static void function arena_decay_reinit (line 562) | static void function arena_decay_init (line 579) | static bool function arena_decay_ms_valid (line 601) | static bool function arena_maybe_decay (line 613) | static bool function arena_decay_ms_get (line 671) | static ssize_t function arena_dirty_decay_ms_get (line 676) | ssize_t function arena_muzzy_decay_ms_get (line 681) | ssize_t function arena_decay_ms_set (line 686) | static bool function arena_dirty_decay_ms_set (line 709) | bool function arena_muzzy_decay_ms_set (line 716) | bool function arena_stash_decayed (line 723) | static size_t function arena_decay_stashed (line 742) | static size_t function arena_decay_to_limit (line 815) | static void function arena_decay_impl (line 847) | static bool function arena_decay_dirty (line 882) | static bool function arena_decay_muzzy (line 889) | static bool function arena_decay (line 896) | void function arena_slab_dalloc (line 904) | static void function arena_bin_slabs_nonfull_insert (line 912) | static void function arena_bin_slabs_nonfull_remove (line 918) | static void function extent_t (line 923) | static extent_t * function arena_bin_slabs_full_insert (line 935) | static void function arena_bin_slabs_full_remove (line 949) | static void function arena_reset (line 957) | void function arena_destroy_retained (line 1036) | static void function arena_destroy (line 1055) | void function extent_t (line 1091) | static extent_t * function extent_t (line 1114) | static extent_t * function extent_t (line 1151) | static extent_t * function arena_tcache_fill_small (line 1249) | void function arena_alloc_junk_small (line 1302) | void function arena_dalloc_junk_small_impl (line 1309) | static void function arena_prof_promote (line 1408) | void function arena_prof_demote (line 1432) | static size_t function arena_dalloc_promoted (line 1448) | void function arena_dissociate_bin_slab (line 1464) | static void function arena_dalloc_bin_slab (line 1486) | static void function arena_bin_lower_slab (line 1501) | static void function arena_dalloc_bin_locked_impl (line 1528) | static void function arena_dalloc_bin_junked_locked (line 1556) | void function arena_dalloc_bin (line 1562) | static void function arena_dalloc_small (line 1572) | void function arena_ralloc_no_move (line 1581) | bool function dss_prec_t (line 1672) | dss_prec_t function arena_dss_prec_set (line 1677) | bool function arena_dirty_decay_ms_default_get (line 1686) | ssize_t function arena_dirty_decay_ms_default_set (line 1691) | bool function arena_muzzy_decay_ms_default_get (line 1700) | ssize_t function arena_muzzy_decay_ms_default_set (line 1705) | bool function arena_retain_grow_limit_get_set (line 1714) | bool function arena_nthreads_get (line 1741) | unsigned function arena_nthreads_inc (line 1746) | void function arena_nthreads_dec (line 1751) | void function arena_extent_sn_next (line 1756) | size_t function arena_t (line 1761) | arena_t * function arena_boot (line 1917) | void function arena_prefork0 (line 1933) | void function arena_prefork1 (line 1939) | void function arena_prefork2 (line 1946) | void function arena_prefork3 (line 1951) | void function arena_prefork4 (line 1958) | void function arena_prefork5 (line 1963) | void function arena_prefork6 (line 1968) | void function arena_prefork7 (line 1973) | void function arena_postfork_parent (line 1980) | void function arena_postfork_child (line 2001) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/background_thread.c function pthread_create_wrapper_init (line 36) | static void function pthread_create_wrapper (line 45) | int function background_thread_info_init (line 73) | static void function set_current_thread_affinity (line 83) | static inline bool function decay_npurge_after_interval (line 103) | static inline size_t function arena_decay_compute_purge_interval_impl (line 117) | static uint64_t function arena_decay_compute_purge_interval (line 203) | static uint64_t function background_thread_sleep (line 217) | static void function background_thread_pause_check (line 273) | static bool function background_work_sleep_once (line 287) | static inline void function background_threads_disable_single (line 312) | static bool function background_thread_create_signals_masked (line 353) | static int function check_background_thread_creation (line 385) | static bool function background_thread0_work (line 435) | static void function background_work (line 484) | static void function background_thread_init (line 529) | static void function background_thread_create (line 538) | bool function background_threads_enable (line 592) | bool function background_threads_disable (line 628) | bool function background_thread_interval_check (line 644) | void function background_thread_prefork0 (line 727) | void function background_thread_prefork1 (line 733) | void function background_thread_postfork_parent (line 740) | void function background_thread_postfork_child (line 749) | void function background_thread_stats_read (line 776) | bool function pthread_create_fptr_init (line 816) | static bool function background_thread_ctl_init (line 842) | void function background_thread_boot0 (line 853) | bool function background_thread_boot1 (line 869) | bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/base.c function metadata_thp_madvise (line 25) | static inline bool function base_unmap (line 54) | static void function base_extent_init (line 118) | static void function base_get_num_blocks (line 129) | static size_t function base_auto_thp_switch (line 143) | static void function base_extent_bump_alloc_post (line 197) | static void function base_block_t (line 247) | static base_block_t * function extent_t (line 307) | static extent_t * function base_t (line 344) | base_t * function base_t (line 349) | base_t * function base_delete (line 395) | void function extent_hooks_t (line 407) | extent_hooks_t * function extent_hooks_t (line 413) | extent_hooks_t * function extent_t (line 468) | extent_t * function base_stats_get (line 480) | void function base_prefork (line 495) | void function base_postfork_parent (line 500) | void function base_postfork_child (line 505) | void function base_boot (line 510) | bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/bin.c function bin_init (line 22) | bool function bin_prefork (line 37) | void function bin_postfork_parent (line 42) | void function bin_postfork_child (line 47) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/bitmap.c function bitmap_info_init (line 11) | void function bitmap_info_ngroups (line 39) | static size_t function bitmap_init (line 44) | void function bitmap_info_init (line 85) | void function bitmap_info_ngroups (line 94) | static size_t function bitmap_init (line 99) | void function bitmap_size (line 118) | size_t FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/ckh.c function ckh_bucket_search (line 62) | static size_t function ckh_isearch (line 80) | static size_t function ckh_try_bucket_insert (line 101) | static bool function ckh_evict_reloc_insert (line 133) | static bool function ckh_try_insert (line 204) | static bool function ckh_rebuild (line 234) | static bool function ckh_grow (line 256) | static bool function ckh_shrink (line 310) | static void function ckh_new (line 358) | bool function ckh_delete (line 415) | void function ckh_count (line 437) | size_t function ckh_iter (line 444) | bool function ckh_insert (line 465) | bool function ckh_remove (line 488) | bool function ckh_search (line 521) | bool function ckh_string_hash (line 541) | void function ckh_string_keycomp (line 546) | bool function ckh_pointer_hash (line 554) | void function ckh_pointer_keycomp (line 566) | bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/ctl.c function ctl_named_node_t (line 29) | static const ctl_named_node_t * function ctl_named_node_t (line 34) | static const ctl_named_node_t * function ctl_indexed_node_t (line 41) | static const ctl_indexed_node_t * function MUTEX_PROF_GLOBAL_MUTEXES (line 519) | MUTEX_PROF_GLOBAL_MUTEXES function thread_prof_name_ctl (line 1798) | static int function thread_prof_active_ctl (line 1829) | static int function tcache_create_ctl (line 1859) | static int function tcache_flush_ctl (line 1877) | static int function tcache_destroy_ctl (line 1897) | static int function arena_i_initialized_ctl (line 1919) | static int function arena_i_decay (line 1941) | static void function arena_i_decay_ctl (line 1988) | static int function arena_i_purge_ctl (line 2004) | static int function arena_i_reset_destroy_helper (line 2020) | static int function arena_reset_prepare_background_thread (line 2041) | static void function arena_reset_finish_background_thread (line 2058) | static void function arena_i_reset_ctl (line 2074) | static int function arena_i_destroy_ctl (line 2094) | static int function arena_i_dss_ctl (line 2135) | static int function arena_i_decay_ms_ctl_impl (line 2196) | static int function arena_i_dirty_decay_ms_ctl (line 2233) | static int function arena_i_muzzy_decay_ms_ctl (line 2240) | static int function arena_i_extent_hooks_ctl (line 2247) | static int function arena_i_retain_grow_limit_ctl (line 2302) | static int function ctl_named_node_t (line 2338) | static const ctl_named_node_t * function arenas_narenas_ctl (line 2363) | static int function arenas_decay_ms_ctl_impl (line 2384) | static int function arenas_dirty_decay_ms_ctl (line 2411) | static int function arenas_muzzy_decay_ms_ctl (line 2418) | static int function ctl_named_node_t (line 2433) | static const ctl_named_node_t * function ctl_named_node_t (line 2444) | static const ctl_named_node_t * function arenas_create_ctl (line 2453) | static int function arenas_lookup_ctl (line 2476) | static int function prof_thread_active_init_ctl (line 2508) | static int function prof_active_ctl (line 2535) | static int function prof_dump_ctl (line 2561) | static int function prof_gdump_ctl (line 2584) | static int function prof_reset_ctl (line 2610) | static int function stats_mutexes_reset_ctl (line 2767) | static int function ctl_named_node_t (line 2837) | static const ctl_named_node_t * function ctl_named_node_t (line 2858) | static const ctl_named_node_t * function ctl_named_node_t (line 2867) | static const ctl_named_node_t * FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/div.c function div_init (line 29) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/extent.c type lock_result_t (line 125) | typedef enum { function lock_result_t (line 131) | static lock_result_t function extent_t (line 161) | static extent_t * function extent_t (line 176) | extent_t * function extent_dalloc (line 189) | void function extent_hooks_t (line 196) | extent_hooks_t * function extent_hooks_t (line 201) | extent_hooks_t * function extent_hooks_assure_initialized (line 216) | static void function extent_size_quantize_floor (line 227) | size_t function extent_size_quantize_ceil (line 251) | static function extents_init (line 280) | bool function extent_state_t (line 298) | extent_state_t function extents_npages_get (line 303) | size_t function extents_insert_locked (line 308) | static void function extents_remove_locked (line 334) | static void function extent_t (line 364) | static extent_t * function extent_t (line 398) | static extent_t * function extent_t (line 425) | static extent_t * function extent_t (line 456) | static extent_t * function extent_try_delayed_coalesce (line 484) | static bool function extent_t (line 501) | extent_t * function extents_dalloc (line 516) | void function extent_t (line 531) | extent_t * function extents_leak (line 595) | static void function extents_prefork (line 613) | void function extents_postfork_parent (line 618) | void function extents_postfork_child (line 623) | void function extent_deactivate_locked (line 628) | static void function extent_deactivate (line 638) | static void function extent_activate_locked (line 646) | static void function extent_rtree_leaf_elms_lookup (line 656) | static bool function extent_rtree_write_acquired (line 677) | static void function extent_interior_register (line 687) | static void function extent_gdump_add (line 700) | static void function extent_gdump_sub (line 726) | static void function extent_register_impl (line 737) | static bool function extent_register (line 770) | static bool function extent_register_no_gdump_add (line 775) | static bool function extent_reregister (line 780) | static void function extent_interior_deregister (line 793) | static void function extent_deregister_impl (line 810) | static void function extent_deregister (line 833) | static void function extent_deregister_no_gdump_sub (line 838) | static void function extent_t (line 847) | static extent_t * type extent_split_interior_result_t (line 915) | typedef enum { function extent_split_interior_result_t (line 934) | static extent_split_interior_result_t function extent_t (line 1011) | static extent_t * function extent_t (line 1060) | static extent_t * function extent_hook_pre_reentrancy (line 1197) | static void function extent_hook_post_reentrancy (line 1214) | static void function extent_t (line 1225) | static extent_t * function extent_t (line 1389) | static extent_t * function extent_t (line 1418) | static extent_t * function extent_t (line 1457) | extent_t * function extent_can_coalesce (line 1486) | static bool function extent_coalesce (line 1506) | static bool function extent_t (line 1526) | static extent_t * function extent_record (line 1596) | static void function extent_dalloc_gap (line 1639) | void function extent_dalloc_default_impl (line 1654) | static bool function extent_dalloc_default (line 1662) | static bool function extent_dalloc_wrapper_try (line 1668) | static bool function extent_dalloc_wrapper (line 1702) | void function extent_destroy_default_impl (line 1756) | static void function extent_destroy_default (line 1763) | static void function extent_destroy_wrapper (line 1769) | void function extent_commit_default (line 1799) | static bool function extent_commit_impl (line 1806) | static bool function extent_commit_wrapper (line 1827) | bool function extent_decommit_default (line 1835) | static bool function extent_decommit_wrapper (line 1842) | bool function extent_purge_lazy_default (line 1866) | static bool function extent_purge_lazy_impl (line 1879) | static bool function extent_purge_lazy_wrapper (line 1904) | bool function extent_purge_forced_default (line 1913) | static bool function extent_purge_forced_impl (line 1926) | static bool function extent_purge_forced_wrapper (line 1950) | bool function extent_split_default (line 1959) | static bool function extent_t (line 1973) | static extent_t * function extent_t (line 2055) | extent_t * function extent_merge_default_impl (line 2063) | static bool function extent_merge_default (line 2076) | static bool function extent_merge_impl (line 2083) | static bool function extent_merge_wrapper (line 2155) | bool function extent_boot (line 2161) | bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/extent_dss.c function dss_prec_t (line 51) | dss_prec_t function extent_dss_prec_set (line 62) | bool function extent_dss_extending_start (line 71) | static void function extent_dss_extending_finish (line 84) | static void function extent_in_dss_helper (line 230) | static bool function extent_in_dss (line 236) | bool function extent_dss_mergeable (line 244) | bool function extent_dss_boot (line 260) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/extent_mmap.c function extent_dalloc_mmap (line 36) | bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/jemalloc.c type malloc_init_t (line 91) | typedef enum { function WINAPI (line 134) | WINAPI type malloc_utrace_t (line 163) | typedef struct { function malloc_initialized (line 202) | bool function JEMALLOC_ALWAYS_INLINE (line 207) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 215) | JEMALLOC_ALWAYS_INLINE bool function a0idalloc (line 238) | static void function a0dalloc (line 248) | void function bootstrap_free (line 281) | void function arena_set (line 290) | void function narenas_total_set (line 295) | static void function narenas_total_inc (line 300) | static void function narenas_total_get (line 305) | unsigned function arena_t (line 311) | static arena_t * function arena_new_create_background_thread (line 339) | static void function arena_t (line 357) | arena_t * function arena_bind (line 370) | static void function arena_migrate (line 382) | void function arena_unbind (line 393) | static void function arena_tdata_t (line 407) | arena_tdata_t * function arena_t (line 484) | arena_t * function iarena_cleanup (line 598) | void function arena_cleanup (line 608) | void function arenas_tdata_cleanup (line 618) | void function stats_print_atexit (line 632) | static void function JEMALLOC_ALWAYS_INLINE (line 669) | JEMALLOC_ALWAYS_INLINE void function malloc_ncpus (line 711) | static unsigned function init_opt_stats_print_opts (line 739) | static void function malloc_conf_next (line 764) | static bool function malloc_abort_invalid_conf (line 839) | static void function malloc_conf_error (line 847) | static void function malloc_slow_flag_init (line 856) | static void function malloc_conf_init (line 871) | static void function malloc_init_hard_needed (line 1248) | static bool function malloc_init_hard_a0_locked (line 1274) | static bool function malloc_init_hard_a0 (line 1334) | static bool function malloc_init_hard_recursible (line 1345) | static bool function malloc_narenas_default (line 1372) | static unsigned function percpu_arena_mode_t (line 1386) | static percpu_arena_mode_t function malloc_init_narenas (line 1398) | static bool function malloc_init_percpu (line 1470) | static void function malloc_init_hard_finish (line 1475) | static bool function malloc_init_hard_cleanup (line 1487) | static void function malloc_init_hard (line 1499) | static bool type static_opts_t (line 1586) | typedef struct static_opts_s static_opts_t; type static_opts_s (line 1587) | struct static_opts_s { function JEMALLOC_ALWAYS_INLINE (line 1626) | JEMALLOC_ALWAYS_INLINE void type dynamic_opts_t (line 1648) | typedef struct dynamic_opts_s dynamic_opts_t; type dynamic_opts_s (line 1649) | struct dynamic_opts_s { function JEMALLOC_ALWAYS_INLINE (line 1659) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 1671) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 1713) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 1748) | JEMALLOC_ALWAYS_INLINE bool function JEMALLOC_ALWAYS_INLINE (line 1786) | JEMALLOC_ALWAYS_INLINE int function JEMALLOC_ALWAYS_INLINE (line 1984) | JEMALLOC_ALWAYS_INLINE int function JEMALLOC_ALWAYS_INLINE (line 2166) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 2191) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_ALWAYS_INLINE (line 2230) | JEMALLOC_ALWAYS_INLINE void function JEMALLOC_NOTHROW (line 2371) | JEMALLOC_NOTHROW function JEMALLOC_ALWAYS_INLINE (line 2618) | JEMALLOC_ALWAYS_INLINE void * function JEMALLOC_ALWAYS_INLINE (line 2752) | JEMALLOC_ALWAYS_INLINE size_t function ixallocx_prof_sample (line 2765) | static size_t function JEMALLOC_ALWAYS_INLINE (line 2779) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_NOTHROW (line 2828) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 2919) | JEMALLOC_NOTHROW function JEMALLOC_ALWAYS_INLINE (line 2964) | JEMALLOC_ALWAYS_INLINE size_t function JEMALLOC_NOTHROW (line 2978) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3026) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3053) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3075) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3095) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3116) | JEMALLOC_NOTHROW function JEMALLOC_NOTHROW (line 3130) | JEMALLOC_NOTHROW function jemalloc_constructor (line 3181) | JEMALLOC_ATTR(constructor) function jemalloc_prefork (line 3189) | void function jemalloc_postfork_parent (line 3262) | void function jemalloc_postfork_child (line 3299) | void function JEMALLOC_NOTHROW (line 3333) | JEMALLOC_NOTHROW FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/jemalloc_cpp.cpp function JEMALLOC_NOINLINE (line 42) | JEMALLOC_NOINLINE function JEMALLOC_ALWAYS_INLINE (line 75) | JEMALLOC_ALWAYS_INLINE FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/large.c function large_dalloc_junk_impl (line 74) | static void function large_dalloc_maybe_junk_impl (line 80) | static void function large_ralloc_no_move_shrink (line 95) | static bool function large_ralloc_no_move_expand (line 130) | static bool function large_ralloc_no_move (line 218) | bool function large_dalloc_prep_impl (line 308) | static void function large_dalloc_finish_impl (line 329) | static void function large_dalloc_prep_junked_locked (line 335) | void function large_dalloc_finish (line 340) | void function large_dalloc (line 345) | void function large_salloc (line 353) | size_t function prof_tctx_t (line 358) | prof_tctx_t * function large_prof_tctx_set (line 363) | void function large_prof_tctx_reset (line 368) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/log.c function log_var_matches_segment (line 21) | static bool function log_var_update_state (line 43) | unsigned FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/malloc_io.c function wrtmessage (line 71) | static void function malloc_write (line 82) | void function buferror (line 95) | int function uintmax_t (line 113) | uintmax_t function malloc_vsnprintf (line 326) | size_t function malloc_cprintf (line 647) | void function malloc_printf (line 659) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/mutex.c function JEMALLOC_EXPORT (line 31) | JEMALLOC_EXPORT int function malloc_mutex_lock_slow (line 46) | void function mutex_prof_data_init (line 103) | static void function malloc_mutex_prof_data_reset (line 111) | void function mutex_addr_comp (line 117) | static int function malloc_mutex_init (line 133) | bool function malloc_mutex_prefork (line 185) | void function malloc_mutex_postfork_parent (line 190) | void function malloc_mutex_postfork_child (line 195) | void function malloc_mutex_boot (line 211) | bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/mutex_pool.c function mutex_pool_init (line 9) | bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/nstime.c function nstime_init (line 11) | void function nstime_init2 (line 16) | void function nstime_ns (line 21) | uint64_t function nstime_msec (line 26) | uint64_t function nstime_sec (line 31) | uint64_t function nstime_nsec (line 36) | uint64_t function nstime_copy (line 41) | void function nstime_compare (line 46) | int function nstime_add (line 51) | void function nstime_iadd (line 58) | void function nstime_subtract (line 65) | void function nstime_isubtract (line 72) | void function nstime_imultiply (line 79) | void function nstime_idivide (line 87) | void function nstime_divide (line 94) | uint64_t function nstime_get (line 103) | static void function nstime_get (line 115) | static void function nstime_get (line 124) | static void function nstime_get (line 133) | static void function nstime_get (line 139) | static void function nstime_monotonic_impl (line 148) | static bool function nstime_update_impl (line 155) | static bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/pages.c function pages_unmap (line 211) | void function pages_commit_impl (line 219) | static bool function pages_commit (line 252) | bool function pages_decommit (line 257) | bool function pages_purge_lazy (line 262) | bool function pages_purge_forced (line 297) | bool function pages_huge_impl (line 317) | static bool function pages_huge (line 330) | bool function pages_huge_unaligned (line 335) | static bool function pages_nohuge_impl (line 340) | static bool function pages_nohuge (line 354) | bool function pages_nohuge_unaligned (line 359) | static bool function pages_dontdump (line 364) | bool function pages_dodump (line 375) | bool function os_page_detect (line 387) | static size_t function os_overcommits_sysctl (line 405) | static bool function os_overcommits_proc (line 435) | static bool function pages_set_thp_state (line 496) | void function init_thp_state (line 515) | static void function pages_boot (line 561) | bool FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/prof.c function prof_tctx_comp (line 151) | static int function prof_malloc_sample_object (line 240) | void function prof_free_sampled_object (line 256) | void function bt_init (line 271) | void function prof_enter (line 279) | static void function prof_leave (line 292) | static void function prof_backtrace (line 319) | void function _Unwind_Reason_Code (line 334) | static _Unwind_Reason_Code function _Unwind_Reason_Code (line 341) | static _Unwind_Reason_Code function prof_backtrace (line 361) | void function prof_backtrace (line 370) | void function prof_backtrace (line 533) | void function malloc_mutex_t (line 540) | static malloc_mutex_t * function malloc_mutex_t (line 547) | static malloc_mutex_t * function prof_gctx_t (line 552) | static prof_gctx_t * function prof_gctx_try_destroy (line 578) | static void function prof_tctx_should_destroy (line 613) | static bool function prof_gctx_should_destroy (line 629) | static bool function prof_tctx_destroy (line 643) | static void function prof_lookup_global (line 719) | static bool function prof_tctx_t (line 784) | prof_tctx_t * function prof_sample_threshold_update (line 871) | void function prof_tdata_t (line 913) | static prof_tdata_t * function prof_tdata_count (line 923) | size_t function prof_bt_count (line 937) | size_t function prof_dump_open_impl (line 957) | static int function prof_dump_flush (line 974) | static bool function prof_dump_close (line 997) | static bool function prof_dump_write (line 1009) | static bool function prof_dump_printf (line 1041) | static bool function prof_tctx_merge_tdata (line 1055) | static void function prof_tctx_merge_gctx (line 1086) | static void function prof_tctx_t (line 1098) | static prof_tctx_t * type prof_tctx_dump_iter_arg_s (line 1119) | struct prof_tctx_dump_iter_arg_s { function prof_tctx_t (line 1124) | static prof_tctx_t * function prof_tctx_t (line 1152) | static prof_tctx_t * function prof_dump_gctx_prep (line 1178) | static void type prof_gctx_merge_iter_arg_s (line 1197) | struct prof_gctx_merge_iter_arg_s { function prof_gctx_t (line 1202) | static prof_gctx_t * function prof_gctx_finish (line 1218) | static void type prof_tdata_merge_iter_arg_s (line 1264) | struct prof_tdata_merge_iter_arg_s { function prof_tdata_t (line 1269) | static prof_tdata_t * function prof_tdata_t (line 1304) | static prof_tdata_t * function prof_dump_header_impl (line 1325) | static bool function prof_dump_gctx (line 1346) | static bool function prof_open_maps (line 1403) | static int function prof_getpid (line 1426) | static int function prof_dump_maps (line 1435) | static bool function prof_leakcheck (line 1495) | static void type prof_gctx_dump_iter_arg_s (line 1526) | struct prof_gctx_dump_iter_arg_s { function prof_gctx_t (line 1531) | static prof_gctx_t * function prof_dump_prep (line 1551) | static void function prof_dump_file (line 1593) | static bool function prof_dump (line 1634) | static bool function prof_cnt_all (line 1674) | void function prof_dump_filename (line 1722) | static void function prof_fdump (line 1740) | static void function prof_accum_init (line 1761) | bool function prof_idump (line 1777) | void function prof_mdump (line 1811) | bool function prof_gdump (line 1834) | void function prof_bt_hash (line 1868) | static void function prof_bt_keycomp (line 1877) | static bool function prof_thr_uid_alloc (line 1890) | static uint64_t function prof_tdata_t (line 1902) | static prof_tdata_t * function prof_tdata_t (line 1948) | prof_tdata_t * function prof_tdata_should_destroy_unlocked (line 1954) | static bool function prof_tdata_should_destroy (line 1965) | static bool function prof_tdata_destroy_locked (line 1973) | static void function prof_tdata_destroy (line 1990) | static void function prof_tdata_detach (line 1997) | static void function prof_tdata_t (line 2022) | prof_tdata_t * function prof_tdata_expire (line 2035) | static bool function prof_tdata_t (line 2052) | static prof_tdata_t * function prof_reset (line 2060) | void function prof_tdata_cleanup (line 2087) | void function prof_active_get (line 2101) | bool function prof_active_set (line 2111) | bool function prof_thread_name_set (line 2156) | int function prof_thread_active_get (line 2194) | bool function prof_thread_active_set (line 2205) | bool function prof_thread_active_init_get (line 2217) | bool function prof_thread_active_init_set (line 2227) | bool function prof_gdump_get (line 2238) | bool function prof_gdump_set (line 2248) | bool function prof_boot0 (line 2259) | void function prof_boot1 (line 2267) | void function prof_boot2 (line 2291) | bool function prof_prefork0 (line 2400) | void function prof_prefork1 (line 2417) | void function prof_postfork_parent (line 2428) | void function prof_postfork_child (line 2451) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/rtree.c function rtree_new (line 12) | bool function rtree_node_elm_t (line 30) | static rtree_node_elm_t * function rtree_node_dalloc_impl (line 37) | static void function rtree_leaf_elm_t (line 45) | static rtree_leaf_elm_t * function rtree_leaf_dalloc_impl (line 52) | static void function rtree_delete_subtree (line 62) | static void function rtree_delete (line 93) | void function rtree_node_elm_t (line 101) | static rtree_node_elm_t * function rtree_leaf_elm_t (line 128) | static rtree_leaf_elm_t * function rtree_node_valid (line 154) | static bool function rtree_leaf_valid (line 159) | static bool function rtree_node_elm_t (line 164) | static rtree_node_elm_t * function rtree_node_elm_t (line 180) | static rtree_node_elm_t * function rtree_leaf_elm_t (line 193) | static rtree_leaf_elm_t * function rtree_leaf_elm_t (line 209) | static rtree_leaf_elm_t * function rtree_leaf_elm_t (line 222) | rtree_leaf_elm_t * function rtree_ctx_data_init (line 308) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/stats.c function get_rate_str (line 56) | static bool function gen_mutex_ctl_str (line 81) | static void function mutex_stats_init_cols (line 87) | static void function mutex_stats_read_global (line 121) | static void function mutex_stats_read_arena (line 144) | static void function mutex_stats_read_arena_bin (line 169) | static void function mutex_stats_emit (line 192) | static void function stats_arena_bins_print (line 218) | static void function stats_arena_lextents_print (line 410) | static void function stats_arena_mutexes_print (line 497) | static void function stats_arena_print (line 522) | static void function stats_general_print (line 825) | static void function stats_print_helper (line 1064) | static void function stats_print (line 1224) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/tcache.c function tcache_salloc (line 34) | size_t function tcache_event_hard (line 39) | void function tcache_bin_flush_small (line 103) | void function tcache_bin_flush_large (line 188) | void function tcache_arena_associate (line 286) | void function tcache_arena_dissociate (line 307) | static void function tcache_arena_reassociate (line 334) | void function tsd_tcache_enabled_data_init (line 340) | bool function tcache_init (line 355) | static void function tsd_tcache_data_init (line 389) | bool function tcache_t (line 431) | tcache_t * function tcache_flush_cache (line 457) | static void function tcache_flush (line 485) | void function tcache_destroy (line 491) | static void function tcache_cleanup (line 509) | void function tcache_stats_merge (line 528) | void function tcaches_create_prep (line 552) | static bool function tcaches_create (line 578) | bool function tcache_t (line 616) | static tcache_t * function tcaches_flush (line 628) | void function tcaches_destroy (line 638) | void function tcache_boot (line 651) | bool function tcache_prefork (line 698) | void function tcache_postfork_parent (line 705) | void function tcache_postfork_child (line 712) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/tsd.c type tsd_init_head_s (line 34) | struct tsd_init_head_s { function tsd_slow_update (line 54) | void function tsd_data_init (line 66) | static bool function assert_tsd_data_cleanup_done (line 87) | static void function tsd_data_init_nocleanup (line 98) | static bool function tsd_t (line 116) | tsd_t * function malloc_tsd_dalloc (line 164) | void function _malloc_thread_cleanup (line 173) | void function malloc_tsd_cleanup_register (line 196) | void function tsd_do_data_cleanup (line 203) | static void function tsd_cleanup (line 213) | void function tsd_t (line 258) | tsd_t * function malloc_tsd_boot1 (line 271) | void function BOOL (line 281) | static BOOL WINAPI function tsd_init_finish (line 345) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/witness.c function witness_init (line 8) | void function witness_lock_error_impl (line 17) | static void function witness_owner_error_impl (line 31) | static void function witness_not_owner_error_impl (line 40) | static void function witness_depth_error_impl (line 49) | static void function witnesses_cleanup (line 65) | void function witness_prefork (line 72) | void function witness_postfork_parent (line 80) | void function witness_postfork_child (line 88) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/src/zone.c type malloc_zone_t (line 14) | typedef struct _malloc_zone_t { type vm_range_t (line 34) | typedef struct { type malloc_statistics_t (line 39) | typedef struct malloc_statistics_t { type kern_return_t (line 46) | typedef kern_return_t memory_reader_t(task_t, vm_address_t, vm_size_t, v... type malloc_introspection_t (line 50) | typedef struct malloc_introspection_t { type malloc_introspection_t (line 91) | struct malloc_introspection_t type _malloc_zone_t (line 108) | struct _malloc_zone_t type _malloc_zone_t (line 110) | struct _malloc_zone_t type _malloc_zone_t (line 112) | struct _malloc_zone_t function zone_size (line 132) | static size_t function zone_free (line 165) | static void function zone_free_definite_size (line 193) | static void function zone_destroy (line 207) | static void function zone_batch_malloc (line 213) | static unsigned function zone_batch_free (line 227) | static void function zone_pressure_relief (line 238) | static size_t function zone_good_size (line 243) | static size_t function kern_return_t (line 251) | static kern_return_t function boolean_t (line 258) | static boolean_t function zone_print (line 263) | static void function zone_log (line 267) | static void function zone_force_lock (line 271) | static void function zone_force_unlock (line 284) | static void function zone_statistics (line 309) | static void function boolean_t (line 318) | static boolean_t function zone_reinit_lock (line 324) | static void function zone_init (line 331) | static void function malloc_zone_t (line 369) | static malloc_zone_t * function zone_promote (line 400) | static void function zone_register (line 436) | JEMALLOC_ATTR(constructor) FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/include/test/SFMT-alti.h function vec_recursion (line 64) | unsigned int vec_recursion(vector unsigned int a, function gen_rand_all (line 98) | static inline void gen_rand_all(sfmt_t *ctx) { function gen_rand_array (line 125) | static inline void gen_rand_array(sfmt_t *ctx, w128_t *array, int size) { function swap (line 176) | static inline void swap(w128_t *array, int size) { FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/include/test/SFMT-sse2.h function JEMALLOC_ALWAYS_INLINE (line 63) | JEMALLOC_ALWAYS_INLINE __m128i mm_recursion(__m128i *a, __m128i *b, function gen_rand_all (line 84) | static inline void gen_rand_all(sfmt_t *ctx) { function gen_rand_array (line 114) | static inline void gen_rand_array(sfmt_t *ctx, w128_t *array, int size) { FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/include/test/SFMT.h type sfmt_t (line 69) | typedef struct sfmt_s sfmt_t; function to_real1 (line 86) | static inline double to_real1(uint32_t v) { function genrand_real1 (line 92) | static inline double genrand_real1(sfmt_t *ctx) { function to_real2 (line 97) | static inline double to_real2(uint32_t v) { function genrand_real2 (line 103) | static inline double genrand_real2(sfmt_t *ctx) { function to_real3 (line 108) | static inline double to_real3(uint32_t v) { function genrand_real3 (line 114) | static inline double genrand_real3(sfmt_t *ctx) { function to_res53 (line 120) | static inline double to_res53(uint64_t v) { function to_res53_mix (line 126) | static inline double to_res53_mix(uint32_t x, uint32_t y) { function genrand_res53 (line 132) | static inline double genrand_res53(sfmt_t *ctx) { function genrand_res53_mix (line 139) | static inline double genrand_res53_mix(sfmt_t *ctx) { FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/include/test/extent_hooks.h function extent_dalloc_hook (line 103) | static bool function extent_destroy_hook (line 124) | static void function extent_commit_hook (line 142) | static bool function extent_decommit_hook (line 164) | static bool function extent_purge_lazy_hook (line 186) | static bool function extent_purge_forced_hook (line 209) | static bool function extent_split_hook (line 232) | static bool function extent_merge_hook (line 256) | static bool function extent_hooks_prep (line 282) | static void FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/include/test/math.h function ln_gamma (line 9) | static inline double function i_gamma (line 44) | static inline double function pt_norm (line 128) | static inline double function pt_chi2 (line 216) | static inline double function pt_gamma (line 303) | static inline double FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/include/test/mtx.h type mtx_t (line 8) | typedef struct { FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/include/test/test.h type test_status_t (line 289) | typedef enum { FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/include/test/thd.h type HANDLE (line 3) | typedef HANDLE thd_t; type pthread_t (line 5) | typedef pthread_t thd_t; FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/include/test/timer.h type timedelta_t (line 3) | typedef struct { FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/MALLOCX_ARENA.c function TEST_BEGIN (line 47) | TEST_BEGIN(test_MALLOCX_ARENA) { function TEST_END (line 60) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/aligned_alloc.c function purge (line 10) | static void function TEST_BEGIN (line 16) | TEST_BEGIN(test_alignment_errors) { function TEST_END (line 35) | TEST_END function TEST_END (line 79) | TEST_END function TEST_END (line 125) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/allocated.c function TEST_BEGIN (line 102) | TEST_BEGIN(test_main_thread) { function TEST_END (line 105) | TEST_END function TEST_END (line 113) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/extent.c function check_background_thread_enabled (line 5) | static bool function test_extent_body (line 17) | static void function test_manual_hook_auto_arena (line 101) | static void function test_manual_hook_body (line 138) | static void function TEST_BEGIN (line 208) | TEST_BEGIN(test_extent_manual_hook) { function TEST_END (line 223) | TEST_END function TEST_END (line 241) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/mallocx.c function get_nsizes_impl (line 3) | static unsigned function get_nlarge (line 15) | static unsigned function get_size_impl (line 20) | static size_t function get_large_size (line 38) | static size_t function purge (line 48) | static void function TEST_BEGIN (line 54) | TEST_BEGIN(test_overflow) { function TEST_END (line 72) | TEST_END function TEST_END (line 114) | TEST_END function TEST_END (line 151) | TEST_END function TEST_END (line 219) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/overflow.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_overflow) { function TEST_END (line 40) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/posix_memalign.c function purge (line 10) | static void function TEST_BEGIN (line 16) | TEST_BEGIN(test_alignment_errors) { function TEST_END (line 33) | TEST_END function TEST_END (line 71) | TEST_END function TEST_END (line 119) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/rallocx.c function get_nsizes_impl (line 3) | static unsigned function get_nlarge (line 15) | static unsigned function get_size_impl (line 20) | static size_t function get_large_size (line 38) | static size_t function TEST_BEGIN (line 43) | TEST_BEGIN(test_grow_and_shrink) { function TEST_END (line 85) | TEST_END function TEST_BEGIN (line 106) | TEST_BEGIN(test_zero) { function TEST_END (line 148) | TEST_END function TEST_END (line 172) | TEST_END function TEST_END (line 209) | TEST_END function TEST_END (line 235) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/sdallocx.c function TEST_BEGIN (line 6) | TEST_BEGIN(test_basic) { function TEST_END (line 10) | TEST_END function TEST_END (line 48) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/thread_arena.c function mallctl_failure (line 40) | static void function TEST_BEGIN (line 48) | TEST_BEGIN(test_thread_arena) { function TEST_END (line 80) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/thread_tcache_enabled.c function TEST_BEGIN (line 65) | TEST_BEGIN(test_main_thread) { function TEST_END (line 68) | TEST_END function TEST_END (line 76) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/integration/xallocx.c function arena_ind (line 8) | static unsigned function TEST_BEGIN (line 21) | TEST_BEGIN(test_same_size) { function TEST_END (line 34) | TEST_END function TEST_END (line 49) | TEST_END function TEST_END (line 64) | TEST_END function get_nsmall (line 78) | static unsigned function get_nlarge (line 83) | static unsigned function get_size_impl (line 88) | static size_t function get_small_size (line 106) | static size_t function get_large_size (line 111) | static size_t function TEST_BEGIN (line 116) | TEST_BEGIN(test_size) { function TEST_END (line 143) | TEST_END function TEST_END (line 174) | TEST_END function TEST_END (line 205) | TEST_END function TEST_END (line 274) | TEST_END function validate_fill (line 295) | static bool function test_zero (line 314) | static void function TEST_BEGIN (line 362) | TEST_BEGIN(test_zero_large) { function TEST_END (line 371) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/src/SFMT.c type w128_t (line 77) | typedef union W128_T w128_t; type w128_t (line 86) | typedef union W128_T w128_t; type W128_T (line 91) | struct W128_T { type w128_t (line 95) | typedef struct W128_T w128_t; type sfmt_s (line 99) | struct sfmt_s { function idxof (line 145) | static inline int idxof(int i) { function idxof (line 149) | static inline int idxof(int i) { function rshift128 (line 163) | static inline void rshift128(w128_t *out, w128_t const *in, int shift) { function rshift128 (line 178) | static inline void rshift128(w128_t *out, w128_t const *in, int shift) { function lshift128 (line 202) | static inline void lshift128(w128_t *out, w128_t const *in, int shift) { function lshift128 (line 217) | static inline void lshift128(w128_t *out, w128_t const *in, int shift) { function do_recursion (line 244) | static inline void do_recursion(w128_t *r, w128_t *a, w128_t *b, w128_t *c, function do_recursion (line 261) | static inline void do_recursion(w128_t *r, w128_t *a, w128_t *b, w128_t *c, function gen_rand_all (line 285) | static inline void gen_rand_all(sfmt_t *ctx) { function gen_rand_array (line 312) | static inline void gen_rand_array(sfmt_t *ctx, w128_t *array, int size) { function swap (line 346) | static inline void swap(w128_t *array, int size) { function func1 (line 366) | static uint32_t func1(uint32_t x) { function func2 (line 376) | static uint32_t func2(uint32_t x) { function period_certification (line 383) | static void period_certification(sfmt_t *ctx) { function get_min_array_size32 (line 428) | int get_min_array_size32(void) { function get_min_array_size64 (line 437) | int get_min_array_size64(void) { function gen_rand32 (line 447) | uint32_t gen_rand32(sfmt_t *ctx) { function gen_rand32_range (line 461) | uint32_t gen_rand32_range(sfmt_t *ctx, uint32_t limit) { function gen_rand64 (line 482) | uint64_t gen_rand64(sfmt_t *ctx) { function gen_rand64_range (line 511) | uint64_t gen_rand64_range(sfmt_t *ctx, uint64_t limit) { function fill_array32 (line 551) | void fill_array32(sfmt_t *ctx, uint32_t *array, int size) { function fill_array64 (line 587) | void fill_array64(sfmt_t *ctx, uint64_t *array, int size) { function sfmt_t (line 607) | sfmt_t *init_gen_rand(uint32_t seed) { function sfmt_t (line 638) | sfmt_t *init_by_array(uint32_t *init_key, int key_length) { function fini_gen_rand (line 714) | void fini_gen_rand(sfmt_t *ctx) { FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/src/mq.c function mq_nanosleep (line 7) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/src/mtx.c function mtx_init (line 7) | bool function mtx_fini (line 34) | void function mtx_lock (line 44) | void function mtx_unlock (line 57) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/src/test.c type reentrancy_t (line 13) | typedef enum { function do_hook (line 37) | static void function libc_reentrancy_hook (line 49) | static void function arena_new_reentrancy_hook (line 54) | static void function test_is_reentrant (line 60) | bool function test_skip (line 66) | void function test_fail (line 78) | void function p_test_init (line 99) | void function p_test_fini (line 106) | void function test_status_t (line 113) | static test_status_t function test_status_t (line 170) | test_status_t function test_status_t (line 183) | test_status_t function test_status_t (line 196) | test_status_t function p_test_fail (line 213) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/src/thd.c function thd_create (line 4) | void function thd_join (line 13) | void function thd_create (line 23) | void function thd_join (line 30) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/src/timer.c function timer_start (line 3) | void function timer_stop (line 9) | void function timer_usec (line 15) | uint64_t function timer_ratio (line 24) | void FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/stress/microbench.c function time_func (line 3) | static inline void function compare_funcs (line 18) | void function malloc_free (line 43) | static void function mallocx_free (line 54) | static void function TEST_BEGIN (line 64) | TEST_BEGIN(test_malloc_vs_mallocx) { function TEST_END (line 68) | TEST_END function malloc_sdallocx (line 80) | static void function TEST_BEGIN (line 90) | TEST_BEGIN(test_free_vs_dallocx) { function TEST_END (line 94) | TEST_END function TEST_END (line 100) | TEST_END function malloc_sallocx_free (line 115) | static void function TEST_BEGIN (line 130) | TEST_BEGIN(test_mus_vs_sallocx) { function TEST_END (line 134) | TEST_END function TEST_BEGIN (line 151) | TEST_BEGIN(test_sallocx_vs_nallocx) { function TEST_END (line 155) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/SFMT.c function TEST_BEGIN (line 1452) | TEST_BEGIN(test_gen_rand_32) { function TEST_END (line 1484) | TEST_END function TEST_END (line 1519) | TEST_END function TEST_END (line 1554) | TEST_END function TEST_END (line 1590) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/a0.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_a0) { function TEST_END (line 10) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/arena_reset.c function get_nsizes_impl (line 10) | static unsigned function get_nsmall (line 22) | static unsigned function get_nlarge (line 27) | static unsigned function get_size_impl (line 32) | static size_t function get_small_size (line 50) | static size_t function get_large_size (line 55) | static size_t function vsalloc (line 61) | static size_t function do_arena_create (line 87) | static unsigned function do_arena_reset_pre (line 97) | static void function do_arena_reset_post (line 136) | static void function do_arena_reset_destroy (line 160) | static void function do_arena_reset (line 173) | static void function do_arena_destroy (line 178) | static void function TEST_BEGIN (line 183) | TEST_BEGIN(test_arena_reset) { function TEST_END (line 193) | TEST_END function TEST_BEGIN (line 218) | TEST_BEGIN(test_arena_destroy_initial) { function TEST_END (line 222) | TEST_END function TEST_END (line 262) | TEST_END function TEST_BEGIN (line 301) | TEST_BEGIN(test_arena_destroy_hooks_unmap) { function TEST_END (line 335) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/atomic.c function TEST_BEGIN (line 179) | TEST_BEGIN(test_atomic_u64) { function TEST_BEGIN (line 190) | TEST_BEGIN(test_atomic_u32) { function TEST_BEGIN (line 196) | TEST_BEGIN(test_atomic_p) { function TEST_BEGIN (line 202) | TEST_BEGIN(test_atomic_zu) { function TEST_BEGIN (line 208) | TEST_BEGIN(test_atomic_zd) { function TEST_BEGIN (line 215) | TEST_BEGIN(test_atomic_u) { function TEST_END (line 218) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/background_thread.c function test_switch_background_thread_ctl (line 5) | static void function test_repeat_background_thread_ctl (line 24) | static void function TEST_BEGIN (line 43) | TEST_BEGIN(test_background_thread_ctl) { function TEST_END (line 71) | TEST_END function TEST_END (line 111) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/background_thread_enable.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_deferred) { function TEST_END (line 31) | TEST_END function TEST_END (line 76) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/base.c function TEST_BEGIN (line 29) | TEST_BEGIN(test_base_hooks_default) { function TEST_END (line 59) | TEST_END function TEST_END (line 104) | TEST_END function TEST_END (line 226) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/bit_util.c function TEST_BEGIN (line 36) | TEST_BEGIN(test_pow2_ceil_u64) { function TEST_END (line 39) | TEST_END function TEST_END (line 44) | TEST_END function TEST_END (line 49) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/bitmap.c function test_bitmap_initializer_body (line 95) | static void function TEST_BEGIN (line 126) | TEST_BEGIN(test_bitmap_initializer) { function TEST_END (line 137) | TEST_END function TEST_BEGIN (line 149) | TEST_BEGIN(test_bitmap_size) { function TEST_END (line 167) | TEST_END function TEST_BEGIN (line 189) | TEST_BEGIN(test_bitmap_init) { function TEST_END (line 204) | TEST_END function TEST_BEGIN (line 220) | TEST_BEGIN(test_bitmap_set) { function TEST_END (line 235) | TEST_END function TEST_BEGIN (line 258) | TEST_BEGIN(test_bitmap_unset) { function TEST_END (line 273) | TEST_END function TEST_BEGIN (line 405) | TEST_BEGIN(test_bitmap_xfu) { function TEST_END (line 420) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/ckh.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_new_delete) { function TEST_END (line 17) | TEST_END function TEST_END (line 104) | TEST_END function TEST_END (line 203) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/decay.c function check_background_thread_enabled (line 12) | static bool function nstime_monotonic_mock (line 24) | static bool function nstime_update_mock (line 29) | static bool function do_arena_create (line 38) | static unsigned function do_arena_destroy (line 64) | static void function do_epoch (line 75) | void function do_purge (line 82) | void function do_decay (line 93) | void function get_arena_npurge_impl (line 104) | static uint64_t function get_arena_dirty_npurge (line 118) | static uint64_t function get_arena_muzzy_npurge (line 124) | static uint64_t function get_arena_npurge (line 130) | static uint64_t function get_arena_pdirty (line 137) | static size_t function get_arena_pmuzzy (line 152) | static size_t function generate_dirty (line 174) | static void function TEST_BEGIN (line 181) | TEST_BEGIN(test_decay_ticks) { function TEST_END (line 373) | TEST_END function TEST_BEGIN (line 421) | TEST_BEGIN(test_decay_ticker) { function TEST_END (line 481) | TEST_END function TEST_END (line 539) | TEST_END function TEST_END (line 559) | TEST_END function TEST_END (line 589) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/div.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_div_exhaustive) { function TEST_END (line 23) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/emitter.c type buf_descriptor_t (line 13) | typedef struct buf_descriptor_s buf_descriptor_t; type buf_descriptor_s (line 14) | struct buf_descriptor_s { function forwarding_cb (line 24) | static void function assert_emit_output (line 67) | static void function emit_dict (line 93) | static void function TEST_BEGIN (line 127) | TEST_BEGIN(test_dict) { function TEST_END (line 130) | TEST_END function TEST_BEGIN (line 149) | TEST_BEGIN(test_table_printf) { function TEST_END (line 153) | TEST_END function TEST_BEGIN (line 194) | TEST_BEGIN(test_nested_dict) { function TEST_END (line 198) | TEST_END function TEST_BEGIN (line 249) | TEST_BEGIN(test_types) { function TEST_END (line 252) | TEST_END function TEST_BEGIN (line 295) | TEST_BEGIN(test_modal) { function TEST_END (line 298) | TEST_END function TEST_BEGIN (line 341) | TEST_BEGIN(test_json_arr) { function TEST_END (line 344) | TEST_END function TEST_BEGIN (line 398) | TEST_BEGIN(test_table_row) { function TEST_END (line 401) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/extent_quantize.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_small_extent_size) { function TEST_END (line 35) | TEST_END function TEST_END (line 99) | TEST_END function TEST_END (line 133) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/fork.c function wait_for_child_exit (line 8) | static void function TEST_BEGIN (line 31) | TEST_BEGIN(test_fork) { function do_test_fork_multithreaded (line 97) | static void function TEST_BEGIN (line 106) | TEST_BEGIN(test_fork_multithreaded) { function TEST_END (line 134) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/hash.c type hash_variant_t (line 33) | typedef enum { function hash_variant_bits (line 39) | static int function hash_variant_verify_key (line 60) | static void function hash_variant_verify (line 139) | static void function TEST_BEGIN (line 152) | TEST_BEGIN(test_hash_x86_32) { function TEST_END (line 155) | TEST_END function TEST_END (line 160) | TEST_END function TEST_END (line 165) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/hooks.c function hook (line 5) | static void function func_to_hook (line 10) | static int function TEST_BEGIN (line 17) | TEST_BEGIN(unhooked_call) { function TEST_END (line 23) | TEST_END function TEST_END (line 31) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/junk.c function watch_junking (line 11) | static void function arena_dalloc_junk_small_intercept (line 17) | static void function large_dalloc_junk_intercept (line 32) | static void function large_dalloc_maybe_junk_intercept (line 47) | static void function test_junk (line 55) | static void function TEST_BEGIN (line 124) | TEST_BEGIN(test_junk_small) { function TEST_END (line 128) | TEST_END function TEST_END (line 134) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/mallctl.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_mallctl_errors) { function TEST_END (line 30) | TEST_END function TEST_END (line 40) | TEST_END function TEST_END (line 76) | TEST_END function TEST_END (line 103) | TEST_END function TEST_END (line 117) | TEST_END function TEST_END (line 143) | TEST_END function TEST_END (line 190) | TEST_END function TEST_END (line 214) | TEST_END function TEST_END (line 237) | TEST_END function TEST_END (line 330) | TEST_END function TEST_END (line 366) | TEST_END function TEST_END (line 404) | TEST_END function TEST_END (line 436) | TEST_END function TEST_END (line 468) | TEST_END function TEST_END (line 491) | TEST_END function TEST_END (line 514) | TEST_END function TEST_END (line 559) | TEST_END function TEST_END (line 607) | TEST_END function TEST_END (line 639) | TEST_END function TEST_END (line 671) | TEST_END function TEST_END (line 689) | TEST_END function TEST_END (line 707) | TEST_END function TEST_END (line 722) | TEST_END function TEST_END (line 739) | TEST_END function TEST_END (line 755) | TEST_END function TEST_END (line 774) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/malloc_io.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_malloc_strtoumax_no_endptr) { function TEST_END (line 11) | TEST_END function TEST_END (line 105) | TEST_END function TEST_END (line 137) | TEST_END function TEST_END (line 249) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/math.c function double_eq_rel (line 16) | static bool function factorial (line 27) | static uint64_t function TEST_BEGIN (line 39) | TEST_BEGIN(test_ln_gamma_factorial) { function TEST_BEGIN (line 190) | TEST_BEGIN(test_ln_gamma_misc) { function TEST_BEGIN (line 240) | TEST_BEGIN(test_pt_norm) { function TEST_BEGIN (line 289) | TEST_BEGIN(test_pt_chi2) { function TEST_BEGIN (line 350) | TEST_BEGIN(test_pt_gamma_shape) { function TEST_END (line 367) | TEST_END function TEST_END (line 379) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/mq.c type mq_msg_t (line 6) | typedef struct mq_msg_s mq_msg_t; type mq_msg_s (line 7) | struct mq_msg_s { function TEST_BEGIN (line 12) | TEST_BEGIN(test_mq_basic) { function TEST_END (line 30) | TEST_END function TEST_BEGIN (line 61) | TEST_BEGIN(test_mq_threaded) { function TEST_END (line 81) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/mtx.c function TEST_BEGIN (line 6) | TEST_BEGIN(test_mtx_basic) { function TEST_END (line 14) | TEST_END function TEST_BEGIN (line 34) | TEST_BEGIN(test_mtx_race) { function TEST_END (line 50) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/nstime.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_nstime_init) { function TEST_END (line 13) | TEST_END function TEST_END (line 22) | TEST_END function TEST_END (line 33) | TEST_END function TEST_END (line 67) | TEST_END function TEST_END (line 86) | TEST_END function TEST_END (line 103) | TEST_END function TEST_END (line 122) | TEST_END function TEST_END (line 139) | TEST_END function TEST_END (line 156) | TEST_END function TEST_END (line 175) | TEST_END function TEST_END (line 202) | TEST_END function TEST_END (line 207) | TEST_END function TEST_END (line 231) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/pack.c function binind_compute (line 19) | static unsigned function nregs_per_run_compute (line 49) | static size_t function arenas_create_mallctl (line 66) | static unsigned function arena_reset_mallctl (line 78) | static void function TEST_BEGIN (line 90) | TEST_BEGIN(test_pack) { function TEST_END (line 160) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/pages.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_pages_huge) { function TEST_END (line 23) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/ph.c type node_t (line 5) | typedef struct node_s node_t; type node_s (line 7) | struct node_s { function node_cmp (line 14) | static int function node_cmp_magic (line 30) | static int type heap_t (line 39) | typedef ph(node_t) heap_t; function node_print (line 42) | static void function heap_print (line 64) | static void function node_validate (line 87) | static unsigned function heap_validate (line 115) | static unsigned function TEST_BEGIN (line 141) | TEST_BEGIN(test_ph_empty) { function TEST_END (line 149) | TEST_END function node_t (line 158) | static node_t * function node_t (line 165) | static node_t * function TEST_BEGIN (line 172) | TEST_BEGIN(test_ph_random) { function TEST_END (line 311) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/prng.c function test_prng_lg_range_u32 (line 3) | static void function test_prng_lg_range_u64 (line 40) | static void function test_prng_lg_range_zu (line 76) | static void function TEST_BEGIN (line 114) | TEST_BEGIN(test_prng_lg_range_u32_nonatomic) { function TEST_END (line 117) | TEST_END function TEST_END (line 122) | TEST_END function TEST_END (line 127) | TEST_END function TEST_END (line 132) | TEST_END function TEST_END (line 137) | TEST_END function test_prng_range_u64 (line 159) | static void function test_prng_range_zu (line 179) | static void function TEST_BEGIN (line 199) | TEST_BEGIN(test_prng_range_u32_nonatomic) { function TEST_END (line 202) | TEST_END function TEST_END (line 207) | TEST_END function TEST_END (line 212) | TEST_END function TEST_END (line 217) | TEST_END function TEST_END (line 222) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/prof_accum.c function prof_dump_open_intercept (line 8) | static int function TEST_BEGIN (line 52) | TEST_BEGIN(test_idump) { function TEST_END (line 75) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/prof_active.c function mallctl_bool_get (line 3) | static void function mallctl_bool_set (line 15) | static void function mallctl_prof_active_get_impl (line 30) | static void function mallctl_prof_active_set_impl (line 38) | static void function mallctl_thread_prof_active_get_impl (line 47) | static void function mallctl_thread_prof_active_set_impl (line 56) | static void function prof_sampling_probe_impl (line 65) | static void function TEST_BEGIN (line 81) | TEST_BEGIN(test_prof_active) { function TEST_END (line 111) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/prof_gdump.c function prof_dump_open_intercept (line 5) | static int function TEST_BEGIN (line 17) | TEST_BEGIN(test_gdump) { function TEST_END (line 68) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/prof_idump.c function prof_dump_open_intercept (line 5) | static int function TEST_BEGIN (line 17) | TEST_BEGIN(test_idump) { function TEST_END (line 36) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/prof_reset.c function prof_dump_open_intercept (line 3) | static int function set_prof_active (line 13) | static void function get_lg_prof_sample (line 19) | static size_t function do_prof_reset (line 30) | static void function TEST_BEGIN (line 39) | TEST_BEGIN(test_prof_reset_basic) { function prof_dump_header_intercept (line 86) | static bool function TEST_BEGIN (line 95) | TEST_BEGIN(test_prof_reset_cleanup) { function TEST_BEGIN (line 182) | TEST_BEGIN(test_prof_reset) { function TEST_BEGIN (line 227) | TEST_BEGIN(test_xallocx) { function main (line 276) | int FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/prof_tctx.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_prof_realloc) { function TEST_END (line 40) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/prof_thread_name.c function mallctl_thread_name_get_impl (line 3) | static void function mallctl_thread_name_set_impl (line 20) | static void function TEST_BEGIN (line 32) | TEST_BEGIN(test_prof_thread_name_validation) { function TEST_BEGIN (line 96) | TEST_BEGIN(test_prof_thread_name_threaded) { function main (line 115) | int FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/ql.c type list_t (line 8) | typedef struct list_s list_t; type list_head_t (line 9) | typedef ql_head(list_t) list_head_t; type list_s (line 11) | struct list_s { function test_empty_list (line 16) | static void function TEST_BEGIN (line 38) | TEST_BEGIN(test_ql_empty) { function TEST_END (line 44) | TEST_END function test_entries_list (line 56) | static void function TEST_BEGIN (line 92) | TEST_BEGIN(test_ql_tail_insert) { function TEST_END (line 105) | TEST_END function TEST_END (line 124) | TEST_END function TEST_END (line 139) | TEST_END function TEST_END (line 158) | TEST_END function TEST_END (line 193) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/qr.c type ring_t (line 10) | typedef struct ring_s ring_t; type ring_s (line 12) | struct ring_s { function init_entries (line 17) | static void function test_independent_entries (line 27) | static void function TEST_BEGIN (line 64) | TEST_BEGIN(test_qr_one) { function TEST_END (line 70) | TEST_END function TEST_BEGIN (line 105) | TEST_BEGIN(test_qr_after_insert) { function TEST_END (line 115) | TEST_END function TEST_END (line 144) | TEST_END function TEST_END (line 182) | TEST_END function TEST_BEGIN (line 206) | TEST_BEGIN(test_qr_meld_split) { function TEST_END (line 233) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/rb.c type node_t (line 16) | typedef struct node_s node_t; type node_s (line 18) | struct node_s { function node_cmp (line 25) | static int type tree_t (line 44) | typedef rb_tree(node_t) tree_t; function TEST_BEGIN (line 47) | TEST_BEGIN(test_rb_empty) { function TEST_END (line 69) | TEST_END function node_t (line 120) | static node_t * function tree_iterate (line 147) | static unsigned function tree_iterate_reverse (line 157) | static unsigned function node_remove (line 167) | static void function node_t (line 199) | static node_t * function node_t (line 209) | static node_t * function destroy_cb (line 219) | static void function TEST_BEGIN (line 227) | TEST_BEGIN(test_rb_random) { function TEST_END (line 348) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/retained.c function do_arena_create (line 13) | static unsigned function do_arena_destroy (line 23) | static void function do_refresh (line 36) | static void function do_get_size_impl (line 43) | static size_t function do_get_active (line 59) | static size_t function do_get_mapped (line 64) | static size_t function TEST_BEGIN (line 100) | TEST_BEGIN(test_retained) { function TEST_END (line 175) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/rtree.c function rtree_node_elm_t (line 13) | static rtree_node_elm_t * function rtree_node_dalloc_intercept (line 29) | static void function rtree_leaf_elm_t (line 40) | static rtree_leaf_elm_t * function rtree_leaf_dalloc_intercept (line 56) | static void function TEST_BEGIN (line 67) | TEST_BEGIN(test_rtree_read_empty) { function TEST_BEGIN (line 86) | TEST_BEGIN(test_rtree_extrema) { function TEST_END (line 119) | TEST_END function TEST_END (line 156) | TEST_END function TEST_END (line 209) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/size_classes.c function get_max_size_class (line 3) | static size_t function TEST_BEGIN (line 25) | TEST_BEGIN(test_size_classes) { function TEST_END (line 81) | TEST_END function TEST_END (line 137) | TEST_END function TEST_END (line 175) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/slab.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_arena_slab_regind) { function TEST_END (line 26) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/smoothstep.c function TEST_BEGIN (line 10) | TEST_BEGIN(test_smoothstep_integral) { function TEST_END (line 37) | TEST_END function TEST_END (line 58) | TEST_END function TEST_END (line 94) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/spin.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_spin) { function TEST_END (line 12) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/stats.c function TEST_BEGIN (line 3) | TEST_BEGIN(test_stats_summary) { function TEST_END (line 26) | TEST_END function TEST_END (line 66) | TEST_END function TEST_END (line 128) | TEST_END function no_lazy_lock (line 135) | static void function TEST_BEGIN (line 143) | TEST_BEGIN(test_stats_arenas_small) { function TEST_END (line 186) | TEST_END function TEST_END (line 221) | TEST_END function TEST_BEGIN (line 228) | TEST_BEGIN(test_stats_arenas_bins) { function TEST_END (line 315) | TEST_END function TEST_END (line 356) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/stats_print.c type token_type_t (line 5) | typedef enum { type parser_t (line 22) | typedef struct parser_s parser_t; type token_t (line 23) | typedef struct { type parser_s (line 32) | struct parser_s { function token_init (line 42) | static void function token_error (line 53) | static void function parser_init (line 75) | static void function parser_fini (line 85) | static void function parser_append (line 92) | static bool function parser_tokenize (line 107) | static bool function parser_parse_value (line 668) | static bool function parser_parse_pair (line 687) | static bool function parser_parse_values (line 705) | static bool function parser_parse_array (line 732) | static bool function parser_parse_pairs (line 748) | static bool function parser_parse_object (line 783) | static bool function parser_parse (line 801) | static bool function TEST_BEGIN (line 826) | TEST_BEGIN(test_json_parser) { function TEST_END (line 920) | TEST_END function TEST_BEGIN (line 930) | TEST_BEGIN(test_stats_print_json) { function TEST_END (line 992) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/ticker.c function TEST_BEGIN (line 5) | TEST_BEGIN(test_ticker_tick) { function TEST_END (line 28) | TEST_END function TEST_END (line 46) | TEST_END function TEST_END (line 65) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/tsd.c function data_cleanup (line 5) | void function TEST_BEGIN (line 67) | TEST_BEGIN(test_tsd_main_thread) { function TEST_END (line 70) | TEST_END function TEST_END (line 85) | TEST_END function TEST_BEGIN (line 120) | TEST_BEGIN(test_tsd_reincarnation) { function TEST_END (line 125) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/witness.c function witness_lock_error_intercept (line 13) | static void function witness_owner_error_intercept (line 19) | static void function witness_not_owner_error_intercept (line 24) | static void function witness_depth_error_intercept (line 29) | static void function witness_comp (line 35) | static int function witness_comp_reverse (line 45) | static int function TEST_BEGIN (line 56) | TEST_BEGIN(test_witness) { function TEST_END (line 94) | TEST_END function TEST_END (line 146) | TEST_END function TEST_END (line 177) | TEST_END function TEST_END (line 212) | TEST_END function TEST_END (line 236) | TEST_END function TEST_END (line 269) | TEST_END FILE: Chapter07/redis-6.0.3/deps/jemalloc/test/unit/zero.c function test_zero (line 3) | static void function TEST_BEGIN (line 42) | TEST_BEGIN(test_zero_small) { function TEST_END (line 46) | TEST_END function TEST_END (line 52) | TEST_END FILE: Chapter07/redis-6.0.3/deps/linenoise/example.c function completion (line 7) | void completion(const char *buf, linenoiseCompletions *lc) { function main (line 23) | int main(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/linenoise/linenoise.c type termios (line 127) | struct termios type linenoiseState (line 139) | struct linenoiseState { type KEY_ACTION (line 154) | enum KEY_ACTION{ type linenoiseState (line 178) | struct linenoiseState function linenoiseMaskModeEnable (line 205) | void linenoiseMaskModeEnable(void) { function linenoiseMaskModeDisable (line 210) | void linenoiseMaskModeDisable(void) { function linenoiseSetMultiLine (line 215) | void linenoiseSetMultiLine(int ml) { function isUnsupportedTerm (line 221) | static int isUnsupportedTerm(void) { function enableRawMode (line 232) | static int enableRawMode(int fd) { function disableRawMode (line 267) | static void disableRawMode(int fd) { function getCursorPosition (line 276) | static int getCursorPosition(int ifd, int ofd) { function getColumns (line 300) | static int getColumns(int ifd, int ofd) { function linenoiseClearScreen (line 334) | void linenoiseClearScreen(void) { function linenoiseBeep (line 342) | static void linenoiseBeep(void) { function freeCompletions (line 350) | static void freeCompletions(linenoiseCompletions *lc) { function completeLine (line 364) | static int completeLine(struct linenoiseState *ls) { function linenoiseSetCompletionCallback (line 423) | void linenoiseSetCompletionCallback(linenoiseCompletionCallback *fn) { function linenoiseSetHintsCallback (line 429) | void linenoiseSetHintsCallback(linenoiseHintsCallback *fn) { function linenoiseSetFreeHintsCallback (line 435) | void linenoiseSetFreeHintsCallback(linenoiseFreeHintsCallback *fn) { function linenoiseAddCompletion (line 443) | void linenoiseAddCompletion(linenoiseCompletions *lc, const char *str) { type abuf (line 465) | struct abuf { function abInit (line 470) | static void abInit(struct abuf *ab) { function abAppend (line 475) | static void abAppend(struct abuf *ab, const char *s, int len) { function abFree (line 484) | static void abFree(struct abuf *ab) { function refreshShowHints (line 490) | void refreshShowHints(struct abuf *ab, struct linenoiseState *l, int ple... function refreshSingleLine (line 518) | static void refreshSingleLine(struct linenoiseState *l) { function refreshMultiLine (line 563) | static void refreshMultiLine(struct linenoiseState *l) { function refreshLine (line 653) | static void refreshLine(struct linenoiseState *l) { function linenoiseEditInsert (line 663) | int linenoiseEditInsert(struct linenoiseState *l, char c) { function linenoiseEditMoveLeft (line 691) | void linenoiseEditMoveLeft(struct linenoiseState *l) { function linenoiseEditMoveRight (line 699) | void linenoiseEditMoveRight(struct linenoiseState *l) { function linenoiseEditMoveHome (line 707) | void linenoiseEditMoveHome(struct linenoiseState *l) { function linenoiseEditMoveEnd (line 715) | void linenoiseEditMoveEnd(struct linenoiseState *l) { function linenoiseEditHistoryNext (line 726) | void linenoiseEditHistoryNext(struct linenoiseState *l, int dir) { function linenoiseEditDelete (line 750) | void linenoiseEditDelete(struct linenoiseState *l) { function linenoiseEditBackspace (line 760) | void linenoiseEditBackspace(struct linenoiseState *l) { function linenoiseEditDeletePrevWord (line 772) | void linenoiseEditDeletePrevWord(struct linenoiseState *l) { function linenoiseEdit (line 794) | static int linenoiseEdit(int stdin_fd, int stdout_fd, char *buf, size_t ... function linenoisePrintKeyCodes (line 981) | void linenoisePrintKeyCodes(void) { function linenoiseRaw (line 1008) | static int linenoiseRaw(char *buf, size_t buflen, const char *prompt) { function linenoiseFree (line 1095) | void linenoiseFree(void *ptr) { function freeHistory (line 1103) | static void freeHistory(void) { function linenoiseAtExit (line 1114) | static void linenoiseAtExit(void) { function linenoiseHistoryAdd (line 1126) | int linenoiseHistoryAdd(const char *line) { function linenoiseHistorySetMaxLen (line 1159) | int linenoiseHistorySetMaxLen(int len) { function linenoiseHistorySave (line 1189) | int linenoiseHistorySave(const char *filename) { function linenoiseHistoryLoad (line 1209) | int linenoiseHistoryLoad(const char *filename) { FILE: Chapter07/redis-6.0.3/deps/linenoise/linenoise.h type linenoiseCompletions (line 46) | typedef struct linenoiseCompletions { FILE: Chapter07/redis-6.0.3/deps/lua/etc/min.c function print (line 12) | static int print(lua_State *L) function main (line 32) | int main(void) FILE: Chapter07/redis-6.0.3/deps/lua/etc/noparser.c function LUAI_FUNC (line 21) | LUAI_FUNC void luaX_init (lua_State *L) { function LUAI_FUNC (line 25) | LUAI_FUNC Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const... function LUAI_FUNC (line 37) | LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, voi... FILE: Chapter07/redis-6.0.3/deps/lua/src/fpconv.c function fpconv_update_locale (line 52) | static void fpconv_update_locale() function valid_number_character (line 75) | static inline int valid_number_character(char ch) function strtod_buffer_size (line 94) | static int strtod_buffer_size(const char *s) function fpconv_strtod (line 106) | double fpconv_strtod(const char *nptr, char **endptr) function set_number_format (line 153) | static void set_number_format(char *fmt, int precision) function fpconv_g_fmt (line 174) | int fpconv_g_fmt(char *str, double num, int precision) function fpconv_init (line 199) | void fpconv_init() FILE: Chapter07/redis-6.0.3/deps/lua/src/fpconv.h function fpconv_init (line 10) | static inline void fpconv_init() FILE: Chapter07/redis-6.0.3/deps/lua/src/lapi.c function TValue (line 49) | static TValue *index2adr (lua_State *L, int idx) { function Table (line 79) | static Table *getcurrenv (lua_State *L) { function luaA_pushobject (line 89) | void luaA_pushobject (lua_State *L, const TValue *o) { function LUA_API (line 95) | LUA_API int lua_checkstack (lua_State *L, int size) { function LUA_API (line 110) | LUA_API void lua_xmove (lua_State *from, lua_State *to, int n) { function LUA_API (line 125) | LUA_API void lua_setlevel (lua_State *from, lua_State *to) { function LUA_API (line 130) | LUA_API lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf) { function LUA_API (line 140) | LUA_API lua_State *lua_newthread (lua_State *L) { function LUA_API (line 159) | LUA_API int lua_gettop (lua_State *L) { function LUA_API (line 164) | LUA_API void lua_settop (lua_State *L, int idx) { function LUA_API (line 180) | LUA_API void lua_remove (lua_State *L, int idx) { function LUA_API (line 191) | LUA_API void lua_insert (lua_State *L, int idx) { function LUA_API (line 203) | LUA_API void lua_replace (lua_State *L, int idx) { function LUA_API (line 228) | LUA_API void lua_pushvalue (lua_State *L, int idx) { function LUA_API (line 242) | LUA_API int lua_type (lua_State *L, int idx) { function LUA_API (line 248) | LUA_API const char *lua_typename (lua_State *L, int t) { function LUA_API (line 254) | LUA_API int lua_iscfunction (lua_State *L, int idx) { function LUA_API (line 260) | LUA_API int lua_isnumber (lua_State *L, int idx) { function LUA_API (line 267) | LUA_API int lua_isstring (lua_State *L, int idx) { function LUA_API (line 273) | LUA_API int lua_isuserdata (lua_State *L, int idx) { function LUA_API (line 279) | LUA_API int lua_rawequal (lua_State *L, int index1, int index2) { function LUA_API (line 287) | LUA_API int lua_equal (lua_State *L, int index1, int index2) { function LUA_API (line 299) | LUA_API int lua_lessthan (lua_State *L, int index1, int index2) { function LUA_API (line 313) | LUA_API lua_Number lua_tonumber (lua_State *L, int idx) { function LUA_API (line 323) | LUA_API lua_Integer lua_tointeger (lua_State *L, int idx) { function LUA_API (line 337) | LUA_API int lua_toboolean (lua_State *L, int idx) { function LUA_API (line 343) | LUA_API const char *lua_tolstring (lua_State *L, int idx, size_t *len) { function LUA_API (line 361) | LUA_API size_t lua_objlen (lua_State *L, int idx) { function LUA_API (line 379) | LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) { function LUA_API (line 385) | LUA_API void *lua_touserdata (lua_State *L, int idx) { function LUA_API (line 395) | LUA_API lua_State *lua_tothread (lua_State *L, int idx) { function LUA_API (line 401) | LUA_API const void *lua_topointer (lua_State *L, int idx) { function LUA_API (line 421) | LUA_API void lua_pushnil (lua_State *L) { function LUA_API (line 429) | LUA_API void lua_pushnumber (lua_State *L, lua_Number n) { function LUA_API (line 437) | LUA_API void lua_pushinteger (lua_State *L, lua_Integer n) { function LUA_API (line 445) | LUA_API void lua_pushlstring (lua_State *L, const char *s, size_t len) { function LUA_API (line 454) | LUA_API void lua_pushstring (lua_State *L, const char *s) { function LUA_API (line 462) | LUA_API const char *lua_pushvfstring (lua_State *L, const char *fmt, function LUA_API (line 473) | LUA_API const char *lua_pushfstring (lua_State *L, const char *fmt, ...) { function LUA_API (line 486) | LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) { function LUA_API (line 503) | LUA_API void lua_pushboolean (lua_State *L, int b) { function LUA_API (line 511) | LUA_API void lua_pushlightuserdata (lua_State *L, void *p) { function LUA_API (line 519) | LUA_API int lua_pushthread (lua_State *L) { function LUA_API (line 534) | LUA_API void lua_gettable (lua_State *L, int idx) { function LUA_API (line 544) | LUA_API void lua_getfield (lua_State *L, int idx, const char *k) { function LUA_API (line 557) | LUA_API void lua_rawget (lua_State *L, int idx) { function LUA_API (line 567) | LUA_API void lua_rawgeti (lua_State *L, int idx, int n) { function LUA_API (line 578) | LUA_API void lua_createtable (lua_State *L, int narray, int nrec) { function LUA_API (line 587) | LUA_API int lua_getmetatable (lua_State *L, int objindex) { function LUA_API (line 616) | LUA_API void lua_getfenv (lua_State *L, int idx) { function LUA_API (line 645) | LUA_API void lua_settable (lua_State *L, int idx) { function LUA_API (line 657) | LUA_API void lua_setfield (lua_State *L, int idx, const char *k) { function LUA_API (line 671) | LUA_API void lua_rawset (lua_State *L, int idx) { function LUA_API (line 684) | LUA_API void lua_rawseti (lua_State *L, int idx, int n) { function LUA_API (line 697) | LUA_API int lua_setmetatable (lua_State *L, int objindex) { function LUA_API (line 734) | LUA_API int lua_setfenv (lua_State *L, int idx) { function LUA_API (line 776) | LUA_API void lua_call (lua_State *L, int nargs, int nresults) { type CallS (line 792) | struct CallS { /* data to `f_call' */ function f_call (line 798) | static void f_call (lua_State *L, void *ud) { function LUA_API (line 805) | LUA_API int lua_pcall (lua_State *L, int nargs, int nresults, int errfun... type CCallS (line 831) | struct CCallS { /* data to `f_Ccall' */ function f_Ccall (line 837) | static void f_Ccall (lua_State *L, void *ud) { function LUA_API (line 850) | LUA_API int lua_cpcall (lua_State *L, lua_CFunction func, void *ud) { function LUA_API (line 862) | LUA_API int lua_load (lua_State *L, lua_Reader reader, void *data, function LUA_API (line 875) | LUA_API int lua_dump (lua_State *L, lua_Writer writer, void *data) { function LUA_API (line 890) | LUA_API int lua_status (lua_State *L) { function LUA_API (line 899) | LUA_API int lua_gc (lua_State *L, int what, int data) { function LUA_API (line 964) | LUA_API int lua_error (lua_State *L) { function LUA_API (line 973) | LUA_API int lua_next (lua_State *L, int idx) { function LUA_API (line 990) | LUA_API void lua_concat (lua_State *L, int n) { function LUA_API (line 1007) | LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud) { function LUA_API (line 1017) | LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud) { function LUA_API (line 1025) | LUA_API void *lua_newuserdata (lua_State *L, size_t size) { function LUA_API (line 1057) | LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n) { function LUA_API (line 1071) | LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lauxlib.c function LUALIB_API (line 43) | LUALIB_API int luaL_argerror (lua_State *L, int narg, const char *extram... function LUALIB_API (line 61) | LUALIB_API int luaL_typerror (lua_State *L, int narg, const char *tname) { function tag_error (line 68) | static void tag_error (lua_State *L, int narg, int tag) { function LUALIB_API (line 73) | LUALIB_API void luaL_where (lua_State *L, int level) { function LUALIB_API (line 86) | LUALIB_API int luaL_error (lua_State *L, const char *fmt, ...) { function LUALIB_API (line 99) | LUALIB_API int luaL_checkoption (lua_State *L, int narg, const char *def, function LUALIB_API (line 112) | LUALIB_API int luaL_newmetatable (lua_State *L, const char *tname) { function LUALIB_API (line 124) | LUALIB_API void *luaL_checkudata (lua_State *L, int ud, const char *tnam... function LUALIB_API (line 140) | LUALIB_API void luaL_checkstack (lua_State *L, int space, const char *me... function LUALIB_API (line 146) | LUALIB_API void luaL_checktype (lua_State *L, int narg, int t) { function LUALIB_API (line 152) | LUALIB_API void luaL_checkany (lua_State *L, int narg) { function LUALIB_API (line 158) | LUALIB_API const char *luaL_checklstring (lua_State *L, int narg, size_t... function LUALIB_API (line 165) | LUALIB_API const char *luaL_optlstring (lua_State *L, int narg, function LUALIB_API (line 176) | LUALIB_API lua_Number luaL_checknumber (lua_State *L, int narg) { function LUALIB_API (line 184) | LUALIB_API lua_Number luaL_optnumber (lua_State *L, int narg, lua_Number... function LUALIB_API (line 189) | LUALIB_API lua_Integer luaL_checkinteger (lua_State *L, int narg) { function LUALIB_API (line 197) | LUALIB_API lua_Integer luaL_optinteger (lua_State *L, int narg, function LUALIB_API (line 203) | LUALIB_API int luaL_getmetafield (lua_State *L, int obj, const char *eve... function LUALIB_API (line 219) | LUALIB_API int luaL_callmeta (lua_State *L, int obj, const char *event) { function LUALIB_API (line 229) | LUALIB_API void (luaL_register) (lua_State *L, const char *libname, function libsize (line 235) | static int libsize (const luaL_Reg *l) { function LUALIB_API (line 242) | LUALIB_API void luaI_openlib (lua_State *L, const char *libname, function checkint (line 280) | static int checkint (lua_State *L, int topop) { function getsizes (line 287) | static void getsizes (lua_State *L) { function LUALIB_API (line 302) | LUALIB_API void luaL_setn (lua_State *L, int t, int n) { function LUALIB_API (line 321) | LUALIB_API int luaL_getn (lua_State *L, int t) { function LUALIB_API (line 340) | LUALIB_API const char *luaL_gsub (lua_State *L, const char *s, const cha... function LUALIB_API (line 357) | LUALIB_API const char *luaL_findtable (lua_State *L, int idx, function emptybuffer (line 398) | static int emptybuffer (luaL_Buffer *B) { function adjuststack (line 410) | static void adjuststack (luaL_Buffer *B) { function LUALIB_API (line 429) | LUALIB_API char *luaL_prepbuffer (luaL_Buffer *B) { function LUALIB_API (line 436) | LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l) { function LUALIB_API (line 442) | LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s) { function LUALIB_API (line 447) | LUALIB_API void luaL_pushresult (luaL_Buffer *B) { function LUALIB_API (line 454) | LUALIB_API void luaL_addvalue (luaL_Buffer *B) { function LUALIB_API (line 472) | LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B) { function LUALIB_API (line 481) | LUALIB_API int luaL_ref (lua_State *L, int t) { function LUALIB_API (line 504) | LUALIB_API void luaL_unref (lua_State *L, int t, int ref) { type LoadF (line 522) | typedef struct LoadF { function errfile (line 543) | static int errfile (lua_State *L, const char *what, int fnameindex) { function LUALIB_API (line 552) | LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) { type LoadS (line 593) | typedef struct LoadS { function LUALIB_API (line 609) | LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t s... function LUALIB_API (line 618) | LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s) { function panic (line 639) | static int panic (lua_State *L) { function LUALIB_API (line 647) | LUALIB_API lua_State *luaL_newstate (void) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lauxlib.h type luaL_Reg (line 35) | typedef struct luaL_Reg { type luaL_Buffer (line 129) | typedef struct luaL_Buffer { FILE: Chapter07/redis-6.0.3/deps/lua/src/lbaselib.c function luaB_print (line 31) | static int luaB_print (lua_State *L) { function luaB_tonumber (line 53) | static int luaB_tonumber (lua_State *L) { function luaB_error (line 81) | static int luaB_error (lua_State *L) { function luaB_getmetatable (line 93) | static int luaB_getmetatable (lua_State *L) { function luaB_setmetatable (line 104) | static int luaB_setmetatable (lua_State *L) { function getfunc (line 117) | static void getfunc (lua_State *L, int opt) { function luaB_getfenv (line 133) | static int luaB_getfenv (lua_State *L) { function luaB_setfenv (line 143) | static int luaB_setfenv (lua_State *L) { function luaB_rawequal (line 161) | static int luaB_rawequal (lua_State *L) { function luaB_rawget (line 169) | static int luaB_rawget (lua_State *L) { function luaB_rawset (line 177) | static int luaB_rawset (lua_State *L) { function luaB_gcinfo (line 187) | static int luaB_gcinfo (lua_State *L) { function luaB_collectgarbage (line 193) | static int luaB_collectgarbage (lua_State *L) { function luaB_type (line 219) | static int luaB_type (lua_State *L) { function luaB_next (line 226) | static int luaB_next (lua_State *L) { function luaB_pairs (line 238) | static int luaB_pairs (lua_State *L) { function ipairsaux (line 247) | static int ipairsaux (lua_State *L) { function luaB_ipairs (line 257) | static int luaB_ipairs (lua_State *L) { function load_aux (line 266) | static int load_aux (lua_State *L, int status) { function luaB_loadstring (line 277) | static int luaB_loadstring (lua_State *L) { function luaB_loadfile (line 285) | static int luaB_loadfile (lua_State *L) { function luaB_load (line 315) | static int luaB_load (lua_State *L) { function luaB_dofile (line 325) | static int luaB_dofile (lua_State *L) { function luaB_assert (line 334) | static int luaB_assert (lua_State *L) { function luaB_unpack (line 342) | static int luaB_unpack (lua_State *L) { function luaB_select (line 358) | static int luaB_select (lua_State *L) { function luaB_pcall (line 374) | static int luaB_pcall (lua_State *L) { function luaB_xpcall (line 384) | static int luaB_xpcall (lua_State *L) { function luaB_tostring (line 396) | static int luaB_tostring (lua_State *L) { function luaB_newproxy (line 421) | static int luaB_newproxy (lua_State *L) { function costatus (line 490) | static int costatus (lua_State *L, lua_State *co) { function luaB_costatus (line 510) | static int luaB_costatus (lua_State *L) { function auxresume (line 518) | static int auxresume (lua_State *L, lua_State *co, int narg) { function luaB_coresume (line 543) | static int luaB_coresume (lua_State *L) { function luaB_auxwrap (line 561) | static int luaB_auxwrap (lua_State *L) { function luaB_cocreate (line 576) | static int luaB_cocreate (lua_State *L) { function luaB_cowrap (line 586) | static int luaB_cowrap (lua_State *L) { function luaB_yield (line 593) | static int luaB_yield (lua_State *L) { function luaB_corunning (line 598) | static int luaB_corunning (lua_State *L) { function auxopen (line 618) | static void auxopen (lua_State *L, const char *name, function base_open (line 626) | static void base_open (lua_State *L) { function LUALIB_API (line 648) | LUALIB_API int luaopen_base (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lcode.c function isnumeral (line 30) | static int isnumeral(expdesc *e) { function luaK_nil (line 35) | void luaK_nil (FuncState *fs, int from, int n) { function luaK_jump (line 59) | int luaK_jump (FuncState *fs) { function luaK_ret (line 69) | void luaK_ret (FuncState *fs, int first, int nret) { function condjump (line 74) | static int condjump (FuncState *fs, OpCode op, int A, int B, int C) { function fixjump (line 80) | static void fixjump (FuncState *fs, int pc, int dest) { function luaK_getlabel (line 94) | int luaK_getlabel (FuncState *fs) { function getjump (line 100) | static int getjump (FuncState *fs, int pc) { function Instruction (line 109) | static Instruction *getjumpcontrol (FuncState *fs, int pc) { function need_value (line 122) | static int need_value (FuncState *fs, int list) { function patchtestreg (line 131) | static int patchtestreg (FuncState *fs, int node, int reg) { function removevalues (line 144) | static void removevalues (FuncState *fs, int list) { function patchlistaux (line 150) | static void patchlistaux (FuncState *fs, int list, int vtarget, int reg, function dischargejpc (line 163) | static void dischargejpc (FuncState *fs) { function luaK_patchlist (line 169) | void luaK_patchlist (FuncState *fs, int list, int target) { function luaK_patchtohere (line 179) | void luaK_patchtohere (FuncState *fs, int list) { function luaK_concat (line 185) | void luaK_concat (FuncState *fs, int *l1, int l2) { function luaK_checkstack (line 199) | void luaK_checkstack (FuncState *fs, int n) { function luaK_reserveregs (line 209) | void luaK_reserveregs (FuncState *fs, int n) { function freereg (line 215) | static void freereg (FuncState *fs, int reg) { function freeexp (line 223) | static void freeexp (FuncState *fs, expdesc *e) { function addk (line 229) | static int addk (FuncState *fs, TValue *k, TValue *v) { function luaK_stringK (line 250) | int luaK_stringK (FuncState *fs, TString *s) { function luaK_numberK (line 257) | int luaK_numberK (FuncState *fs, lua_Number r) { function boolK (line 264) | static int boolK (FuncState *fs, int b) { function nilK (line 271) | static int nilK (FuncState *fs) { function luaK_setreturns (line 280) | void luaK_setreturns (FuncState *fs, expdesc *e, int nresults) { function luaK_setoneret (line 292) | void luaK_setoneret (FuncState *fs, expdesc *e) { function luaK_dischargevars (line 304) | void luaK_dischargevars (FuncState *fs, expdesc *e) { function code_label (line 337) | static int code_label (FuncState *fs, int A, int b, int jump) { function discharge2reg (line 343) | static void discharge2reg (FuncState *fs, expdesc *e, int reg) { function discharge2anyreg (line 382) | static void discharge2anyreg (FuncState *fs, expdesc *e) { function exp2reg (line 390) | static void exp2reg (FuncState *fs, expdesc *e, int reg) { function luaK_exp2nextreg (line 414) | void luaK_exp2nextreg (FuncState *fs, expdesc *e) { function luaK_exp2anyreg (line 422) | int luaK_exp2anyreg (FuncState *fs, expdesc *e) { function luaK_exp2val (line 436) | void luaK_exp2val (FuncState *fs, expdesc *e) { function luaK_exp2RK (line 444) | int luaK_exp2RK (FuncState *fs, expdesc *e) { function luaK_storevar (line 472) | void luaK_storevar (FuncState *fs, expdesc *var, expdesc *ex) { function luaK_self (line 503) | void luaK_self (FuncState *fs, expdesc *e, expdesc *key) { function invertjump (line 516) | static void invertjump (FuncState *fs, expdesc *e) { function jumponcond (line 524) | static int jumponcond (FuncState *fs, expdesc *e, int cond) { function luaK_goiftrue (line 539) | void luaK_goiftrue (FuncState *fs, expdesc *e) { function luaK_goiffalse (line 563) | static void luaK_goiffalse (FuncState *fs, expdesc *e) { function codenot (line 586) | static void codenot (FuncState *fs, expdesc *e) { function luaK_indexed (line 621) | void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k) { function constfolding (line 627) | static int constfolding (OpCode op, expdesc *e1, expdesc *e2) { function codearith (line 653) | static void codearith (FuncState *fs, OpCode op, expdesc *e1, expdesc *e... function codecomp (line 673) | static void codecomp (FuncState *fs, OpCode op, int cond, expdesc *e1, function luaK_prefix (line 689) | void luaK_prefix (FuncState *fs, UnOpr op, expdesc *e) { function luaK_infix (line 710) | void luaK_infix (FuncState *fs, BinOpr op, expdesc *v) { function luaK_posfix (line 737) | void luaK_posfix (FuncState *fs, BinOpr op, expdesc *e1, expdesc *e2) { function luaK_fixline (line 784) | void luaK_fixline (FuncState *fs, int line) { function luaK_code (line 789) | static int luaK_code (FuncState *fs, Instruction i, int line) { function luaK_codeABC (line 804) | int luaK_codeABC (FuncState *fs, OpCode o, int a, int b, int c) { function luaK_codeABx (line 812) | int luaK_codeABx (FuncState *fs, OpCode o, int a, unsigned int bc) { function luaK_setlist (line 819) | void luaK_setlist (FuncState *fs, int base, int nelems, int tostore) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lcode.h type BinOpr (line 26) | typedef enum BinOpr { type UnOpr (line 36) | typedef enum UnOpr { OPR_MINUS, OPR_NOT, OPR_LEN, OPR_NOUNOPR } UnOpr; FILE: Chapter07/redis-6.0.3/deps/lua/src/ldblib.c function db_getregistry (line 22) | static int db_getregistry (lua_State *L) { function db_getmetatable (line 28) | static int db_getmetatable (lua_State *L) { function db_setmetatable (line 37) | static int db_setmetatable (lua_State *L) { function db_getfenv (line 47) | static int db_getfenv (lua_State *L) { function db_setfenv (line 54) | static int db_setfenv (lua_State *L) { function settabss (line 64) | static void settabss (lua_State *L, const char *i, const char *v) { function settabsi (line 70) | static void settabsi (lua_State *L, const char *i, int v) { function lua_State (line 76) | static lua_State *getthread (lua_State *L, int *arg) { function treatstackoption (line 88) | static void treatstackoption (lua_State *L, lua_State *L1, const char *f... function db_getinfo (line 99) | static int db_getinfo (lua_State *L) { function db_getlocal (line 144) | static int db_getlocal (lua_State *L) { function db_setlocal (line 165) | static int db_setlocal (lua_State *L) { function auxupvalue (line 179) | static int auxupvalue (lua_State *L, int get) { function db_getupvalue (line 192) | static int db_getupvalue (lua_State *L) { function db_setupvalue (line 197) | static int db_setupvalue (lua_State *L) { function hookf (line 207) | static void hookf (lua_State *L, lua_Debug *ar) { function makemask (line 225) | static int makemask (const char *smask, int count) { function gethooktable (line 245) | static void gethooktable (lua_State *L) { function db_sethook (line 258) | static int db_sethook (lua_State *L) { function db_gethook (line 282) | static int db_gethook (lua_State *L) { function db_debug (line 302) | static int db_debug (lua_State *L) { function db_errorfb (line 322) | static int db_errorfb (lua_State *L) { function LUALIB_API (line 394) | LUALIB_API int luaopen_debug (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/ldebug.c function currentpc (line 36) | static int currentpc (lua_State *L, CallInfo *ci) { function currentline (line 44) | static int currentline (lua_State *L, CallInfo *ci) { function LUA_API (line 56) | LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int coun... function LUA_API (line 69) | LUA_API lua_Hook lua_gethook (lua_State *L) { function LUA_API (line 74) | LUA_API int lua_gethookmask (lua_State *L) { function LUA_API (line 79) | LUA_API int lua_gethookcount (lua_State *L) { function LUA_API (line 84) | LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar) { function Proto (line 107) | static Proto *getluaproto (CallInfo *ci) { function LUA_API (line 127) | LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int... function LUA_API (line 138) | LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int... function funcinfo (line 150) | static void funcinfo (lua_Debug *ar, Closure *cl) { function info_tailcall (line 167) | static void info_tailcall (lua_Debug *ar) { function collectvalidlines (line 177) | static void collectvalidlines (lua_State *L, Closure *f) { function auxgetinfo (line 193) | static int auxgetinfo (lua_State *L, const char *what, lua_Debug *ar, function LUA_API (line 232) | LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) { function precheck (line 276) | static int precheck (const Proto *pt) { function luaG_checkopenop (line 290) | int luaG_checkopenop (Instruction i) { function checkArgMode (line 304) | static int checkArgMode (const Proto *pt, int r, enum OpArgMask mode) { function Instruction (line 317) | static Instruction symbexec (const Proto *pt, int lastpc, int reg) { function luaG_checkcode (line 484) | int luaG_checkcode (const Proto *pt) { function isinstack (line 559) | static int isinstack (CallInfo *ci, const TValue *o) { function luaG_typeerror (line 567) | void luaG_typeerror (lua_State *L, const TValue *o, const char *op) { function luaG_concaterror (line 581) | void luaG_concaterror (lua_State *L, StkId p1, StkId p2) { function luaG_aritherror (line 588) | void luaG_aritherror (lua_State *L, const TValue *p1, const TValue *p2) { function luaG_ordererror (line 596) | int luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) { function addinfo (line 607) | static void addinfo (lua_State *L, const char *msg) { function luaG_errormsg (line 618) | void luaG_errormsg (lua_State *L) { function luaG_runerror (line 631) | void luaG_runerror (lua_State *L, const char *fmt, ...) { FILE: Chapter07/redis-6.0.3/deps/lua/src/ldo.c type lua_longjmp (line 44) | struct lua_longjmp { function luaD_seterrorobj (line 51) | void luaD_seterrorobj (lua_State *L, int errcode, StkId oldtop) { function restore_stack_limit (line 71) | static void restore_stack_limit (lua_State *L) { function resetstack (line 81) | static void resetstack (lua_State *L, int status) { function luaD_throw (line 94) | void luaD_throw (lua_State *L, int errcode) { function luaD_rawrunprotected (line 111) | int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) { function correctstack (line 126) | static void correctstack (lua_State *L, TValue *oldstack) { function luaD_reallocstack (line 141) | void luaD_reallocstack (lua_State *L, int newsize) { function luaD_reallocCI (line 152) | void luaD_reallocCI (lua_State *L, int newsize) { function luaD_growstack (line 161) | void luaD_growstack (lua_State *L, int n) { function CallInfo (line 169) | static CallInfo *growCI (lua_State *L) { function luaD_callhook (line 181) | void luaD_callhook (lua_State *L, int event, int line) { function StkId (line 208) | static StkId adjust_varargs (lua_State *L, Proto *p, int actual) { function StkId (line 244) | static StkId tryfuncTM (lua_State *L, StkId func) { function luaD_precall (line 265) | int luaD_precall (lua_State *L, StkId func, int nresults) { function StkId (line 332) | static StkId callrethooks (lua_State *L, StkId firstResult) { function luaD_poscall (line 343) | int luaD_poscall (lua_State *L, StkId firstResult) { function luaD_call (line 370) | void luaD_call (lua_State *L, StkId func, int nResults) { function resume (line 384) | static void resume (lua_State *L, void *ud) { function resume_error (line 409) | static int resume_error (lua_State *L, const char *msg) { function LUA_API (line 418) | LUA_API int lua_resume (lua_State *L, int nargs) { function LUA_API (line 444) | LUA_API int lua_yield (lua_State *L, int nresults) { function luaD_pcall (line 456) | int luaD_pcall (lua_State *L, Pfunc func, void *u, type SParser (line 485) | struct SParser { /* data to `f_parser' */ function f_parser (line 491) | static void f_parser (lua_State *L, void *ud) { function luaD_protectedparser (line 509) | int luaD_protectedparser (lua_State *L, ZIO *z, const char *name) { FILE: Chapter07/redis-6.0.3/deps/lua/src/ldump.c type DumpState (line 18) | typedef struct { function DumpBlock (line 29) | static void DumpBlock(const void* b, size_t size, DumpState* D) function DumpChar (line 39) | static void DumpChar(int y, DumpState* D) function DumpInt (line 45) | static void DumpInt(int x, DumpState* D) function DumpNumber (line 50) | static void DumpNumber(lua_Number x, DumpState* D) function DumpVector (line 55) | static void DumpVector(const void* b, int n, size_t size, DumpState* D) function DumpString (line 61) | static void DumpString(const TString* s, DumpState* D) function DumpConstants (line 80) | static void DumpConstants(const Proto* f, DumpState* D) function DumpDebug (line 111) | static void DumpDebug(const Proto* f, DumpState* D) function DumpFunction (line 129) | static void DumpFunction(const Proto* f, const TString* p, DumpState* D) function DumpHeader (line 143) | static void DumpHeader(DumpState* D) function luaU_dump (line 153) | int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, i... FILE: Chapter07/redis-6.0.3/deps/lua/src/lfunc.c function Closure (line 23) | Closure *luaF_newCclosure (lua_State *L, int nelems, Table *e) { function Closure (line 33) | Closure *luaF_newLclosure (lua_State *L, int nelems, Table *e) { function UpVal (line 44) | UpVal *luaF_newupval (lua_State *L) { function UpVal (line 53) | UpVal *luaF_findupval (lua_State *L, StkId level) { function unlinkupval (line 82) | static void unlinkupval (UpVal *uv) { function luaF_freeupval (line 89) | void luaF_freeupval (lua_State *L, UpVal *uv) { function luaF_close (line 96) | void luaF_close (lua_State *L, StkId level) { function Proto (line 115) | Proto *luaF_newproto (lua_State *L) { function luaF_freeproto (line 141) | void luaF_freeproto (lua_State *L, Proto *f) { function luaF_freeclosure (line 152) | void luaF_freeclosure (lua_State *L, Closure *c) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lgc.c function removeentry (line 62) | static void removeentry (Node *n) { function reallymarkobject (line 69) | static void reallymarkobject (global_State *g, GCObject *o) { function marktmu (line 115) | static void marktmu (global_State *g) { function luaC_separateudata (line 128) | size_t luaC_separateudata (lua_State *L, int all) { function traversetable (line 158) | static int traversetable (global_State *g, Table *h) { function traverseproto (line 203) | static void traverseproto (global_State *g, Proto *f) { function traverseclosure (line 224) | static void traverseclosure (global_State *g, Closure *cl) { function checkstacksizes (line 241) | static void checkstacksizes (lua_State *L, StkId max) { function traversestack (line 256) | static void traversestack (global_State *g, lua_State *l) { function l_mem (line 277) | static l_mem propagatemark (global_State *g) { function propagateall (line 323) | static size_t propagateall (global_State *g) { function iscleared (line 337) | static int iscleared (const TValue *o, int iskey) { function cleartable (line 351) | static void cleartable (GCObject *l) { function freeobj (line 378) | static void freeobj (lua_State *L, GCObject *o) { function GCObject (line 407) | static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count) { function checkSizes (line 431) | static void checkSizes (lua_State *L) { function GCTM (line 445) | static void GCTM (lua_State *L) { function luaC_callGCTM (line 477) | void luaC_callGCTM (lua_State *L) { function luaC_freeall (line 483) | void luaC_freeall (lua_State *L) { function markmt (line 493) | static void markmt (global_State *g) { function markroot (line 501) | static void markroot (lua_State *L) { function remarkupvals (line 515) | static void remarkupvals (global_State *g) { function atomic (line 525) | static void atomic (lua_State *L) { function l_mem (line 556) | static l_mem singlestep (lua_State *L) { function luaC_step (line 610) | void luaC_step (lua_State *L) { function luaC_fullgc (line 635) | void luaC_fullgc (lua_State *L) { function luaC_barrierf (line 661) | void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) { function luaC_barrierback (line 674) | void luaC_barrierback (lua_State *L, Table *t) { function luaC_link (line 685) | void luaC_link (lua_State *L, GCObject *o, lu_byte tt) { function luaC_linkupval (line 694) | void luaC_linkupval (lua_State *L, UpVal *uv) { FILE: Chapter07/redis-6.0.3/deps/lua/src/linit.c function LUALIB_API (line 30) | LUALIB_API void luaL_openlibs (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/liolib.c function pushresult (line 30) | static int pushresult (lua_State *L, int i, const char *filename) { function fileerror (line 48) | static void fileerror (lua_State *L, int arg, const char *filename) { function io_type (line 57) | static int io_type (lua_State *L) { function FILE (line 72) | static FILE *tofile (lua_State *L) { function FILE (line 86) | static FILE **newfile (lua_State *L) { function io_noclose (line 98) | static int io_noclose (lua_State *L) { function io_pclose (line 108) | static int io_pclose (lua_State *L) { function io_fclose (line 119) | static int io_fclose (lua_State *L) { function aux_close (line 127) | static int aux_close (lua_State *L) { function io_close (line 134) | static int io_close (lua_State *L) { function io_gc (line 142) | static int io_gc (lua_State *L) { function io_tostring (line 151) | static int io_tostring (lua_State *L) { function io_open (line 161) | static int io_open (lua_State *L) { function io_popen (line 174) | static int io_popen (lua_State *L) { function io_tmpfile (line 183) | static int io_tmpfile (lua_State *L) { function FILE (line 190) | static FILE *getiofile (lua_State *L, int findex) { function g_iofile (line 200) | static int g_iofile (lua_State *L, int f, const char *mode) { function io_input (line 221) | static int io_input (lua_State *L) { function io_output (line 226) | static int io_output (lua_State *L) { function aux_lines (line 234) | static void aux_lines (lua_State *L, int idx, int toclose) { function f_lines (line 241) | static int f_lines (lua_State *L) { function io_lines (line 248) | static int io_lines (lua_State *L) { function read_number (line 273) | static int read_number (lua_State *L, FILE *f) { function test_eof (line 286) | static int test_eof (lua_State *L, FILE *f) { function read_line (line 294) | static int read_line (lua_State *L, FILE *f) { function read_chars (line 316) | static int read_chars (lua_State *L, FILE *f, size_t n) { function g_read (line 334) | static int g_read (lua_State *L, FILE *f, int first) { function io_read (line 381) | static int io_read (lua_State *L) { function f_read (line 386) | static int f_read (lua_State *L) { function io_readline (line 391) | static int io_readline (lua_State *L) { function g_write (line 413) | static int g_write (lua_State *L, FILE *f, int arg) { function io_write (line 432) | static int io_write (lua_State *L) { function f_write (line 437) | static int f_write (lua_State *L) { function f_seek (line 442) | static int f_seek (lua_State *L) { function f_setvbuf (line 458) | static int f_setvbuf (lua_State *L) { function io_flush (line 470) | static int io_flush (lua_State *L) { function f_flush (line 475) | static int f_flush (lua_State *L) { function createmeta (line 510) | static void createmeta (lua_State *L) { function createstdfile (line 518) | static void createstdfile (lua_State *L, FILE *f, int k, const char *fna... function newfenv (line 530) | static void newfenv (lua_State *L, lua_CFunction cls) { function LUALIB_API (line 537) | LUALIB_API int luaopen_io (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/llex.c function save (line 51) | static void save (LexState *ls, int c) { function luaX_init (line 64) | void luaX_init (lua_State *L) { function luaX_lexerror (line 102) | void luaX_lexerror (LexState *ls, const char *msg, int token) { function luaX_syntaxerror (line 112) | void luaX_syntaxerror (LexState *ls, const char *msg) { function TString (line 117) | TString *luaX_newstring (LexState *ls, const char *str, size_t l) { function inclinenumber (line 129) | static void inclinenumber (LexState *ls) { function luaX_setinput (line 140) | void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, TString *source) { function check_next (line 163) | static int check_next (LexState *ls, const char *set) { function buffreplace (line 171) | static void buffreplace (LexState *ls, char from, char to) { function trydecpoint (line 179) | static void trydecpoint (LexState *ls, SemInfo *seminfo) { function read_numeral (line 194) | static void read_numeral (LexState *ls, SemInfo *seminfo) { function skip_sep (line 210) | static int skip_sep (LexState *ls) { function read_long_string (line 223) | static void read_long_string (LexState *ls, SemInfo *seminfo, int sep) { function read_string (line 278) | static void read_string (LexState *ls, int del, SemInfo *seminfo) { function llex (line 334) | static int llex (LexState *ls, SemInfo *seminfo) { function luaX_next (line 448) | void luaX_next (LexState *ls) { function luaX_lookahead (line 459) | void luaX_lookahead (LexState *ls) { FILE: Chapter07/redis-6.0.3/deps/lua/src/llex.h type RESERVED (line 24) | enum RESERVED { type SemInfo (line 43) | typedef union { type Token (line 49) | typedef struct Token { type LexState (line 55) | typedef struct LexState { FILE: Chapter07/redis-6.0.3/deps/lua/src/llimits.h type LUAI_UINT32 (line 18) | typedef LUAI_UINT32 lu_int32; type LUAI_UMEM (line 20) | typedef LUAI_UMEM lu_mem; type LUAI_MEM (line 22) | typedef LUAI_MEM l_mem; type lu_byte (line 27) | typedef unsigned char lu_byte; type LUAI_USER_ALIGNMENT_T (line 47) | typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; type LUAI_UACNUMBER (line 51) | typedef LUAI_UACNUMBER l_uacNumber; type lu_int32 (line 88) | typedef lu_int32 Instruction; FILE: Chapter07/redis-6.0.3/deps/lua/src/lmathlib.c function math_abs (line 26) | static int math_abs (lua_State *L) { function math_sin (line 31) | static int math_sin (lua_State *L) { function math_sinh (line 36) | static int math_sinh (lua_State *L) { function math_cos (line 41) | static int math_cos (lua_State *L) { function math_cosh (line 46) | static int math_cosh (lua_State *L) { function math_tan (line 51) | static int math_tan (lua_State *L) { function math_tanh (line 56) | static int math_tanh (lua_State *L) { function math_asin (line 61) | static int math_asin (lua_State *L) { function math_acos (line 66) | static int math_acos (lua_State *L) { function math_atan (line 71) | static int math_atan (lua_State *L) { function math_atan2 (line 76) | static int math_atan2 (lua_State *L) { function math_ceil (line 81) | static int math_ceil (lua_State *L) { function math_floor (line 86) | static int math_floor (lua_State *L) { function math_fmod (line 91) | static int math_fmod (lua_State *L) { function math_modf (line 96) | static int math_modf (lua_State *L) { function math_sqrt (line 104) | static int math_sqrt (lua_State *L) { function math_pow (line 109) | static int math_pow (lua_State *L) { function math_log (line 114) | static int math_log (lua_State *L) { function math_log10 (line 119) | static int math_log10 (lua_State *L) { function math_exp (line 124) | static int math_exp (lua_State *L) { function math_deg (line 129) | static int math_deg (lua_State *L) { function math_rad (line 134) | static int math_rad (lua_State *L) { function math_frexp (line 139) | static int math_frexp (lua_State *L) { function math_ldexp (line 146) | static int math_ldexp (lua_State *L) { function math_min (line 153) | static int math_min (lua_State *L) { function math_max (line 167) | static int math_max (lua_State *L) { function math_random (line 181) | static int math_random (lua_State *L) { function math_randomseed (line 209) | static int math_randomseed (lua_State *L) { function LUALIB_API (line 251) | LUALIB_API int luaopen_math (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/loadlib.c function ll_unloadlib (line 63) | static void ll_unloadlib (void *lib) { function lua_CFunction (line 75) | static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { function setprogdir (line 97) | static void setprogdir (lua_State *L) { function pusherror (line 112) | static void pusherror (lua_State *L) { function ll_unloadlib (line 122) | static void ll_unloadlib (void *lib) { function lua_CFunction (line 134) | static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { function pusherror (line 159) | static void pusherror (lua_State *L) { function ll_unloadlib (line 186) | static void ll_unloadlib (void *lib) { function lua_CFunction (line 212) | static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { function ll_unloadlib (line 239) | static void ll_unloadlib (void *lib) { function lua_CFunction (line 251) | static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { function gctm (line 286) | static int gctm (lua_State *L) { function ll_loadfunc (line 294) | static int ll_loadfunc (lua_State *L, const char *path, const char *sym) { function ll_loadlib (line 309) | static int ll_loadlib (lua_State *L) { function readable (line 332) | static int readable (const char *filename) { function loaderror (line 374) | static void loaderror (lua_State *L, const char *filename) { function loader_Lua (line 380) | static int loader_Lua (lua_State *L) { function loader_C (line 402) | static int loader_C (lua_State *L) { function loader_Croot (line 414) | static int loader_Croot (lua_State *L) { function loader_preload (line 435) | static int loader_preload (lua_State *L) { function ll_require (line 451) | static int ll_require (lua_State *L) { function setfenv (line 507) | static void setfenv (lua_State *L) { function dooptions (line 519) | static void dooptions (lua_State *L, int n) { function modinit (line 529) | static void modinit (lua_State *L, const char *modname) { function ll_module (line 544) | static int ll_module (lua_State *L) { function ll_seeall (line 572) | static int ll_seeall (lua_State *L) { function setpath (line 592) | static void setpath (lua_State *L, const char *fieldname, const char *en... function LUALIB_API (line 627) | LUALIB_API int luaopen_package (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lobject.c function luaO_int2fb (line 35) | int luaO_int2fb (unsigned int x) { function luaO_fb2int (line 47) | int luaO_fb2int (int x) { function luaO_log2 (line 54) | int luaO_log2 (unsigned int x) { function luaO_rawequalObj (line 72) | int luaO_rawequalObj (const TValue *t1, const TValue *t2) { function luaO_str2d (line 90) | int luaO_str2d (const char *s, lua_Number *result) { function pushstr (line 104) | static void pushstr (lua_State *L, const char *str) { function luaO_chunkid (line 182) | void luaO_chunkid (char *out, const char *source, size_t bufflen) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lobject.h type GCObject (line 36) | typedef union GCObject GCObject; type GCheader (line 49) | typedef struct GCheader { type Value (line 59) | typedef union { type TValue (line 73) | typedef struct lua_TValue { type TValue (line 193) | typedef TValue *StkId; type TString (line 199) | typedef union TString { type Udata (line 215) | typedef union Udata { type Proto (line 231) | typedef struct Proto { type LocVar (line 262) | typedef struct LocVar { type UpVal (line 274) | typedef struct UpVal { type CClosure (line 295) | typedef struct CClosure { type LClosure (line 302) | typedef struct LClosure { type Closure (line 309) | typedef union Closure { type TKey (line 323) | typedef union TKey { type Node (line 332) | typedef struct Node { type Table (line 338) | typedef struct Table { FILE: Chapter07/redis-6.0.3/deps/lua/src/lopcodes.h type OpMode (line 31) | enum OpMode {iABC, iABx, iAsBx} type OpCode (line 150) | typedef enum { type OpArgMask (line 245) | enum OpArgMask { FILE: Chapter07/redis-6.0.3/deps/lua/src/loslib.c function os_pushresult (line 23) | static int os_pushresult (lua_State *L, int i, const char *filename) { function os_execute (line 38) | static int os_execute (lua_State *L) { function os_remove (line 44) | static int os_remove (lua_State *L) { function os_rename (line 50) | static int os_rename (lua_State *L) { function os_tmpname (line 57) | static int os_tmpname (lua_State *L) { function os_getenv (line 68) | static int os_getenv (lua_State *L) { function os_clock (line 74) | static int os_clock (lua_State *L) { function setfield (line 88) | static void setfield (lua_State *L, const char *key, int value) { function setboolfield (line 93) | static void setboolfield (lua_State *L, const char *key, int value) { function getboolfield (line 100) | static int getboolfield (lua_State *L, const char *key) { function getfield (line 109) | static int getfield (lua_State *L, const char *key, int d) { function os_date (line 124) | static int os_date (lua_State *L) { function os_time (line 170) | static int os_time (lua_State *L) { function os_difftime (line 195) | static int os_difftime (lua_State *L) { function os_setlocale (line 204) | static int os_setlocale (lua_State *L) { function os_exit (line 216) | static int os_exit (lua_State *L) { function LUALIB_API (line 239) | LUALIB_API int luaopen_os (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lparser.c type BlockCnt (line 40) | typedef struct BlockCnt { function anchor_token (line 57) | static void anchor_token (LexState *ls) { function error_expected (line 65) | static void error_expected (LexState *ls, int token) { function errorlimit (line 71) | static void errorlimit (FuncState *fs, int limit, const char *what) { function testnext (line 80) | static int testnext (LexState *ls, int c) { function check (line 89) | static void check (LexState *ls, int c) { function checknext (line 94) | static void checknext (LexState *ls, int c) { function check_match (line 104) | static void check_match (LexState *ls, int what, int who, int where) { function TString (line 117) | static TString *str_checkname (LexState *ls) { function init_exp (line 126) | static void init_exp (expdesc *e, expkind k, int i) { function codestring (line 133) | static void codestring (LexState *ls, expdesc *e, TString *s) { function checkname (line 138) | static void checkname(LexState *ls, expdesc *e) { function registerlocalvar (line 143) | static int registerlocalvar (LexState *ls, TString *varname) { function new_localvar (line 160) | static void new_localvar (LexState *ls, TString *name, int n) { function adjustlocalvars (line 167) | static void adjustlocalvars (LexState *ls, int nvars) { function removevars (line 176) | static void removevars (LexState *ls, int tolevel) { function indexupvalue (line 183) | static int indexupvalue (FuncState *fs, TString *name, expdesc *v) { function searchvar (line 207) | static int searchvar (FuncState *fs, TString *n) { function markupval (line 217) | static void markupval (FuncState *fs, int level) { function singlevaraux (line 224) | static int singlevaraux (FuncState *fs, TString *n, expdesc *var, int ba... function singlevar (line 248) | static void singlevar (LexState *ls, expdesc *var) { function adjust_assign (line 256) | static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *... function enterlevel (line 276) | static void enterlevel (LexState *ls) { function enterblock (line 285) | static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isbreakable) { function leaveblock (line 296) | static void leaveblock (FuncState *fs) { function pushclosure (line 310) | static void pushclosure (LexState *ls, FuncState *func, expdesc *v) { function open_func (line 328) | static void open_func (LexState *ls, FuncState *fs) { function close_func (line 356) | static void close_func (LexState *ls) { function Proto (line 383) | Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const char *nam... function field (line 407) | static void field (LexState *ls, expdesc *v) { function yindex (line 418) | static void yindex (LexState *ls, expdesc *v) { type ConsControl (line 434) | struct ConsControl { function recfield (line 443) | static void recfield (LexState *ls, struct ConsControl *cc) { function closelistfield (line 464) | static void closelistfield (FuncState *fs, struct ConsControl *cc) { function lastlistfield (line 475) | static void lastlistfield (FuncState *fs, struct ConsControl *cc) { function listfield (line 490) | static void listfield (LexState *ls, struct ConsControl *cc) { function constructor (line 498) | static void constructor (LexState *ls, expdesc *t) { function parlist (line 543) | static void parlist (LexState *ls) { function body (line 576) | static void body (LexState *ls, expdesc *e, int needself, int line) { function explist1 (line 596) | static int explist1 (LexState *ls, expdesc *v) { function funcargs (line 609) | static void funcargs (LexState *ls, expdesc *f) { function prefixexp (line 667) | static void prefixexp (LexState *ls, expdesc *v) { function primaryexp (line 690) | static void primaryexp (LexState *ls, expdesc *v) { function simpleexp (line 727) | static void simpleexp (LexState *ls, expdesc *v) { function UnOpr (line 778) | static UnOpr getunopr (int op) { function BinOpr (line 788) | static BinOpr getbinopr (int op) { function BinOpr (line 828) | static BinOpr subexpr (LexState *ls, expdesc *v, unsigned int limit) { function expr (line 856) | static void expr (LexState *ls, expdesc *v) { function block_follow (line 871) | static int block_follow (int token) { function block (line 881) | static void block (LexState *ls) { type LHS_assign (line 896) | struct LHS_assign { function check_conflict (line 908) | static void check_conflict (LexState *ls, struct LHS_assign *lh, expdesc... function assignment (line 931) | static void assignment (LexState *ls, struct LHS_assign *lh, int nvars) { function cond (line 965) | static int cond (LexState *ls) { function breakstat (line 975) | static void breakstat (LexState *ls) { function whilestat (line 991) | static void whilestat (LexState *ls, int line) { function repeatstat (line 1010) | static void repeatstat (LexState *ls, int line) { function exp1 (line 1036) | static int exp1 (LexState *ls) { function forbody (line 1046) | static void forbody (LexState *ls, int base, int line, int nvars, int is... function fornum (line 1067) | static void fornum (LexState *ls, TString *varname, int line) { function forlist (line 1089) | static void forlist (LexState *ls, TString *indexname) { function forstat (line 1112) | static void forstat (LexState *ls, int line) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lparser.h type expkind (line 19) | typedef enum { type expdesc (line 37) | typedef struct expdesc { type upvaldesc (line 48) | typedef struct upvaldesc { type BlockCnt (line 54) | struct BlockCnt type FuncState (line 58) | typedef struct FuncState { FILE: Chapter07/redis-6.0.3/deps/lua/src/lstate.c type LG (line 35) | typedef struct LG { function stack_init (line 42) | static void stack_init (lua_State *L1, lua_State *L) { function freestack (line 61) | static void freestack (lua_State *L, lua_State *L1) { function f_luaopen (line 70) | static void f_luaopen (lua_State *L, void *ud) { function preinit_state (line 84) | static void preinit_state (lua_State *L, global_State *g) { function close_state (line 105) | static void close_state (lua_State *L) { function lua_State (line 119) | lua_State *luaE_newthread (lua_State *L) { function luaE_freethread (line 134) | void luaE_freethread (lua_State *L, lua_State *L1) { function LUA_API (line 143) | LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { function callallgcTM (line 193) | static void callallgcTM (lua_State *L, void *ud) { function LUA_API (line 199) | LUA_API void lua_close (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lstate.h type lua_longjmp (line 18) | struct lua_longjmp type stringtable (line 38) | typedef struct stringtable { type CallInfo (line 48) | typedef struct CallInfo { type global_State (line 68) | typedef struct global_State { type lua_State (line 100) | struct lua_State { type Table (line 141) | struct Table type Proto (line 142) | struct Proto type UpVal (line 143) | struct UpVal type lua_State (line 144) | struct lua_State FILE: Chapter07/redis-6.0.3/deps/lua/src/lstring.c function luaS_resize (line 22) | void luaS_resize (lua_State *L, int newsize) { function TString (line 50) | static TString *newlstr (lua_State *L, const char *str, size_t l, function TString (line 75) | TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { function Udata (line 96) | Udata *luaS_newudata (lua_State *L, size_t s, Table *e) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lstrlib.c function str_len (line 28) | static int str_len (lua_State *L) { function posrelat (line 36) | static ptrdiff_t posrelat (ptrdiff_t pos, size_t len) { function str_sub (line 43) | static int str_sub (lua_State *L) { function str_reverse (line 57) | static int str_reverse (lua_State *L) { function str_lower (line 68) | static int str_lower (lua_State *L) { function str_upper (line 81) | static int str_upper (lua_State *L) { function str_rep (line 93) | static int str_rep (lua_State *L) { function str_byte (line 106) | static int str_byte (lua_State *L) { function str_char (line 125) | static int str_char (lua_State *L) { function writer (line 140) | static int writer (lua_State *L, const void* b, size_t size, void* B) { function str_dump (line 147) | static int str_dump (lua_State *L) { type MatchState (line 170) | typedef struct MatchState { function check_capture (line 186) | static int check_capture (MatchState *ms, int l) { function capture_to_close (line 194) | static int capture_to_close (MatchState *ms) { function match_class (line 226) | static int match_class (int c, int cl) { function matchbracketclass (line 245) | static int matchbracketclass (int c, const char *p, const char *ec) { function singlematch (line 268) | static int singlematch (int c, const char *p, const char *ep) { function push_onecapture (line 466) | static void push_onecapture (MatchState *ms, int i, const char *s, function push_captures (line 485) | static int push_captures (MatchState *ms, const char *s, const char *e) { function str_find_aux (line 495) | static int str_find_aux (lua_State *L, int find) { function str_find (line 538) | static int str_find (lua_State *L) { function str_match (line 543) | static int str_match (lua_State *L) { function gmatch_aux (line 548) | static int gmatch_aux (lua_State *L) { function gmatch (line 574) | static int gmatch (lua_State *L) { function gfind_nodef (line 584) | static int gfind_nodef (lua_State *L) { function add_s (line 590) | static void add_s (MatchState *ms, luaL_Buffer *b, const char *s, function add_value (line 612) | static void add_value (MatchState *ms, luaL_Buffer *b, const char *s, function str_gsub (line 644) | static int str_gsub (lua_State *L) { function addquoted (line 696) | static void addquoted (lua_State *L, luaL_Buffer *b, int arg) { function addintlen (line 747) | static void addintlen (char *form) { function str_format (line 756) | static int str_format (lua_State *L) { function createmetatable (line 847) | static void createmetatable (lua_State *L) { function LUALIB_API (line 862) | LUALIB_API int luaopen_string (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/ltable.c function Node (line 84) | static Node *hashnum (const Table *t, lua_Number n) { function Node (line 100) | static Node *mainposition (const Table *t, const TValue *key) { function arrayindex (line 120) | static int arrayindex (const TValue *key) { function findindex (line 137) | static int findindex (lua_State *L, Table *t, StkId key) { function luaH_next (line 162) | int luaH_next (lua_State *L, Table *t, StkId key) { function computesizes (line 189) | static int computesizes (int nums[], int *narray) { function countint (line 211) | static int countint (const TValue *key, int *nums) { function numusearray (line 222) | static int numusearray (const Table *t, int *nums) { function numusehash (line 247) | static int numusehash (const Table *t, int *nums, int *pnasize) { function setarrayvector (line 263) | static void setarrayvector (lua_State *L, Table *t, int size) { function setnodevector (line 272) | static void setnodevector (lua_State *L, Table *t, int size) { function resize (line 297) | static void resize (lua_State *L, Table *t, int nasize, int nhsize) { function luaH_resizearray (line 327) | void luaH_resizearray (lua_State *L, Table *t, int nasize) { function rehash (line 333) | static void rehash (lua_State *L, Table *t, const TValue *ek) { function Table (line 358) | Table *luaH_new (lua_State *L, int narray, int nhash) { function luaH_free (line 374) | void luaH_free (lua_State *L, Table *t) { function Node (line 382) | static Node *getfreepos (Table *t) { function TValue (line 399) | static TValue *newkey (lua_State *L, Table *t, const TValue *key) { function TValue (line 435) | const TValue *luaH_getnum (Table *t, int key) { function TValue (line 455) | const TValue *luaH_getstr (Table *t, TString *key) { function TValue (line 469) | const TValue *luaH_get (Table *t, const TValue *key) { function TValue (line 494) | TValue *luaH_set (lua_State *L, Table *t, const TValue *key) { function TValue (line 508) | TValue *luaH_setnum (lua_State *L, Table *t, int key) { function TValue (line 520) | TValue *luaH_setstr (lua_State *L, Table *t, TString *key) { function unbound_search (line 532) | static int unbound_search (Table *t, unsigned int j) { function luaH_getn (line 560) | int luaH_getn (Table *t) { function Node (line 582) | Node *luaH_mainposition (const Table *t, const TValue *key) { function luaH_isdummy (line 586) | int luaH_isdummy (Node *n) { return n == dummynode; } FILE: Chapter07/redis-6.0.3/deps/lua/src/ltablib.c function foreachi (line 22) | static int foreachi (lua_State *L) { function foreach (line 39) | static int foreach (lua_State *L) { function maxn (line 56) | static int maxn (lua_State *L) { function getn (line 72) | static int getn (lua_State *L) { function setn (line 78) | static int setn (lua_State *L) { function tinsert (line 90) | static int tinsert (lua_State *L) { function tremove (line 118) | static int tremove (lua_State *L) { function addfield (line 135) | static void addfield (lua_State *L, luaL_Buffer *b, int i) { function tconcat (line 144) | static int tconcat (lua_State *L) { function set2 (line 173) | static void set2 (lua_State *L, int i, int j) { function sort_comp (line 178) | static int sort_comp (lua_State *L, int a, int b) { function auxsort (line 193) | static void auxsort (lua_State *L, int l, int u) { function sort (line 256) | static int sort (lua_State *L) { function LUALIB_API (line 283) | LUALIB_API int luaopen_table (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/ltm.c function luaT_init (line 30) | void luaT_init (lua_State *L) { function TValue (line 50) | const TValue *luaT_gettm (Table *events, TMS event, TString *ename) { function TValue (line 61) | const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, TMS event) { FILE: Chapter07/redis-6.0.3/deps/lua/src/ltm.h type TMS (line 18) | typedef enum { FILE: Chapter07/redis-6.0.3/deps/lua/src/lua.c function lstop (line 28) | static void lstop (lua_State *L, lua_Debug *ar) { function laction (line 35) | static void laction (int i) { function print_usage (line 42) | static void print_usage (void) { function l_message (line 58) | static void l_message (const char *pname, const char *msg) { function report (line 65) | static int report (lua_State *L, int status) { function traceback (line 76) | static int traceback (lua_State *L) { function docall (line 96) | static int docall (lua_State *L, int narg, int clear) { function print_version (line 111) | static void print_version (void) { function getargs (line 116) | static int getargs (lua_State *L, char **argv, int n) { function dofile (line 134) | static int dofile (lua_State *L, const char *name) { function dostring (line 140) | static int dostring (lua_State *L, const char *s, const char *name) { function dolibrary (line 146) | static int dolibrary (lua_State *L, const char *name) { function incomplete (line 163) | static int incomplete (lua_State *L, int status) { function pushline (line 177) | static int pushline (lua_State *L, int firstline) { function loadline (line 196) | static int loadline (lua_State *L) { function dotty (line 216) | static void dotty (lua_State *L) { function handle_script (line 239) | static int handle_script (lua_State *L, char **argv, int n) { function collectargs (line 261) | static int collectargs (char **argv, int *pi, int *pv, int *pe) { function runargs (line 294) | static int runargs (lua_State *L, char **argv, int n) { function handle_luainit (line 323) | static int handle_luainit (lua_State *L) { type Smain (line 333) | struct Smain { function pmain (line 340) | static int pmain (lua_State *L) { function main (line 377) | int main (int argc, char **argv) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lua.h type lua_State (line 50) | typedef struct lua_State lua_State; type LUA_NUMBER (line 99) | typedef LUA_NUMBER lua_Number; type LUA_INTEGER (line 103) | typedef LUA_INTEGER lua_Integer; type lua_Debug (line 326) | typedef struct lua_Debug lua_Debug; type lua_Debug (line 346) | struct lua_Debug { FILE: Chapter07/redis-6.0.3/deps/lua/src/lua_bit.c type __int32 (line 37) | typedef __int32 int32_t; type SBits (line 44) | typedef int32_t SBits; type UBits (line 45) | typedef uint32_t UBits; type BitNum (line 47) | typedef union { function UBits (line 57) | static UBits barg(lua_State *L, int idx) function bit_tobit (line 96) | static int bit_tobit(lua_State *L) { BRET(barg(L, 1)) } function bit_bnot (line 97) | static int bit_bnot(lua_State *L) { BRET(~barg(L, 1)) } function bit_bswap (line 120) | static int bit_bswap(lua_State *L) function bit_tohex (line 127) | static int bit_tohex(lua_State *L) type luaL_Reg (line 141) | struct luaL_Reg function LUALIB_API (line 163) | LUALIB_API int luaopen_bit(lua_State *L) FILE: Chapter07/redis-6.0.3/deps/lua/src/lua_cjson.c type json_token_type_t (line 79) | typedef enum { type json_config_t (line 114) | typedef struct { type json_parse_t (line 134) | typedef struct { type json_token_t (line 142) | typedef struct { function json_config_t (line 194) | static json_config_t *json_fetch_config(lua_State *l) function json_config_t (line 208) | static json_config_t *json_arg_init(lua_State *l, int args) function json_integer_option (line 220) | static int json_integer_option(lua_State *l, int optindex, int *setting, function json_enum_option (line 239) | static int json_enum_option(lua_State *l, int optindex, int *setting, function json_cfg_encode_sparse_array (line 268) | static int json_cfg_encode_sparse_array(lua_State *l) function json_cfg_encode_max_depth (line 281) | static int json_cfg_encode_max_depth(lua_State *l) function json_cfg_decode_max_depth (line 290) | static int json_cfg_decode_max_depth(lua_State *l) function json_cfg_encode_number_precision (line 298) | static int json_cfg_encode_number_precision(lua_State *l) function json_cfg_encode_keep_buffer (line 306) | static int json_cfg_encode_keep_buffer(lua_State *l) function json_verify_invalid_number_setting (line 327) | void json_verify_invalid_number_setting(lua_State *l, int *setting) function json_cfg_encode_invalid_numbers (line 338) | static int json_cfg_encode_invalid_numbers(lua_State *l) function json_cfg_decode_invalid_numbers (line 350) | static int json_cfg_decode_invalid_numbers(lua_State *l) function json_destroy_config (line 361) | static int json_destroy_config(lua_State *l) function json_create_config (line 373) | static void json_create_config(lua_State *l) function json_encode_exception (line 448) | static void json_encode_exception(lua_State *l, json_config_t *cfg, strb... function json_append_string (line 463) | static void json_append_string(lua_State *l, strbuf_t *json, int lindex) function lua_array_length (line 493) | static int lua_array_length(lua_State *l, json_config_t *cfg, strbuf_t *... function json_check_encode_depth (line 536) | static void json_check_encode_depth(lua_State *l, json_config_t *cfg, function json_append_array (line 566) | static void json_append_array(lua_State *l, json_config_t *cfg, int curr... function json_append_number (line 588) | static void json_append_number(lua_State *l, json_config_t *cfg, function json_append_object (line 618) | static void json_append_object(lua_State *l, json_config_t *cfg, function json_append_data (line 660) | static void json_append_data(lua_State *l, json_config_t *cfg, function json_encode (line 703) | static int json_encode(lua_State *l) function hexdigit2int (line 739) | static int hexdigit2int(char hex) function decode_hex4 (line 752) | static int decode_hex4(const char *hex) function codepoint_to_utf8 (line 775) | static int codepoint_to_utf8(char *utf8, int codepoint) function json_append_unicode_escape (line 819) | static int json_append_unicode_escape(json_parse_t *json) function json_set_token_error (line 877) | static void json_set_token_error(json_token_t *token, json_parse_t *json, function json_next_string_token (line 885) | static void json_next_string_token(json_parse_t *json, json_token_t *token) function json_is_invalid_number (line 960) | static int json_is_invalid_number(json_parse_t *json) function json_next_number_token (line 996) | static void json_next_number_token(json_parse_t *json, json_token_t *token) function json_next_token (line 1014) | static void json_next_token(json_parse_t *json, json_token_t *token) function json_throw_parse_error (line 1099) | static void json_throw_parse_error(lua_State *l, json_parse_t *json, function json_decode_ascend (line 1116) | static inline void json_decode_ascend(json_parse_t *json) function json_decode_descend (line 1121) | static void json_decode_descend(lua_State *l, json_parse_t *json, int sl... function json_parse_object_context (line 1135) | static void json_parse_object_context(lua_State *l, json_parse_t *json) function json_parse_array_context (line 1186) | static void json_parse_array_context(lua_State *l, json_parse_t *json) function json_process_value (line 1224) | static void json_process_value(lua_State *l, json_parse_t *json, function json_decode (line 1253) | static int json_decode(lua_State *l) function luaL_setfuncs (line 1300) | static void luaL_setfuncs (lua_State *l, const luaL_Reg *reg, int nup) function json_protect_conversion (line 1318) | static int json_protect_conversion(lua_State *l) function lua_cjson_new (line 1344) | static int lua_cjson_new(lua_State *l) function lua_cjson_safe_new (line 1384) | static int lua_cjson_safe_new(lua_State *l) function luaopen_cjson (line 1404) | int luaopen_cjson(lua_State *l) function luaopen_cjson_safe (line 1418) | int luaopen_cjson_safe(lua_State *l) FILE: Chapter07/redis-6.0.3/deps/lua/src/lua_cmsgpack.c function memrevifle (line 69) | void memrevifle(void *ptr, size_t len) { type mp_buf (line 93) | typedef struct mp_buf { function mp_buf (line 107) | mp_buf *mp_buf_new(lua_State *L) { function mp_buf_append (line 118) | void mp_buf_append(lua_State *L, mp_buf *buf, const unsigned char *s, si... function mp_buf_free (line 130) | void mp_buf_free(lua_State *L, mp_buf *buf) { type mp_cur (line 148) | typedef struct mp_cur { function mp_cur_init (line 154) | void mp_cur_init(mp_cur *cursor, const unsigned char *s, size_t len) { function mp_encode_bytes (line 174) | void mp_encode_bytes(lua_State *L, mp_buf *buf, const unsigned char *s, ... function mp_encode_double (line 203) | void mp_encode_double(lua_State *L, mp_buf *buf, double d) { function mp_encode_int (line 221) | void mp_encode_int(lua_State *L, mp_buf *buf, int64_t n) { function mp_encode_array (line 293) | void mp_encode_array(lua_State *L, mp_buf *buf, int64_t n) { function mp_encode_map (line 316) | void mp_encode_map(lua_State *L, mp_buf *buf, int64_t n) { function mp_encode_lua_string (line 341) | void mp_encode_lua_string(lua_State *L, mp_buf *buf) { function mp_encode_lua_bool (line 349) | void mp_encode_lua_bool(lua_State *L, mp_buf *buf) { function mp_encode_lua_integer (line 355) | void mp_encode_lua_integer(lua_State *L, mp_buf *buf) { function mp_encode_lua_number (line 367) | void mp_encode_lua_number(lua_State *L, mp_buf *buf) { function mp_encode_lua_table_as_array (line 380) | void mp_encode_lua_table_as_array(lua_State *L, mp_buf *buf, int level) { function mp_encode_lua_table_as_map (line 397) | void mp_encode_lua_table_as_map(lua_State *L, mp_buf *buf, int level) { function table_is_an_array (line 425) | int table_is_an_array(lua_State *L) { function mp_encode_lua_table (line 468) | void mp_encode_lua_table(lua_State *L, mp_buf *buf, int level) { function mp_encode_lua_null (line 475) | void mp_encode_lua_null(lua_State *L, mp_buf *buf) { function mp_encode_lua_type (line 482) | void mp_encode_lua_type(lua_State *L, mp_buf *buf, int level) { function mp_pack (line 512) | int mp_pack(lua_State *L) { function mp_decode_to_lua_array (line 551) | void mp_decode_to_lua_array(lua_State *L, mp_cur *c, size_t len) { function mp_decode_to_lua_hash (line 565) | void mp_decode_to_lua_hash(lua_State *L, mp_cur *c, size_t len) { type luaL_Reg (line 892) | struct luaL_Reg function LUALIB_API (line 935) | LUALIB_API int luaopen_cmsgpack_safe(lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lua_struct.c type STRUCT_INT (line 52) | typedef STRUCT_INT Inttype; type Uinttype (line 55) | typedef unsigned STRUCT_INT Uinttype; type cD (line 65) | struct cD { type Header (line 86) | typedef struct Header { function getnum (line 92) | static int getnum (lua_State *L, const char **fmt, int df) { function optsize (line 111) | static size_t optsize (lua_State *L, char opt, const char **fmt) { function gettoalign (line 137) | static int gettoalign (size_t len, Header *h, int opt, size_t size) { function controloptions (line 148) | static void controloptions (lua_State *L, int opt, const char **fmt, function putinteger (line 169) | static void putinteger (lua_State *L, luaL_Buffer *b, int arg, int endian, function correctbytes (line 196) | static void correctbytes (char *b, int size, int endian) { function b_pack (line 208) | static int b_pack (lua_State *L) { function lua_Number (line 266) | static lua_Number getinteger (const char *buff, int endian, function b_unpack (line 293) | static int b_unpack (lua_State *L) { function b_size (line 366) | static int b_size (lua_State *L) { type luaL_Reg (line 391) | struct luaL_Reg function LUALIB_API (line 401) | LUALIB_API int luaopen_struct (lua_State *L) { FILE: Chapter07/redis-6.0.3/deps/lua/src/luac.c function fatal (line 36) | static void fatal(const char* message) function cannot (line 42) | static void cannot(const char* what) function usage (line 48) | static void usage(const char* message) function doargs (line 70) | static int doargs(int argc, char* argv[]) function Proto (line 119) | static const Proto* combine(lua_State* L, int n) function writer (line 147) | static int writer(lua_State* L, const void* p, size_t size, void* u) type Smain (line 153) | struct Smain { function pmain (line 158) | static int pmain(lua_State* L) function main (line 186) | int main(int argc, char* argv[]) FILE: Chapter07/redis-6.0.3/deps/lua/src/lundump.c type LoadState (line 23) | typedef struct { function error (line 36) | static void error(LoadState* S, const char* why) function LoadBlock (line 48) | static void LoadBlock(LoadState* S, void* b, size_t size) function LoadChar (line 54) | static int LoadChar(LoadState* S) function LoadInt (line 61) | static int LoadInt(LoadState* S) function lua_Number (line 69) | static lua_Number LoadNumber(LoadState* S) function TString (line 76) | static TString* LoadString(LoadState* S) function LoadCode (line 90) | static void LoadCode(LoadState* S, Proto* f) function LoadConstants (line 100) | static void LoadConstants(LoadState* S, Proto* f) function LoadDebug (line 137) | static void LoadDebug(LoadState* S, Proto* f) function Proto (line 161) | static Proto* LoadFunction(LoadState* S, TString* p) function LoadHeader (line 183) | static void LoadHeader(LoadState* S) function Proto (line 195) | Proto* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name) function luaU_header (line 214) | void luaU_header (char* h) FILE: Chapter07/redis-6.0.3/deps/lua/src/lvm.c function TValue (line 35) | const TValue *luaV_tonumber (const TValue *obj, TValue *n) { function luaV_tostring (line 47) | int luaV_tostring (lua_State *L, StkId obj) { function traceexec (line 60) | static void traceexec (lua_State *L, const Instruction *pc) { function callTMres (line 80) | static void callTMres (lua_State *L, StkId res, const TValue *f, function callTM (line 96) | static void callTM (lua_State *L, const TValue *f, const TValue *p1, function luaV_gettable (line 108) | void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId va... function luaV_settable (line 134) | void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId va... function call_binTM (line 165) | static int call_binTM (lua_State *L, const TValue *p1, const TValue *p2, function TValue (line 176) | static const TValue *get_compTM (lua_State *L, Table *mt1, Table *mt2, function call_orderTM (line 190) | static int call_orderTM (lua_State *L, const TValue *p1, const TValue *p2, function l_strcmp (line 203) | static int l_strcmp (const TString *ls, const TString *rs) { function luaV_lessthan (line 225) | int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r) { function lessequal (line 239) | static int lessequal (lua_State *L, const TValue *l, const TValue *r) { function luaV_equalval (line 255) | int luaV_equalval (lua_State *L, const TValue *t1, const TValue *t2) { function luaV_concat (line 282) | void luaV_concat (lua_State *L, int total, int last) { function Arith (line 317) | static void Arith (lua_State *L, StkId ra, const TValue *rb, function luaV_execute (line 377) | void luaV_execute (lua_State *L, int nexeccalls) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lzio.c function luaZ_fill (line 21) | int luaZ_fill (ZIO *z) { function luaZ_lookahead (line 35) | int luaZ_lookahead (ZIO *z) { function luaZ_init (line 48) | void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, void *data) { function luaZ_read (line 58) | size_t luaZ_read (ZIO *z, void *b, size_t n) { FILE: Chapter07/redis-6.0.3/deps/lua/src/lzio.h type ZIO (line 18) | typedef struct Zio ZIO; type Mbuffer (line 24) | typedef struct Mbuffer { type Zio (line 56) | struct Zio { FILE: Chapter07/redis-6.0.3/deps/lua/src/print.c function PrintString (line 23) | static void PrintString(const TString* ts) function PrintConstant (line 51) | static void PrintConstant(const Proto* f, int i) function PrintCode (line 74) | static void PrintCode(const Proto* f) function PrintHeader (line 161) | static void PrintHeader(const Proto* f) function PrintConstants (line 181) | static void PrintConstants(const Proto* f) function PrintLocals (line 193) | static void PrintLocals(const Proto* f) function PrintUpvalues (line 204) | static void PrintUpvalues(const Proto* f) function PrintFunction (line 215) | void PrintFunction(const Proto* f, int full) FILE: Chapter07/redis-6.0.3/deps/lua/src/strbuf.c function die (line 32) | static void die(const char *fmt, ...) function strbuf_init (line 44) | void strbuf_init(strbuf_t *s, int len) function strbuf_t (line 68) | strbuf_t *strbuf_new(int len) function strbuf_set_increment (line 84) | void strbuf_set_increment(strbuf_t *s, int increment) function debug_stats (line 94) | static inline void debug_stats(strbuf_t *s) function strbuf_free (line 104) | void strbuf_free(strbuf_t *s) function calculate_new_size (line 134) | static int calculate_new_size(strbuf_t *s, int len) function strbuf_resize (line 164) | void strbuf_resize(strbuf_t *s, int len) function strbuf_append_string (line 182) | void strbuf_append_string(strbuf_t *s, const char *str) function strbuf_append_fmt (line 202) | void strbuf_append_fmt(strbuf_t *s, int len, const char *fmt, ...) function strbuf_append_fmt_retry (line 221) | void strbuf_append_fmt_retry(strbuf_t *s, const char *fmt, ...) FILE: Chapter07/redis-6.0.3/deps/lua/src/strbuf.h type strbuf_t (line 34) | typedef struct { function strbuf_reset (line 78) | static inline void strbuf_reset(strbuf_t *s) function strbuf_allocated (line 83) | static inline int strbuf_allocated(strbuf_t *s) function strbuf_empty_length (line 90) | static inline int strbuf_empty_length(strbuf_t *s) function strbuf_ensure_empty_length (line 95) | static inline void strbuf_ensure_empty_length(strbuf_t *s, int len) function strbuf_extend_length (line 106) | static inline void strbuf_extend_length(strbuf_t *s, int len) function strbuf_length (line 111) | static inline int strbuf_length(strbuf_t *s) function strbuf_append_char (line 116) | static inline void strbuf_append_char(strbuf_t *s, const char c) function strbuf_append_char_unsafe (line 122) | static inline void strbuf_append_char_unsafe(strbuf_t *s, const char c) function strbuf_append_mem (line 127) | static inline void strbuf_append_mem(strbuf_t *s, const char *c, int len) function strbuf_append_mem_unsafe (line 134) | static inline void strbuf_append_mem_unsafe(strbuf_t *s, const char *c, ... function strbuf_ensure_null (line 140) | static inline void strbuf_ensure_null(strbuf_t *s) FILE: Chapter07/redis-6.0.3/src/acl.c type ACLCategoryItem (line 56) | struct ACLCategoryItem { type ACLUserFlag (line 84) | struct ACLUserFlag { function time_independent_strcmp (line 117) | int time_independent_strcmp(char *a, char *b) { function sds (line 152) | sds ACLHashPassword(unsigned char *cleartext, size_t len) { function ACLStringHasSpaces (line 178) | int ACLStringHasSpaces(const char *s, size_t len) { function ACLGetCommandCategoryFlagByName (line 187) | uint64_t ACLGetCommandCategoryFlagByName(const char *name) { function ACLListMatchSds (line 198) | int ACLListMatchSds(void *a, void *b) { function ACLListFreeSds (line 203) | void ACLListFreeSds(void *item) { function user (line 217) | user *ACLCreateUser(const char *name, size_t namelen) { function user (line 240) | user *ACLCreateUnlinkedUser(void) { function ACLFreeUser (line 255) | void ACLFreeUser(user *u) { function ACLFreeUserAndKillClients (line 266) | void ACLFreeUserAndKillClients(user *u) { function ACLCopyUser (line 290) | void ACLCopyUser(user *dst, user *src) { function ACLFreeUsersSet (line 315) | void ACLFreeUsersSet(rax *users) { function ACLGetCommandBitCoordinates (line 325) | int ACLGetCommandBitCoordinates(uint64_t id, uint64_t *word, uint64_t *b... function ACLGetUserCommandBit (line 339) | int ACLGetUserCommandBit(user *u, unsigned long id) { function ACLUserCanExecuteFutureCommands (line 348) | int ACLUserCanExecuteFutureCommands(user *u) { function ACLSetUserCommandBit (line 357) | void ACLSetUserCommandBit(user *u, unsigned long id, int value) { function ACLSetUserCommandBitsForCategory (line 373) | int ACLSetUserCommandBitsForCategory(user *u, const char *category, int ... function ACLCountCategoryBitsForUser (line 394) | int ACLCountCategoryBitsForUser(user *u, unsigned long *on, unsigned lon... function sds (line 423) | sds ACLDescribeUserCommandRules(user *u) { function sds (line 523) | sds ACLDescribeUser(user *u) { type redisCommand (line 572) | struct redisCommand type redisCommand (line 573) | struct redisCommand function ACLResetSubcommandsForCommand (line 582) | void ACLResetSubcommandsForCommand(user *u, unsigned long id) { function ACLResetSubcommands (line 594) | void ACLResetSubcommands(user *u) { function ACLAddAllowedSubcommand (line 610) | void ACLAddAllowedSubcommand(user *u, unsigned long id, const char *sub) { function ACLSetUser (line 717) | int ACLSetUser(user *u, const char *op, ssize_t oplen) { function ACLInitDefaultUser (line 922) | void ACLInitDefaultUser(void) { function ACLInit (line 931) | void ACLInit(void) { function ACLCheckUserCredentials (line 945) | int ACLCheckUserCredentials(robj *username, robj *password) { function ACLAuthenticateUser (line 987) | int ACLAuthenticateUser(client *c, robj *username, robj *password) { function ACLGetCommandID (line 1005) | unsigned long ACLGetCommandID(const char *cmdname) { function user (line 1036) | user *ACLGetUserByName(const char *name, size_t namelen) { function ACLCheckCommandPerm (line 1051) | int ACLCheckCommandPerm(client *c, int *keyidxptr) { function ACLAppendUserForLoading (line 1146) | int ACLAppendUserForLoading(sds *argv, int argc, int *argc_err) { function ACLLoadConfiguredUsers (line 1178) | int ACLLoadConfiguredUsers(void) { function sds (line 1244) | sds ACLLoadFromFile(const char *filename) { function ACLSaveToFile (line 1392) | int ACLSaveToFile(const char *filename) { function ACLLoadUsersAtStartup (line 1458) | void ACLLoadUsersAtStartup(void) { type ACLLogEntry (line 1496) | typedef struct ACLLogEntry { function ACLLogMatchEntry (line 1509) | int ACLLogMatchEntry(ACLLogEntry *a, ACLLogEntry *b) { function ACLFreeLogEntry (line 1521) | void ACLFreeLogEntry(void *leptr) { function addACLLogEntry (line 1541) | void addACLLogEntry(client *c, int reason, int keypos, sds username) { function aclCommand (line 1629) | void aclCommand(client *c) { function addReplyCommandCategories (line 1924) | void addReplyCommandCategories(client *c, struct redisCommand *cmd) { function authCommand (line 1941) | void authCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/adlist.c function list (line 41) | list *listCreate(void) function listEmpty (line 56) | void listEmpty(list *list) function listRelease (line 76) | void listRelease(list *list) function list (line 88) | list *listAddNodeHead(list *list, void *value) function list (line 114) | list *listAddNodeTail(list *list, void *value) function list (line 134) | list *listInsertNode(list *list, listNode *old_node, void *value, int af... function listDelNode (line 167) | void listDelNode(list *list, listNode *node) function listIter (line 186) | listIter *listGetIterator(list *list, int direction) function listReleaseIterator (line 200) | void listReleaseIterator(listIter *iter) { function listRewind (line 205) | void listRewind(list *list, listIter *li) { function listRewindTail (line 210) | void listRewindTail(list *list, listIter *li) { function listNode (line 229) | listNode *listNext(listIter *iter) function list (line 250) | list *listDup(list *orig) function listNode (line 290) | listNode *listSearchKey(list *list, void *key) function listNode (line 315) | listNode *listIndex(list *list, long index) { function listRotateTailToHead (line 330) | void listRotateTailToHead(list *list) { function listRotateHeadToTail (line 345) | void listRotateHeadToTail(list *list) { function listJoin (line 361) | void listJoin(list *l, list *o) { FILE: Chapter07/redis-6.0.3/src/adlist.h type listNode (line 36) | typedef struct listNode { type listIter (line 42) | typedef struct listIter { type list (line 47) | typedef struct list { FILE: Chapter07/redis-6.0.3/src/ae.c function aeEventLoop (line 63) | aeEventLoop *aeCreateEventLoop(int setsize) { function aeGetSetSize (line 97) | int aeGetSetSize(aeEventLoop *eventLoop) { function aeSetDontWait (line 102) | void aeSetDontWait(aeEventLoop *eventLoop, int noWait) { function aeResizeSetSize (line 116) | int aeResizeSetSize(aeEventLoop *eventLoop, int setsize) { function aeDeleteEventLoop (line 134) | void aeDeleteEventLoop(aeEventLoop *eventLoop) { function aeStop (line 149) | void aeStop(aeEventLoop *eventLoop) { function aeCreateFileEvent (line 153) | int aeCreateFileEvent(aeEventLoop *eventLoop, int fd, int mask, function aeDeleteFileEvent (line 173) | void aeDeleteFileEvent(aeEventLoop *eventLoop, int fd, int mask) function aeGetFileEvents (line 195) | int aeGetFileEvents(aeEventLoop *eventLoop, int fd) { function aeGetTime (line 202) | static void aeGetTime(long *seconds, long *milliseconds) function aeAddMillisecondsToNow (line 211) | static void aeAddMillisecondsToNow(long long milliseconds, long *sec, lo... function aeCreateTimeEvent (line 225) | long long aeCreateTimeEvent(aeEventLoop *eventLoop, long long milliseconds, function aeDeleteTimeEvent (line 248) | int aeDeleteTimeEvent(aeEventLoop *eventLoop, long long id) function aeTimeEvent (line 272) | static aeTimeEvent *aeSearchNearestTimer(aeEventLoop *eventLoop) function processTimeEvents (line 288) | static int processTimeEvents(aeEventLoop *eventLoop) { function aeProcessEvents (line 386) | int aeProcessEvents(aeEventLoop *eventLoop, int flags) function aeWait (line 516) | int aeWait(int fd, int mask, long long milliseconds) { function aeMain (line 536) | void aeMain(aeEventLoop *eventLoop) { function aeSetBeforeSleepProc (line 549) | void aeSetBeforeSleepProc(aeEventLoop *eventLoop, aeBeforeSleepProc *bef... function aeSetAfterSleepProc (line 553) | void aeSetAfterSleepProc(aeEventLoop *eventLoop, aeBeforeSleepProc *afte... FILE: Chapter07/redis-6.0.3/src/ae.h type aeEventLoop (line 63) | struct aeEventLoop type aeEventLoop (line 66) | struct aeEventLoop type aeEventLoop (line 67) | struct aeEventLoop type aeEventLoop (line 68) | struct aeEventLoop type aeEventLoop (line 69) | struct aeEventLoop type aeFileEvent (line 72) | typedef struct aeFileEvent { type aeTimeEvent (line 80) | typedef struct aeTimeEvent { type aeFiredEvent (line 94) | typedef struct aeFiredEvent { type aeEventLoop (line 100) | typedef struct aeEventLoop { FILE: Chapter07/redis-6.0.3/src/ae_epoll.c type aeApiState (line 34) | typedef struct aeApiState { function aeApiCreate (line 39) | static int aeApiCreate(aeEventLoop *eventLoop) { function aeApiResize (line 58) | static int aeApiResize(aeEventLoop *eventLoop, int setsize) { function aeApiFree (line 65) | static void aeApiFree(aeEventLoop *eventLoop) { function aeApiAddEvent (line 73) | static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiDelEvent (line 90) | static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int delmask) { function aeApiPoll (line 108) | static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) { FILE: Chapter07/redis-6.0.3/src/ae_evport.c type aeApiState (line 68) | typedef struct aeApiState { function aeApiCreate (line 75) | static int aeApiCreate(aeEventLoop *eventLoop) { function aeApiResize (line 97) | static int aeApiResize(aeEventLoop *eventLoop, int setsize) { function aeApiFree (line 102) | static void aeApiFree(aeEventLoop *eventLoop) { function aeApiLookupPending (line 109) | static int aeApiLookupPending(aeApiState *state, int fd) { function aeApiAssociate (line 123) | static int aeApiAssociate(const char *where, int portfd, int fd, int mas... function aeApiAddEvent (line 152) | static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiDelEvent (line 183) | static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiPoll (line 243) | static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) { FILE: Chapter07/redis-6.0.3/src/ae_kqueue.c type aeApiState (line 36) | typedef struct aeApiState { function aeApiCreate (line 41) | static int aeApiCreate(aeEventLoop *eventLoop) { function aeApiResize (line 60) | static int aeApiResize(aeEventLoop *eventLoop, int setsize) { function aeApiFree (line 67) | static void aeApiFree(aeEventLoop *eventLoop) { function aeApiAddEvent (line 75) | static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiDelEvent (line 90) | static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiPoll (line 104) | static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) { FILE: Chapter07/redis-6.0.3/src/ae_select.c type aeApiState (line 35) | typedef struct aeApiState { function aeApiCreate (line 42) | static int aeApiCreate(aeEventLoop *eventLoop) { function aeApiResize (line 52) | static int aeApiResize(aeEventLoop *eventLoop, int setsize) { function aeApiFree (line 58) | static void aeApiFree(aeEventLoop *eventLoop) { function aeApiAddEvent (line 62) | static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiDelEvent (line 70) | static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) { function aeApiPoll (line 77) | static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) { FILE: Chapter07/redis-6.0.3/src/anet.c function anetSetError (line 51) | static void anetSetError(char *err, const char *fmt, ...) function anetSetBlock (line 61) | int anetSetBlock(char *err, int fd, int non_block) { function anetNonBlock (line 84) | int anetNonBlock(char *err, int fd) { function anetBlock (line 88) | int anetBlock(char *err, int fd) { function anetKeepAlive (line 95) | int anetKeepAlive(char *err, int fd, int interval) function anetSetTcpNoDelay (line 141) | static int anetSetTcpNoDelay(char *err, int fd, int val) function anetEnableTcpNoDelay (line 151) | int anetEnableTcpNoDelay(char *err, int fd) function anetDisableTcpNoDelay (line 156) | int anetDisableTcpNoDelay(char *err, int fd) function anetSetSendBuffer (line 162) | int anetSetSendBuffer(char *err, int fd, int buffsize) function anetTcpKeepAlive (line 172) | int anetTcpKeepAlive(char *err, int fd) function anetSendTimeout (line 184) | int anetSendTimeout(char *err, int fd, long long ms) { function anetRecvTimeout (line 198) | int anetRecvTimeout(char *err, int fd, long long ms) { function anetGenericResolve (line 217) | int anetGenericResolve(char *err, char *host, char *ipbuf, size_t ipbuf_... function anetResolve (line 244) | int anetResolve(char *err, char *host, char *ipbuf, size_t ipbuf_len) { function anetResolveIP (line 248) | int anetResolveIP(char *err, char *host, char *ipbuf, size_t ipbuf_len) { function anetSetReuseAddr (line 252) | static int anetSetReuseAddr(char *err, int fd) { function anetCreateSocket (line 263) | static int anetCreateSocket(char *err, int domain) { function anetTcpGenericConnect (line 282) | static int anetTcpGenericConnect(char *err, const char *addr, int port, function anetTcpConnect (line 362) | int anetTcpConnect(char *err, const char *addr, int port) function anetTcpNonBlockConnect (line 367) | int anetTcpNonBlockConnect(char *err, const char *addr, int port) function anetTcpNonBlockBindConnect (line 372) | int anetTcpNonBlockBindConnect(char *err, const char *addr, int port, function anetTcpNonBlockBestEffortBindConnect (line 379) | int anetTcpNonBlockBestEffortBindConnect(char *err, const char *addr, in... function anetUnixGenericConnect (line 386) | int anetUnixGenericConnect(char *err, const char *path, int flags) function anetUnixConnect (line 414) | int anetUnixConnect(char *err, const char *path) function anetUnixNonBlockConnect (line 419) | int anetUnixNonBlockConnect(char *err, const char *path) function anetRead (line 426) | int anetRead(int fd, char *buf, int count) function anetWrite (line 441) | int anetWrite(int fd, char *buf, int count) function anetListen (line 454) | static int anetListen(char *err, int s, struct sockaddr *sa, socklen_t l... function anetV6Only (line 469) | static int anetV6Only(char *err, int s) { function _anetTcpServer (line 479) | static int _anetTcpServer(char *err, int port, char *bindaddr, int af, i... function anetTcpServer (line 517) | int anetTcpServer(char *err, int port, char *bindaddr, int backlog) function anetTcp6Server (line 522) | int anetTcp6Server(char *err, int port, char *bindaddr, int backlog) function anetUnixServer (line 527) | int anetUnixServer(char *err, char *path, mode_t perm, int backlog) function anetGenericAccept (line 545) | static int anetGenericAccept(char *err, int s, struct sockaddr *sa, sock... function anetTcpAccept (line 562) | int anetTcpAccept(char *err, int s, char *ip, size_t ip_len, int *port) { function anetUnixAccept (line 581) | int anetUnixAccept(char *err, int s) { function anetPeerToString (line 591) | int anetPeerToString(int fd, char *ip, size_t ip_len, int *port) { function anetFormatAddr (line 630) | int anetFormatAddr(char *buf, size_t buf_len, char *ip, int port) { function anetFormatPeer (line 636) | int anetFormatPeer(int fd, char *buf, size_t buf_len) { function anetSockName (line 644) | int anetSockName(int fd, char *ip, size_t ip_len, int *port) { function anetFormatSock (line 666) | int anetFormatSock(int fd, char *fmt, size_t fmt_len) { FILE: Chapter07/redis-6.0.3/src/aof.c type aofrwblock (line 62) | typedef struct aofrwblock { function aofRewriteBufferReset (line 70) | void aofRewriteBufferReset(void) { function aofRewriteBufferSize (line 79) | unsigned long aofRewriteBufferSize(void) { function aofChildWriteDiffData (line 95) | void aofChildWriteDiffData(aeEventLoop *el, int fd, void *privdata, int ... function aofRewriteBufferAppend (line 125) | void aofRewriteBufferAppend(unsigned char *s, unsigned long len) { function aofRewriteBufferWrite (line 174) | ssize_t aofRewriteBufferWrite(int fd) { function aofFsyncInProgress (line 202) | int aofFsyncInProgress(void) { function aof_background_fsync (line 208) | void aof_background_fsync(int fd) { function killAppendOnlyChild (line 213) | void killAppendOnlyChild(void) { function stopAppendOnly (line 236) | void stopAppendOnly(void) { function startAppendOnly (line 251) | int startAppendOnly(void) { function aofWrite (line 300) | ssize_t aofWrite(int fd, const char *buf, size_t len) { function flushAppendOnlyFile (line 338) | void flushAppendOnlyFile(int force) { function sds (line 522) | sds catAppendOnlyGenericCommand(sds dst, int argc, robj **argv) { function sds (line 554) | sds catAppendOnlyExpireAtCommand(sds buf, struct redisCommand *cmd, robj... function feedAppendOnlyFile (line 584) | void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **arg... type client (line 656) | struct client type client (line 657) | struct client function freeFakeClientArgv (line 686) | void freeFakeClientArgv(struct client *c) { function freeFakeClient (line 694) | void freeFakeClient(struct client *c) { function loadAppendOnlyFile (line 705) | int loadAppendOnlyFile(char *filename) { function rioWriteBulkObject (line 931) | int rioWriteBulkObject(rio *r, robj *obj) { function rewriteListObject (line 945) | int rewriteListObject(rio *r, robj *key, robj *o) { function rewriteSetObject (line 979) | int rewriteSetObject(rio *r, robj *key, robj *o) { function rewriteSortedSetObject (line 1026) | int rewriteSortedSetObject(rio *r, robj *key, robj *o) { function rioWriteHashIteratorCursor (line 1099) | static int rioWriteHashIteratorCursor(rio *r, hashTypeIterator *hi, int ... function rewriteHashObject (line 1121) | int rewriteHashObject(rio *r, robj *key, robj *o) { function rioWriteBulkStreamID (line 1149) | int rioWriteBulkStreamID(rio *r,streamID *id) { function rioWriteStreamPendingEntry (line 1162) | int rioWriteStreamPendingEntry(rio *r, robj *key, const char *groupname,... function rewriteStreamObject (line 1185) | int rewriteStreamObject(rio *r, robj *key, robj *o) { function rewriteModuleObject (line 1285) | int rewriteModuleObject(rio *r, robj *key, robj *o) { function aofReadDiffFromParent (line 1301) | ssize_t aofReadDiffFromParent(void) { function rewriteAppendOnlyFileRio (line 1313) | int rewriteAppendOnlyFileRio(rio *aof) { function rewriteAppendOnlyFile (line 1395) | int rewriteAppendOnlyFile(char *filename) { function aofChildPipeReadable (line 1505) | void aofChildPipeReadable(aeEventLoop *el, int fd, void *privdata, int m... function aofCreatePipes (line 1533) | int aofCreatePipes(void) { function aofClosePipes (line 1561) | void aofClosePipes(void) { function rewriteAppendOnlyFileBackground (line 1588) | int rewriteAppendOnlyFileBackground(void) { function bgrewriteaofCommand (line 1633) | void bgrewriteaofCommand(client *c) { function aofRemoveTempFile (line 1647) | void aofRemoveTempFile(pid_t childpid) { function aofUpdateCurrentSize (line 1661) | void aofUpdateCurrentSize(void) { function backgroundRewriteDoneHandler (line 1678) | void backgroundRewriteDoneHandler(int exitcode, int bysignal) { FILE: Chapter07/redis-6.0.3/src/bio.c type bio_job (line 79) | struct bio_job { function bioInit (line 96) | void bioInit(void) { function bioCreateBackgroundJob (line 131) | void bioCreateBackgroundJob(int type, void *arg1, void *arg2, void *arg3) { type bio_job (line 146) | struct bio_job function bioPendingJobsOfType (line 233) | unsigned long long bioPendingJobsOfType(int type) { function bioWaitStepOfType (line 251) | unsigned long long bioWaitStepOfType(int type) { function bioKillThreads (line 267) | void bioKillThreads(void) { FILE: Chapter07/redis-6.0.3/src/bitops.c function redisPopcount (line 40) | size_t redisPopcount(void *s, long count) { function redisBitpos (line 101) | long redisBitpos(void *s, unsigned long count, int bit) { function setUnsignedBitfield (line 209) | void setUnsignedBitfield(unsigned char *p, uint64_t offset, uint64_t bit... function setSignedBitfield (line 224) | void setSignedBitfield(unsigned char *p, uint64_t offset, uint64_t bits,... function getUnsignedBitfield (line 229) | uint64_t getUnsignedBitfield(unsigned char *p, uint64_t offset, uint64_t... function getSignedBitfield (line 243) | int64_t getSignedBitfield(unsigned char *p, uint64_t offset, uint64_t bi... function checkUnsignedBitfieldOverflow (line 288) | int checkUnsignedBitfieldOverflow(uint64_t value, int64_t incr, uint64_t... function checkSignedBitfieldOverflow (line 325) | int checkSignedBitfieldOverflow(int64_t value, int64_t incr, uint64_t bi... function printBits (line 379) | void printBits(unsigned char *p, unsigned long count) { function getBitOffsetFromArgument (line 411) | int getBitOffsetFromArgument(client *c, robj *o, size_t *offset, int has... function getBitfieldTypeFromArgument (line 447) | int getBitfieldTypeFromArgument(client *c, robj *o, int *sign, int *bits) { function robj (line 478) | robj *lookupStringForBitCommand(client *c, size_t maxbit) { function setbitCommand (line 525) | void setbitCommand(client *c) { function getbitCommand (line 564) | void getbitCommand(client *c) { function bitopCommand (line 591) | void bitopCommand(client *c) { function bitcountCommand (line 769) | void bitcountCommand(client *c) { function bitposCommand (line 818) | void bitposCommand(client *c) { type bitfieldOp (line 908) | struct bitfieldOp { function bitfieldGeneric (line 920) | void bitfieldGeneric(client *c, int flags) { function bitfieldCommand (line 1145) | void bitfieldCommand(client *c) { function bitfieldroCommand (line 1149) | void bitfieldroCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/blocked.c type bkinfo (line 77) | typedef struct bkinfo { function blockClient (line 85) | void blockClient(client *c, int btype) { function processUnblockedClients (line 96) | void processUnblockedClients(void) { function queueClientForReprocessing (line 135) | void queueClientForReprocessing(client *c) { function unblockClient (line 146) | void unblockClient(client *c) { function replyToBlockedClientTimedOut (line 172) | void replyToBlockedClientTimedOut(client *c) { function disconnectAllBlockedClients (line 193) | void disconnectAllBlockedClients(void) { function serveClientsBlockedOnListKey (line 214) | void serveClientsBlockedOnListKey(robj *o, readyList *rl) { function serveClientsBlockedOnSortedSetKey (line 274) | void serveClientsBlockedOnSortedSetKey(robj *o, readyList *rl) { function serveClientsBlockedOnStreamKey (line 320) | void serveClientsBlockedOnStreamKey(robj *o, readyList *rl) { function serveClientsBlockedOnKeyByModule (line 417) | void serveClientsBlockedOnKeyByModule(readyList *rl) { function handleClientsBlockedOnKeys (line 474) | void handleClientsBlockedOnKeys(void) { function blockForKeys (line 556) | void blockForKeys(client *c, int btype, robj **keys, int numkeys, mstime... function unblockClientWaitingData (line 601) | void unblockClientWaitingData(client *c) { function signalKeyAsReady (line 644) | void signalKeyAsReady(redisDb *db, robj *key) { FILE: Chapter07/redis-6.0.3/src/childinfo.c function openChildInfoPipe (line 36) | void openChildInfoPipe(void) { function closeChildInfoPipe (line 49) | void closeChildInfoPipe(void) { function sendChildInfo (line 62) | void sendChildInfo(int ptype) { function receiveChildInfo (line 73) | void receiveChildInfo(void) { FILE: Chapter07/redis-6.0.3/src/cluster.c function clusterLoadConfig (line 90) | int clusterLoadConfig(char *filename) { function clusterSaveConfig (line 326) | int clusterSaveConfig(int do_fsync) { function clusterSaveConfigOrDie (line 373) | void clusterSaveConfigOrDie(int do_fsync) { function clusterLockConfig (line 389) | int clusterLockConfig(char *filename) { function clusterUpdateMyselfFlags (line 431) | void clusterUpdateMyselfFlags(void) { function clusterInit (line 443) | void clusterInit(void) { function clusterReset (line 545) | void clusterReset(int hard) { function clusterLink (line 603) | clusterLink *createClusterLink(clusterNode *node) { function freeClusterLink (line 616) | void freeClusterLink(clusterLink *link) { function clusterConnAcceptHandler (line 628) | static void clusterConnAcceptHandler(connection *conn) { function clusterAcceptHandler (line 652) | void clusterAcceptHandler(aeEventLoop *el, int fd, void *privdata, int m... function keyHashSlot (line 704) | unsigned int keyHashSlot(char *key, int keylen) { function clusterNode (line 736) | clusterNode *createClusterNode(char *nodename, int flags) { function clusterNodeAddFailureReport (line 777) | int clusterNodeAddFailureReport(clusterNode *failing, clusterNode *sende... function clusterNodeCleanupFailureReports (line 807) | void clusterNodeCleanupFailureReports(clusterNode *node) { function clusterNodeDelFailureReport (line 834) | int clusterNodeDelFailureReport(clusterNode *node, clusterNode *sender) { function clusterNodeFailureReportsCount (line 857) | int clusterNodeFailureReportsCount(clusterNode *node) { function clusterNodeRemoveSlave (line 862) | int clusterNodeRemoveSlave(clusterNode *master, clusterNode *slave) { function clusterNodeAddSlave (line 881) | int clusterNodeAddSlave(clusterNode *master, clusterNode *slave) { function clusterCountNonFailingSlaves (line 895) | int clusterCountNonFailingSlaves(clusterNode *n) { function freeClusterNode (line 904) | void freeClusterNode(clusterNode *n) { function clusterAddNode (line 929) | int clusterAddNode(clusterNode *node) { function clusterDelNode (line 948) | void clusterDelNode(clusterNode *delnode) { function clusterNode (line 978) | clusterNode *clusterLookupNode(const char *name) { function clusterRenameNode (line 992) | void clusterRenameNode(clusterNode *node, char *newname) { function clusterGetMaxEpoch (line 1011) | uint64_t clusterGetMaxEpoch(void) { function clusterBumpConfigEpochWithoutConsensus (line 1055) | int clusterBumpConfigEpochWithoutConsensus(void) { function clusterHandleConfigEpochCollision (line 1120) | void clusterHandleConfigEpochCollision(clusterNode *sender) { function clusterBlacklistCleanup (line 1168) | void clusterBlacklistCleanup(void) { function clusterBlacklistAddNode (line 1183) | void clusterBlacklistAddNode(clusterNode *node) { function clusterBlacklistExists (line 1201) | int clusterBlacklistExists(char *nodeid) { function markNodeAsFailingIfNeeded (line 1236) | void markNodeAsFailingIfNeeded(clusterNode *node) { function clearNodeFailureIfNeeded (line 1265) | void clearNodeFailureIfNeeded(clusterNode *node) { function clusterHandshakeInProgress (line 1300) | int clusterHandshakeInProgress(char *ip, int port, int cport) { function clusterStartHandshake (line 1324) | int clusterStartHandshake(char *ip, int port, int cport) { function clusterProcessGossipSection (line 1381) | void clusterProcessGossipSection(clusterMsg *hdr, clusterLink *link) { function nodeIp2String (line 1487) | void nodeIp2String(char *buf, clusterLink *link, char *announced_ip) { function nodeUpdateAddressIfNeeded (line 1508) | int nodeUpdateAddressIfNeeded(clusterNode *node, clusterLink *link, function clusterSetNodeAsMaster (line 1546) | void clusterSetNodeAsMaster(clusterNode *n) { function clusterUpdateSlotsConfigWith (line 1573) | void clusterUpdateSlotsConfigWith(clusterNode *sender, uint64_t senderCo... function clusterProcessPacket (line 1678) | int clusterProcessPacket(clusterLink *link) { function handleLinkIOError (line 2166) | void handleLinkIOError(clusterLink *link) { function clusterWriteHandler (line 2173) | void clusterWriteHandler(connection *conn) { function clusterLinkConnectHandler (line 2192) | void clusterLinkConnectHandler(connection *conn) { function clusterReadHandler (line 2237) | void clusterReadHandler(connection *conn) { function clusterSendMessage (line 2303) | void clusterSendMessage(clusterLink *link, unsigned char *msg, size_t ms... function clusterBroadcastMessage (line 2322) | void clusterBroadcastMessage(void *buf, size_t len) { function clusterBuildMessageHdr (line 2340) | void clusterBuildMessageHdr(clusterMsg *hdr, int type) { function clusterNodeIsInGossipSection (line 2418) | int clusterNodeIsInGossipSection(clusterMsg *hdr, int count, clusterNode... function clusterSetGossipEntry (line 2429) | void clusterSetGossipEntry(clusterMsg *hdr, int i, clusterNode *n) { function clusterSendPing (line 2444) | void clusterSendPing(clusterLink *link, int type) { function clusterBroadcastPong (line 2588) | void clusterBroadcastPong(int target) { function clusterSendPublish (line 2612) | void clusterSendPublish(clusterLink *link, robj *channel, robj *message) { function clusterSendFail (line 2659) | void clusterSendFail(char *nodename) { function clusterSendUpdate (line 2671) | void clusterSendUpdate(clusterLink *link, clusterNode *node) { function clusterSendModule (line 2686) | void clusterSendModule(clusterLink *link, uint64_t module_id, uint8_t type, function clusterSendModuleMessageToTarget (line 2726) | int clusterSendModuleMessageToTarget(const char *target, uint64_t module... function clusterPropagatePublish (line 2746) | void clusterPropagatePublish(robj *channel, robj *message) { function clusterRequestFailoverAuth (line 2760) | void clusterRequestFailoverAuth(void) { function clusterSendFailoverAuth (line 2776) | void clusterSendFailoverAuth(clusterNode *node) { function clusterSendMFStart (line 2789) | void clusterSendMFStart(clusterNode *node) { function clusterSendFailoverAuthIfNeeded (line 2802) | void clusterSendFailoverAuthIfNeeded(clusterNode *node, clusterMsg *requ... function clusterGetSlaveRank (line 2917) | int clusterGetSlaveRank(void) { function clusterLogCantFailover (line 2956) | void clusterLogCantFailover(int reason) { function clusterFailoverReplaceYourMaster (line 3004) | void clusterFailoverReplaceYourMaster(void) { function clusterHandleSlaveFailover (line 3042) | void clusterHandleSlaveFailover(void) { function clusterHandleSlaveMigration (line 3240) | void clusterHandleSlaveMigration(int max_slaves) { function resetManualFailover (line 3359) | void resetManualFailover(void) { function manualFailoverCheckTimeout (line 3371) | void manualFailoverCheckTimeout(void) { function clusterHandleManualFailover (line 3380) | void clusterHandleManualFailover(void) { function clusterCron (line 3405) | void clusterCron(void) { function clusterBeforeSleep (line 3671) | void clusterBeforeSleep(void) { function clusterDoBeforeSleep (line 3693) | void clusterDoBeforeSleep(int flags) { function bitmapTestBit (line 3703) | int bitmapTestBit(unsigned char *bitmap, int pos) { function bitmapSetBit (line 3710) | void bitmapSetBit(unsigned char *bitmap, int pos) { function bitmapClearBit (line 3717) | void bitmapClearBit(unsigned char *bitmap, int pos) { function clusterMastersHaveSlaves (line 3726) | int clusterMastersHaveSlaves(void) { function clusterNodeSetSlotBit (line 3741) | int clusterNodeSetSlotBit(clusterNode *n, int slot) { function clusterNodeClearSlotBit (line 3766) | int clusterNodeClearSlotBit(clusterNode *n, int slot) { function clusterNodeGetSlotBit (line 3774) | int clusterNodeGetSlotBit(clusterNode *n, int slot) { function clusterAddSlot (line 3782) | int clusterAddSlot(clusterNode *n, int slot) { function clusterDelSlot (line 3792) | int clusterDelSlot(int slot) { function clusterDelNodeSlots (line 3803) | int clusterDelNodeSlots(clusterNode *node) { function clusterCloseAllSlots (line 3817) | void clusterCloseAllSlots(void) { function clusterUpdateState (line 3836) | void clusterUpdateState(void) { function verifyClusterConfigWithData (line 3954) | int verifyClusterConfigWithData(void) { function clusterSetMaster (line 4009) | void clusterSetMaster(clusterNode *n) { type redisNodeFlags (line 4031) | struct redisNodeFlags { type redisNodeFlags (line 4036) | struct redisNodeFlags function sds (line 4049) | sds representClusterNodeFlags(sds ci, uint16_t flags) { function sds (line 4066) | sds clusterGenNodeDescription(clusterNode *node) { function sds (line 4143) | sds clusterGenNodesDescription(int filter) { function getSlotOrReply (line 4182) | int getSlotOrReply(client *c, robj *o) { function clusterReplyMultiBulkSlots (line 4194) | void clusterReplyMultiBulkSlots(client *c) { function clusterCommand (line 4271) | void clusterCommand(client *c) { function createDumpPayload (line 4855) | void createDumpPayload(rio *payload, robj *o, robj *key) { function verifyDumpPayload (line 4888) | int verifyDumpPayload(unsigned char *p, size_t len) { function dumpCommand (line 4910) | void dumpCommand(client *c) { function restoreCommand (line 4929) | void restoreCommand(client *c) { type migrateCachedSocket (line 5023) | typedef struct migrateCachedSocket { function migrateCachedSocket (line 5040) | migrateCachedSocket* migrateGetSocket(client *c, robj *host, robj *port,... function migrateCloseSocket (line 5089) | void migrateCloseSocket(robj *host, robj *port) { function migrateCloseTimedoutSockets (line 5108) | void migrateCloseTimedoutSockets(void) { function migrateCommand (line 5131) | void migrateCommand(client *c) { function askingCommand (line 5476) | void askingCommand(client *c) { function readonlyCommand (line 5488) | void readonlyCommand(client *c) { function readwriteCommand (line 5498) | void readwriteCommand(client *c) { function clusterNode (line 5535) | clusterNode *getNodeByQuery(client *c, struct redisCommand *cmd, robj **... function clusterRedirectClient (line 5731) | void clusterRedirectClient(client *c, clusterNode *n, int hashslot, int ... function clusterRedirectBlockedClientIfNeeded (line 5768) | int clusterRedirectBlockedClientIfNeeded(client *c) { FILE: Chapter07/redis-6.0.3/src/cluster.h type clusterNode (line 34) | struct clusterNode type clusterLink (line 37) | typedef struct clusterLink { type clusterNodeFailReport (line 107) | typedef struct clusterNodeFailReport { type clusterNode (line 112) | typedef struct clusterNode { type clusterState (line 140) | typedef struct clusterState { type clusterMsgDataGossip (line 185) | typedef struct { type clusterMsgDataFail (line 196) | typedef struct { type clusterMsgDataPublish (line 200) | typedef struct { type clusterMsgDataUpdate (line 206) | typedef struct { type clusterMsgModule (line 212) | typedef struct { type clusterMsg (line 249) | typedef struct { type redisCommand (line 283) | struct redisCommand FILE: Chapter07/redis-6.0.3/src/config.c type configEnum (line 41) | typedef struct configEnum { type boolConfigData (line 122) | typedef struct boolConfigData { type stringConfigData (line 129) | typedef struct stringConfigData { type enumConfigData (line 138) | typedef struct enumConfigData { type numericType (line 146) | typedef enum numericType { type numericConfigData (line 159) | typedef struct numericConfigData { type typeData (line 181) | typedef union typeData { type typeInterface (line 188) | typedef struct typeInterface { type standardConfig (line 202) | typedef struct standardConfig { function configEnumGetValue (line 217) | int configEnumGetValue(configEnum *ce, char *name) { function yesnotoi (line 250) | int yesnotoi(char *s) { function appendServerSaveParams (line 256) | void appendServerSaveParams(time_t seconds, int changes) { function resetServerSaveParams (line 263) | void resetServerSaveParams(void) { function queueLoadModule (line 269) | void queueLoadModule(sds path, sds *argv, int argc) { function initConfigValues (line 283) | void initConfigValues() { function loadServerConfigFromString (line 289) | void loadServerConfigFromString(char *config) { function loadServerConfig (line 540) | void loadServerConfig(char *filename, char *options) { function configSetCommand (line 602) | void configSetCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/connection.c function connection (line 77) | connection *connCreateSocket() { function connection (line 91) | connection *connCreateAcceptedSocket(int fd) { function connSocketConnect (line 98) | static int connSocketConnect(connection *conn, const char *addr, int por... function connHasWriteHandler (line 118) | int connHasWriteHandler(connection *conn) { function connHasReadHandler (line 123) | int connHasReadHandler(connection *conn) { function connSetPrivateData (line 128) | void connSetPrivateData(connection *conn, void *data) { function connSocketClose (line 144) | static void connSocketClose(connection *conn) { function connSocketWrite (line 163) | static int connSocketWrite(connection *conn, const void *data, size_t da... function connSocketRead (line 173) | static int connSocketRead(connection *conn, void *buf, size_t buf_len) { function connSocketAccept (line 185) | static int connSocketAccept(connection *conn, ConnectionCallbackFunc acc... function connSocketSetWriteHandler (line 206) | static int connSocketSetWriteHandler(connection *conn, ConnectionCallbac... function connSocketSetReadHandler (line 225) | static int connSocketSetReadHandler(connection *conn, ConnectionCallback... function connSocketEventHandler (line 241) | static void connSocketEventHandler(struct aeEventLoop *el, int fd, void ... function connSocketBlockingConnect (line 294) | static int connSocketBlockingConnect(connection *conn, const char *addr,... function connSocketSyncWrite (line 316) | static ssize_t connSocketSyncWrite(connection *conn, char *ptr, ssize_t ... function connSocketSyncRead (line 320) | static ssize_t connSocketSyncRead(connection *conn, char *ptr, ssize_t s... function connSocketSyncReadLine (line 324) | static ssize_t connSocketSyncReadLine(connection *conn, char *ptr, ssize... function connGetSocketError (line 346) | int connGetSocketError(connection *conn) { function connPeerToString (line 355) | int connPeerToString(connection *conn, char *ip, size_t ip_len, int *por... function connFormatPeer (line 359) | int connFormatPeer(connection *conn, char *buf, size_t buf_len) { function connSockName (line 363) | int connSockName(connection *conn, char *ip, size_t ip_len, int *port) { function connBlock (line 367) | int connBlock(connection *conn) { function connNonBlock (line 372) | int connNonBlock(connection *conn) { function connEnableTcpNoDelay (line 377) | int connEnableTcpNoDelay(connection *conn) { function connDisableTcpNoDelay (line 382) | int connDisableTcpNoDelay(connection *conn) { function connKeepAlive (line 387) | int connKeepAlive(connection *conn, int interval) { function connSendTimeout (line 392) | int connSendTimeout(connection *conn, long long ms) { function connRecvTimeout (line 396) | int connRecvTimeout(connection *conn, long long ms) { function connGetState (line 400) | int connGetState(connection *conn) { FILE: Chapter07/redis-6.0.3/src/connection.h type aeEventLoop (line 36) | struct aeEventLoop type connection (line 37) | typedef struct connection connection; type ConnectionState (line 39) | typedef enum { type connection (line 51) | struct connection type ConnectionType (line 53) | typedef struct ConnectionType { type connection (line 69) | struct connection { function connAccept (line 100) | static inline int connAccept(connection *conn, ConnectionCallbackFunc ac... function connConnect (line 113) | static inline int connConnect(connection *conn, const char *addr, int po... function connBlockingConnect (line 124) | static inline int connBlockingConnect(connection *conn, const char *addr... function connWrite (line 135) | static inline int connWrite(connection *conn, const void *data, size_t d... function connRead (line 147) | static inline int connRead(connection *conn, void *buf, size_t buf_len) { function connSetWriteHandler (line 154) | static inline int connSetWriteHandler(connection *conn, ConnectionCallba... function connSetReadHandler (line 161) | static inline int connSetReadHandler(connection *conn, ConnectionCallbac... function connSetWriteHandlerWithBarrier (line 170) | static inline int connSetWriteHandlerWithBarrier(connection *conn, Conne... function connClose (line 174) | static inline void connClose(connection *conn) { function connSyncWrite (line 185) | static inline ssize_t connSyncWrite(connection *conn, char *ptr, ssize_t... function connSyncRead (line 189) | static inline ssize_t connSyncRead(connection *conn, char *ptr, ssize_t ... function connSyncReadLine (line 193) | static inline ssize_t connSyncReadLine(connection *conn, char *ptr, ssiz... FILE: Chapter07/redis-6.0.3/src/connhelpers.h function connIncrRefs (line 52) | static inline void connIncrRefs(connection *conn) { function connDecrRefs (line 64) | static inline void connDecrRefs(connection *conn) { function connHasRefs (line 68) | static inline int connHasRefs(connection *conn) { function callHandler (line 77) | static inline int callHandler(connection *conn, ConnectionCallbackFunc h... FILE: Chapter07/redis-6.0.3/src/crc16.c function crc16 (line 82) | uint16_t crc16(const char *buf, int len) { FILE: Chapter07/redis-6.0.3/src/crc64.c function uint_fast64_t (line 69) | static inline uint_fast64_t crc_reflect(uint_fast64_t data, size_t data_... function _crc64 (line 88) | uint64_t _crc64(uint_fast64_t crc, const void *in_data, const uint64_t l... function crc64_init (line 116) | void crc64_init(void) { function crc64 (line 121) | uint64_t crc64(uint64_t crc, const unsigned char *s, uint64_t l) { function crc64Test (line 130) | int crc64Test(int argc, char *argv[]) { function main (line 156) | int main(int argc, char *argv[]) { FILE: Chapter07/redis-6.0.3/src/crcspeed.c function crcspeed64little_init (line 33) | void crcspeed64little_init(crcfn64 crcfn, uint64_t table[8][256]) { function crcspeed16little_init (line 51) | void crcspeed16little_init(crcfn16 crcfn, uint16_t table[8][256]) { function rev8 (line 70) | static inline uint64_t rev8(uint64_t a) { function crcspeed64big_init (line 86) | void crcspeed64big_init(crcfn64 fn, uint64_t big_table[8][256]) { function crcspeed16big_init (line 96) | void crcspeed16big_init(crcfn16 fn, uint16_t big_table[8][256]) { function crcspeed64little (line 111) | uint64_t crcspeed64little(uint64_t little_table[8][256], uint64_t crc, function crcspeed16little (line 145) | uint16_t crcspeed16little(uint16_t little_table[8][256], uint16_t crc, function crcspeed64big (line 182) | uint64_t crcspeed64big(uint64_t big_table[8][256], uint64_t crc, void *buf, function crcspeed16big (line 215) | uint16_t crcspeed16big(uint16_t big_table[8][256], uint16_t crc_in, void... function crcspeed64native (line 252) | uint64_t crcspeed64native(uint64_t table[8][256], uint64_t crc, void *buf, function crcspeed16native (line 260) | uint16_t crcspeed16native(uint16_t table[8][256], uint16_t crc, void *buf, function crcspeed64native_init (line 269) | void crcspeed64native_init(crcfn64 fn, uint64_t table[8][256]) { function crcspeed16native_init (line 276) | void crcspeed16native_init(crcfn16 fn, uint16_t table[8][256]) { FILE: Chapter07/redis-6.0.3/src/db.c function updateLFU (line 46) | void updateLFU(robj *val) { function robj (line 55) | robj *lookupKey(redisDb *db, robj *key, int flags) { function robj (line 98) | robj *lookupKeyReadWithFlags(redisDb *db, robj *key, int flags) { function robj (line 145) | robj *lookupKeyRead(redisDb *db, robj *key) { function robj (line 154) | robj *lookupKeyWriteWithFlags(redisDb *db, robj *key, int flags) { function robj (line 159) | robj *lookupKeyWrite(redisDb *db, robj *key) { function robj (line 163) | robj *lookupKeyReadOrReply(client *c, robj *key, robj *reply) { function robj (line 169) | robj *lookupKeyWriteOrReply(client *c, robj *key, robj *reply) { function dbAdd (line 179) | void dbAdd(redisDb *db, robj *key, robj *val) { function dbAddRDBLoad (line 202) | int dbAddRDBLoad(redisDb *db, sds key, robj *val) { function dbOverwrite (line 214) | void dbOverwrite(redisDb *db, robj *key, robj *val) { function genericSetKey (line 244) | void genericSetKey(client *c, redisDb *db, robj *key, robj *val, int kee... function setKey (line 256) | void setKey(client *c, redisDb *db, robj *key, robj *val) { function dbExists (line 262) | int dbExists(redisDb *db, robj *key) { function robj (line 270) | robj *dbRandomKey(redisDb *db) { function dbSyncDelete (line 306) | int dbSyncDelete(redisDb *db, robj *key) { function dbDelete (line 320) | int dbDelete(redisDb *db, robj *key) { function robj (line 352) | robj *dbUnshareStringValue(redisDb *db, robj *key, robj *o) { function emptyDbGeneric (line 380) | long long emptyDbGeneric(redisDb *dbarray, int dbnum, int flags, void(ca... function emptyDb (line 443) | long long emptyDb(int dbnum, int flags, void(callback)(void*)) { function selectDb (line 447) | int selectDb(client *c, int id) { function dbTotalServerKeyCount (line 454) | long long dbTotalServerKeyCount() { function signalModifiedKey (line 474) | void signalModifiedKey(client *c, redisDb *db, robj *key) { function signalFlushedDb (line 479) | void signalFlushedDb(int dbid) { function getFlushCommandFlags (line 496) | int getFlushCommandFlags(client *c, int *flags) { function flushAllDataAndResetRDB (line 511) | void flushAllDataAndResetRDB(int flags) { function flushdbCommand (line 536) | void flushdbCommand(client *c) { function flushallCommand (line 554) | void flushallCommand(client *c) { function delGenericCommand (line 562) | void delGenericCommand(client *c, int lazy) { function delCommand (line 580) | void delCommand(client *c) { function unlinkCommand (line 584) | void unlinkCommand(client *c) { function existsCommand (line 590) | void existsCommand(client *c) { function selectCommand (line 600) | void selectCommand(client *c) { function randomkeyCommand (line 618) | void randomkeyCommand(client *c) { function keysCommand (line 630) | void keysCommand(client *c) { function scanCallback (line 659) | void scanCallback(void *privdata, const dictEntry *de) { function parseScanCursorOrReply (line 692) | int parseScanCursorOrReply(client *c, robj *o, unsigned long *cursor) { function scanGenericCommand (line 718) | void scanGenericCommand(client *c, robj *o, unsigned long cursor) { function scanCommand (line 908) | void scanCommand(client *c) { function dbsizeCommand (line 914) | void dbsizeCommand(client *c) { function lastsaveCommand (line 918) | void lastsaveCommand(client *c) { function typeCommand (line 944) | void typeCommand(client *c) { function shutdownCommand (line 950) | void shutdownCommand(client *c) { function renameGenericCommand (line 978) | void renameGenericCommand(client *c, int nx) { function renameCommand (line 1020) | void renameCommand(client *c) { function renamenxCommand (line 1024) | void renamenxCommand(client *c) { function moveCommand (line 1028) | void moveCommand(client *c) { function scanDatabaseForReadyLists (line 1094) | void scanDatabaseForReadyLists(redisDb *db) { function dbSwapDatabases (line 1116) | int dbSwapDatabases(long id1, long id2) { function swapdbCommand (line 1151) | void swapdbCommand(client *c) { function removeExpire (line 1183) | int removeExpire(redisDb *db, robj *key) { function setExpire (line 1194) | void setExpire(client *c, redisDb *db, robj *key, long long when) { function getExpire (line 1210) | long long getExpire(redisDb *db, robj *key) { function propagateExpire (line 1231) | void propagateExpire(redisDb *db, robj *key, int lazy) { function keyIsExpired (line 1248) | int keyIsExpired(redisDb *db, robj *key) { function expireIfNeeded (line 1304) | int expireIfNeeded(redisDb *db, robj *key) { type redisCommand (line 1336) | struct redisCommand type redisCommand (line 1386) | struct redisCommand function getKeysFreeResult (line 1397) | void getKeysFreeResult(int *result) { type redisCommand (line 1405) | struct redisCommand type redisCommand (line 1436) | struct redisCommand type redisCommand (line 1467) | struct redisCommand type redisCommand (line 1509) | struct redisCommand type redisCommand (line 1543) | struct redisCommand type redisCommand (line 1580) | struct redisCommand type redisCommand (line 1607) | struct redisCommand type redisCommand (line 1623) | struct redisCommand function slotToKeyUpdateKey (line 1672) | void slotToKeyUpdateKey(sds key, int add) { function slotToKeyAdd (line 1691) | void slotToKeyAdd(sds key) { function slotToKeyDel (line 1695) | void slotToKeyDel(sds key) { function slotToKeyFlush (line 1699) | void slotToKeyFlush(void) { function getKeysInSlot (line 1709) | unsigned int getKeysInSlot(unsigned int hashslot, robj **keys, unsigned ... function delKeysInSlot (line 1728) | unsigned int delKeysInSlot(unsigned int hashslot) { function countKeysInSlot (line 1749) | unsigned int countKeysInSlot(unsigned int hashslot) { FILE: Chapter07/redis-6.0.3/src/debug.c type ucontext_t (line 43) | typedef ucontext_t sigcontext_t; function xorDigest (line 64) | void xorDigest(unsigned char *digest, void *ptr, size_t len) { function xorStringObjectDigest (line 77) | void xorStringObjectDigest(unsigned char *digest, robj *o) { function mixDigest (line 97) | void mixDigest(unsigned char *digest, void *ptr, size_t len) { function mixStringObjectDigest (line 107) | void mixStringObjectDigest(unsigned char *digest, robj *o) { function xorObjectDigest (line 121) | void xorObjectDigest(redisDb *db, robj *keyobj, unsigned char *digest, r... function computeDatasetDigest (line 258) | void computeDatasetDigest(unsigned char *final) { function mallctl_int (line 301) | void mallctl_int(client *c, robj **argv, int argc) { function mallctl_string (line 335) | void mallctl_string(client *c, robj **argv, int argc) { function debugCommand (line 350) | void debugCommand(client *c) { function _serverAssert (line 790) | void _serverAssert(const char *estr, const char *file, int line) { function _serverAssertPrintClientInfo (line 803) | void _serverAssertPrintClientInfo(const client *c) { function serverLogObjectDebugInfo (line 828) | void serverLogObjectDebugInfo(const robj *o) { function _serverAssertPrintObject (line 854) | void _serverAssertPrintObject(const robj *o) { function _serverAssertWithInfo (line 860) | void _serverAssertWithInfo(const client *c, const robj *o, const char *e... function _serverPanic (line 866) | void _serverPanic(const char *file, int line, const char *msg, ...) { function bugReportStart (line 884) | void bugReportStart(void) { function logStackContent (line 944) | void logStackContent(void **sp) { function logRegisters (line 957) | void logRegisters(ucontext_t *uc) { function openDirectLogFiledes (line 1286) | int openDirectLogFiledes(void) { function closeDirectLogFiledes (line 1295) | void closeDirectLogFiledes(int fd) { function logStackTrace (line 1302) | void logStackTrace(ucontext_t *uc) { function logCurrentClient (line 1330) | void logCurrentClient(void) { function memtest_test_linux_anonymous_maps (line 1371) | int memtest_test_linux_anonymous_maps(void) { function dumpX86Calls (line 1436) | void dumpX86Calls(void *addr, size_t len) { function sigsegvHandler (line 1459) | void sigsegvHandler(int sig, siginfo_t *info, void *secret) { function serverLogHexDump (line 1571) | void serverLogHexDump(int level, char *descr, void *value, size_t len) { function watchdogSignalHandler (line 1596) | void watchdogSignalHandler(int sig, siginfo_t *info, void *secret) { function watchdogScheduleSignal (line 1617) | void watchdogScheduleSignal(int period) { function enableWatchdog (line 1630) | void enableWatchdog(int period) { function disableWatchdog (line 1653) | void disableWatchdog(void) { FILE: Chapter07/redis-6.0.3/src/defrag.c function sds (line 87) | sds activeDefragSds(sds sdsptr) { function robj (line 103) | robj *activeDefragStringOb(robj* ob, long *defragged) { function dictIterDefragEntry (line 141) | long dictIterDefragEntry(dictIterator *iter) { function dictDefragTables (line 173) | long dictDefragTables(dict* d) { function zslUpdateNode (line 190) | void zslUpdateNode(zskiplist *zsl, zskiplistNode *oldnode, zskiplistNode... function activeDefragZsetEntry (line 250) | long activeDefragZsetEntry(zset *zs, dictEntry *de) { function activeDefragSdsDict (line 271) | long activeDefragSdsDict(dict* d, int val_type) { function activeDefragList (line 301) | long activeDefragList(list *l, int val_type) { function activeDefragSdsListAndDict (line 335) | long activeDefragSdsListAndDict(list *l, dict *d, int dict_val_type) { function dictEntry (line 395) | dictEntry* replaceSateliteDictKeyPtrAndOrDefragDictEntry(dict *d, sds ol... function activeDefragQuickListNode (line 411) | long activeDefragQuickListNode(quicklist *ql, quicklistNode **node_ref) { function activeDefragQuickListNodes (line 432) | long activeDefragQuickListNodes(quicklist *ql) { function defragLater (line 445) | void defragLater(redisDb *db, dictEntry *kde) { function scanLaterList (line 451) | long scanLaterList(robj *ob, unsigned long *cursor, long long endtime, l... type scanLaterZsetData (line 494) | typedef struct { function scanLaterZsetCallback (line 499) | void scanLaterZsetCallback(void *privdata, const dictEntry *_de) { function scanLaterZset (line 506) | long scanLaterZset(robj *ob, unsigned long *cursor) { function scanLaterSetCallback (line 516) | void scanLaterSetCallback(void *privdata, const dictEntry *_de) { function scanLaterSet (line 525) | long scanLaterSet(robj *ob, unsigned long *cursor) { function scanLaterHashCallback (line 534) | void scanLaterHashCallback(void *privdata, const dictEntry *_de) { function scanLaterHash (line 546) | long scanLaterHash(robj *ob, unsigned long *cursor) { function defragQuicklist (line 555) | long defragQuicklist(redisDb *db, dictEntry *kde) { function defragZsetSkiplist (line 569) | long defragZsetSkiplist(redisDb *db, dictEntry *kde) { function defragHash (line 602) | long defragHash(redisDb *db, dictEntry *kde) { function defragSet (line 620) | long defragSet(redisDb *db, dictEntry *kde) { function defragRaxNode (line 640) | int defragRaxNode(raxNode **noderef) { function scanLaterStraemListpacks (line 650) | int scanLaterStraemListpacks(robj *ob, unsigned long *cursor, long long ... function defragRadixTree (line 708) | long defragRadixTree(rax **raxref, int defrag_data, raxDefragFunction *e... type PendingEntryContext (line 732) | typedef struct { function defragStream (line 781) | long defragStream(redisDb *db, dictEntry *kde) { function defragKey (line 807) | long defragKey(redisDb *db, dictEntry *de) { function defragScanCallback (line 884) | void defragScanCallback(void *privdata, const dictEntry *de) { function defragDictBucketCallback (line 896) | void defragDictBucketCallback(void *privdata, dictEntry **bucketref) { function getAllocatorFragmentation (line 913) | float getAllocatorFragmentation(size_t *out_frag_bytes) { function defragOtherGlobals (line 930) | long defragOtherGlobals() { function defragLaterItem (line 943) | int defragLaterItem(dictEntry *de, unsigned long *cursor, long long endt... function defragLaterStep (line 970) | int defragLaterStep(redisDb *db, long long endtime) { function computeDefragCycles (line 1036) | void computeDefragCycles() { function activeDefragCycle (line 1069) | void activeDefragCycle(void) { function activeDefragCycle (line 1190) | void activeDefragCycle(void) { FILE: Chapter07/redis-6.0.3/src/dict.c function dictSetHashFunctionSeed (line 76) | void dictSetHashFunctionSeed(uint8_t *seed) { function dictGenHashFunction (line 90) | uint64_t dictGenHashFunction(const void *key, int len) { function dictGenCaseHashFunction (line 94) | uint64_t dictGenCaseHashFunction(const unsigned char *buf, int len) { function _dictReset (line 102) | static void _dictReset(dictht *ht) function dict (line 111) | dict *dictCreate(dictType *type, function _dictInit (line 121) | int _dictInit(dict *d, dictType *type, function dictResize (line 135) | int dictResize(dict *d) function dictExpand (line 147) | int dictExpand(dict *d, unsigned long size) function dictRehash (line 188) | int dictRehash(dict *d, int n) { function timeInMilliseconds (line 233) | long long timeInMilliseconds(void) { function dictRehashMilliseconds (line 241) | int dictRehashMilliseconds(dict *d, int ms) { function _dictRehashStep (line 260) | static void _dictRehashStep(dict *d) { function dictAdd (line 265) | int dictAdd(dict *d, void *key, void *val) function dictEntry (line 292) | dictEntry *dictAddRaw(dict *d, void *key, dictEntry **existing) function dictReplace (line 325) | int dictReplace(dict *d, void *key, void *val) function dictEntry (line 355) | dictEntry *dictAddOrFind(dict *d, void *key) { function dictEntry (line 364) | static dictEntry *dictGenericDelete(dict *d, const void *key, int nofree) { function dictDelete (line 403) | int dictDelete(dict *ht, const void *key) { function dictEntry (line 428) | dictEntry *dictUnlink(dict *ht, const void *key) { function dictFreeUnlinkedEntry (line 434) | void dictFreeUnlinkedEntry(dict *d, dictEntry *he) { function _dictClear (line 442) | int _dictClear(dict *d, dictht *ht, void(callback)(void *)) { function dictRelease (line 469) | void dictRelease(dict *d) function dictEntry (line 476) | dictEntry *dictFind(dict *d, const void *key) function dictFingerprint (line 510) | long long dictFingerprint(dict *d) { function dictIterator (line 542) | dictIterator *dictGetIterator(dict *d) function dictIterator (line 555) | dictIterator *dictGetSafeIterator(dict *d) { function dictEntry (line 562) | dictEntry *dictNext(dictIterator *iter) function dictReleaseIterator (line 597) | void dictReleaseIterator(dictIterator *iter) function dictEntry (line 610) | dictEntry *dictGetRandomKey(dict *d) function dictGetSomeKeys (line 673) | unsigned int dictGetSomeKeys(dict *d, dictEntry **des, unsigned int coun... function dictEntry (line 754) | dictEntry *dictGetFairRandomKey(dict *d) { function rev (line 768) | static unsigned long rev(unsigned long v) { function dictScan (line 862) | unsigned long dictScan(dict *d, function _dictExpandIfNeeded (line 953) | static int _dictExpandIfNeeded(dict *d) function _dictNextPower (line 975) | static unsigned long _dictNextPower(unsigned long size) function _dictKeyIndex (line 994) | static long _dictKeyIndex(dict *d, const void *key, uint64_t hash, dictE... function dictEmpty (line 1019) | void dictEmpty(dict *d, void(callback)(void*)) { function dictEnableResize (line 1026) | void dictEnableResize(void) { function dictDisableResize (line 1030) | void dictDisableResize(void) { function dictGetHash (line 1034) | uint64_t dictGetHash(dict *d, const void *key) { function dictEntry (line 1043) | dictEntry **dictFindEntryRefByPtrAndHash(dict *d, const void *oldptr, ui... function _dictGetStatsHt (line 1066) | size_t _dictGetStatsHt(char *buf, size_t bufsize, dictht *ht, int tablei... function dictGetStats (line 1127) | void dictGetStats(char *buf, size_t bufsize, dict *d) { function hashCallback (line 1148) | uint64_t hashCallback(const void *key) { function compareCallback (line 1152) | int compareCallback(void *privdata, const void *key1, const void *key2) { function freeCallback (line 1162) | void freeCallback(void *privdata, void *val) { function main (line 1184) | int main(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/src/dict.h type dictEntry (line 47) | typedef struct dictEntry { type dictType (line 58) | typedef struct dictType { type dictht (line 69) | typedef struct dictht { type dict (line 76) | typedef struct dict { type dictIterator (line 88) | typedef struct dictIterator { FILE: Chapter07/redis-6.0.3/src/endianconv.c function memrev16 (line 49) | void memrev16(void *p) { function memrev32 (line 59) | void memrev32(void *p) { function memrev64 (line 72) | void memrev64(void *p) { function intrev16 (line 89) | uint16_t intrev16(uint16_t v) { function intrev32 (line 94) | uint32_t intrev32(uint32_t v) { function intrev64 (line 99) | uint64_t intrev64(uint64_t v) { function endianconvTest (line 108) | int endianconvTest(int argc, char *argv[]) { FILE: Chapter07/redis-6.0.3/src/evict.c type evictionPoolEntry (line 54) | struct evictionPoolEntry { type evictionPoolEntry (line 61) | struct evictionPoolEntry function getLRUClock (line 70) | unsigned int getLRUClock(void) { function LRU_CLOCK (line 78) | unsigned int LRU_CLOCK(void) { function estimateObjectIdleTime (line 90) | unsigned long long estimateObjectIdleTime(robj *o) { function evictionPoolAlloc (line 139) | void evictionPoolAlloc(void) { function evictionPoolPopulate (line 162) | void evictionPoolPopulate(int dbid, dict *sampledict, dict *keydict, str... function LFUGetTimeInMinutes (line 299) | unsigned long LFUGetTimeInMinutes(void) { function LFUTimeElapsed (line 307) | unsigned long LFUTimeElapsed(unsigned long ldt) { function LFULogIncr (line 315) | uint8_t LFULogIncr(uint8_t counter) { function LFUDecrAndReturn (line 335) | unsigned long LFUDecrAndReturn(robj *o) { function freeMemoryGetNotCountedMemory (line 352) | size_t freeMemoryGetNotCountedMemory(void) { function getMaxmemoryState (line 396) | int getMaxmemoryState(size_t *total, size_t *logical, size_t *tofree, fl... function freeMemoryIfNeeded (line 446) | int freeMemoryIfNeeded(void) { function freeMemoryIfNeededAndSafe (line 637) | int freeMemoryIfNeededAndSafe(void) { FILE: Chapter07/redis-6.0.3/src/expire.c function activeExpireCycleTryExpire (line 54) | int activeExpireCycleTryExpire(redisDb *db, dictEntry *de, long long now) { function activeExpireCycle (line 123) | void activeExpireCycle(int type) { function expireSlaveKeys (line 369) | void expireSlaveKeys(void) { function rememberSlaveKeyWithExpire (line 428) | void rememberSlaveKeyWithExpire(redisDb *db, robj *key) { function getSlaveKeyWithExpireCount (line 458) | size_t getSlaveKeyWithExpireCount(void) { function flushSlaveKeysWithExpireList (line 471) | void flushSlaveKeysWithExpireList(void) { function expireGenericCommand (line 489) | void expireGenericCommand(client *c, long long basetime, int unit) { function expireCommand (line 537) | void expireCommand(client *c) { function expireatCommand (line 542) | void expireatCommand(client *c) { function pexpireCommand (line 547) | void pexpireCommand(client *c) { function pexpireatCommand (line 552) | void pexpireatCommand(client *c) { function ttlGenericCommand (line 557) | void ttlGenericCommand(client *c, int output_ms) { function ttlCommand (line 580) | void ttlCommand(client *c) { function pttlCommand (line 585) | void pttlCommand(client *c) { function persistCommand (line 590) | void persistCommand(client *c) { function touchCommand (line 605) | void touchCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/geo.c function geoArray (line 53) | geoArray *geoArrayCreate(void) { function geoPoint (line 64) | geoPoint *geoArrayAppend(geoArray *ga) { function geoArrayFree (line 75) | void geoArrayFree(geoArray *ga) { function decodeGeohash (line 85) | int decodeGeohash(double bits, double *xy) { function extractLongLatOrReply (line 93) | int extractLongLatOrReply(client *c, robj **argv, double *xy) { function longLatFromMember (line 113) | int longLatFromMember(robj *zobj, robj *member, double *xy) { function extractUnitOrReply (line 127) | double extractUnitOrReply(client *c, robj *unit) { function extractDistanceOrReply (line 152) | double extractDistanceOrReply(client *c, robj **argv, function addReplyDoubleDistance (line 179) | void addReplyDoubleDistance(client *c, double d) { function geoAppendIfWithinRadius (line 191) | int geoAppendIfWithinRadius(geoArray *ga, double lon, double lat, double... function geoGetPointsInRange (line 225) | int geoGetPointsInRange(robj *zobj, double min, double max, double lon, ... function scoresOfGeoHashBox (line 289) | void scoresOfGeoHashBox(GeoHashBits hash, GeoHashFix52Bits *min, GeoHash... function membersOfGeoHashBox (line 318) | int membersOfGeoHashBox(robj *zobj, GeoHashBits hash, geoArray *ga, doub... function membersOfAllNeighbors (line 326) | int membersOfAllNeighbors(robj *zobj, GeoHashRadius n, double lon, doubl... function sort_gp_asc (line 384) | static int sort_gp_asc(const void *a, const void *b) { function sort_gp_desc (line 396) | static int sort_gp_desc(const void *a, const void *b) { function geoaddCommand (line 405) | void geoaddCommand(client *c) { function georadiusGeneric (line 462) | void georadiusGeneric(client *c, int flags) { function georadiusCommand (line 676) | void georadiusCommand(client *c) { function georadiusbymemberCommand (line 681) | void georadiusbymemberCommand(client *c) { function georadiusroCommand (line 686) | void georadiusroCommand(client *c) { function georadiusbymemberroCommand (line 691) | void georadiusbymemberroCommand(client *c) { function geohashCommand (line 699) | void geohashCommand(client *c) { function geoposCommand (line 761) | void geoposCommand(client *c) { function geodistCommand (line 794) | void geodistCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/geo.h type geoPoint (line 8) | typedef struct geoPoint { type geoArray (line 16) | typedef struct geoArray { FILE: Chapter07/redis-6.0.3/src/geohash.c function interleave64 (line 52) | static inline uint64_t interleave64(uint32_t xlo, uint32_t ylo) { function deinterleave64 (line 82) | static inline uint64_t deinterleave64(uint64_t interleaved) { function geohashGetCoordRange (line 112) | void geohashGetCoordRange(GeoHashRange *long_range, GeoHashRange *lat_ra... function geohashEncode (line 121) | int geohashEncode(const GeoHashRange *long_range, const GeoHashRange *la... function geohashEncodeType (line 153) | int geohashEncodeType(double longitude, double latitude, uint8_t step, G... function geohashEncodeWGS84 (line 159) | int geohashEncodeWGS84(double longitude, double latitude, uint8_t step, function geohashDecode (line 164) | int geohashDecode(const GeoHashRange long_range, const GeoHashRange lat_... function geohashDecodeType (line 196) | int geohashDecodeType(const GeoHashBits hash, GeoHashArea *area) { function geohashDecodeWGS84 (line 202) | int geohashDecodeWGS84(const GeoHashBits hash, GeoHashArea *area) { function geohashDecodeAreaToLongLat (line 206) | int geohashDecodeAreaToLongLat(const GeoHashArea *area, double *xy) { function geohashDecodeToLongLatType (line 217) | int geohashDecodeToLongLatType(const GeoHashBits hash, double *xy) { function geohashDecodeToLongLatWGS84 (line 224) | int geohashDecodeToLongLatWGS84(const GeoHashBits hash, double *xy) { function geohash_move_x (line 228) | static void geohash_move_x(GeoHashBits *hash, int8_t d) { function geohash_move_y (line 248) | static void geohash_move_y(GeoHashBits *hash, int8_t d) { function geohashNeighbors (line 266) | void geohashNeighbors(const GeoHashBits *hash, GeoHashNeighbors *neighbo... FILE: Chapter07/redis-6.0.3/src/geohash.h type GeoDirection (line 55) | typedef enum { type GeoHashBits (line 66) | typedef struct { type GeoHashRange (line 71) | typedef struct { type GeoHashArea (line 76) | typedef struct { type GeoHashNeighbors (line 82) | typedef struct { FILE: Chapter07/redis-6.0.3/src/geohash_helper.c function deg_rad (line 57) | static inline double deg_rad(double ang) { return ang * D_R; } function rad_deg (line 58) | static inline double rad_deg(double ang) { return ang / D_R; } function geohashEstimateStepsByRadius (line 62) | uint8_t geohashEstimateStepsByRadius(double range_meters, double lat) { function geohashBoundingBox (line 103) | int geohashBoundingBox(double longitude, double latitude, double radius_... function GeoHashRadius (line 116) | GeoHashRadius geohashGetAreasByRadius(double longitude, double latitude,... function GeoHashRadius (line 199) | GeoHashRadius geohashGetAreasByRadiusWGS84(double longitude, double lati... function GeoHashFix52Bits (line 204) | GeoHashFix52Bits geohashAlign52Bits(const GeoHashBits hash) { function geohashGetDistance (line 211) | double geohashGetDistance(double lon1d, double lat1d, double lon2d, doub... function geohashGetDistanceIfInRadius (line 223) | int geohashGetDistanceIfInRadius(double x1, double y1, function geohashGetDistanceIfInRadiusWGS84 (line 231) | int geohashGetDistanceIfInRadiusWGS84(double x1, double y1, double x2, FILE: Chapter07/redis-6.0.3/src/geohash_helper.h type GeoHashFix52Bits (line 41) | typedef uint64_t GeoHashFix52Bits; type GeoHashVarBits (line 42) | typedef uint64_t GeoHashVarBits; type GeoHashRadius (line 44) | typedef struct { FILE: Chapter07/redis-6.0.3/src/gopher.c function addReplyGopherItem (line 35) | void addReplyGopherItem(client *c, const char *type, const char *descr, function processGopherRequest (line 51) | void processGopherRequest(client *c) { FILE: Chapter07/redis-6.0.3/src/help.h type commandHelp (line 24) | struct commandHelp { FILE: Chapter07/redis-6.0.3/src/hyperloglog.c type hllhdr (line 182) | struct hllhdr { function MurmurHash64A (line 396) | uint64_t MurmurHash64A (const void * key, int len, unsigned int seed) { function hllPatLen (line 451) | int hllPatLen(unsigned char *ele, size_t elesize, long *regp) { function hllDenseSet (line 493) | int hllDenseSet(uint8_t *registers, long index, uint8_t count) { function hllDenseAdd (line 511) | int hllDenseAdd(uint8_t *registers, unsigned char *ele, size_t elesize) { function hllDenseRegHisto (line 519) | void hllDenseRegHisto(uint8_t *registers, int* reghisto) { function hllSparseToDense (line 584) | int hllSparseToDense(robj *o) { function hllSparseSet (line 654) | int hllSparseSet(robj *o, long index, uint8_t count) { function hllSparseAdd (line 903) | int hllSparseAdd(robj *o, unsigned char *ele, size_t elesize) { function hllSparseRegHisto (line 911) | void hllSparseRegHisto(uint8_t *sparse, int sparselen, int *invalid, int... function hllRawRegHisto (line 945) | void hllRawRegHisto(uint8_t *registers, int* reghisto) { function hllSigma (line 971) | double hllSigma(double x) { function hllTau (line 988) | double hllTau(double x) { function hllCount (line 1013) | uint64_t hllCount(struct hllhdr *hdr, int *invalid) { function hllAdd (line 1051) | int hllAdd(robj *o, unsigned char *ele, size_t elesize) { function hllMerge (line 1068) | int hllMerge(uint8_t *max, robj *hll) { function robj (line 1114) | robj *createHLLObject(void) { function isHLLObjectOrReply (line 1149) | int isHLLObjectOrReply(client *c, robj *o) { function pfaddCommand (line 1181) | void pfaddCommand(client *c) { function pfcountCommand (line 1221) | void pfcountCommand(client *c) { function pfmergeCommand (line 1311) | void pfmergeCommand(client *c) { function pfselftestCommand (line 1390) | void pfselftestCommand(client *c) { function pfdebugCommand (line 1494) | void pfdebugCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/intset.c function _intsetValueEncoding (line 45) | static uint8_t _intsetValueEncoding(int64_t v) { function _intsetGetEncoded (line 55) | static int64_t _intsetGetEncoded(intset *is, int pos, uint8_t enc) { function _intsetGet (line 76) | static int64_t _intsetGet(intset *is, int pos) { function _intsetSet (line 81) | static void _intsetSet(intset *is, int pos, int64_t value) { function intset (line 97) | intset *intsetNew(void) { function intset (line 105) | static intset *intsetResize(intset *is, uint32_t len) { function intsetSearch (line 115) | static uint8_t intsetSearch(intset *is, int64_t value, uint32_t *pos) { function intset (line 157) | static intset *intsetUpgradeAndAdd(intset *is, int64_t value) { function intsetMoveTail (line 182) | static void intsetMoveTail(intset *is, uint32_t from, uint32_t to) { function intset (line 204) | intset *intsetAdd(intset *is, int64_t value, uint8_t *success) { function intset (line 234) | intset *intsetRemove(intset *is, int64_t value, int *success) { function intsetFind (line 254) | uint8_t intsetFind(intset *is, int64_t value) { function intsetRandom (line 260) | int64_t intsetRandom(intset *is) { function intsetGet (line 266) | uint8_t intsetGet(intset *is, uint32_t pos, int64_t *value) { function intsetLen (line 275) | uint32_t intsetLen(const intset *is) { function intsetBlobLen (line 280) | size_t intsetBlobLen(intset *is) { function intsetRepr (line 289) | static void intsetRepr(intset *is) { function error (line 296) | static void error(char *err) { function ok (line 302) | static void ok(void) { function usec (line 306) | static long long usec(void) { function _assert (line 313) | static void _assert(char *estr, char *file, int line) { function intset (line 318) | static intset *createSet(int bits, int size) { function checkConsistency (line 334) | static void checkConsistency(intset *is) { function intsetTest (line 352) | int intsetTest(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/src/intset.h type intset (line 35) | typedef struct intset { FILE: Chapter07/redis-6.0.3/src/latency.c function dictStringKeyCompare (line 39) | int dictStringKeyCompare(void *privdata, const void *key1, const void *k... function dictStringHash (line 44) | uint64_t dictStringHash(const void *key) { function THPIsEnabled (line 64) | int THPIsEnabled(void) { function THPGetAnonHugePagesSize (line 81) | int THPGetAnonHugePagesSize(void) { function latencyMonitorInit (line 90) | void latencyMonitorInit(void) { function latencyAddSample (line 98) | void latencyAddSample(const char *event, mstime_t latency) { function latencyResetEvent (line 135) | int latencyResetEvent(char *event_to_reset) { function analyzeLatencyForEvent (line 160) | void analyzeLatencyForEvent(char *event, struct latencyStats *ls) { function sds (line 217) | sds createLatencyReport(void) { function latencyCommandReplyWithSamples (line 478) | void latencyCommandReplyWithSamples(client *c, struct latencyTimeSeries ... function latencyCommandReplyWithLatestEvents (line 496) | void latencyCommandReplyWithLatestEvents(client *c) { function sds (line 517) | sds latencyCommandGenSparkeline(char *event, struct latencyTimeSeries *t... function latencyCommand (line 569) | void latencyCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/latency.h type latencySample (line 41) | struct latencySample { type latencyTimeSeries (line 47) | struct latencyTimeSeries { type latencyStats (line 54) | struct latencyStats { FILE: Chapter07/redis-6.0.3/src/lazyfree.c function lazyfreeGetPendingObjectsCount (line 10) | size_t lazyfreeGetPendingObjectsCount(void) { function lazyfreeGetFreeEffort (line 31) | size_t lazyfreeGetFreeEffort(robj *obj) { function dbAsyncDelete (line 54) | int dbAsyncDelete(redisDb *db, robj *key) { function freeObjAsync (line 94) | void freeObjAsync(robj *o) { function emptyDbAsync (line 107) | void emptyDbAsync(redisDb *db) { function slotToKeyFlushAsync (line 117) | void slotToKeyFlushAsync(void) { function lazyfreeFreeObjectFromBioThread (line 129) | void lazyfreeFreeObjectFromBioThread(robj *o) { function lazyfreeFreeDatabaseFromBioThread (line 139) | void lazyfreeFreeDatabaseFromBioThread(dict *ht1, dict *ht2) { function lazyfreeFreeSlotsMapFromBioThread (line 148) | void lazyfreeFreeSlotsMapFromBioThread(rax *rt) { FILE: Chapter07/redis-6.0.3/src/listpack.c function lpStringToInt64 (line 141) | int lpStringToInt64(const char *s, unsigned long slen, int64_t *value) { function lpFree (line 216) | void lpFree(unsigned char *lp) { function lpEncodeGetType (line 231) | int lpEncodeGetType(unsigned char *ele, uint32_t size, unsigned char *in... function lpEncodeBacklen (line 296) | unsigned long lpEncodeBacklen(unsigned char *buf, uint64_t l) { function lpDecodeBacklen (line 335) | uint64_t lpDecodeBacklen(unsigned char *p) { function lpEncodeString (line 352) | void lpEncodeString(unsigned char *buf, unsigned char *s, uint32_t len) { function lpCurrentEncodedSize (line 372) | uint32_t lpCurrentEncodedSize(unsigned char *p) { function lpLength (line 438) | uint32_t lpLength(unsigned char *lp) { function lpBytes (line 751) | uint32_t lpBytes(unsigned char *lp) { FILE: Chapter07/redis-6.0.3/src/localtime.c function is_leap_year (line 52) | static int is_leap_year(time_t year) { function nolocks_localtime (line 59) | void nolocks_localtime(struct tm *tmp, time_t t, time_t tz, int dst) { function main (line 109) | int main(void) { FILE: Chapter07/redis-6.0.3/src/lolwut.c function lolwutUnstableCommand (line 45) | void lolwutUnstableCommand(client *c) { function lolwutCommand (line 54) | void lolwutCommand(client *c) { function lwCanvas (line 93) | lwCanvas *lwCreateCanvas(int width, int height, int bgcolor) { function lwFreeCanvas (line 103) | void lwFreeCanvas(lwCanvas *canvas) { function lwDrawPixel (line 112) | void lwDrawPixel(lwCanvas *canvas, int x, int y, int color) { function lwGetPixel (line 119) | int lwGetPixel(lwCanvas *canvas, int x, int y) { function lwDrawLine (line 126) | void lwDrawLine(lwCanvas *canvas, int x1, int y1, int x2, int y2, int co... function lwDrawSquare (line 167) | void lwDrawSquare(lwCanvas *canvas, int x, int y, float size, float angl... FILE: Chapter07/redis-6.0.3/src/lolwut.h type lwCanvas (line 41) | typedef struct lwCanvas { FILE: Chapter07/redis-6.0.3/src/lolwut5.c function lwTranslatePixelsGroup (line 54) | void lwTranslatePixelsGroup(int byte, char *output) { function lwCanvas (line 71) | lwCanvas *lwDrawSchotter(int console_cols, int squares_per_row, int squa... function sds (line 109) | static sds renderCanvas(lwCanvas *canvas) { function lolwut5Command (line 140) | void lolwut5Command(client *c) { FILE: Chapter07/redis-6.0.3/src/lolwut6.c function sds (line 47) | static sds renderCanvas(lwCanvas *canvas) { type skyscraper (line 74) | struct skyscraper { function generateSkyscraper (line 82) | void generateSkyscraper(lwCanvas *canvas, struct skyscraper *si) { function generateSkyline (line 123) | void generateSkyline(lwCanvas *canvas) { function lolwut6Command (line 169) | void lolwut6Command(client *c) { FILE: Chapter07/redis-6.0.3/src/lzfP.h type u8 (line 160) | typedef unsigned char u8; type LZF_HSLOT (line 164) | typedef unsigned int LZF_HSLOT; type u8 (line 167) | typedef const u8 *LZF_HSLOT; type LZF_HSLOT (line 170) | typedef LZF_HSLOT LZF_STATE[1 << (HLOG)]; type u16 (line 175) | typedef unsigned short u16; type u16 (line 177) | typedef unsigned int u16; FILE: Chapter07/redis-6.0.3/src/lzf_c.c function lzf_compress (line 98) | unsigned int FILE: Chapter07/redis-6.0.3/src/lzf_d.c function lzf_decompress (line 59) | unsigned int FILE: Chapter07/redis-6.0.3/src/memtest.c type winsize (line 59) | struct winsize function memtest_progress_start (line 63) | void memtest_progress_start(char *title, int pass) { function memtest_progress_end (line 78) | void memtest_progress_end(void) { function memtest_progress_step (line 82) | void memtest_progress_step(size_t curr, size_t size, char c) { function memtest_addressing (line 93) | int memtest_addressing(unsigned long *l, size_t bytes, int interactive) { function memtest_fill_random (line 138) | void memtest_fill_random(unsigned long *l, size_t bytes, int interactive) { function memtest_fill_value (line 163) | void memtest_fill_value(unsigned long *l, size_t bytes, unsigned long v1, function memtest_compare (line 194) | int memtest_compare(unsigned long *l, size_t bytes, int interactive) { function memtest_compare_times (line 218) | int memtest_compare_times(unsigned long *m, size_t bytes, int pass, int ... function memtest_test (line 237) | int memtest_test(unsigned long *m, size_t bytes, int passes, int interac... function memtest_preserving_test (line 280) | int memtest_preserving_test(unsigned long *m, size_t bytes, int passes) { function memtest_alloc_and_test (line 336) | void memtest_alloc_and_test(size_t megabytes, int passes) { function memtest (line 349) | void memtest(size_t megabytes, int passes) { FILE: Chapter07/redis-6.0.3/src/module.c type RedisModuleInfoCtx (line 43) | typedef struct RedisModuleInfoCtx { type RedisModule (line 55) | struct RedisModule { type RedisModule (line 70) | typedef struct RedisModule RedisModule; type RedisModuleSharedAPI (line 76) | struct RedisModuleSharedAPI { type RedisModuleSharedAPI (line 80) | typedef struct RedisModuleSharedAPI RedisModuleSharedAPI; type AutoMemEntry (line 86) | struct AutoMemEntry { type RedisModulePoolAllocBlock (line 115) | typedef struct RedisModulePoolAllocBlock { type RedisModuleBlockedClient (line 130) | struct RedisModuleBlockedClient type RedisModuleCtx (line 132) | struct RedisModuleCtx { type RedisModuleCtx (line 159) | typedef struct RedisModuleCtx RedisModuleCtx; type RedisModuleKey (line 172) | struct RedisModuleKey { type RedisModuleKey (line 190) | typedef struct RedisModuleKey RedisModuleKey; type RedisModuleBlockedClient (line 200) | struct RedisModuleBlockedClient type RedisModuleBlockedClient (line 202) | struct RedisModuleBlockedClient type RedisModuleCommandProxy (line 205) | struct RedisModuleCommandProxy { type RedisModuleCommandProxy (line 210) | typedef struct RedisModuleCommandProxy RedisModuleCommandProxy; type RedisModuleCallReply (line 220) | typedef struct RedisModuleCallReply { type RedisModuleBlockedClient (line 239) | typedef struct RedisModuleBlockedClient { type RedisModuleKeyspaceSubscriber (line 270) | typedef struct RedisModuleKeyspaceSubscriber { type RedisModuleDict (line 292) | typedef struct RedisModuleDict { type RedisModuleDictIter (line 296) | typedef struct RedisModuleDictIter { type RedisModuleCommandFilterCtx (line 301) | typedef struct RedisModuleCommandFilterCtx { type RedisModuleCommandFilter (line 308) | typedef struct RedisModuleCommandFilter { type RedisModuleForkInfo (line 322) | struct RedisModuleForkInfo { type RedisModuleServerInfoData (line 327) | typedef struct RedisModuleServerInfoData { type RedisModuleEventListener (line 348) | typedef struct RedisModuleEventListener { type RedisModuleUser (line 368) | typedef struct RedisModuleUser { function RM_Free (line 415) | void RM_Free(void *ptr) { function poolAllocRelease (line 429) | void poolAllocRelease(RedisModuleCtx *ctx) { function moduleCreateEmptyKey (line 498) | int moduleCreateEmptyKey(RedisModuleKey *key, int type) { function moduleDelKeyIfEmpty (line 534) | int moduleDelKeyIfEmpty(RedisModuleKey *key) { function RM_GetApi (line 573) | int RM_GetApi(const char *funcname, void **targetPtrPtr) { function moduleHandlePropagationAfterCommandCallback (line 582) | void moduleHandlePropagationAfterCommandCallback(RedisModuleCtx *ctx) { function moduleFreeContext (line 616) | void moduleFreeContext(RedisModuleCtx *ctx) { function RedisModuleCommandDispatcher (line 635) | void RedisModuleCommandDispatcher(client *c) { type redisCommand (line 671) | struct redisCommand function RM_IsKeysPositionRequest (line 688) | int RM_IsKeysPositionRequest(RedisModuleCtx *ctx) { function RM_KeyAtPos (line 706) | void RM_KeyAtPos(RedisModuleCtx *ctx, int pos) { function commandFlagsFromString (line 717) | int64_t commandFlagsFromString(char *s) { function RM_CreateCommand (line 803) | int RM_CreateCommand(RedisModuleCtx *ctx, const char *name, RedisModuleC... function RM_SetModuleAttribs (line 850) | void RM_SetModuleAttribs(RedisModuleCtx *ctx, const char *name, int ver,... function RM_IsModuleNameBusy (line 871) | int RM_IsModuleNameBusy(const char *name) { function RM_Milliseconds (line 879) | long long RM_Milliseconds(void) { function RM_SetModuleOptions (line 892) | void RM_SetModuleOptions(RedisModuleCtx *ctx, int options) { function RM_SignalModifiedKey (line 898) | int RM_SignalModifiedKey(RedisModuleCtx *ctx, RedisModuleString *keyname) { function RM_AutoMemory (line 911) | void RM_AutoMemory(RedisModuleCtx *ctx) { function autoMemoryAdd (line 916) | void autoMemoryAdd(RedisModuleCtx *ctx, int type, void *ptr) { function autoMemoryFreed (line 933) | int autoMemoryFreed(RedisModuleCtx *ctx, int type, void *ptr) { function autoMemoryCollect (line 964) | void autoMemoryCollect(RedisModuleCtx *ctx) { function RedisModuleString (line 1002) | RedisModuleString *RM_CreateString(RedisModuleCtx *ctx, const char *ptr,... function RedisModuleString (line 1016) | RedisModuleString *RM_CreateStringPrintf(RedisModuleCtx *ctx, const char... function RedisModuleString (line 1039) | RedisModuleString *RM_CreateStringFromLongLong(RedisModuleCtx *ctx, long... function RedisModuleString (line 1050) | RedisModuleString *RM_CreateStringFromDouble(RedisModuleCtx *ctx, double... function RedisModuleString (line 1064) | RedisModuleString *RM_CreateStringFromLongDouble(RedisModuleCtx *ctx, lo... function RedisModuleString (line 1079) | RedisModuleString *RM_CreateStringFromString(RedisModuleCtx *ctx, const ... function RM_FreeString (line 1097) | void RM_FreeString(RedisModuleCtx *ctx, RedisModuleString *str) { function RM_RetainString (line 1126) | void RM_RetainString(RedisModuleCtx *ctx, RedisModuleString *str) { function RM_StringToLongLong (line 1162) | int RM_StringToLongLong(const RedisModuleString *str, long long *ll) { function RM_StringToDouble (line 1170) | int RM_StringToDouble(const RedisModuleString *str, double *d) { function RM_StringToLongDouble (line 1178) | int RM_StringToLongDouble(const RedisModuleString *str, long double *ld) { function RM_StringCompare (line 1186) | int RM_StringCompare(RedisModuleString *a, RedisModuleString *b) { function RedisModuleString (line 1192) | RedisModuleString *moduleAssertUnsharedString(RedisModuleString *str) { function RM_StringAppendBuffer (line 1216) | int RM_StringAppendBuffer(RedisModuleCtx *ctx, RedisModuleString *str, c... function RM_WrongArity (line 1241) | int RM_WrongArity(RedisModuleCtx *ctx) { function client (line 1262) | client *moduleGetReplyClient(RedisModuleCtx *ctx) { function RM_ReplyWithLongLong (line 1279) | int RM_ReplyWithLongLong(RedisModuleCtx *ctx, long long ll) { function replyWithStatus (line 1289) | int replyWithStatus(RedisModuleCtx *ctx, const char *msg, char *prefix) { function RM_ReplyWithError (line 1312) | int RM_ReplyWithError(RedisModuleCtx *ctx, const char *err) { function RM_ReplyWithSimpleString (line 1321) | int RM_ReplyWithSimpleString(RedisModuleCtx *ctx, const char *msg) { function RM_ReplyWithArray (line 1336) | int RM_ReplyWithArray(RedisModuleCtx *ctx, long len) { function RM_ReplyWithNullArray (line 1355) | int RM_ReplyWithNullArray(RedisModuleCtx *ctx) { function RM_ReplyWithEmptyArray (line 1365) | int RM_ReplyWithEmptyArray(RedisModuleCtx *ctx) { function RM_ReplySetArrayLength (line 1398) | void RM_ReplySetArrayLength(RedisModuleCtx *ctx, long len) { function RM_ReplyWithStringBuffer (line 1422) | int RM_ReplyWithStringBuffer(RedisModuleCtx *ctx, const char *buf, size_... function RM_ReplyWithCString (line 1433) | int RM_ReplyWithCString(RedisModuleCtx *ctx, const char *buf) { function RM_ReplyWithString (line 1443) | int RM_ReplyWithString(RedisModuleCtx *ctx, RedisModuleString *str) { function RM_ReplyWithEmptyString (line 1453) | int RM_ReplyWithEmptyString(RedisModuleCtx *ctx) { function RM_ReplyWithVerbatimString (line 1464) | int RM_ReplyWithVerbatimString(RedisModuleCtx *ctx, const char *buf, siz... function RM_ReplyWithNull (line 1474) | int RM_ReplyWithNull(RedisModuleCtx *ctx) { function RM_ReplyWithCallReply (line 1487) | int RM_ReplyWithCallReply(RedisModuleCtx *ctx, RedisModuleCallReply *rep... function RM_ReplyWithDouble (line 1501) | int RM_ReplyWithDouble(RedisModuleCtx *ctx, double d) { function RM_ReplyWithLongDouble (line 1516) | int RM_ReplyWithLongDouble(RedisModuleCtx *ctx, long double ld) { function moduleReplicateMultiIfNeeded (line 1530) | void moduleReplicateMultiIfNeeded(RedisModuleCtx *ctx) { function RM_Replicate (line 1588) | int RM_Replicate(RedisModuleCtx *ctx, const char *cmdname, const char *f... function RM_ReplicateVerbatim (line 1639) | int RM_ReplicateVerbatim(RedisModuleCtx *ctx) { function RM_GetClientId (line 1670) | unsigned long long RM_GetClientId(RedisModuleCtx *ctx) { function modulePopulateClientInfoStructure (line 1681) | int modulePopulateClientInfoStructure(void *ci, client *client, int stru... function modulePopulateReplicationInfoStructure (line 1711) | int modulePopulateReplicationInfoStructure(void *ri, int structver) { function RM_GetClientInfoById (line 1769) | int RM_GetClientInfoById(void *ci, uint64_t id) { function RM_PublishMessage (line 1780) | int RM_PublishMessage(RedisModuleCtx *ctx, RedisModuleString *channel, R... function RM_GetSelectedDb (line 1789) | int RM_GetSelectedDb(RedisModuleCtx *ctx) { function RM_GetContextFlags (line 1852) | int RM_GetContextFlags(RedisModuleCtx *ctx) { function RM_AvoidReplicaTraffic (line 1949) | int RM_AvoidReplicaTraffic() { function RM_SelectDb (line 1963) | int RM_SelectDb(RedisModuleCtx *ctx, int newid) { function moduleInitKey (line 1969) | static void moduleInitKey(RedisModuleKey *kp, RedisModuleCtx *ctx, robj ... function moduleCloseKey (line 2016) | static void moduleCloseKey(RedisModuleKey *key) { function RM_CloseKey (line 2026) | void RM_CloseKey(RedisModuleKey *key) { function RM_KeyType (line 2035) | int RM_KeyType(RedisModuleKey *key) { function RM_ValueLength (line 2056) | size_t RM_ValueLength(RedisModuleKey *key) { function RM_DeleteKey (line 2073) | int RM_DeleteKey(RedisModuleKey *key) { function RM_UnlinkKey (line 2087) | int RM_UnlinkKey(RedisModuleKey *key) { function mstime_t (line 2099) | mstime_t RM_GetExpire(RedisModuleKey *key) { function RM_SetExpire (line 2115) | int RM_SetExpire(RedisModuleKey *key, mstime_t expire) { function RM_ResetDataset (line 2131) | void RM_ResetDataset(int restart_aof, int async) { function RM_DbSize (line 2138) | unsigned long long RM_DbSize(RedisModuleCtx *ctx) { function RedisModuleString (line 2143) | RedisModuleString *RM_RandomKey(RedisModuleCtx *ctx) { function RM_StringSet (line 2157) | int RM_StringSet(RedisModuleKey *key, RedisModuleString *str) { function RM_StringTruncate (line 2228) | int RM_StringTruncate(RedisModuleKey *key, size_t newlen) { function RM_ListPush (line 2267) | int RM_ListPush(RedisModuleKey *key, int where, RedisModuleString *ele) { function RedisModuleString (line 2283) | RedisModuleString *RM_ListPop(RedisModuleKey *key, int where) { function RM_ZsetAddFlagsToCoreFlags (line 2302) | int RM_ZsetAddFlagsToCoreFlags(int flags) { function RM_ZsetAddFlagsFromCoreFlags (line 2310) | int RM_ZsetAddFlagsFromCoreFlags(int flags) { function RM_ZsetAdd (line 2346) | int RM_ZsetAdd(RedisModuleKey *key, double score, RedisModuleString *ele... function RM_ZsetIncrby (line 2373) | int RM_ZsetIncrby(RedisModuleKey *key, double score, RedisModuleString *... function RM_ZsetRem (line 2411) | int RM_ZsetRem(RedisModuleKey *key, RedisModuleString *ele, int *deleted) { function RM_ZsetScore (line 2430) | int RM_ZsetScore(RedisModuleKey *key, RedisModuleString *ele, double *sc... function zsetKeyReset (line 2441) | void zsetKeyReset(RedisModuleKey *key) { function RM_ZsetRangeStop (line 2448) | void RM_ZsetRangeStop(RedisModuleKey *key) { function RM_ZsetRangeEndReached (line 2459) | int RM_ZsetRangeEndReached(RedisModuleKey *key) { function zsetInitScoreRange (line 2469) | int zsetInitScoreRange(RedisModuleKey *key, double min, double max, int ... function RM_ZsetFirstInScoreRange (line 2514) | int RM_ZsetFirstInScoreRange(RedisModuleKey *key, double min, double max... function RM_ZsetLastInScoreRange (line 2520) | int RM_ZsetLastInScoreRange(RedisModuleKey *key, double min, double max,... function zsetInitLexRange (line 2533) | int zsetInitLexRange(RedisModuleKey *key, RedisModuleString *min, RedisM... function RM_ZsetFirstInLexRange (line 2576) | int RM_ZsetFirstInLexRange(RedisModuleKey *key, RedisModuleString *min, ... function RM_ZsetLastInLexRange (line 2582) | int RM_ZsetLastInLexRange(RedisModuleKey *key, RedisModuleString *min, R... function RedisModuleString (line 2589) | RedisModuleString *RM_ZsetRangeCurrentElement(RedisModuleKey *key, doubl... function RM_ZsetRangeNext (line 2616) | int RM_ZsetRangeNext(RedisModuleKey *key) { function RM_ZsetRangePrev (line 2679) | int RM_ZsetRangePrev(RedisModuleKey *key) { function RM_HashSet (line 2795) | int RM_HashSet(RedisModuleKey *key, int flags, ...) { function RM_HashGet (line 2898) | int RM_HashGet(RedisModuleKey *key, int flags, ...) { function RedisModuleCallReply (line 2954) | RedisModuleCallReply *moduleCreateCallReplyFromProto(RedisModuleCtx *ctx... function moduleParseCallReply (line 2981) | void moduleParseCallReply(RedisModuleCallReply *reply) { function moduleParseCallReply_Int (line 2994) | void moduleParseCallReply_Int(RedisModuleCallReply *reply) { function moduleParseCallReply_BulkString (line 3003) | void moduleParseCallReply_BulkString(RedisModuleCallReply *reply) { function moduleParseCallReply_SimpleString (line 3020) | void moduleParseCallReply_SimpleString(RedisModuleCallReply *reply) { function moduleParseCallReply_Array (line 3031) | void moduleParseCallReply_Array(RedisModuleCallReply *reply) { function RM_FreeCallReply_Rec (line 3062) | void RM_FreeCallReply_Rec(RedisModuleCallReply *reply, int freenested){ function RM_FreeCallReply (line 3090) | void RM_FreeCallReply(RedisModuleCallReply *reply) { function RM_CallReplyType (line 3098) | int RM_CallReplyType(RedisModuleCallReply *reply) { function RM_CallReplyLength (line 3104) | size_t RM_CallReplyLength(RedisModuleCallReply *reply) { function RedisModuleCallReply (line 3118) | RedisModuleCallReply *RM_CallReplyArrayElement(RedisModuleCallReply *rep... function RM_CallReplyInteger (line 3126) | long long RM_CallReplyInteger(RedisModuleCallReply *reply) { function RedisModuleString (line 3143) | RedisModuleString *RM_CreateStringFromCallReply(RedisModuleCallReply *re... function robj (line 3171) | robj **moduleCreateArgvFromUserFormat(const char *cmdname, const char *f... function RedisModuleCallReply (line 3252) | RedisModuleCallReply *RM_Call(RedisModuleCtx *ctx, const char *cmdname, ... function moduleTypeEncodeId (line 3402) | uint64_t moduleTypeEncodeId(const char *name, int encver) { function moduleType (line 3423) | moduleType *moduleTypeLookupModuleByName(const char *name) { function moduleType (line 3450) | moduleType *moduleTypeLookupModuleByID(uint64_t id) { function moduleTypeNameByID (line 3496) | void moduleTypeNameByID(char *name, uint64_t moduleid) { function moduleType (line 3578) | moduleType *RM_CreateDataType(RedisModuleCtx *ctx, const char *name, int... function RM_ModuleTypeSetValue (line 3624) | int RM_ModuleTypeSetValue(RedisModuleKey *key, moduleType *mt, void *val... function moduleType (line 3639) | moduleType *RM_ModuleTypeGetType(RedisModuleKey *key) { function moduleRDBLoadError (line 3668) | void moduleRDBLoadError(RedisModuleIO *io) { function moduleAllDatatypesHandleErrors (line 3687) | int moduleAllDatatypesHandleErrors() { function RM_IsIOError (line 3707) | int RM_IsIOError(RedisModuleIO *io) { function RM_SaveUnsigned (line 3714) | void RM_SaveUnsigned(RedisModuleIO *io, uint64_t value) { function RM_LoadUnsigned (line 3733) | uint64_t RM_LoadUnsigned(RedisModuleIO *io) { function RM_SaveSigned (line 3750) | void RM_SaveSigned(RedisModuleIO *io, int64_t value) { function RM_LoadSigned (line 3757) | int64_t RM_LoadSigned(RedisModuleIO *io) { function RM_SaveString (line 3769) | void RM_SaveString(RedisModuleIO *io, RedisModuleString *s) { function RM_SaveStringBuffer (line 3787) | void RM_SaveStringBuffer(RedisModuleIO *io, const char *str, size_t len) { function RedisModuleString (line 3829) | RedisModuleString *RM_LoadString(RedisModuleIO *io) { function RM_SaveDouble (line 3847) | void RM_SaveDouble(RedisModuleIO *io, double value) { function RM_LoadDouble (line 3865) | double RM_LoadDouble(RedisModuleIO *io) { function RM_SaveFloat (line 3884) | void RM_SaveFloat(RedisModuleIO *io, float value) { function RM_LoadFloat (line 3902) | float RM_LoadFloat(RedisModuleIO *io) { function RM_SaveLongDouble (line 3921) | void RM_SaveLongDouble(RedisModuleIO *io, long double value) { function RM_LoadLongDouble (line 3932) | long double RM_LoadLongDouble(RedisModuleIO *io) { function rdbSaveModulesAux (line 3945) | ssize_t rdbSaveModulesAux(rio *rdb, int when) { function RM_DigestAddStringBuffer (line 4015) | void RM_DigestAddStringBuffer(RedisModuleDigest *md, unsigned char *ele,... function RM_DigestAddLongLong (line 4021) | void RM_DigestAddLongLong(RedisModuleDigest *md, long long ll) { function RM_DigestEndSequence (line 4028) | void RM_DigestEndSequence(RedisModuleDigest *md) { function RedisModuleString (line 4076) | RedisModuleString *RM_SaveDataTypeToString(RedisModuleCtx *ctx, void *da... function RM_EmitAOF (line 4105) | void RM_EmitAOF(RedisModuleIO *io, const char *cmdname, const char *fmt,... function RedisModuleCtx (line 4155) | RedisModuleCtx *RM_GetContextFromIO(RedisModuleIO *io) { function RedisModuleString (line 4169) | const RedisModuleString *RM_GetKeyNameFromIO(RedisModuleIO *io) { function RedisModuleString (line 4174) | const RedisModuleString *RM_GetKeyNameFromModuleKey(RedisModuleKey *key) { function RM_LogRaw (line 4188) | void RM_LogRaw(RedisModule *module, const char *levelstr, const char *fm... function RM_Log (line 4224) | void RM_Log(RedisModuleCtx *ctx, const char *levelstr, const char *fmt, ... function RM_LogIOError (line 4236) | void RM_LogIOError(RedisModuleIO *io, const char *levelstr, const char *... function RM__Assert (line 4248) | void RM__Assert(const char *estr, const char *file, int line) { function RM_LatencyAddSample (line 4255) | void RM_LatencyAddSample(const char *event, mstime_t latency) { function moduleBlockedClientPipeReadable (line 4268) | void moduleBlockedClientPipeReadable(aeEventLoop *el, int fd, void *priv... function unblockClientFromModule (line 4287) | void unblockClientFromModule(client *c) { function RedisModuleBlockedClient (line 4348) | RedisModuleBlockedClient *moduleBlockClient(RedisModuleCtx *ctx, RedisMo... function moduleTryServeClientBlockedOnKey (line 4398) | int moduleTryServeClientBlockedOnKey(client *c, robj *key) { function RedisModuleBlockedClient (line 4440) | RedisModuleBlockedClient *RM_BlockClient(RedisModuleCtx *ctx, RedisModul... function RedisModuleBlockedClient (line 4502) | RedisModuleBlockedClient *RM_BlockClientOnKeys(RedisModuleCtx *ctx, Redi... function RM_SignalKeyAsReady (line 4510) | void RM_SignalKeyAsReady(RedisModuleCtx *ctx, RedisModuleString *key) { function moduleUnblockClientByHandle (line 4515) | int moduleUnblockClientByHandle(RedisModuleBlockedClient *bc, void *priv... function moduleUnblockClient (line 4529) | void moduleUnblockClient(client *c) { function moduleClientIsBlockedOnKeys (line 4536) | int moduleClientIsBlockedOnKeys(client *c) { function RM_UnblockClient (line 4561) | int RM_UnblockClient(RedisModuleBlockedClient *bc, void *privdata) { function RM_AbortBlock (line 4575) | int RM_AbortBlock(RedisModuleBlockedClient *bc) { function RM_SetDisconnectCallback (line 4597) | void RM_SetDisconnectCallback(RedisModuleBlockedClient *bc, RedisModuleD... function moduleHandleBlockedClients (line 4609) | void moduleHandleBlockedClients(void) { function moduleBlockedClientTimedOut (line 4697) | void moduleBlockedClientTimedOut(client *c) { function RM_IsBlockedReplyRequest (line 4714) | int RM_IsBlockedReplyRequest(RedisModuleCtx *ctx) { function RM_IsBlockedTimeoutRequest (line 4720) | int RM_IsBlockedTimeoutRequest(RedisModuleCtx *ctx) { function RedisModuleString (line 4731) | RedisModuleString *RM_GetBlockedClientReadyKey(RedisModuleCtx *ctx) { function RedisModuleBlockedClient (line 4739) | RedisModuleBlockedClient *RM_GetBlockedClientHandle(RedisModuleCtx *ctx) { function RM_BlockedClientDisconnected (line 4746) | int RM_BlockedClientDisconnected(RedisModuleCtx *ctx) { function RedisModuleCtx (line 4773) | RedisModuleCtx *RM_GetThreadSafeContext(RedisModuleBlockedClient *bc) { function RM_FreeThreadSafeContext (line 4795) | void RM_FreeThreadSafeContext(RedisModuleCtx *ctx) { function RM_ThreadSafeContextLock (line 4803) | void RM_ThreadSafeContextLock(RedisModuleCtx *ctx) { function RM_ThreadSafeContextUnlock (line 4809) | void RM_ThreadSafeContextUnlock(RedisModuleCtx *ctx) { function moduleAcquireGIL (line 4814) | void moduleAcquireGIL(void) { function moduleReleaseGIL (line 4818) | void moduleReleaseGIL(void) { function RM_SubscribeToKeyspaceEvents (line 4877) | int RM_SubscribeToKeyspaceEvents(RedisModuleCtx *ctx, int types, RedisMo... function RM_GetNotifyKeyspaceEvents (line 4890) | int RM_GetNotifyKeyspaceEvents() { function RM_NotifyKeyspaceEvent (line 4895) | int RM_NotifyKeyspaceEvent(RedisModuleCtx *ctx, int type, const char *ev... function moduleNotifyKeyspaceEvent (line 4905) | void moduleNotifyKeyspaceEvent(int type, const char *event, robj *key, i... function moduleUnsubscribeNotifications (line 4938) | void moduleUnsubscribeNotifications(RedisModule *module) { type moduleClusterReceiver (line 4961) | typedef struct moduleClusterReceiver { type mdouleClusterNodeInfo (line 4968) | typedef struct moduleClusterNodeInfo { function moduleCallClusterReceivers (line 4980) | void moduleCallClusterReceivers(const char *sender_id, uint64_t module_i... function RM_RegisterClusterMessageReceiver (line 5001) | void RM_RegisterClusterMessageReceiver(RedisModuleCtx *ctx, uint8_t type... function RM_SendClusterMessage (line 5045) | int RM_SendClusterMessage(RedisModuleCtx *ctx, char *target_id, uint8_t ... function RM_FreeClusterNodesList (line 5100) | void RM_FreeClusterNodesList(char **ids) { function RM_GetClusterSize (line 5117) | size_t RM_GetClusterSize(void) { function RM_GetClusterNodeInfo (line 5144) | int RM_GetClusterNodeInfo(RedisModuleCtx *ctx, const char *id, char *ip,... function RM_SetClusterFlags (line 5199) | void RM_SetClusterFlags(RedisModuleCtx *ctx, uint64_t flags) { type RedisModuleTimer (line 5232) | typedef struct RedisModuleTimer { function moduleTimerHandler (line 5241) | int moduleTimerHandler(struct aeEventLoop *eventLoop, long long id, void... function RedisModuleTimerID (line 5283) | RedisModuleTimerID RM_CreateTimer(RedisModuleCtx *ctx, mstime_t period, ... function RM_StopTimer (line 5331) | int RM_StopTimer(RedisModuleCtx *ctx, RedisModuleTimerID id, void **data) { function RM_GetTimerInfo (line 5347) | int RM_GetTimerInfo(RedisModuleCtx *ctx, RedisModuleTimerID id, uint64_t... function moduleNotifyUserChanged (line 5372) | void moduleNotifyUserChanged(client *c) { function revokeClientAuthentication (line 5385) | void revokeClientAuthentication(client *c) { function moduleFreeAuthenticatedClients (line 5401) | static void moduleFreeAuthenticatedClients(RedisModule *module) { function RedisModuleUser (line 5436) | RedisModuleUser *RM_CreateModuleUser(const char *name) { function RM_FreeModuleUser (line 5448) | int RM_FreeModuleUser(RedisModuleUser *user) { function RM_SetModuleUserACL (line 5461) | int RM_SetModuleUserACL(RedisModuleUser *user, const char* acl) { function authenticateClientWithUser (line 5485) | static int authenticateClientWithUser(RedisModuleCtx *ctx, user *user, R... function RM_AuthenticateClientWithUser (line 5514) | int RM_AuthenticateClientWithUser(RedisModuleCtx *ctx, RedisModuleUser *... function RM_AuthenticateClientWithACLUser (line 5523) | int RM_AuthenticateClientWithACLUser(RedisModuleCtx *ctx, const char *na... function RM_DeauthenticateAndCloseClient (line 5544) | int RM_DeauthenticateAndCloseClient(RedisModuleCtx *ctx, uint64_t client... function RedisModuleDict (line 5575) | RedisModuleDict *RM_CreateDict(RedisModuleCtx *ctx) { function RM_FreeDict (line 5585) | void RM_FreeDict(RedisModuleCtx *ctx, RedisModuleDict *d) { function RM_DictSize (line 5592) | uint64_t RM_DictSize(RedisModuleDict *d) { function RM_DictSetC (line 5600) | int RM_DictSetC(RedisModuleDict *d, void *key, size_t keylen, void *ptr) { function RM_DictReplaceC (line 5607) | int RM_DictReplaceC(RedisModuleDict *d, void *key, size_t keylen, void *... function RM_DictSet (line 5613) | int RM_DictSet(RedisModuleDict *d, RedisModuleString *key, void *ptr) { function RM_DictReplace (line 5618) | int RM_DictReplace(RedisModuleDict *d, RedisModuleString *key, void *ptr) { function RM_DictDelC (line 5645) | int RM_DictDelC(RedisModuleDict *d, void *key, size_t keylen, void *oldv... function RM_DictDel (line 5651) | int RM_DictDel(RedisModuleDict *d, RedisModuleString *key, void *oldval) { function RedisModuleDictIter (line 5675) | RedisModuleDictIter *RM_DictIteratorStartC(RedisModuleDict *d, const cha... function RedisModuleDictIter (line 5685) | RedisModuleDictIter *RM_DictIteratorStart(RedisModuleDict *d, const char... function RM_DictIteratorStop (line 5691) | void RM_DictIteratorStop(RedisModuleDictIter *di) { function RM_DictIteratorReseekC (line 5703) | int RM_DictIteratorReseekC(RedisModuleDictIter *di, const char *op, void... function RM_DictIteratorReseek (line 5709) | int RM_DictIteratorReseek(RedisModuleDictIter *di, const char *op, Redis... function RedisModuleString (line 5762) | RedisModuleString *RM_DictNext(RedisModuleCtx *ctx, RedisModuleDictIter ... function RedisModuleString (line 5772) | RedisModuleString *RM_DictPrev(RedisModuleCtx *ctx, RedisModuleDictIter ... function RM_DictCompareC (line 5791) | int RM_DictCompareC(RedisModuleDictIter *di, const char *op, void *key, ... function RM_DictCompare (line 5799) | int RM_DictCompare(RedisModuleDictIter *di, const char *op, RedisModuleS... function RM_InfoAddSection (line 5818) | int RM_InfoAddSection(RedisModuleInfoCtx *ctx, char *name) { function RM_InfoBeginDictField (line 5849) | int RM_InfoBeginDictField(RedisModuleInfoCtx *ctx, char *name) { function RM_InfoEndDictField (line 5864) | int RM_InfoEndDictField(RedisModuleInfoCtx *ctx) { function RM_InfoAddFieldString (line 5878) | int RM_InfoAddFieldString(RedisModuleInfoCtx *ctx, char *field, RedisMod... function RM_InfoAddFieldCString (line 5896) | int RM_InfoAddFieldCString(RedisModuleInfoCtx *ctx, char *field, char *v... function RM_InfoAddFieldDouble (line 5914) | int RM_InfoAddFieldDouble(RedisModuleInfoCtx *ctx, char *field, double v... function RM_InfoAddFieldLongLong (line 5932) | int RM_InfoAddFieldLongLong(RedisModuleInfoCtx *ctx, char *field, long l... function RM_InfoAddFieldULongLong (line 5950) | int RM_InfoAddFieldULongLong(RedisModuleInfoCtx *ctx, char *field, unsig... function RM_RegisterInfoFunc (line 5968) | int RM_RegisterInfoFunc(RedisModuleCtx *ctx, RedisModuleInfoFunc cb) { function sds (line 5973) | sds modulesCollectInfo(sds info, const char *section, int for_crash_repo... function RedisModuleServerInfoData (line 5999) | RedisModuleServerInfoData *RM_GetServerInfo(RedisModuleCtx *ctx, const c... function RM_FreeServerInfo (line 6025) | void RM_FreeServerInfo(RedisModuleCtx *ctx, RedisModuleServerInfoData *d... function RedisModuleString (line 6044) | RedisModuleString *RM_ServerInfoGetField(RedisModuleCtx *ctx, RedisModul... function RM_ServerInfoGetFieldSigned (line 6062) | long long RM_ServerInfoGetFieldSigned(RedisModuleServerInfoData *data, c... function RM_ServerInfoGetFieldUnsigned (line 6080) | unsigned long long RM_ServerInfoGetFieldUnsigned(RedisModuleServerInfoDa... function RM_ServerInfoGetFieldDouble (line 6098) | double RM_ServerInfoGetFieldDouble(RedisModuleServerInfoData *data, cons... function RM_GetRandomBytes (line 6121) | void RM_GetRandomBytes(unsigned char *dst, size_t len) { function RM_GetRandomHexChars (line 6128) | void RM_GetRandomHexChars(char *dst, size_t len) { function RM_ExportSharedAPI (line 6148) | int RM_ExportSharedAPI(RedisModuleCtx *ctx, const char *apiname, void *f... function moduleUnregisterSharedAPI (line 6209) | int moduleUnregisterSharedAPI(RedisModule *module) { function moduleUnregisterUsedAPI (line 6230) | int moduleUnregisterUsedAPI(RedisModule *module) { function moduleUnregisterFilters (line 6251) | int moduleUnregisterFilters(RedisModule *module) { function RedisModuleCommandFilter (line 6325) | RedisModuleCommandFilter *RM_RegisterCommandFilter(RedisModuleCtx *ctx, ... function RM_UnregisterCommandFilter (line 6338) | int RM_UnregisterCommandFilter(RedisModuleCtx *ctx, RedisModuleCommandFi... function moduleCallCommandFilters (line 6357) | void moduleCallCommandFilters(client *c) { function RM_CommandFilterArgsCount (line 6388) | int RM_CommandFilterArgsCount(RedisModuleCommandFilterCtx *fctx) function RedisModuleString (line 6396) | const RedisModuleString *RM_CommandFilterArgGet(RedisModuleCommandFilter... function RM_CommandFilterArgInsert (line 6408) | int RM_CommandFilterArgInsert(RedisModuleCommandFilterCtx *fctx, int pos... function RM_CommandFilterArgReplace (line 6430) | int RM_CommandFilterArgReplace(RedisModuleCommandFilterCtx *fctx, int po... function RM_CommandFilterArgDelete (line 6443) | int RM_CommandFilterArgDelete(RedisModuleCommandFilterCtx *fctx, int pos) function RM_MallocSize (line 6463) | size_t RM_MallocSize(void* ptr){ function RM_GetUsedMemoryRatio (line 6475) | float RM_GetUsedMemoryRatio(){ type ScanCBData (line 6486) | typedef struct { type RedisModuleScanCursor (line 6492) | typedef struct RedisModuleScanCursor{ function moduleScanCallback (line 6497) | static void moduleScanCallback(void *privdata, const dictEntry *de) { function RedisModuleScanCursor (line 6514) | RedisModuleScanCursor *RM_ScanCursorCreate() { function RM_ScanCursorRestart (line 6522) | void RM_ScanCursorRestart(RedisModuleScanCursor *cursor) { function RM_ScanCursorDestroy (line 6528) | void RM_ScanCursorDestroy(RedisModuleScanCursor *cursor) { function RM_Scan (line 6587) | int RM_Scan(RedisModuleCtx *ctx, RedisModuleScanCursor *cursor, RedisMod... type ScanKeyCBData (line 6604) | typedef struct { function moduleScanKeyCallback (line 6610) | static void moduleScanKeyCallback(void *privdata, const dictEntry *de) { function RM_ScanKey (line 6675) | int RM_ScanKey(RedisModuleKey *key, RedisModuleScanCursor *cursor, Redis... function RM_Fork (line 6762) | int RM_Fork(RedisModuleForkDoneHandler cb, void *user_data) { function RM_ExitFromChild (line 6788) | int RM_ExitFromChild(int retcode) { function TerminateModuleForkChild (line 6797) | int TerminateModuleForkChild(int child_pid, int wait) { function RM_KillForkChild (line 6820) | int RM_KillForkChild(int child_pid) { function ModuleForkDoneHandler (line 6828) | void ModuleForkDoneHandler(int exitcode, int bysignal) { function RM_SubscribeToServerEvent (line 7047) | int RM_SubscribeToServerEvent(RedisModuleCtx *ctx, RedisModuleEvent even... function moduleFireServerEvent (line 7090) | void moduleFireServerEvent(uint64_t eid, int subid, void *data) { function moduleUnsubscribeAllServerEvents (line 7164) | void moduleUnsubscribeAllServerEvents(RedisModule *module) { function processModuleLoadingProgressEvent (line 7179) | void processModuleLoadingProgressEvent(int is_aof) { function dictCStringKeyHash (line 7207) | uint64_t dictCStringKeyHash(const void *key) { function dictCStringKeyCompare (line 7211) | int dictCStringKeyCompare(void *privdata, const void *key1, const void *... function moduleRegisterApi (line 7225) | int moduleRegisterApi(const char *funcname, void *funcptr) { function moduleInitModulesSystem (line 7235) | void moduleInitModulesSystem(void) { function moduleLoadFromQueue (line 7281) | void moduleLoadFromQueue(void) { function moduleFreeModuleStructure (line 7299) | void moduleFreeModuleStructure(struct RedisModule *module) { function moduleUnregisterCommands (line 7308) | void moduleUnregisterCommands(struct RedisModule *module) { function moduleLoad (line 7332) | int moduleLoad(const char *path, void **module_argv, int module_argc) { function moduleUnload (line 7395) | int moduleUnload(sds name) { function addReplyLoadedModules (line 7463) | void addReplyLoadedModules(client *c) { function sds (line 7482) | sds genModulesInfoStringRenderModulesList(list *l) { function sds (line 7497) | sds genModulesInfoStringRenderModuleOptions(struct RedisModule *module) { function sds (line 7512) | sds genModulesInfoString(sds info) { function moduleCommand (line 7539) | void moduleCommand(client *c) { function moduleCount (line 7600) | size_t moduleCount(void) { function RM_SetLRU (line 7607) | int RM_SetLRU(RedisModuleKey *key, mstime_t lru_idle) { function RM_GetLRU (line 7619) | int RM_GetLRU(RedisModuleKey *key, mstime_t *lru_idle) { function RM_SetLFU (line 7634) | int RM_SetLFU(RedisModuleKey *key, long long lfu_freq) { function RM_GetLFU (line 7645) | int RM_GetLFU(RedisModuleKey *key, long long *lfu_freq) { function RM_ModuleTypeReplaceValue (line 7671) | int RM_ModuleTypeReplaceValue(RedisModuleKey *key, moduleType *mt, void ... function moduleRegisterCoreAPI (line 7690) | void moduleRegisterCoreAPI(void) { FILE: Chapter07/redis-6.0.3/src/modules/gendoc.rb function markdown (line 5) | def markdown(s) function docufy (line 25) | def docufy(src,i) FILE: Chapter07/redis-6.0.3/src/modules/helloacl.c function RevokeCommand_RedisCommand (line 45) | int RevokeCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **... function ResetCommand_RedisCommand (line 59) | int ResetCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **a... function HelloACL_UserChanged (line 74) | void HelloACL_UserChanged(uint64_t client_id, void *privdata) { function AuthGlobalCommand_RedisCommand (line 82) | int AuthGlobalCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleStrin... function HelloACL_Reply (line 98) | int HelloACL_Reply(RedisModuleCtx *ctx, RedisModuleString **argv, int ar... function HelloACL_Timeout (line 114) | int HelloACL_Timeout(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function HelloACL_FreeData (line 121) | void HelloACL_FreeData(RedisModuleCtx *ctx, void *privdata) { function AuthAsyncCommand_RedisCommand (line 139) | int AuthAsyncCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString... function RedisModule_OnLoad (line 160) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/src/modules/helloblock.c function HelloBlock_Reply (line 42) | int HelloBlock_Reply(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function HelloBlock_Timeout (line 50) | int HelloBlock_Timeout(RedisModuleCtx *ctx, RedisModuleString **argv, in... function HelloBlock_FreeData (line 57) | void HelloBlock_FreeData(RedisModuleCtx *ctx, void *privdata) { function HelloBlock_Disconnected (line 85) | void HelloBlock_Disconnected(RedisModuleCtx *ctx, RedisModuleBlockedClie... function HelloBlock_RedisCommand (line 97) | int HelloBlock_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **arg... function HelloKeys_RedisCommand (line 181) | int HelloKeys_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv... function RedisModule_OnLoad (line 204) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/src/modules/hellocluster.c function PingallCommand_RedisCommand (line 44) | int PingallCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function ListCommand_RedisCommand (line 53) | int ListCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **ar... function PingReceiver (line 76) | void PingReceiver(RedisModuleCtx *ctx, const char *sender_id, uint8_t ty... function PongReceiver (line 84) | void PongReceiver(RedisModuleCtx *ctx, const char *sender_id, uint8_t ty... function RedisModule_OnLoad (line 91) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/src/modules/hellodict.c function cmd_SET (line 48) | int cmd_SET(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function cmd_GET (line 61) | int cmd_GET(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function cmd_KEYRANGE (line 75) | int cmd_KEYRANGE(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function RedisModule_OnLoad (line 109) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/src/modules/hellohook.c function clientChangeCallback (line 41) | void clientChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint6... function flushdbCallback (line 53) | void flushdbCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t s... function RedisModule_OnLoad (line 81) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/src/modules/hellotimer.c function timerHandler (line 41) | void timerHandler(RedisModuleCtx *ctx, void *data) { function TimerCommand_RedisCommand (line 48) | int TimerCommand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **a... function RedisModule_OnLoad (line 64) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/src/modules/hellotype.c type HelloTypeNode (line 53) | struct HelloTypeNode { type HelloTypeObject (line 58) | struct HelloTypeObject { type HelloTypeObject (line 63) | struct HelloTypeObject type HelloTypeObject (line 64) | struct HelloTypeObject function HelloTypeInsert (line 71) | void HelloTypeInsert(struct HelloTypeObject *o, int64_t ele) { function HelloTypeReleaseObject (line 89) | void HelloTypeReleaseObject(struct HelloTypeObject *o) { function HelloTypeInsert_RedisCommand (line 103) | int HelloTypeInsert_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloTypeRange_RedisCommand (line 140) | int HelloTypeRange_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function HelloTypeLen_RedisCommand (line 176) | int HelloTypeLen_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **a... function HelloBlock_Reply (line 199) | int HelloBlock_Reply(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function HelloBlock_Timeout (line 220) | int HelloBlock_Timeout(RedisModuleCtx *ctx, RedisModuleString **argv, in... function HelloBlock_FreeData (line 227) | void HelloBlock_FreeData(RedisModuleCtx *ctx, void *privdata) { function HelloTypeBRange_RedisCommand (line 235) | int HelloTypeBRange_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... type HelloTypeObject (line 274) | struct HelloTypeObject function HelloTypeRdbSave (line 282) | void HelloTypeRdbSave(RedisModuleIO *rdb, void *value) { function HelloTypeAofRewrite (line 292) | void HelloTypeAofRewrite(RedisModuleIO *aof, RedisModuleString *key, voi... function HelloTypeMemUsage (line 303) | size_t HelloTypeMemUsage(const void *value) { function HelloTypeFree (line 309) | void HelloTypeFree(void *value) { function HelloTypeDigest (line 313) | void HelloTypeDigest(RedisModuleDigest *md, void *value) { function RedisModule_OnLoad (line 325) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/src/modules/helloworld.c function HelloSimple_RedisCommand (line 48) | int HelloSimple_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **ar... function HelloPushNative_RedisCommand (line 61) | int HelloPushNative_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloPushCall_RedisCommand (line 80) | int HelloPushCall_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **... function HelloPushCall2_RedisCommand (line 96) | int HelloPushCall2_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function HelloListSumLen_RedisCommand (line 111) | int HelloListSumLen_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloListSplice_RedisCommand (line 134) | int HelloListSplice_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloListSpliceAuto_RedisCommand (line 179) | int HelloListSpliceAuto_RedisCommand(RedisModuleCtx *ctx, RedisModuleStr... function HelloRandArray_RedisCommand (line 221) | int HelloRandArray_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function HelloRepl1_RedisCommand (line 240) | int HelloRepl1_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **arg... function HelloRepl2_RedisCommand (line 278) | int HelloRepl2_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **arg... function HelloToggleCase_RedisCommand (line 314) | int HelloToggleCase_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloMoreExpire_RedisCommand (line 350) | int HelloMoreExpire_RedisCommand(RedisModuleCtx *ctx, RedisModuleString ... function HelloZsumRange_RedisCommand (line 375) | int HelloZsumRange_RedisCommand(RedisModuleCtx *ctx, RedisModuleString *... function HelloLexRange_RedisCommand (line 430) | int HelloLexRange_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **... function HelloHCopy_RedisCommand (line 468) | int HelloHCopy_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **arg... function HelloLeftPad_RedisCommand (line 509) | int HelloLeftPad_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **a... function RedisModule_OnLoad (line 545) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/src/modules/testmodule.c function TestMatchReply (line 40) | int TestMatchReply(RedisModuleCallReply *reply, char *str) { function TestCall (line 51) | int TestCall(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function TestStringAppend (line 81) | int TestStringAppend(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function TestStringAppendAM (line 93) | int TestStringAppendAM(RedisModuleCtx *ctx, RedisModuleString **argv, in... function TestStringPrintf (line 107) | int TestStringPrintf(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function failTest (line 124) | int failTest(RedisModuleCtx *ctx, const char *msg) { function TestUnlink (line 129) | int TestUnlink(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function NotifyCallback (line 158) | int NotifyCallback(RedisModuleCtx *ctx, int type, const char *event, function TestNotifications (line 170) | int TestNotifications(RedisModuleCtx *ctx, RedisModuleString **argv, int... function TestCtxFlags (line 252) | int TestCtxFlags(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function TestAssertStringReply (line 324) | int TestAssertStringReply(RedisModuleCtx *ctx, RedisModuleCallReply *rep... function TestAssertIntegerReply (line 347) | int TestAssertIntegerReply(RedisModuleCtx *ctx, RedisModuleCallReply *re... function TestIt (line 370) | int TestIt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function RedisModule_OnLoad (line 414) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/src/multi.c function initClientMultiState (line 35) | void initClientMultiState(client *c) { function freeClientMultiState (line 42) | void freeClientMultiState(client *c) { function queueMultiCommand (line 57) | void queueMultiCommand(client *c) { function discardTransaction (line 74) | void discardTransaction(client *c) { function flagTransaction (line 83) | void flagTransaction(client *c) { function multiCommand (line 88) | void multiCommand(client *c) { function discardCommand (line 97) | void discardCommand(client *c) { function execCommandPropagateMulti (line 108) | void execCommandPropagateMulti(client *c) { function execCommandPropagateExec (line 113) | void execCommandPropagateExec(client *c) { function execCommand (line 118) | void execCommand(client *c) { type watchedKey (line 247) | typedef struct watchedKey { function watchForKey (line 253) | void watchForKey(client *c, robj *key) { function unwatchAllKeys (line 284) | void unwatchAllKeys(client *c) { function touchWatchedKey (line 312) | void touchWatchedKey(redisDb *db, robj *key) { function touchWatchedKeysOnFlush (line 335) | void touchWatchedKeysOnFlush(int dbid) { function watchCommand (line 358) | void watchCommand(client *c) { function unwatchCommand (line 370) | void unwatchCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/networking.c function sdsZmallocSize (line 44) | size_t sdsZmallocSize(sds s) { function getStringObjectSdsUsedMemory (line 51) | size_t getStringObjectSdsUsedMemory(robj *o) { function freeClientReplyValue (line 68) | void freeClientReplyValue(void *o) { function listMatchObjects (line 72) | int listMatchObjects(void *a, void *b) { function linkClient (line 78) | void linkClient(client *c) { function client (line 88) | client *createClient(connection *conn) { function clientInstallWriteHandler (line 179) | void clientInstallWriteHandler(client *c) { function prepareClientToWrite (line 220) | int prepareClientToWrite(client *c) { function _addReplyToBuffer (line 247) | int _addReplyToBuffer(client *c, const char *s, size_t len) { function _addReplyProtoToList (line 264) | void _addReplyProtoToList(client *c, const char *s, size_t len) { function addReply (line 306) | void addReply(client *c, robj *obj) { function addReplySds (line 327) | void addReplySds(client *c, sds s) { function addReplyProto (line 346) | void addReplyProto(client *c, const char *s, size_t len) { function addReplyErrorLength (line 360) | void addReplyErrorLength(client *c, const char *s, size_t len) { function addReplyError (line 429) | void addReplyError(client *c, const char *err) { function addReplyErrorFormat (line 433) | void addReplyErrorFormat(client *c, const char *fmt, ...) { function addReplyStatusLength (line 449) | void addReplyStatusLength(client *c, const char *s, size_t len) { function addReplyStatus (line 455) | void addReplyStatus(client *c, const char *status) { function addReplyStatusFormat (line 459) | void addReplyStatusFormat(client *c, const char *fmt, ...) { function trimReplyUnusedTailSpace (line 471) | void trimReplyUnusedTailSpace(client *c) { function setDeferredAggregateLen (line 509) | void setDeferredAggregateLen(client *c, void *node, long length, char pr... function setDeferredArrayLen (line 550) | void setDeferredArrayLen(client *c, void *node, long length) { function setDeferredMapLen (line 554) | void setDeferredMapLen(client *c, void *node, long length) { function setDeferredSetLen (line 560) | void setDeferredSetLen(client *c, void *node, long length) { function setDeferredAttributeLen (line 565) | void setDeferredAttributeLen(client *c, void *node, long length) { function setDeferredPushLen (line 571) | void setDeferredPushLen(client *c, void *node, long length) { function addReplyDouble (line 577) | void addReplyDouble(client *c, double d) { function addReplyHumanLongDouble (line 605) | void addReplyHumanLongDouble(client *c, long double d) { function addReplyLongLongWithPrefix (line 621) | void addReplyLongLongWithPrefix(client *c, long long ll, char prefix) { function addReplyLongLong (line 643) | void addReplyLongLong(client *c, long long ll) { function addReplyAggregateLen (line 652) | void addReplyAggregateLen(client *c, long length, int prefix) { function addReplyArrayLen (line 659) | void addReplyArrayLen(client *c, long length) { function addReplyMapLen (line 663) | void addReplyMapLen(client *c, long length) { function addReplySetLen (line 669) | void addReplySetLen(client *c, long length) { function addReplyAttributeLen (line 674) | void addReplyAttributeLen(client *c, long length) { function addReplyPushLen (line 680) | void addReplyPushLen(client *c, long length) { function addReplyNull (line 685) | void addReplyNull(client *c) { function addReplyBool (line 693) | void addReplyBool(client *c, int b) { function addReplyNullArray (line 705) | void addReplyNullArray(client *c) { function addReplyBulkLen (line 714) | void addReplyBulkLen(client *c, robj *obj) { function addReplyBulk (line 724) | void addReplyBulk(client *c, robj *obj) { function addReplyBulkCBuffer (line 731) | void addReplyBulkCBuffer(client *c, const void *p, size_t len) { function addReplyBulkSds (line 738) | void addReplyBulkSds(client *c, sds s) { function addReplyBulkCString (line 745) | void addReplyBulkCString(client *c, const char *s) { function addReplyBulkLongLong (line 754) | void addReplyBulkLongLong(client *c, long long ll) { function addReplyVerbatim (line 771) | void addReplyVerbatim(client *c, const char *s, size_t len, const char *... function addReplyHelp (line 795) | void addReplyHelp(client *c, const char **help) { function addReplySubcommandSyntaxError (line 814) | void addReplySubcommandSyntaxError(client *c) { function AddReplyFromClient (line 825) | void AddReplyFromClient(client *dst, client *src) { function copyClientOutputBuffer (line 839) | void copyClientOutputBuffer(client *dst, client *src) { function clientHasPendingReplies (line 850) | int clientHasPendingReplies(client *c) { function clientAcceptHandler (line 854) | void clientAcceptHandler(connection *conn) { function acceptCommonHandler (line 915) | static void acceptCommonHandler(connection *conn, int flags, char *ip) { function acceptTcpHandler (line 971) | void acceptTcpHandler(aeEventLoop *el, int fd, void *privdata, int mask) { function acceptTLSHandler (line 991) | void acceptTLSHandler(aeEventLoop *el, int fd, void *privdata, int mask) { function acceptUnixHandler (line 1011) | void acceptUnixHandler(aeEventLoop *el, int fd, void *privdata, int mask) { function freeClientArgv (line 1030) | static void freeClientArgv(client *c) { function disconnectSlaves (line 1041) | void disconnectSlaves(void) { function unlinkClient (line 1051) | void unlinkClient(client *c) { function freeClient (line 1117) | void freeClient(client *c) { function freeClientAsync (line 1241) | void freeClientAsync(client *c) { function freeClientsInAsyncFreeQueue (line 1262) | int freeClientsInAsyncFreeQueue(void) { function client (line 1278) | client *lookupClientByID(uint64_t id) { function writeToClient (line 1292) | int writeToClient(client *c, int handler_installed) { function sendReplyToClient (line 1389) | void sendReplyToClient(connection *conn) { function handleClientsWithPendingWrites (line 1398) | int handleClientsWithPendingWrites(void) { function resetClient (line 1439) | void resetClient(client *c) { function protectClient (line 1481) | void protectClient(client *c) { function unprotectClient (line 1488) | void unprotectClient(client *c) { function processInlineBuffer (line 1503) | int processInlineBuffer(client *c) { function setProtocolError (line 1564) | static void setProtocolError(const char *errstr, client *c) { function processMultibulkBuffer (line 1602) | int processMultibulkBuffer(client *c) { function commandProcessed (line 1742) | void commandProcessed(client *c) { function processCommandAndResetClient (line 1789) | int processCommandAndResetClient(client *c) { function processInputBuffer (line 1807) | void processInputBuffer(client *c) { function readQueryFromClient (line 1890) | void readQueryFromClient(connection *conn) { function getClientsMaxBuffers (line 1960) | void getClientsMaxBuffers(unsigned long *longest_output_list, function genClientPeerId (line 1989) | void genClientPeerId(client *client, char *peerid, function sds (line 2016) | sds catClientInfoString(sds s, client *client) { function sds (line 2070) | sds getAllClientsInfoString(int type) { function clientSetNameOrReply (line 2095) | int clientSetNameOrReply(client *c, robj *name) { function clientCommand (line 2124) | void clientCommand(client *c) { function helloCommand (line 2489) | void helloCommand(client *c) { function securityWarningCommand (line 2565) | void securityWarningCommand(client *c) { function rewriteClientCommandVector (line 2579) | void rewriteClientCommandVector(client *c, int argc, ...) { function replaceClientCommandVector (line 2607) | void replaceClientCommandVector(client *c, int argc, robj **argv) { function rewriteClientCommandArgument (line 2627) | void rewriteClientCommandArgument(client *c, int i, robj *newval) { function getClientOutputBufferMemoryUsage (line 2653) | unsigned long getClientOutputBufferMemoryUsage(client *c) { function getClientType (line 2667) | int getClientType(client *c) { function getClientTypeByName (line 2677) | int getClientTypeByName(char *name) { function checkClientOutputBufferLimits (line 2702) | int checkClientOutputBufferLimits(client *c) { function asyncCloseClientOnOutputBufferLimitReached (line 2747) | void asyncCloseClientOnOutputBufferLimitReached(client *c) { function flushSlavesOutputBuffers (line 2764) | void flushSlavesOutputBuffers(void) { function pauseClients (line 2815) | void pauseClients(mstime_t end) { function clientsArePaused (line 2823) | int clientsArePaused(void) { function processEventsWhileBlocked (line 2860) | void processEventsWhileBlocked(void) { function initThreadedIO (line 2953) | void initThreadedIO(void) { function startThreadedIO (line 2985) | void startThreadedIO(void) { function stopThreadedIO (line 2994) | void stopThreadedIO(void) { function stopThreadedIOIfNeeded (line 3017) | int stopThreadedIOIfNeeded(void) { function handleClientsWithPendingWritesUsingThreads (line 3031) | int handleClientsWithPendingWritesUsingThreads(void) { function postponeClientRead (line 3106) | int postponeClientRead(client *c) { function handleClientsWithPendingReadsUsingThreads (line 3126) | int handleClientsWithPendingReadsUsingThreads(void) { FILE: Chapter07/redis-6.0.3/src/notify.c function keyspaceEventsStringToFlags (line 40) | int keyspaceEventsStringToFlags(char *classes) { function sds (line 69) | sds keyspaceEventsFlagsToString(int flags) { function notifyKeyspaceEvent (line 99) | void notifyKeyspaceEvent(int type, char *event, robj *key, int dbid) { FILE: Chapter07/redis-6.0.3/src/object.c function robj (line 41) | robj *createObject(int type, void *ptr) { function robj (line 69) | robj *makeObjectShared(robj *o) { function robj (line 77) | robj *createRawStringObject(const char *ptr, size_t len) { function robj (line 84) | robj *createEmbeddedStringObject(const char *ptr, size_t len) { function robj (line 119) | robj *createStringObject(const char *ptr, size_t len) { function robj (line 133) | robj *createStringObjectFromLongLongWithOptions(long long value, int val... function robj (line 161) | robj *createStringObjectFromLongLong(long long value) { function robj (line 169) | robj *createStringObjectFromLongLongForValue(long long value) { function robj (line 179) | robj *createStringObjectFromLongDouble(long double value, int humanfrien... function robj (line 193) | robj *dupStringObject(const robj *o) { function robj (line 214) | robj *createQuicklistObject(void) { function robj (line 221) | robj *createZiplistObject(void) { function robj (line 228) | robj *createSetObject(void) { function robj (line 235) | robj *createIntsetObject(void) { function robj (line 242) | robj *createHashObject(void) { function robj (line 249) | robj *createZsetObject(void) { function robj (line 260) | robj *createZsetZiplistObject(void) { function robj (line 267) | robj *createStreamObject(void) { function robj (line 274) | robj *createModuleObject(moduleType *mt, void *value) { function freeStringObject (line 281) | void freeStringObject(robj *o) { function freeListObject (line 287) | void freeListObject(robj *o) { function freeSetObject (line 295) | void freeSetObject(robj *o) { function freeZsetObject (line 308) | void freeZsetObject(robj *o) { function freeHashObject (line 325) | void freeHashObject(robj *o) { function freeModuleObject (line 339) | void freeModuleObject(robj *o) { function freeStreamObject (line 345) | void freeStreamObject(robj *o) { function incrRefCount (line 349) | void incrRefCount(robj *o) { function decrRefCount (line 361) | void decrRefCount(robj *o) { function decrRefCountVoid (line 383) | void decrRefCountVoid(void *o) { function robj (line 399) | robj *resetRefCount(robj *obj) { function checkType (line 404) | int checkType(client *c, robj *o, int type) { function isSdsRepresentableAsLongLong (line 412) | int isSdsRepresentableAsLongLong(sds s, long long *llval) { function isObjectRepresentableAsLongLong (line 416) | int isObjectRepresentableAsLongLong(robj *o, long long *llval) { function trimStringObjectIfNeeded (line 430) | void trimStringObjectIfNeeded(robj *o) { function robj (line 439) | robj *tryObjectEncoding(robj *o) { function robj (line 520) | robj *getDecodedObject(robj *o) { function compareStringObjectsWithFlags (line 549) | int compareStringObjectsWithFlags(robj *a, robj *b, int flags) { function compareStringObjects (line 582) | int compareStringObjects(robj *a, robj *b) { function collateStringObjects (line 587) | int collateStringObjects(robj *a, robj *b) { function equalStringObjects (line 595) | int equalStringObjects(robj *a, robj *b) { function stringObjectLen (line 606) | size_t stringObjectLen(robj *o) { function getDoubleFromObject (line 615) | int getDoubleFromObject(const robj *o, double *target) { function getDoubleFromObjectOrReply (line 635) | int getDoubleFromObjectOrReply(client *c, robj *o, double *target, const... function getLongDoubleFromObject (line 649) | int getLongDoubleFromObject(robj *o, long double *target) { function getLongDoubleFromObjectOrReply (line 669) | int getLongDoubleFromObjectOrReply(client *c, robj *o, long double *targ... function getLongLongFromObject (line 683) | int getLongLongFromObject(robj *o, long long *target) { function getLongLongFromObjectOrReply (line 702) | int getLongLongFromObjectOrReply(client *c, robj *o, long long *target, ... function getLongFromObjectOrReply (line 716) | int getLongFromObjectOrReply(client *c, robj *o, long *target, const cha... function streamRadixTreeMemoryUsage (line 763) | size_t streamRadixTreeMemoryUsage(rax *rax) { function objectComputeSize (line 777) | size_t objectComputeSize(robj *o, size_t sample_size) { function freeMemoryOverheadData (line 942) | void freeMemoryOverheadData(struct redisMemOverhead *mh) { type redisMemOverhead (line 950) | struct redisMemOverhead type redisMemOverhead (line 955) | struct redisMemOverhead function inputCatSds (line 1055) | void inputCatSds(void *result, const char *str) { function sds (line 1063) | sds getMemoryDoctorReport(void) { function objectSetLRUOrLFU (line 1180) | int objectSetLRUOrLFU(robj *val, long long lfu_freq, long long lru_idle, function robj (line 1212) | robj *objectCommandLookup(client *c, robj *key) { function robj (line 1219) | robj *objectCommandLookupOrReply(client *c, robj *key, robj *reply) { function objectCommand (line 1228) | void objectCommand(client *c) { function memoryCommand (line 1277) | void memoryCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/pqsort.c function swapfunc (line 68) | static inline void function _pqsort (line 98) | static void function pqsort (line 179) | void FILE: Chapter07/redis-6.0.3/src/pubsub.c function addReplyPubsubMessage (line 43) | void addReplyPubsubMessage(client *c, robj *channel, robj *msg) { function addReplyPubsubPatMessage (line 56) | void addReplyPubsubPatMessage(client *c, robj *pat, robj *channel, robj ... function addReplyPubsubSubscribed (line 68) | void addReplyPubsubSubscribed(client *c, robj *channel) { function addReplyPubsubUnsubscribed (line 82) | void addReplyPubsubUnsubscribed(client *c, robj *channel) { function addReplyPubsubPatSubscribed (line 96) | void addReplyPubsubPatSubscribed(client *c, robj *pattern) { function addReplyPubsubPatUnsubscribed (line 110) | void addReplyPubsubPatUnsubscribed(client *c, robj *pattern) { function freePubsubPattern (line 127) | void freePubsubPattern(void *p) { function listMatchPubsubPattern (line 134) | int listMatchPubsubPattern(void *a, void *b) { function clientSubscriptionsCount (line 142) | int clientSubscriptionsCount(client *c) { function pubsubSubscribeChannel (line 149) | int pubsubSubscribeChannel(client *c, robj *channel) { function pubsubUnsubscribeChannel (line 176) | int pubsubUnsubscribeChannel(client *c, robj *channel, int notify) { function pubsubSubscribePattern (line 208) | int pubsubSubscribePattern(client *c, robj *pattern) { function pubsubUnsubscribePattern (line 240) | int pubsubUnsubscribePattern(client *c, robj *pattern, int notify) { function pubsubUnsubscribeAllChannels (line 276) | int pubsubUnsubscribeAllChannels(client *c, int notify) { function pubsubUnsubscribeAllPatterns (line 294) | int pubsubUnsubscribeAllPatterns(client *c, int notify) { function pubsubPublishMessage (line 310) | int pubsubPublishMessage(robj *channel, robj *message) { function subscribeCommand (line 360) | void subscribeCommand(client *c) { function unsubscribeCommand (line 368) | void unsubscribeCommand(client *c) { function psubscribeCommand (line 380) | void psubscribeCommand(client *c) { function punsubscribeCommand (line 388) | void punsubscribeCommand(client *c) { function publishCommand (line 400) | void publishCommand(client *c) { function pubsubCommand (line 410) | void pubsubCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/quicklist.c function quicklist (line 100) | quicklist *quicklistCreate(void) { function quicklistSetCompressDepth (line 114) | void quicklistSetCompressDepth(quicklist *quicklist, int compress) { function quicklistSetFill (line 124) | void quicklistSetFill(quicklist *quicklist, int fill) { function quicklistSetOptions (line 133) | void quicklistSetOptions(quicklist *quicklist, int fill, int depth) { function quicklist (line 139) | quicklist *quicklistNew(int fill, int compress) { function REDIS_STATIC (line 145) | REDIS_STATIC quicklistNode *quicklistCreateNode(void) { function quicklistCount (line 159) | unsigned long quicklistCount(const quicklist *ql) { return ql->count; } function quicklistRelease (line 162) | void quicklistRelease(quicklist *quicklist) { function REDIS_STATIC (line 186) | REDIS_STATIC int __quicklistCompressNode(quicklistNode *node) { function REDIS_STATIC (line 223) | REDIS_STATIC int __quicklistDecompressNode(quicklistNode *node) { function quicklistGetLzf (line 261) | size_t quicklistGetLzf(const quicklistNode *node, void **data) { function REDIS_STATIC (line 273) | REDIS_STATIC void __quicklistCompress(const quicklist *quicklist, function REDIS_STATIC (line 360) | REDIS_STATIC void __quicklistInsertNode(quicklist *quicklist, function REDIS_STATIC (line 396) | REDIS_STATIC void _quicklistInsertNodeBefore(quicklist *quicklist, function REDIS_STATIC (line 402) | REDIS_STATIC void _quicklistInsertNodeAfter(quicklist *quicklist, function REDIS_STATIC (line 408) | REDIS_STATIC int function REDIS_STATIC (line 428) | REDIS_STATIC int _quicklistNodeAllowInsert(const quicklistNode *node, function REDIS_STATIC (line 460) | REDIS_STATIC int _quicklistNodeAllowMerge(const quicklistNode *a, function quicklistPushHead (line 488) | int quicklistPushHead(quicklist *quicklist, void *value, size_t sz) { function quicklistPushTail (line 511) | int quicklistPushTail(quicklist *quicklist, void *value, size_t sz) { function quicklistAppendZiplist (line 533) | void quicklistAppendZiplist(quicklist *quicklist, unsigned char *zl) { function quicklist (line 550) | quicklist *quicklistAppendValuesFromZiplist(quicklist *quicklist, function quicklist (line 574) | quicklist *quicklistCreateFromZiplist(int fill, int compress, function REDIS_STATIC (line 587) | REDIS_STATIC void __quicklistDelNode(quicklist *quicklist, function REDIS_STATIC (line 630) | REDIS_STATIC int quicklistDelIndex(quicklist *quicklist, quicklistNode *... function quicklistDelEntry (line 651) | void quicklistDelEntry(quicklistIter *iter, quicklistEntry *entry) { function quicklistReplaceAtIndex (line 684) | int quicklistReplaceAtIndex(quicklist *quicklist, long index, void *data, function REDIS_STATIC (line 712) | REDIS_STATIC quicklistNode *_quicklistZiplistMerge(quicklist *quicklist, function REDIS_STATIC (line 750) | REDIS_STATIC void _quicklistMergeNodes(quicklist *quicklist, function REDIS_STATIC (line 814) | REDIS_STATIC quicklistNode *_quicklistSplitNode(quicklistNode *node, int... function REDIS_STATIC (line 849) | REDIS_STATIC void _quicklistInsert(quicklist *quicklist, quicklistEntry ... function quicklistInsertBefore (line 959) | void quicklistInsertBefore(quicklist *quicklist, quicklistEntry *entry, function quicklistInsertAfter (line 964) | void quicklistInsertAfter(quicklist *quicklist, quicklistEntry *entry, function quicklistDelRange (line 975) | int quicklistDelRange(quicklist *quicklist, const long start, function quicklistCompare (line 1059) | int quicklistCompare(unsigned char *p1, unsigned char *p2, int p2_len) { function quicklistIter (line 1065) | quicklistIter *quicklistGetIterator(const quicklist *quicklist, int dire... function quicklistIter (line 1088) | quicklistIter *quicklistGetIteratorAtIdx(const quicklist *quicklist, function quicklistReleaseIterator (line 1106) | void quicklistReleaseIterator(quicklistIter *iter) { function quicklistNext (line 1134) | int quicklistNext(quicklistIter *iter, quicklistEntry *entry) { function quicklist (line 1203) | quicklist *quicklistDup(quicklist *orig) { function quicklistIndex (line 1242) | int quicklistIndex(const quicklist *quicklist, const long long idx, function quicklistRotate (line 1299) | void quicklistRotate(quicklist *quicklist) { function quicklistPopCustom (line 1341) | int quicklistPopCustom(quicklist *quicklist, int where, unsigned char **... function REDIS_STATIC (line 1389) | REDIS_STATIC void *_quicklistSaver(unsigned char *data, unsigned int sz) { function quicklistPop (line 1402) | int quicklistPop(quicklist *quicklist, int where, unsigned char **data, function quicklistPush (line 1421) | void quicklistPush(quicklist *quicklist, void *value, const size_t sz, function quicklistBookmarkCreate (line 1438) | int quicklistBookmarkCreate(quicklist **ql_ref, const char *name, quickl... function quicklistNode (line 1458) | quicklistNode *quicklistBookmarkFind(quicklist *ql, const char *name) { function quicklistBookmarkDelete (line 1467) | int quicklistBookmarkDelete(quicklist *ql, const char *name) { function quicklistBookmark (line 1475) | quicklistBookmark *_quicklistBookmarkFindByName(quicklist *ql, const cha... function quicklistBookmark (line 1485) | quicklistBookmark *_quicklistBookmarkFindByNode(quicklist *ql, quicklist... function _quicklistBookmarkDelete (line 1495) | void _quicklistBookmarkDelete(quicklist *ql, quicklistBookmark *bm) { function quicklistBookmarksClear (line 1504) | void quicklistBookmarksClear(quicklist *ql) { function ql_info (line 1548) | static void ql_info(quicklist *ql) { function ustime (line 1563) | static long long ustime(void) { function mstime (line 1574) | static long long mstime(void) { return ustime() / 1000; } function _itrprintr (line 1580) | static int _itrprintr(quicklist *ql, int print, int forward) { function itrprintr (line 1602) | static int itrprintr(quicklist *ql, int print) { function itrprintr_rev (line 1606) | static int itrprintr_rev(quicklist *ql, int print) { function _ql_verify (line 1616) | static int _ql_verify(quicklist *ql, uint32_t len, uint32_t count, function quicklistTest (line 1710) | int quicklistTest(int argc, char *argv[]) { FILE: Chapter07/redis-6.0.3/src/quicklist.h type quicklistNode (line 46) | typedef struct quicklistNode { type quicklistLZF (line 64) | typedef struct quicklistLZF { type quicklistBookmark (line 77) | typedef struct quicklistBookmark { type quicklist (line 105) | typedef struct quicklist { type quicklistIter (line 116) | typedef struct quicklistIter { type quicklistEntry (line 124) | typedef struct quicklistEntry { FILE: Chapter07/redis-6.0.3/src/rand.c function redisLrand48 (line 71) | int32_t redisLrand48() { function redisSrand48 (line 76) | void redisSrand48(int32_t seedval) { function next (line 80) | static void next(void) { FILE: Chapter07/redis-6.0.3/src/rax.c function raxSetDebugMsg (line 81) | void raxSetDebugMsg(int onoff) { function raxStackInit (line 94) | static inline void raxStackInit(raxStack *ts) { function raxStackPush (line 102) | static inline int raxStackPush(raxStack *ts, void *ptr) { function raxStackFree (line 145) | static inline void raxStackFree(raxStack *ts) { function raxNode (line 188) | raxNode *raxNewNode(size_t children, int datafield) { function rax (line 203) | rax *raxNew(void) { function raxNode (line 219) | raxNode *raxReallocForData(raxNode *n, void *data) { function raxSetData (line 226) | void raxSetData(raxNode *n, void *data) { function raxNode (line 256) | raxNode *raxAddChild(raxNode *n, unsigned char c, raxNode **childptr, ra... function raxNode (line 397) | raxNode *raxCompressNode(raxNode *n, unsigned char *s, size_t len, raxNo... function raxLowWalk (line 459) | static inline size_t raxLowWalk(rax *rax, unsigned char *s, size_t len, ... function raxGenericInsert (line 509) | int raxGenericInsert(rax *rax, unsigned char *s, size_t len, void *data,... function raxInsert (line 904) | int raxInsert(rax *rax, unsigned char *s, size_t len, void *data, void *... function raxTryInsert (line 911) | int raxTryInsert(rax *rax, unsigned char *s, size_t len, void *data, voi... function raxNode (line 934) | raxNode **raxFindParentLink(raxNode *parent, raxNode *child) { function raxNode (line 949) | raxNode *raxRemoveChild(raxNode *parent, raxNode *child) { function raxRemove (line 1022) | int raxRemove(rax *rax, unsigned char *s, size_t len, void **old) { function raxRecursiveFree (line 1223) | void raxRecursiveFree(rax *rax, raxNode *n, void (*free_callback)(void*)) { function raxFreeWithCallback (line 1242) | void raxFreeWithCallback(rax *rax, void (*free_callback)(void*)) { function raxFree (line 1249) | void raxFree(rax *rax) { function raxStart (line 1258) | void raxStart(raxIterator *it, rax *rt) { function raxIteratorAddChars (line 1272) | int raxIteratorAddChars(raxIterator *it, unsigned char *s, size_t len) { function raxIteratorDelChars (line 1295) | void raxIteratorDelChars(raxIterator *it, size_t count) { function raxIteratorNextStep (line 1313) | int raxIteratorNextStep(raxIterator *it, int noup) { function raxSeekGreatest (line 1414) | int raxSeekGreatest(raxIterator *it) { function raxIteratorPrevStep (line 1433) | int raxIteratorPrevStep(raxIterator *it, int noup) { function raxSeek (line 1510) | int raxSeek(raxIterator *it, const char *op, unsigned char *ele, size_t ... function raxNext (line 1696) | int raxNext(raxIterator *it) { function raxPrev (line 1711) | int raxPrev(raxIterator *it) { function raxRandomWalk (line 1735) | int raxRandomWalk(raxIterator *it, size_t steps) { function raxCompare (line 1778) | int raxCompare(raxIterator *iter, const char *op, unsigned char *key, si... function raxStop (line 1807) | void raxStop(raxIterator *it) { function raxEOF (line 1816) | int raxEOF(raxIterator *it) { function raxSize (line 1821) | uint64_t raxSize(rax *rax) { function raxRecursiveShow (line 1853) | void raxRecursiveShow(int level, int lpad, raxNode *n) { function raxShow (line 1887) | void raxShow(rax *rax) { function raxDebugShowNode (line 1893) | void raxDebugShowNode(const char *msg, raxNode *n) { function raxTouch (line 1926) | unsigned long raxTouch(raxNode *n) { FILE: Chapter07/redis-6.0.3/src/rax.h type raxNode (line 98) | typedef struct raxNode { type rax (line 133) | typedef struct rax { type raxStack (line 143) | typedef struct raxStack { type raxIterator (line 175) | typedef struct raxIterator { FILE: Chapter07/redis-6.0.3/src/rdb.c function rdbReportError (line 55) | void rdbReportError(int corruption_error, int linenum, char *reason, ...) { function rdbWriteRaw (line 83) | static int rdbWriteRaw(rio *rdb, void *p, size_t len) { function rdbSaveType (line 89) | int rdbSaveType(rio *rdb, unsigned char type) { function rdbLoadType (line 96) | int rdbLoadType(rio *rdb) { function time_t (line 107) | time_t rdbLoadTime(rio *rdb) { function rdbSaveMillisecondTime (line 113) | int rdbSaveMillisecondTime(rio *rdb, long long t) { function rdbLoadMillisecondTime (line 134) | long long rdbLoadMillisecondTime(rio *rdb, int rdbver) { function rdbSaveLen (line 145) | int rdbSaveLen(rio *rdb, uint64_t len) { function rdbLoadLenByRef (line 188) | int rdbLoadLenByRef(rio *rdb, int *isencoded, uint64_t *lenptr) { function rdbLoadLen (line 228) | uint64_t rdbLoadLen(rio *rdb, int *isencoded) { function rdbEncodeInteger (line 239) | int rdbEncodeInteger(long long value, unsigned char *enc) { function rdbTryIntegerEncoding (line 305) | int rdbTryIntegerEncoding(char *s, size_t len, unsigned char *enc) { function rdbSaveLzfBlob (line 321) | ssize_t rdbSaveLzfBlob(rio *rdb, void *data, size_t compress_len, function rdbSaveLzfStringObject (line 346) | ssize_t rdbSaveLzfStringObject(rio *rdb, unsigned char *s, size_t len) { function rdbSaveRawString (line 409) | ssize_t rdbSaveRawString(rio *rdb, unsigned char *s, size_t len) { function rdbSaveLongLongAsStringObject (line 442) | ssize_t rdbSaveLongLongAsStringObject(rio *rdb, long long value) { function rdbSaveStringObject (line 461) | ssize_t rdbSaveStringObject(rio *rdb, robj *obj) { function robj (line 530) | robj *rdbLoadStringObject(rio *rdb) { function robj (line 534) | robj *rdbLoadEncodedStringObject(rio *rdb) { function rdbSaveDoubleValue (line 546) | int rdbSaveDoubleValue(rio *rdb, double val) { function rdbLoadDoubleValue (line 581) | int rdbLoadDoubleValue(rio *rdb, double *val) { function rdbSaveBinaryDoubleValue (line 603) | int rdbSaveBinaryDoubleValue(rio *rdb, double val) { function rdbLoadBinaryDoubleValue (line 610) | int rdbLoadBinaryDoubleValue(rio *rdb, double *val) { function rdbSaveBinaryFloatValue (line 617) | int rdbSaveBinaryFloatValue(rio *rdb, float val) { function rdbLoadBinaryFloatValue (line 623) | int rdbLoadBinaryFloatValue(rio *rdb, float *val) { function rdbSaveObjectType (line 630) | int rdbSaveObjectType(rio *rdb, robj *o) { function rdbLoadObjectType (line 672) | int rdbLoadObjectType(rio *rdb) { function rdbSaveStreamPEL (line 686) | ssize_t rdbSaveStreamPEL(rio *rdb, rax *pel, int nacks) { function rdbSaveStreamConsumers (line 722) | size_t rdbSaveStreamConsumers(rio *rdb, streamCG *cg) { function rdbSaveObject (line 759) | ssize_t rdbSaveObject(rio *rdb, robj *o, robj *key) { function rdbSavedObjectLen (line 1005) | size_t rdbSavedObjectLen(robj *o, robj *key) { function rdbSaveKeyValuePair (line 1015) | int rdbSaveKeyValuePair(rio *rdb, robj *key, robj *val, long long expire... function rdbSaveAuxField (line 1058) | ssize_t rdbSaveAuxField(rio *rdb, void *key, size_t keylen, void *val, s... function rdbSaveAuxFieldStrStr (line 1071) | ssize_t rdbSaveAuxFieldStrStr(rio *rdb, char *key, char *val) { function rdbSaveAuxFieldStrInt (line 1076) | ssize_t rdbSaveAuxFieldStrInt(rio *rdb, char *key, long long val) { function rdbSaveInfoAuxFields (line 1083) | int rdbSaveInfoAuxFields(rio *rdb, int rdbflags, rdbSaveInfo *rsi) { function rdbSaveSingleModuleAux (line 1106) | ssize_t rdbSaveSingleModuleAux(rio *rdb, int when, moduleType *mt) { function rdbSaveRio (line 1153) | int rdbSaveRio(rio *rdb, int *error, int rdbflags, rdbSaveInfo *rsi) { function rdbSaveRioWithEOFMark (line 1251) | int rdbSaveRioWithEOFMark(rio *rdb, int *error, rdbSaveInfo *rsi) { function rdbSave (line 1273) | int rdbSave(char *filename, rdbSaveInfo *rsi) { function rdbSaveBackground (line 1340) | int rdbSaveBackground(char *filename, rdbSaveInfo *rsi) { function rdbRemoveTempFile (line 1378) | void rdbRemoveTempFile(pid_t childpid) { function robj (line 1389) | robj *rdbLoadCheckModuleValue(rio *rdb, char *modulename) { function robj (line 1426) | robj *rdbLoadObject(int rdbtype, rio *rdb, sds key) { function startLoading (line 1959) | void startLoading(size_t size, int rdbflags) { function startLoadingFile (line 1980) | void startLoadingFile(FILE *fp, char* filename, int rdbflags) { function loadingProgress (line 1989) | void loadingProgress(off_t pos) { function stopLoading (line 1996) | void stopLoading(int success) { function startSaving (line 2008) | void startSaving(int rdbflags) { function stopSaving (line 2020) | void stopSaving(int success) { function rdbLoadProgressCallback (line 2031) | void rdbLoadProgressCallback(rio *r, const void *buf, size_t len) { function rdbLoadRio (line 2051) | int rdbLoadRio(rio *rdb, int rdbflags, rdbSaveInfo *rsi) { function rdbLoad (line 2351) | int rdbLoad(char *filename, rdbSaveInfo *rsi, int rdbflags) { function backgroundSaveDoneHandlerDisk (line 2367) | void backgroundSaveDoneHandlerDisk(int exitcode, int bysignal) { function backgroundSaveDoneHandlerSocket (line 2403) | void backgroundSaveDoneHandlerSocket(int exitcode, int bysignal) { function backgroundSaveDoneHandler (line 2421) | void backgroundSaveDoneHandler(int exitcode, int bysignal) { function killRDBChild (line 2438) | void killRDBChild(void) { function rdbSaveToSlavesSockets (line 2447) | int rdbSaveToSlavesSockets(rdbSaveInfo *rsi) { function saveCommand (line 2544) | void saveCommand(client *c) { function bgsaveCommand (line 2559) | void bgsaveCommand(client *c) { function rdbSaveInfo (line 2604) | rdbSaveInfo *rdbPopulateSaveInfo(rdbSaveInfo *rsi) { FILE: Chapter07/redis-6.0.3/src/redis-benchmark.c type benchmarkThread (line 63) | struct benchmarkThread type clusterNode (line 64) | struct clusterNode type redisConfig (line 65) | struct redisConfig type config (line 67) | struct config { type _client (line 119) | struct _client { type benchmarkThread (line 143) | typedef struct benchmarkThread { type clusterNode (line 150) | typedef struct clusterNode { type redisConfig (line 171) | typedef struct redisConfig { type aeEventLoop (line 189) | struct aeEventLoop function ustime (line 198) | static long long ustime(void) { function mstime (line 208) | static long long mstime(void) { function dictSdsHash (line 218) | static uint64_t dictSdsHash(const void *key) { function dictSdsKeyCompare (line 222) | static int dictSdsKeyCompare(void *privdata, const void *key1, function _serverAssert (line 235) | void _serverAssert(const char *estr, const char *file, int line) { function redisConfig (line 241) | static redisConfig *getRedisConfig(const char *ip, int port, function freeRedisConfig (line 309) | static void freeRedisConfig(redisConfig *cfg) { function freeClient (line 315) | static void freeClient(client c) { function freeAllClients (line 340) | static void freeAllClients(void) { function resetClient (line 350) | static void resetClient(client c) { function randomizeClientKey (line 359) | static void randomizeClientKey(client c) { function setClusterKeyHashTag (line 377) | static void setClusterKeyHashTag(client c) { function clientDone (line 403) | static void clientDone(client c) { function readHandler (line 424) | static void readHandler(aeEventLoop *el, int fd, void *privdata, int mas... function writeHandler (line 524) | static void writeHandler(aeEventLoop *el, int fd, void *privdata, int ma... function client (line 585) | static client createClient(char *cmd, size_t len, client from, int threa... function createMissingClients (line 754) | static void createMissingClients(client c) { function compareLatency (line 770) | static int compareLatency(const void *a, const void *b) { function ipow (line 774) | static int ipow(int base, int exp) { function showLatencyReport (line 784) | static void showLatencyReport(void) { function initBenchmarkThreads (line 851) | static void initBenchmarkThreads() { function startBenchmarkThreads (line 861) | static void startBenchmarkThreads() { function benchmark (line 874) | static void benchmark(char *title, char *cmd, int len) { function benchmarkThread (line 899) | static benchmarkThread *createBenchmarkThread(int index) { function freeBenchmarkThread (line 908) | static void freeBenchmarkThread(benchmarkThread *thread) { function freeBenchmarkThreads (line 913) | static void freeBenchmarkThreads() { function clusterNode (line 931) | static clusterNode *createClusterNode(char *ip, int port) { function freeClusterNode (line 953) | static void freeClusterNode(clusterNode *node) { function freeClusterNodes (line 974) | static void freeClusterNodes() { function clusterNode (line 984) | static clusterNode **addClusterNode(clusterNode *node) { function fetchClusterConfiguration (line 993) | static int fetchClusterConfiguration() { function fetchClusterSlotsConfiguration (line 1168) | static int fetchClusterSlotsConfiguration(client c) { function updateClusterSlotsConfiguration (line 1260) | static void updateClusterSlotsConfiguration() { function parseOptions (line 1282) | int parseOptions(int argc, const char **argv) { function showThroughput (line 1444) | int showThroughput(struct aeEventLoop *eventLoop, long long id, void *cl... function test_is_selected (line 1476) | int test_is_selected(char *name) { function main (line 1488) | int main(int argc, const char **argv) { FILE: Chapter07/redis-6.0.3/src/redis-check-aof.c function consumeNewline (line 43) | int consumeNewline(char *buf) { function readLong (line 51) | int readLong(FILE *fp, char prefix, long *target) { function readBytes (line 65) | int readBytes(FILE *fp, char *target, long length) { function readString (line 76) | int readString(FILE *fp, char** target) { function readArgc (line 96) | int readArgc(FILE *fp, long *target) { function off_t (line 100) | off_t process(FILE *fp) { function redis_check_aof_main (line 144) | int redis_check_aof_main(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/src/redis-check-rdb.c function rdbShowGenericInfo (line 92) | void rdbShowGenericInfo(void) { function rdbCheckError (line 100) | void rdbCheckError(const char *fmt, ...) { function rdbCheckInfo (line 127) | void rdbCheckInfo(const char *fmt, ...) { function rdbCheckSetError (line 142) | void rdbCheckSetError(const char *fmt, ...) { function rdbCheckHandleCrash (line 154) | void rdbCheckHandleCrash(int sig, siginfo_t *info, void *secret) { function rdbCheckSetupSignals (line 163) | void rdbCheckSetupSignals(void) { function redis_check_rdb (line 179) | int redis_check_rdb(char *rdbfilename, FILE *fp) { function redis_check_rdb_main (line 346) | int redis_check_rdb_main(int argc, char **argv, FILE *fp) { FILE: Chapter07/redis-6.0.3/src/redis-cli.c type clusterManagerCommand (line 171) | typedef struct clusterManagerCommand { type config (line 193) | struct config { type pref (line 251) | struct pref { function ustime (line 271) | static long long ustime(void) { function mstime (line 281) | static long long mstime(void) { function cliRefreshPrompt (line 285) | static void cliRefreshPrompt(void) { function sds (line 315) | static sds getDotfilePath(char *envoverride, char *dotfilename) { function sds (line 343) | static sds percentDecode(const char *pe, size_t len) { function parseRedisUri (line 380) | static void parseRedisUri(const char *uri) { function dictSdsHash (line 424) | static uint64_t dictSdsHash(const void *key) { function dictSdsKeyCompare (line 428) | static int dictSdsKeyCompare(void *privdata, const void *key1, function dictSdsDestructor (line 440) | static void dictSdsDestructor(void *privdata, void *val) function dictListDestructor (line 446) | void dictListDestructor(void *privdata, void *val) function _serverAssert (line 453) | void _serverAssert(const char *estr, const char *file, int line) { type helpEntry (line 466) | typedef struct { function sds (line 479) | static sds cliVersion(void) { function cliInitHelp (line 493) | static void cliInitHelp(void) { function cliIntegrateHelp (line 526) | static void cliIntegrateHelp(void) { function cliOutputCommandHelp (line 582) | static void cliOutputCommandHelp(struct commandHelp *help, int group) { function cliOutputGenericHelp (line 592) | static void cliOutputGenericHelp(void) { function cliOutputHelp (line 612) | static void cliOutputHelp(int argc, char **argv) { function completionCallback (line 657) | static void completionCallback(const char *buf, linenoiseCompletions *lc) { function freeHintsCallback (line 734) | static void freeHintsCallback(void *ptr) { function cliAuth (line 743) | static int cliAuth(void) { function cliSelect (line 761) | static int cliSelect(void) { function cliSecureConnection (line 778) | static int cliSecureConnection(redisContext *c, const char **err) { function cliSwitchProto (line 841) | static int cliSwitchProto(void) { function cliConnect (line 859) | static int cliConnect(int flags) { function cliPrintContextError (line 914) | static void cliPrintContextError(void) { function sds (line 919) | static sds cliFormatReplyTTY(redisReply *r, char *prefix) { function isColorTerm (line 1027) | int isColorTerm(void) { function sds (line 1034) | sds sdscatcolor(sds o, char *s, size_t len, char *color) { function sds (line 1055) | sds sdsCatColorizedLdbReply(sds o, char *s, size_t len) { function sds (line 1071) | static sds cliFormatReplyRaw(redisReply *r) { function sds (line 1142) | static sds cliFormatReplyCSV(redisReply *r) { function cliReadReply (line 1186) | static int cliReadReply(int output_raw_strings) { function cliSendCommand (line 1266) | static int cliSendCommand(int argc, char **argv, long repeat) { function redisReply (line 1388) | static redisReply *reconnectingRedisCommand(redisContext *c, const char ... function parseOptions (line 1432) | static int parseOptions(int argc, char **argv) { function parseEnv (line 1665) | static void parseEnv() { function sds (line 1673) | static sds readArgFromStdin(void) { function usage (line 1690) | static void usage(void) { function confirmWithYes (line 1800) | static int confirmWithYes(char *msg) { function issueCommandRepeat (line 1820) | static int issueCommandRepeat(int argc, char **argv, long repeat) { function issueCommand (line 1843) | static int issueCommand(int argc, char **argv) { function sds (line 1853) | static sds *cliSplitArgs(char *line, int *argc) { function cliSetPreferences (line 1872) | void cliSetPreferences(char **argv, int argc, int interactive) { function cliLoadPreferences (line 1889) | void cliLoadPreferences(void) { function repl (line 1909) | static void repl(void) { function noninteractive (line 2047) | static int noninteractive(int argc, char **argv) { function evalMode (line 2063) | static int evalMode(int argc, char **argv) { type clusterManager (line 2151) | struct clusterManager { type clusterManagerNode (line 2160) | typedef struct clusterManagerNode { type clusterManagerNodeArray (line 2187) | typedef struct clusterManagerNodeArray { type clusterManagerReshardTableItem (line 2195) | typedef struct clusterManagerReshardTableItem { type clusterManagerLink (line 2202) | typedef struct clusterManagerLink { type clusterManagerCommandDef (line 2282) | typedef struct clusterManagerCommandDef { function createClusterManagerCommand (line 2320) | static void createClusterManagerCommand(char *cmdname, int argc, char **... function clusterManagerCommandProc (line 2329) | static clusterManagerCommandProc *validateClusterManagerCommand(void) { function parseClusterNodeAddress (line 2351) | static int parseClusterNodeAddress(char *addr, char **ip_ptr, int *port_... function getClusterHostFromCmdArgs (line 2375) | static int getClusterHostFromCmdArgs(int argc, char **argv, function freeClusterManagerNodeFlags (line 2394) | static void freeClusterManagerNodeFlags(list *flags) { function freeClusterManagerNode (line 2405) | static void freeClusterManagerNode(clusterManagerNode *node) { function freeClusterManager (line 2438) | static void freeClusterManager(void) { function clusterManagerNode (line 2463) | static clusterManagerNode *clusterManagerNewNode(char *ip, int port) { function sds (line 2488) | static sds clusterManagerGetNodeRDBFilename(clusterManagerNode *node) { function clusterManagerCheckRedisReply (line 2502) | static int clusterManagerCheckRedisReply(clusterManagerNode *n, function clusterManagerStartTransaction (line 2519) | static int clusterManagerStartTransaction(clusterManagerNode *node) { function clusterManagerExecTransaction (line 2527) | static int clusterManagerExecTransaction(clusterManagerNode *node, function clusterManagerNodeConnect (line 2556) | static int clusterManagerNodeConnect(clusterManagerNode *node) { function clusterManagerRemoveNodeFromList (line 2595) | static void clusterManagerRemoveNodeFromList(list *nodelist, function clusterManagerNode (line 2609) | static clusterManagerNode *clusterManagerNodeByName(const char *name) { function clusterManagerNode (line 2633) | static clusterManagerNode *clusterManagerNodeByAbbreviatedName(const cha... function clusterManagerNodeResetSlots (line 2655) | static void clusterManagerNodeResetSlots(clusterManagerNode *node) { function redisReply (line 2661) | static redisReply *clusterManagerGetNodeRedisInfo(clusterManagerNode *node, function clusterManagerNodeIsCluster (line 2678) | static int clusterManagerNodeIsCluster(clusterManagerNode *node, char **... function clusterManagerNodeIsEmpty (line 2688) | static int clusterManagerNodeIsEmpty(clusterManagerNode *node, char **er... function clusterManagerGetAntiAffinityScore (line 2739) | static int clusterManagerGetAntiAffinityScore(clusterManagerNodeArray *i... function clusterManagerOptimizeAntiAffinity (line 2806) | static void clusterManagerOptimizeAntiAffinity(clusterManagerNodeArray *... function sds (line 2885) | static sds clusterManagerNodeFlagString(clusterManagerNode *node) { function sds (line 2903) | static sds clusterManagerNodeSlotsString(clusterManagerNode *node) { function sds (line 2932) | static sds clusterManagerNodeGetJSON(clusterManagerNode *node, function clusterManagerKeyHashSlot (line 3017) | static unsigned int clusterManagerKeyHashSlot(char *key, int keylen) { function sds (line 3039) | static sds clusterManagerNodeInfo(clusterManagerNode *node, int indent) { function clusterManagerShowNodes (line 3070) | static void clusterManagerShowNodes(void) { function clusterManagerShowClusterInfo (line 3082) | static void clusterManagerShowClusterInfo(void) { function clusterManagerAddSlots (line 3132) | static int clusterManagerAddSlots(clusterManagerNode *node, char**err) function clusterManagerNode (line 3180) | static clusterManagerNode *clusterManagerGetSlotOwner(clusterManagerNode... function clusterManagerSetSlot (line 3226) | static int clusterManagerSetSlot(clusterManagerNode *node1, function clusterManagerClearSlotStatus (line 3249) | static int clusterManagerClearSlotStatus(clusterManagerNode *node, int s... function clusterManagerDelSlot (line 3257) | static int clusterManagerDelSlot(clusterManagerNode *node, int slot, function clusterManagerAddSlot (line 3286) | static int clusterManagerAddSlot(clusterManagerNode *node, int slot) { function clusterManagerCountKeysInSlot (line 3294) | static signed int clusterManagerCountKeysInSlot(clusterManagerNode *node, function clusterManagerBumpEpoch (line 3306) | static int clusterManagerBumpEpoch(clusterManagerNode *node) { function clusterManagerOnSetOwnerErr (line 3316) | static int clusterManagerOnSetOwnerErr(redisReply *reply, function clusterManagerSetSlotOwner (line 3325) | static int clusterManagerSetSlotOwner(clusterManagerNode *owner, function clusterManagerCompareKeysValues (line 3346) | static int clusterManagerCompareKeysValues(clusterManagerNode *n1, function redisReply (line 3408) | static redisReply *clusterManagerMigrateKeysInReply(clusterManagerNode *... function clusterManagerMigrateKeysInSlot (line 3478) | static int clusterManagerMigrateKeysInSlot(clusterManagerNode *source, function clusterManagerMoveSlot (line 3644) | static int clusterManagerMoveSlot(clusterManagerNode *source, function clusterManagerFlushNodeConfig (line 3707) | static int clusterManagerFlushNodeConfig(clusterManagerNode *node, char ... function clusterManagerWaitForClusterJoin (line 3738) | static void clusterManagerWaitForClusterJoin(void) { function clusterManagerNodeLoadInfo (line 3798) | static int clusterManagerNodeLoadInfo(clusterManagerNode *node, int opts, function clusterManagerLoadInfoFromNode (line 3978) | static int clusterManagerLoadInfoFromNode(clusterManagerNode *node, int ... function clusterManagerSlotCompare (line 4058) | int clusterManagerSlotCompare(const void *slot1, const void *slot2) { function clusterManagerSlotCountCompareDesc (line 4064) | int clusterManagerSlotCountCompareDesc(const void *n1, const void *n2) { function clusterManagerCompareNodeBalance (line 4070) | int clusterManagerCompareNodeBalance(const void *n1, const void *n2) { function sds (line 4076) | static sds clusterManagerGetConfigSignature(clusterManagerNode *node) { function clusterManagerIsConfigConsistent (line 4169) | static int clusterManagerIsConfigConsistent(void) { function list (line 4196) | static list *clusterManagerGetDisconnectedLinks(clusterManagerNode *node) { function dict (line 4243) | static dict *clusterManagerGetLinkStatus(void) { function clusterManagerOnError (line 4279) | static void clusterManagerOnError(sds err) { function clusterManagerGetCoveredSlots (line 4289) | static int clusterManagerGetCoveredSlots(char *all_slots) { function clusterManagerPrintSlotsList (line 4307) | static void clusterManagerPrintSlotsList(list *slots) { function clusterManagerNode (line 4324) | static clusterManagerNode * clusterManagerGetNodeWithMostKeysInSlot(list... function clusterManagerNode (line 4363) | static clusterManagerNode *clusterManagerNodeWithLeastReplicas() { function clusterManagerNode (line 4382) | static clusterManagerNode *clusterManagerNodeMasterRandom() { function clusterManagerFixSlotsCoverage (line 4408) | static int clusterManagerFixSlotsCoverage(char *all_slots) { function clusterManagerFixOpenSlot (line 4605) | static int clusterManagerFixOpenSlot(int slot) { function clusterManagerFixMultipleSlotOwners (line 4942) | static int clusterManagerFixMultipleSlotOwners(int slot, list *owners) { function clusterManagerCheckCluster (line 4979) | static int clusterManagerCheckCluster(int quiet) { function clusterManagerNode (line 5143) | static clusterManagerNode *clusterNodeForResharding(char *id, function list (line 5167) | static list *clusterManagerComputeReshardTable(list *sources, int numslo... function clusterManagerShowReshardTable (line 5202) | static void clusterManagerShowReshardTable(list *table) { function clusterManagerReleaseReshardTable (line 5213) | static void clusterManagerReleaseReshardTable(list *table) { function clusterManagerLog (line 5226) | static void clusterManagerLog(int level, const char* fmt, ...) { function clusterManagerNodeArrayInit (line 5246) | static void clusterManagerNodeArrayInit(clusterManagerNodeArray *array, function clusterManagerNodeArrayReset (line 5257) | static void clusterManagerNodeArrayReset(clusterManagerNodeArray *array) { function clusterManagerNodeArrayShift (line 5270) | static void clusterManagerNodeArrayShift(clusterManagerNodeArray *array, function clusterManagerNodeArrayAdd (line 5283) | static void clusterManagerNodeArrayAdd(clusterManagerNodeArray *array, function clusterManagerPrintNotEmptyNodeError (line 5292) | static void clusterManagerPrintNotEmptyNodeError(clusterManagerNode *node, function clusterManagerPrintNotClusterNodeError (line 5305) | static void clusterManagerPrintNotClusterNodeError(clusterManagerNode *n... function clusterManagerMode (line 5313) | static void clusterManagerMode(clusterManagerCommandProc *proc) { function clusterManagerCommandCreate (line 5329) | static int clusterManagerCommandCreate(int argc, char **argv) { function clusterManagerCommandAddNode (line 5604) | static int clusterManagerCommandAddNode(int argc, char **argv) { function clusterManagerCommandDeleteNode (line 5701) | static int clusterManagerCommandDeleteNode(int argc, char **argv) { function clusterManagerCommandInfo (line 5768) | static int clusterManagerCommandInfo(int argc, char **argv) { function clusterManagerCommandCheck (line 5781) | static int clusterManagerCommandCheck(int argc, char **argv) { function clusterManagerCommandFix (line 5794) | static int clusterManagerCommandFix(int argc, char **argv) { function clusterManagerCommandReshard (line 5799) | static int clusterManagerCommandReshard(int argc, char **argv) { function clusterManagerCommandRebalance (line 5986) | static int clusterManagerCommandRebalance(int argc, char **argv) { function clusterManagerCommandSetTimeout (line 6175) | static int clusterManagerCommandSetTimeout(int argc, char **argv) { function clusterManagerCommandImport (line 6233) | static int clusterManagerCommandImport(int argc, char **argv) { function clusterManagerCommandCall (line 6372) | static int clusterManagerCommandCall(int argc, char **argv) { function clusterManagerCommandBackup (line 6412) | static int clusterManagerCommandBackup(int argc, char **argv) { function clusterManagerCommandHelp (line 6476) | static int clusterManagerCommandHelp(int argc, char **argv) { function latencyModePrint (line 6520) | static void latencyModePrint(long long min, long long max, double avg, l... function latencyMode (line 6534) | static void latencyMode(void) { type distsamples (line 6601) | struct distsamples { function showLatencyDistSamples (line 6618) | void showLatencyDistSamples(struct distsamples *samples, long long tot) { function showLatencyDistLegend (line 6641) | void showLatencyDistLegend(void) { function latencyDistMode (line 6658) | static void latencyDistMode(void) { function sendReplconf (line 6742) | void sendReplconf(const char* arg1, const char* arg2) { function sendCapa (line 6757) | void sendCapa() { function sendSync (line 6764) | unsigned long long sendSync(int fd, char *out_eof) { function slaveMode (line 6801) | static void slaveMode(void) { function getRDB (line 6868) | static void getRDB(clusterManagerNode *node) { function pipeMode (line 6961) | static void pipeMode(void) { function redisReply (line 7127) | static redisReply *sendScan(unsigned long long *it) { function getDbSize (line 7155) | static int getDbSize(void) { type typeinfo (line 7173) | typedef struct { function typeinfo (line 7191) | static typeinfo* typeinfo_add(dict *types, char* name, typeinfo* type_te... function type_free (line 7199) | void type_free(void* priv_data, void* val) { function getKeyTypes (line 7217) | static void getKeyTypes(dict *types_dict, redisReply *keys, typeinfo **t... function getKeySizes (line 7256) | static void getKeySizes(redisReply *keys, typeinfo **types, function findBigKeys (line 7309) | static void findBigKeys(int memkeys, unsigned memkeys_samples) { function getKeyFreqs (line 7444) | static void getKeyFreqs(redisReply *keys, unsigned long long *freqs) { function findHotKeys (line 7475) | static void findHotKeys(void) { function getLongInfoField (line 7592) | static long getLongInfoField(char *info, char *field) { function bytesToHuman (line 7604) | void bytesToHuman(char *s, long long n) { function statMode (line 7628) | static void statMode(void) { function scanMode (line 7718) | static void scanMode(void) { function powerLawRand (line 7757) | long long powerLawRand(long long min, long long max, double alpha) { function LRUTestGenKey (line 7770) | void LRUTestGenKey(char *buf, size_t buflen) { function LRUTestMode (line 7777) | static void LRUTestMode(void) { function compute_something_fast (line 7849) | unsigned long compute_something_fast(void) { function intrinsicLatencyModeStop (line 7869) | static void intrinsicLatencyModeStop(int s) { function intrinsicLatencyMode (line 7874) | static void intrinsicLatencyMode(void) { function sds (line 7911) | static sds askPassword() { function main (line 7922) | int main(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/src/redis-trib.rb function colorized (line 3) | def colorized(str, color) class String (line 21) | class String function parse_options (line 44) | def parse_options(cmd) function command_example (line 86) | def command_example(cmd, args, opts) FILE: Chapter07/redis-6.0.3/src/redismodule.h type RedisModuleTimerID (line 167) | typedef uint64_t RedisModuleTimerID; type RedisModuleEvent (line 194) | typedef struct RedisModuleEvent { type RedisModuleCtx (line 199) | struct RedisModuleCtx type RedisModuleCtx (line 200) | struct RedisModuleCtx type RedisModuleClientInfoV1 (line 306) | typedef struct RedisModuleClientInfo { type RedisModuleReplicationInfoV1 (line 318) | typedef struct RedisModuleReplicationInfo { type RedisModuleFlushInfoV1 (line 334) | typedef struct RedisModuleFlushInfo { type RedisModuleModuleChangeV1 (line 345) | typedef struct RedisModuleModuleChange { type RedisModuleCronLoopV1 (line 356) | typedef struct RedisModuleCronLoopInfo { type RedisModuleLoadingProgressV1 (line 366) | typedef struct RedisModuleLoadingProgressInfo { type mstime_t (line 381) | typedef long long mstime_t; type RedisModuleCtx (line 384) | typedef struct RedisModuleCtx RedisModuleCtx; type RedisModuleKey (line 385) | typedef struct RedisModuleKey RedisModuleKey; type RedisModuleString (line 386) | typedef struct RedisModuleString RedisModuleString; type RedisModuleCallReply (line 387) | typedef struct RedisModuleCallReply RedisModuleCallReply; type RedisModuleIO (line 388) | typedef struct RedisModuleIO RedisModuleIO; type RedisModuleType (line 389) | typedef struct RedisModuleType RedisModuleType; type RedisModuleDigest (line 390) | typedef struct RedisModuleDigest RedisModuleDigest; type RedisModuleBlockedClient (line 391) | typedef struct RedisModuleBlockedClient RedisModuleBlockedClient; type RedisModuleClusterInfo (line 392) | typedef struct RedisModuleClusterInfo RedisModuleClusterInfo; type RedisModuleDict (line 393) | typedef struct RedisModuleDict RedisModuleDict; type RedisModuleDictIter (line 394) | typedef struct RedisModuleDictIter RedisModuleDictIter; type RedisModuleCommandFilterCtx (line 395) | typedef struct RedisModuleCommandFilterCtx RedisModuleCommandFilterCtx; type RedisModuleCommandFilter (line 396) | typedef struct RedisModuleCommandFilter RedisModuleCommandFilter; type RedisModuleInfoCtx (line 397) | typedef struct RedisModuleInfoCtx RedisModuleInfoCtx; type RedisModuleServerInfoData (line 398) | typedef struct RedisModuleServerInfoData RedisModuleServerInfoData; type RedisModuleScanCursor (line 399) | typedef struct RedisModuleScanCursor RedisModuleScanCursor; type RedisModuleUser (line 400) | typedef struct RedisModuleUser RedisModuleUser; type RedisModuleTypeMethods (line 423) | typedef struct RedisModuleTypeMethods { function RedisModule_Init (line 689) | static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int v... FILE: Chapter07/redis-6.0.3/src/release.c function redisBuildId (line 49) | uint64_t redisBuildId(void) { FILE: Chapter07/redis-6.0.3/src/replication.c function bg_unlink (line 89) | int bg_unlink(const char *filename) { function createReplicationBacklog (line 113) | void createReplicationBacklog(void) { function resizeReplicationBacklog (line 131) | void resizeReplicationBacklog(long long newsize) { function freeReplicationBacklog (line 152) | void freeReplicationBacklog(void) { function feedReplicationBacklog (line 162) | void feedReplicationBacklog(void *ptr, size_t len) { function feedReplicationBacklogWithObject (line 190) | void feedReplicationBacklogWithObject(robj *o) { function replicationFeedSlaves (line 210) | void replicationFeedSlaves(list *slaves, int dictid, robj **argv, int ar... function replicationFeedSlavesFromMasterStream (line 315) | void replicationFeedSlavesFromMasterStream(list *slaves, char *buf, size... function replicationFeedMonitors (line 340) | void replicationFeedMonitors(client *c, list *monitors, int dictid, robj... function addReplyReplicationBacklog (line 381) | long long addReplyReplicationBacklog(client *c, long long offset) { function getPsyncInitialOffset (line 435) | long long getPsyncInitialOffset(void) { function replicationSetupSlaveForFullResync (line 455) | int replicationSetupSlaveForFullResync(client *slave, long long offset) { function masterTryPartialResynchronization (line 484) | int masterTryPartialResynchronization(client *c) { function startBgsaveForReplication (line 606) | int startBgsaveForReplication(int mincapa) { function syncCommand (line 679) | void syncCommand(client *c) { function replconfCommand (line 828) | void replconfCommand(client *c) { function putSlaveOnline (line 911) | void putSlaveOnline(client *slave) { function removeRDBUsedToSyncReplicas (line 934) | void removeRDBUsedToSyncReplicas(void) { function sendBulkToSlave (line 976) | void sendBulkToSlave(connection *conn) { function rdbPipeWriteHandlerConnRemoved (line 1033) | void rdbPipeWriteHandlerConnRemoved(struct connection *conn) { function rdbPipeWriteHandler (line 1048) | void rdbPipeWriteHandler(struct connection *conn) { function RdbPipeCleanup (line 1073) | void RdbPipeCleanup() { function rdbPipeReadHandler (line 1089) | void rdbPipeReadHandler(struct aeEventLoop *eventLoop, int fd, void *cli... function updateSlavesWaitingBgsave (line 1191) | void updateSlavesWaitingBgsave(int bgsaveerr, int type) { function changeReplicationId (line 1278) | void changeReplicationId(void) { function clearReplicationId2 (line 1286) | void clearReplicationId2(void) { function shiftReplicationId (line 1297) | void shiftReplicationId(void) { function slaveIsInHandshakeState (line 1315) | int slaveIsInHandshakeState(void) { function replicationSendNewlineToMaster (line 1328) | void replicationSendNewlineToMaster(void) { function replicationEmptyDbCallback (line 1339) | void replicationEmptyDbCallback(void *privdata) { function replicationCreateMasterClient (line 1347) | void replicationCreateMasterClient(connection *conn, int dbid) { function restartAOFAfterSYNC (line 1369) | void restartAOFAfterSYNC() { function useDisklessLoad (line 1386) | static int useDisklessLoad() { function redisDb (line 1402) | redisDb *disklessLoadMakeBackups(void) { function disklessLoadRestoreBackups (line 1422) | void disklessLoadRestoreBackups(redisDb *backup, int restore, int empty_... function readSyncBulkPayload (line 1445) | void readSyncBulkPayload(connection *conn) { function slaveTryPartialResynchronization (line 1916) | int slaveTryPartialResynchronization(connection *conn, int read_reply) { function syncWithMaster (line 2076) | void syncWithMaster(connection *conn) { function connectWithMaster (line 2370) | int connectWithMaster(void) { function undoConnectWithMaster (line 2391) | void undoConnectWithMaster(void) { function replicationAbortSyncTransfer (line 2399) | void replicationAbortSyncTransfer(void) { function cancelReplicationHandshake (line 2419) | int cancelReplicationHandshake(void) { function replicationSetMaster (line 2435) | void replicationSetMaster(char *ip, int port) { function replicationUnsetMaster (line 2472) | void replicationUnsetMaster(void) { function replicationHandleMasterDisconnection (line 2522) | void replicationHandleMasterDisconnection(void) { function replicaofCommand (line 2537) | void replicaofCommand(client *c) { function roleCommand (line 2595) | void roleCommand(client *c) { function replicationSendAck (line 2651) | void replicationSendAck(void) { function replicationCacheMaster (line 2684) | void replicationCacheMaster(client *c) { function adjustMeaningfulReplOffset (line 2733) | long long adjustMeaningfulReplOffset() { function replicationCacheMasterUsingMyself (line 2766) | void replicationCacheMasterUsingMyself(void) { function replicationDiscardCachedMaster (line 2793) | void replicationDiscardCachedMaster(void) { function replicationResurrectCachedMaster (line 2808) | void replicationResurrectCachedMaster(connection *conn) { function refreshGoodSlavesCount (line 2841) | void refreshGoodSlavesCount(void) { function replicationScriptCacheInit (line 2892) | void replicationScriptCacheInit(void) { function replicationScriptCacheFlush (line 2909) | void replicationScriptCacheFlush(void) { function replicationScriptCacheAdd (line 2917) | void replicationScriptCacheAdd(sds sha1) { function replicationScriptCacheExists (line 2940) | int replicationScriptCacheExists(sds sha1) { function replicationRequestAckFromSlaves (line 2974) | void replicationRequestAckFromSlaves(void) { function replicationCountAcksByOffset (line 2980) | int replicationCountAcksByOffset(long long offset) { function waitCommand (line 2997) | void waitCommand(client *c) { function unblockClientWaitingReplicas (line 3037) | void unblockClientWaitingReplicas(client *c) { function processClientsWaitingReplicas (line 3045) | void processClientsWaitingReplicas(void) { function replicationGetSlaveOffset (line 3080) | long long replicationGetSlaveOffset(void) { function replicationCron (line 3101) | void replicationCron(void) { FILE: Chapter07/redis-6.0.3/src/rio.c function rioBufferWrite (line 61) | static size_t rioBufferWrite(rio *r, const void *buf, size_t len) { function rioBufferRead (line 68) | static size_t rioBufferRead(rio *r, void *buf, size_t len) { function off_t (line 77) | static off_t rioBufferTell(rio *r) { function rioBufferFlush (line 83) | static int rioBufferFlush(rio *r) { function rioInitWithBuffer (line 101) | void rioInitWithBuffer(rio *r, sds s) { function rioFileWrite (line 110) | static size_t rioFileWrite(rio *r, const void *buf, size_t len) { function rioFileRead (line 127) | static size_t rioFileRead(rio *r, void *buf, size_t len) { function off_t (line 132) | static off_t rioFileTell(rio *r) { function rioFileFlush (line 138) | static int rioFileFlush(rio *r) { function rioInitWithFile (line 155) | void rioInitWithFile(rio *r, FILE *fp) { function rioConnWrite (line 168) | static size_t rioConnWrite(rio *r, const void *buf, size_t len) { function rioConnRead (line 176) | static size_t rioConnRead(rio *r, void *buf, size_t len) { function off_t (line 225) | static off_t rioConnTell(rio *r) { function rioConnFlush (line 231) | static int rioConnFlush(rio *r) { function rioInitWithConn (line 252) | void rioInitWithConn(rio *r, connection *conn, size_t read_limit) { function rioFreeConn (line 264) | void rioFreeConn(rio *r, sds *remaining) { function rioFdWrite (line 286) | static size_t rioFdWrite(rio *r, const void *buf, size_t len) { function rioFdRead (line 335) | static size_t rioFdRead(rio *r, void *buf, size_t len) { function off_t (line 343) | static off_t rioFdTell(rio *r) { function rioFdFlush (line 349) | static int rioFdFlush(rio *r) { function rioInitWithFd (line 368) | void rioInitWithFd(rio *r, int fd) { function rioFreeFd (line 376) | void rioFreeFd(rio *r) { function rioGenericUpdateChecksum (line 384) | void rioGenericUpdateChecksum(rio *r, const void *buf, size_t len) { function rioSetAutoSync (line 396) | void rioSetAutoSync(rio *r, off_t bytes) { function rioWriteBulkCount (line 407) | size_t rioWriteBulkCount(rio *r, char prefix, long count) { function rioWriteBulkString (line 420) | size_t rioWriteBulkString(rio *r, const char *buf, size_t len) { function rioWriteBulkLongLong (line 430) | size_t rioWriteBulkLongLong(rio *r, long long l) { function rioWriteBulkDouble (line 439) | size_t rioWriteBulkDouble(rio *r, double d) { FILE: Chapter07/redis-6.0.3/src/rio.h type _rio (line 43) | struct _rio { type rio (line 97) | typedef struct _rio rio; function rioWrite (line 103) | static inline size_t rioWrite(rio *r, const void *buf, size_t len) { function rioRead (line 119) | static inline size_t rioRead(rio *r, void *buf, size_t len) { function off_t (line 135) | static inline off_t rioTell(rio *r) { function rioFlush (line 139) | static inline int rioFlush(rio *r) { function rioGetReadError (line 146) | static inline int rioGetReadError(rio *r) { function rioGetWriteError (line 151) | static inline int rioGetWriteError(rio *r) { function rioClearErrors (line 155) | static inline void rioClearErrors(rio *r) { type redisObject (line 172) | struct redisObject type redisObject (line 173) | struct redisObject FILE: Chapter07/redis-6.0.3/src/scripting.c type ldbState (line 63) | struct ldbState { function sha1hex (line 92) | void sha1hex(char *digest, char *script, size_t len) { function luaPushError (line 270) | void luaPushError(lua_State *lua, char *error) { function luaRaiseError (line 298) | int luaRaiseError(lua_State *lua) { function luaSortArray (line 310) | void luaSortArray(lua_State *lua) { function luaReplyToRedisReply (line 341) | void luaReplyToRedisReply(client *c, lua_State *lua) { function luaRedisGenericCommand (line 475) | int luaRedisGenericCommand(lua_State *lua, int raise_error) { function luaRedisCallCommand (line 809) | int luaRedisCallCommand(lua_State *lua) { function luaRedisPCallCommand (line 814) | int luaRedisPCallCommand(lua_State *lua) { function luaRedisSha1hexCommand (line 820) | int luaRedisSha1hexCommand(lua_State *lua) { function luaRedisReturnSingleFieldTable (line 844) | int luaRedisReturnSingleFieldTable(lua_State *lua, char *field) { function luaRedisErrorReplyCommand (line 858) | int luaRedisErrorReplyCommand(lua_State *lua) { function luaRedisStatusReplyCommand (line 863) | int luaRedisStatusReplyCommand(lua_State *lua) { function luaRedisReplicateCommandsCommand (line 873) | int luaRedisReplicateCommandsCommand(lua_State *lua) { function luaRedisBreakpointCommand (line 892) | int luaRedisBreakpointCommand(lua_State *lua) { function luaRedisDebugCommand (line 907) | int luaRedisDebugCommand(lua_State *lua) { function luaRedisSetReplCommand (line 923) | int luaRedisSetReplCommand(lua_State *lua) { function luaLogCommand (line 945) | int luaLogCommand(lua_State *lua) { function luaSetResp (line 982) | int luaSetResp(lua_State *lua) { function luaLoadLib (line 1004) | void luaLoadLib(lua_State *lua, const char *libname, lua_CFunction luafu... function luaLoadLibraries (line 1015) | void luaLoadLibraries(lua_State *lua) { function luaRemoveUnsupportedFunctions (line 1034) | void luaRemoveUnsupportedFunctions(lua_State *lua) { function scriptingEnableGlobalsProtection (line 1046) | void scriptingEnableGlobalsProtection(lua_State *lua) { function scriptingInit (line 1090) | void scriptingInit(int setup) { function scriptingRelease (line 1270) | void scriptingRelease(void) { function scriptingReset (line 1276) | void scriptingReset(void) { function luaSetGlobalArray (line 1283) | void luaSetGlobalArray(lua_State *lua, char *var, robj **elev, int elec) { function redis_math_random (line 1304) | int redis_math_random (lua_State *L) { function redis_math_randomseed (line 1332) | int redis_math_randomseed (lua_State *L) { function sds (line 1358) | sds luaCreateFunction(client *c, lua_State *lua, robj *body) { function luaMaskCountHook (line 1413) | void luaMaskCountHook(lua_State *lua, lua_Debug *ar) { function prepareLuaClient (line 1442) | void prepareLuaClient(void) { function resetLuaClient (line 1453) | void resetLuaClient(void) { function evalGenericCommand (line 1458) | void evalGenericCommand(client *c, int evalsha) { function evalCommand (line 1663) | void evalCommand(client *c) { function evalShaCommand (line 1670) | void evalShaCommand(client *c) { function scriptCommand (line 1687) | void scriptCommand(client *c) { function ldbInit (line 1758) | void ldbInit(void) { function ldbFlushLog (line 1770) | void ldbFlushLog(list *log) { function ldbEnable (line 1778) | void ldbEnable(client *c) { function ldbDisable (line 1794) | void ldbDisable(client *c) { function ldbLog (line 1799) | void ldbLog(sds entry) { function ldbLogWithMaxLen (line 1807) | void ldbLogWithMaxLen(sds entry) { function ldbSendLogs (line 1825) | void ldbSendLogs(void) { function ldbStartSession (line 1856) | int ldbStartSession(client *c) { function ldbEndSession (line 1909) | void ldbEndSession(client *c) { function ldbRemoveChild (line 1941) | int ldbRemoveChild(pid_t pid) { function ldbPendingChildren (line 1952) | int ldbPendingChildren(void) { function ldbKillForkedSessions (line 1957) | void ldbKillForkedSessions(void) { function evalGenericCommandWithDebugging (line 1973) | void evalGenericCommandWithDebugging(client *c, int evalsha) { function ldbIsBreakpoint (line 1991) | int ldbIsBreakpoint(int line) { function ldbAddBreakpoint (line 2002) | int ldbAddBreakpoint(int line) { function ldbDelBreakpoint (line 2013) | int ldbDelBreakpoint(int line) { function sds (line 2029) | sds *ldbReplParseCommand(int *argcp) { function ldbLogSourceLine (line 2076) | void ldbLogSourceLine(int lnum) { function ldbList (line 2099) | void ldbList(int around, int context) { function sds (line 2116) | sds ldbCatStackValueRec(sds s, lua_State *lua, int idx, int level) { function sds (line 2201) | sds ldbCatStackValue(sds s, lua_State *lua, int idx) { function ldbLogStackValue (line 2208) | void ldbLogStackValue(lua_State *lua, char *prefix) { function ldbLogRedisReply (line 2355) | void ldbLogRedisReply(char *reply) { function ldbPrint (line 2364) | void ldbPrint(lua_State *lua, char *varname) { function ldbPrintAll (line 2396) | void ldbPrintAll(lua_State *lua) { function ldbBreak (line 2421) | void ldbBreak(sds *argv, int argc) { function ldbEval (line 2465) | void ldbEval(lua_State *lua, sds *argv, int argc) { function ldbRedis (line 2499) | void ldbRedis(lua_State *lua, sds *argv, int argc) { function ldbTrace (line 2517) | void ldbTrace(lua_State *lua) { function ldbMaxlen (line 2538) | void ldbMaxlen(sds *argv, int argc) { function ldbRepl (line 2555) | int ldbRepl(lua_State *lua) { function luaLdbLineHook (line 2672) | void luaLdbLineHook(lua_State *lua, lua_Debug *ar) { FILE: Chapter07/redis-6.0.3/src/sds.c function sdsHdrSize (line 44) | static inline int sdsHdrSize(char type) { function sdsReqType (line 60) | static inline char sdsReqType(size_t string_size) { function sds (line 89) | sds sdsnewlen(const void *init, size_t initlen) { function sds (line 149) | sds sdsempty(void) { function sds (line 154) | sds sdsnew(const char *init) { function sds (line 160) | sds sdsdup(const sds s) { function sdsfree (line 165) | void sdsfree(sds s) { function sdsupdatelen (line 184) | void sdsupdatelen(sds s) { function sdsclear (line 193) | void sdsclear(sds s) { function sds (line 204) | sds sdsMakeRoomFor(sds s, size_t addlen) { function sds (line 255) | sds sdsRemoveFreeSpace(sds s) { function sdsAllocSize (line 299) | size_t sdsAllocSize(sds s) { function sdsIncrLen (line 333) | void sdsIncrLen(sds s, ssize_t incr) { function sds (line 379) | sds sdsgrowzero(sds s, size_t len) { function sds (line 397) | sds sdscatlen(sds s, const void *t, size_t len) { function sds (line 412) | sds sdscat(sds s, const char *t) { function sds (line 420) | sds sdscatsds(sds s, const sds t) { function sds (line 426) | sds sdscpylen(sds s, const char *t, size_t len) { function sds (line 439) | sds sdscpy(sds s, const char *t) { function sdsll2str (line 450) | int sdsll2str(char *s, long long value) { function sdsull2str (line 482) | int sdsull2str(char *s, unsigned long long v) { function sds (line 514) | sds sdsfromlonglong(long long value) { function sds (line 522) | sds sdscatvprintf(sds s, const char *fmt, va_list ap) { function sds (line 575) | sds sdscatprintf(sds s, const char *fmt, ...) { function sds (line 600) | sds sdscatfmt(sds s, char const *fmt, ...) { function sds (line 708) | sds sdstrim(sds s, const char *cset) { function sdsrange (line 739) | void sdsrange(sds s, ssize_t start, ssize_t end) { function sdstolower (line 768) | void sdstolower(sds s) { function sdstoupper (line 775) | void sdstoupper(sds s) { function sdscmp (line 792) | int sdscmp(const sds s1, const sds s2) { function sds (line 820) | sds *sdssplitlen(const char *s, ssize_t len, const char *sep, int seplen... function sdsfreesplitres (line 871) | void sdsfreesplitres(sds *tokens, int count) { function sds (line 884) | sds sdscatrepr(sds s, const char *p, size_t len) { function is_hex_digit (line 911) | int is_hex_digit(char c) { function hex_digit_to_int (line 918) | int hex_digit_to_int(char c) { function sds (line 959) | sds *sdssplitargs(const char *line, int *argc) { function sds (line 1078) | sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen) { function sds (line 1094) | sds sdsjoin(char **argv, int argc, char *sep) { function sds (line 1106) | sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen) { function sds_free (line 1124) | void sds_free(void *ptr) { s_free(ptr); } function sdsTest (line 1132) | int sdsTest(void) { function main (line 1297) | int main(void) { FILE: Chapter07/redis-6.0.3/src/sds.h type sdshdr5 (line 47) | struct __attribute__ ((__packed__)) sdshdr5 { type sdshdr8 (line 51) | struct __attribute__ ((__packed__)) sdshdr8 { type sdshdr16 (line 57) | struct __attribute__ ((__packed__)) sdshdr16 { type sdshdr32 (line 63) | struct __attribute__ ((__packed__)) sdshdr32 { type sdshdr64 (line 69) | struct __attribute__ ((__packed__)) sdshdr64 { function sdslen (line 87) | static inline size_t sdslen(const sds s) { function sdsavail (line 104) | static inline size_t sdsavail(const sds s) { function sdssetlen (line 130) | static inline void sdssetlen(sds s, size_t newlen) { function sdsinclen (line 154) | static inline void sdsinclen(sds s, size_t inc) { function sdsalloc (line 180) | static inline size_t sdsalloc(const sds s) { function sdssetalloc (line 197) | static inline void sdssetalloc(sds s, size_t newlen) { FILE: Chapter07/redis-6.0.3/src/sentinel.c type sentinelAddr (line 56) | typedef struct sentinelAddr { type instanceLink (line 145) | typedef struct instanceLink { type sentinelRedisInstance (line 172) | typedef struct sentinelRedisInstance { type sentinelState (line 242) | struct sentinelState { type sentinelScriptJob (line 263) | typedef struct sentinelScriptJob { type redisAeEvents (line 280) | typedef struct redisAeEvents { function redisAeReadEvent (line 287) | static void redisAeReadEvent(aeEventLoop *el, int fd, void *privdata, in... function redisAeWriteEvent (line 294) | static void redisAeWriteEvent(aeEventLoop *el, int fd, void *privdata, i... function redisAeAddRead (line 301) | static void redisAeAddRead(void *privdata) { function redisAeDelRead (line 310) | static void redisAeDelRead(void *privdata) { function redisAeAddWrite (line 319) | static void redisAeAddWrite(void *privdata) { function redisAeDelWrite (line 328) | static void redisAeDelWrite(void *privdata) { function redisAeCleanup (line 337) | static void redisAeCleanup(void *privdata) { function redisAeAttach (line 344) | static int redisAeAttach(aeEventLoop *loop, redisAsyncContext *ac) { function dictInstancesValDestructor (line 404) | void dictInstancesValDestructor (void *privdata, void *obj) { type redisCommand (line 453) | struct redisCommand function initSentinelConfig (line 471) | void initSentinelConfig(void) { function initSentinel (line 477) | void initSentinel(void) { function sentinelIsRunning (line 513) | void sentinelIsRunning(void) { function sentinelAddr (line 554) | sentinelAddr *createSentinelAddr(char *hostname, int port) { function sentinelAddr (line 573) | sentinelAddr *dupSentinelAddr(sentinelAddr *src) { function releaseSentinelAddr (line 583) | void releaseSentinelAddr(sentinelAddr *sa) { function sentinelAddrIsEqual (line 589) | int sentinelAddrIsEqual(sentinelAddr *a, sentinelAddr *b) { function sentinelEvent (line 619) | void sentinelEvent(int level, char *type, sentinelRedisInstance *ri, function sentinelGenerateInitialMonitorEvents (line 680) | void sentinelGenerateInitialMonitorEvents(void) { function sentinelReleaseScriptJob (line 695) | void sentinelReleaseScriptJob(sentinelScriptJob *sj) { function sentinelScheduleScriptExecution (line 704) | void sentinelScheduleScriptExecution(char *path, ...) { function listNode (line 752) | listNode *sentinelGetScriptListNodeByPid(pid_t pid) { function sentinelRunPendingScripts (line 768) | void sentinelRunPendingScripts(void) { function mstime_t (line 821) | mstime_t sentinelScriptRetryDelay(int retry_num) { function sentinelCollectTerminatedScripts (line 832) | void sentinelCollectTerminatedScripts(void) { function sentinelKillTimedoutScripts (line 879) | void sentinelKillTimedoutScripts(void) { function sentinelPendingScriptsCommand (line 899) | void sentinelPendingScriptsCommand(client *c) { function sentinelCallClientReconfScript (line 951) | void sentinelCallClientReconfScript(sentinelRedisInstance *master, int r... function instanceLink (line 966) | instanceLink *createInstanceLink(void) { function instanceLinkCloseConnection (line 990) | void instanceLinkCloseConnection(instanceLink *link, redisAsyncContext *... function instanceLink (line 1011) | instanceLink *releaseInstanceLink(instanceLink *link, sentinelRedisInsta... function sentinelTryConnectionSharing (line 1055) | int sentinelTryConnectionSharing(sentinelRedisInstance *ri) { function sentinelUpdateSentinelAddressInAllMasters (line 1091) | int sentinelUpdateSentinelAddressInAllMasters(sentinelRedisInstance *ri) { function instanceLinkConnectionError (line 1133) | void instanceLinkConnectionError(const redisAsyncContext *c) { function sentinelLinkEstablishedCallback (line 1149) | void sentinelLinkEstablishedCallback(const redisAsyncContext *c, int sta... function sentinelDisconnectCallback (line 1153) | void sentinelDisconnectCallback(const redisAsyncContext *c, int status) { function sentinelRedisInstance (line 1182) | sentinelRedisInstance *createSentinelRedisInstance(char *name, int flags... function releaseSentinelRedisInstance (line 1278) | void releaseSentinelRedisInstance(sentinelRedisInstance *ri) { function sentinelRedisInstance (line 1307) | sentinelRedisInstance *sentinelRedisInstanceLookupSlave( function removeMatchingSentinelFromMaster (line 1341) | int removeMatchingSentinelFromMaster(sentinelRedisInstance *master, char... function sentinelRedisInstance (line 1367) | sentinelRedisInstance *getSentinelRedisInstanceByAddrAndRunID(dict *inst... function sentinelRedisInstance (line 1391) | sentinelRedisInstance *sentinelGetMasterByName(char *name) { function sentinelAddFlagsToDictOfRedisInstances (line 1401) | void sentinelAddFlagsToDictOfRedisInstances(dict *instances, int flags) { function sentinelDelFlagsToDictOfRedisInstances (line 1415) | void sentinelDelFlagsToDictOfRedisInstances(dict *instances, int flags) { function sentinelResetMaster (line 1439) | void sentinelResetMaster(sentinelRedisInstance *ri, int flags) { function sentinelResetMastersByPattern (line 1474) | int sentinelResetMastersByPattern(char *pattern, int flags) { function sentinelResetMasterAndChangeAddress (line 1501) | int sentinelResetMasterAndChangeAddress(sentinelRedisInstance *master, c... function sentinelRedisInstanceNoDownFor (line 1560) | int sentinelRedisInstanceNoDownFor(sentinelRedisInstance *ri, mstime_t m... function sentinelAddr (line 1571) | sentinelAddr *sentinelGetCurrentMasterAddress(sentinelRedisInstance *mas... function sentinelPropagateDownAfterPeriod (line 1589) | void sentinelPropagateDownAfterPeriod(sentinelRedisInstance *master) { function rewriteConfigSentinelOption (line 1778) | void rewriteConfigSentinelOption(struct rewriteConfigState *state) { function sentinelFlushConfig (line 1950) | void sentinelFlushConfig(void) { function sentinelSendAuthIfNeeded (line 1984) | void sentinelSendAuthIfNeeded(sentinelRedisInstance *ri, redisAsyncConte... function sentinelSetClientName (line 2018) | void sentinelSetClientName(sentinelRedisInstance *ri, redisAsyncContext ... function instanceLinkNegotiateTLS (line 2031) | static int instanceLinkNegotiateTLS(redisAsyncContext *context) { function sentinelReconnectInstance (line 2047) | void sentinelReconnectInstance(sentinelRedisInstance *ri) { function sentinelMasterLooksSane (line 2131) | int sentinelMasterLooksSane(sentinelRedisInstance *master) { function sentinelRefreshInstanceInfo (line 2140) | void sentinelRefreshInstanceInfo(sentinelRedisInstance *ri, const char *... function sentinelInfoReplyCallback (line 2392) | void sentinelInfoReplyCallback(redisAsyncContext *c, void *reply, void *... function sentinelDiscardReplyCallback (line 2407) | void sentinelDiscardReplyCallback(redisAsyncContext *c, void *reply, voi... function sentinelPingReplyCallback (line 2415) | void sentinelPingReplyCallback(redisAsyncContext *c, void *reply, void *... function sentinelPublishReplyCallback (line 2457) | void sentinelPublishReplyCallback(redisAsyncContext *c, void *reply, voi... function sentinelProcessHelloMessage (line 2477) | void sentinelProcessHelloMessage(char *hello, int hello_len) { function sentinelReceiveHelloMessages (line 2581) | void sentinelReceiveHelloMessages(redisAsyncContext *c, void *reply, voi... function sentinelSendHello (line 2620) | int sentinelSendHello(sentinelRedisInstance *ri) { function sentinelForceHelloUpdateDictOfRedisInstances (line 2664) | void sentinelForceHelloUpdateDictOfRedisInstances(dict *instances) { function sentinelForceHelloUpdateForMaster (line 2685) | int sentinelForceHelloUpdateForMaster(sentinelRedisInstance *master) { function sentinelSendPing (line 2699) | int sentinelSendPing(sentinelRedisInstance *ri) { function sentinelSendPeriodicCommands (line 2719) | void sentinelSendPeriodicCommands(sentinelRedisInstance *ri) { function addReplySentinelRedisInstance (line 2799) | void addReplySentinelRedisInstance(client *c, sentinelRedisInstance *ri) { function addReplyDictOfRedisInstances (line 2990) | void addReplyDictOfRedisInstances(client *c, dict *instances) { function sentinelRedisInstance (line 3007) | sentinelRedisInstance *sentinelGetMasterByNameOrReplyError(client *c, function sentinelIsQuorumReachable (line 3023) | int sentinelIsQuorumReachable(sentinelRedisInstance *master, int *usable... function sentinelCommand (line 3045) | void sentinelCommand(client *c) { function sentinelInfoCommand (line 3376) | void sentinelInfoCommand(client *c) { function sentinelRoleCommand (line 3441) | void sentinelRoleCommand(client *c) { function sentinelSetCommand (line 3459) | void sentinelSetCommand(client *c) { function sentinelPublishCommand (line 3627) | void sentinelPublishCommand(client *c) { function sentinelCheckSubjectivelyDown (line 3639) | void sentinelCheckSubjectivelyDown(sentinelRedisInstance *ri) { function sentinelCheckObjectivelyDown (line 3711) | void sentinelCheckObjectivelyDown(sentinelRedisInstance *master) { function sentinelReceiveIsMasterDownReply (line 3748) | void sentinelReceiveIsMasterDownReply(redisAsyncContext *c, void *reply,... function sentinelAskMasterStateToOtherSentinels (line 3791) | void sentinelAskMasterStateToOtherSentinels(sentinelRedisInstance *maste... function sentinelSimFailureCrash (line 3838) | void sentinelSimFailureCrash(void) { type sentinelLeader (line 3876) | struct sentinelLeader { function sentinelLeaderIncr (line 3883) | int sentinelLeaderIncr(dict *counters, char *runid) { function sentinelSendSlaveOf (line 3980) | int sentinelSendSlaveOf(sentinelRedisInstance *ri, char *host, int port) { function sentinelStartFailover (line 4046) | void sentinelStartFailover(sentinelRedisInstance *master) { function sentinelStartFailoverIfNeeded (line 4070) | int sentinelStartFailoverIfNeeded(sentinelRedisInstance *master) { function compareSlavesForPromotion (line 4132) | int compareSlavesForPromotion(const void *a, const void *b) { function sentinelRedisInstance (line 4160) | sentinelRedisInstance *sentinelSelectSlave(sentinelRedisInstance *master) { function sentinelFailoverWaitStart (line 4205) | void sentinelFailoverWaitStart(sentinelRedisInstance *ri) { function sentinelFailoverSelectSlave (line 4238) | void sentinelFailoverSelectSlave(sentinelRedisInstance *ri) { function sentinelFailoverSendSlaveOfNoOne (line 4257) | void sentinelFailoverSendSlaveOfNoOne(sentinelRedisInstance *ri) { function sentinelFailoverWaitPromotion (line 4285) | void sentinelFailoverWaitPromotion(sentinelRedisInstance *ri) { function sentinelFailoverDetectEnd (line 4294) | void sentinelFailoverDetectEnd(sentinelRedisInstance *master) { function sentinelFailoverReconfNextSlave (line 4359) | void sentinelFailoverReconfNextSlave(sentinelRedisInstance *master) { function sentinelFailoverSwitchToPromotedSlave (line 4421) | void sentinelFailoverSwitchToPromotedSlave(sentinelRedisInstance *master) { function sentinelFailoverStateMachine (line 4432) | void sentinelFailoverStateMachine(sentinelRedisInstance *ri) { function sentinelAbortFailover (line 4461) | void sentinelAbortFailover(sentinelRedisInstance *ri) { function sentinelHandleRedisInstance (line 4480) | void sentinelHandleRedisInstance(sentinelRedisInstance *ri) { function sentinelHandleDictOfRedisInstances (line 4516) | void sentinelHandleDictOfRedisInstances(dict *instances) { function sentinelCheckTiltCondition (line 4559) | void sentinelCheckTiltCondition(void) { function sentinelTimer (line 4571) | void sentinelTimer(void) { FILE: Chapter07/redis-6.0.3/src/server.c type sharedObjectsStruct (line 61) | struct sharedObjectsStruct type redisServer (line 72) | struct redisServer type redisCommand (line 182) | struct redisCommand type tm (line 1018) | struct tm function serverLogRaw (line 1022) | void serverLogRaw(int level, const char *msg) { function serverLog (line 1068) | void serverLog(int level, const char *fmt, ...) { function serverLogFromHandler (line 1087) | void serverLogFromHandler(int level, const char *msg) { function ustime (line 1110) | long long ustime(void) { function mstime_t (line 1121) | mstime_t mstime(void) { function exitFromChild (line 1129) | void exitFromChild(int retcode) { function dictVanillaFree (line 1143) | void dictVanillaFree(void *privdata, void *val) function dictListDestructor (line 1149) | void dictListDestructor(void *privdata, void *val) function dictSdsKeyCompare (line 1155) | int dictSdsKeyCompare(void *privdata, const void *key1, function dictSdsKeyCaseCompare (line 1169) | int dictSdsKeyCaseCompare(void *privdata, const void *key1, function dictObjectDestructor (line 1177) | void dictObjectDestructor(void *privdata, void *val) function dictSdsDestructor (line 1185) | void dictSdsDestructor(void *privdata, void *val) function dictObjKeyCompare (line 1192) | int dictObjKeyCompare(void *privdata, const void *key1, function dictObjHash (line 1199) | uint64_t dictObjHash(const void *key) { function dictSdsHash (line 1204) | uint64_t dictSdsHash(const void *key) { function dictSdsCaseHash (line 1208) | uint64_t dictSdsCaseHash(const void *key) { function dictEncObjKeyCompare (line 1212) | int dictEncObjKeyCompare(void *privdata, const void *key1, function dictEncObjHash (line 1234) | uint64_t dictEncObjHash(const void *key) { function htNeedsResize (line 1418) | int htNeedsResize(dict *dict) { function tryResizeHashTables (line 1429) | void tryResizeHashTables(int dbid) { function incrementallyRehash (line 1443) | int incrementallyRehash(int dbid) { function updateDictResizePolicy (line 1463) | void updateDictResizePolicy(void) { function hasActiveChildProcess (line 1472) | int hasActiveChildProcess() { function allPersistenceDisabled (line 1480) | int allPersistenceDisabled(void) { function trackInstantaneousMetric (line 1487) | void trackInstantaneousMetric(int metric, long long current_reading) { function getInstantaneousMetric (line 1504) | long long getInstantaneousMetric(int metric) { function clientsCronResizeQueryBuffer (line 1517) | int clientsCronResizeQueryBuffer(client *c) { function clientsCronTrackExpansiveClients (line 1573) | int clientsCronTrackExpansiveClients(client *c) { function clientsCronTrackClientsMemUsage (line 1605) | int clientsCronTrackClientsMemUsage(client *c) { function getExpansiveClientsInfo (line 1624) | void getExpansiveClientsInfo(size_t *in_usage, size_t *out_usage) { function clientsCron (line 1650) | void clientsCron(void) { function databasesCron (line 1689) | void databasesCron(void) { function updateCachedTime (line 1752) | void updateCachedTime(int update_daylight_info) { function checkChildrenDone (line 1770) | void checkChildrenDone(void) { function serverCron (line 1845) | int serverCron(struct aeEventLoop *eventLoop, long long id, void *client... function beforeSleep (line 2106) | void beforeSleep(struct aeEventLoop *eventLoop) { function afterSleep (line 2200) | void afterSleep(struct aeEventLoop *eventLoop) { function createSharedObjects (line 2210) | void createSharedObjects(void) { function initServerConfig (line 2325) | void initServerConfig(void) { function restartServer (line 2470) | int restartServer(int flags, mstime_t delay) { function adjustOpenFilesLimit (line 2527) | void adjustOpenFilesLimit(void) { function checkTcpBacklogSettings (line 2604) | void checkTcpBacklogSettings(void) { function listenToPort (line 2637) | int listenToPort(int port, int *fds, int *count) { function resetServerStats (line 2703) | void resetServerStats(void) { function initServer (line 2739) | void initServer(void) { function InitServerLast (line 2952) | void InitServerLast() { function populateCommandTableParseFlags (line 2962) | int populateCommandTableParseFlags(struct redisCommand *c, char *strflag... function populateCommandTable (line 3024) | void populateCommandTable(void) { function resetCommandTableStats (line 3046) | void resetCommandTableStats(void) { function redisOpArrayInit (line 3063) | void redisOpArrayInit(redisOpArray *oa) { function redisOpArrayAppend (line 3068) | int redisOpArrayAppend(redisOpArray *oa, struct redisCommand *cmd, int d... function redisOpArrayFree (line 3084) | void redisOpArrayFree(redisOpArray *oa) { type redisCommand (line 3100) | struct redisCommand type redisCommand (line 3104) | struct redisCommand type redisCommand (line 3105) | struct redisCommand type redisCommand (line 3120) | struct redisCommand type redisCommand (line 3121) | struct redisCommand function propagate (line 3143) | void propagate(struct redisCommand *cmd, int dbid, robj **argv, int argc, function alsoPropagate (line 3164) | void alsoPropagate(struct redisCommand *cmd, int dbid, robj **argv, int ... function forceCommandPropagation (line 3183) | void forceCommandPropagation(client *c, int flags) { function preventCommandPropagation (line 3191) | void preventCommandPropagation(client *c) { function preventCommandAOF (line 3196) | void preventCommandAOF(client *c) { function preventCommandReplication (line 3201) | void preventCommandReplication(client *c) { function call (line 3242) | void call(client *c, int flags) { function processCommand (line 3410) | int processCommand(client *c) { function closeListeningSockets (line 3663) | void closeListeningSockets(int unlink_unix_socket) { function prepareForShutdown (line 3677) | int prepareForShutdown(int flags) { function writeCommandsDeniedByDiskError (line 3776) | int writeCommandsDeniedByDiskError(void) { function pingCommand (line 3793) | void pingCommand(client *c) { function echoCommand (line 3816) | void echoCommand(client *c) { function timeCommand (line 3820) | void timeCommand(client *c) { function addReplyCommandFlag (line 3832) | int addReplyCommandFlag(client *c, struct redisCommand *cmd, int f, char... function addReplyCommand (line 3841) | void addReplyCommand(client *c, struct redisCommand *cmd) { function commandCommand (line 3884) | void commandCommand(client *c) { function bytesToHuman (line 3944) | void bytesToHuman(char *s, unsigned long long n) { function sds (line 3974) | sds genRedisInfoString(const char *section) { function infoCommand (line 4572) | void infoCommand(client *c) { function monitorCommand (line 4584) | void monitorCommand(client *c) { function linuxOvercommitMemoryValue (line 4596) | int linuxOvercommitMemoryValue(void) { function linuxMemoryWarnings (line 4610) | void linuxMemoryWarnings(void) { function createPidFile (line 4620) | void createPidFile(void) { function daemonize (line 4633) | void daemonize(void) { function version (line 4650) | void version(void) { function usage (line 4661) | void usage(void) { function redisAsciiArt (line 4678) | void redisAsciiArt(void) { function sigShutdownHandler (line 4714) | static void sigShutdownHandler(int sig) { function setupSignalHandlers (line 4745) | void setupSignalHandlers(void) { function sigKillChildHandler (line 4772) | static void sigKillChildHandler(int sig) { function setupChildSignalHandlers (line 4778) | void setupChildSignalHandlers(void) { function redisFork (line 4790) | int redisFork() { function sendChildCOWInfo (line 4810) | void sendChildCOWInfo(int ptype, char *pname) { function checkForSentinelMode (line 4827) | int checkForSentinelMode(int argc, char **argv) { function loadDataFromDisk (line 4837) | void loadDataFromDisk(void) { function redisOutOfMemoryHandler (line 4875) | void redisOutOfMemoryHandler(size_t allocation_size) { function redisSetProcTitle (line 4881) | void redisSetProcTitle(char *title) { function redisSetCpuAffinity (line 4897) | void redisSetCpuAffinity(const char *cpulist) { function redisSupervisedUpstart (line 4909) | int redisSupervisedUpstart(void) { function redisCommunicateSystemd (line 4924) | int redisCommunicateSystemd(const char *sd_notify_msg) { function redisIsSupervised (line 4939) | int redisIsSupervised(int mode) { function iAmMaster (line 4963) | int iAmMaster(void) { function main (line 4969) | int main(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/src/server.h type mstime_t (line 57) | typedef long long mstime_t; type ustime_t (line 58) | typedef long long ustime_t; type RedisModule (line 481) | struct RedisModule type RedisModuleIO (line 482) | struct RedisModuleIO type RedisModuleDigest (line 483) | struct RedisModuleDigest type RedisModuleCtx (line 484) | struct RedisModuleCtx type redisObject (line 485) | struct redisObject type RedisModuleIO (line 491) | struct RedisModuleIO type RedisModuleIO (line 492) | struct RedisModuleIO type RedisModuleIO (line 493) | struct RedisModuleIO type RedisModuleIO (line 494) | struct RedisModuleIO type RedisModuleIO (line 495) | struct RedisModuleIO type redisObject (line 495) | struct redisObject type RedisModuleDigest (line 496) | struct RedisModuleDigest type moduleType (line 507) | typedef struct RedisModuleType { type moduleValue (line 537) | typedef struct moduleValue { type RedisModuleIO (line 545) | typedef struct RedisModuleIO { type RedisModuleDigest (line 573) | typedef struct RedisModuleDigest { type robj (line 606) | typedef struct redisObject { type evictionPoolEntry (line 632) | struct evictionPoolEntry type clientReplyBlock (line 636) | typedef struct clientReplyBlock { type redisDb (line 644) | typedef struct redisDb { type multiCmd (line 657) | typedef struct multiCmd { type multiState (line 663) | typedef struct multiState { type blockingState (line 675) | typedef struct blockingState { type readyList (line 714) | typedef struct readyList { type user (line 736) | typedef struct { type client (line 768) | typedef struct client { type saveparam (line 854) | struct saveparam { type moduleLoadQueueEntry (line 859) | struct moduleLoadQueueEntry { type sharedObjectsStruct (line 865) | struct sharedObjectsStruct { type zskiplistNode (line 883) | typedef struct zskiplistNode { type zskiplist (line 893) | typedef struct zskiplist { type zset (line 899) | typedef struct zset { type clientBufferLimitsConfig (line 904) | typedef struct clientBufferLimitsConfig { type redisOp (line 918) | typedef struct redisOp { type redisOpArray (line 931) | typedef struct redisOpArray { type redisMemOverhead (line 938) | struct redisMemOverhead { type rdbSaveInfo (line 977) | typedef struct rdbSaveInfo { type malloc_stats (line 989) | struct malloc_stats { type redisTLSContextConfig (line 1001) | typedef struct redisTLSContextConfig { type clusterState (line 1017) | struct clusterState type redisServer (line 1030) | struct redisServer { type pubsubPattern (line 1445) | typedef struct pubsubPattern { type redisCommand (line 1451) | struct redisCommand type redisCommand (line 1452) | struct redisCommand { type redisFunctionSym (line 1473) | struct redisFunctionSym { type redisSortObject (line 1478) | typedef struct _redisSortObject { type redisSortOperation (line 1486) | typedef struct _redisSortOperation { type listTypeIterator (line 1492) | typedef struct { type listTypeEntry (line 1500) | typedef struct { type setTypeIterator (line 1506) | typedef struct { type hashTypeIterator (line 1517) | typedef struct { type redisServer (line 1536) | struct redisServer type sharedObjectsStruct (line 1537) | struct sharedObjectsStruct type redisCommand (line 1560) | struct redisCommand type RedisModuleCtx (line 1563) | struct RedisModuleCtx type aeEventLoop (line 1814) | struct aeEventLoop type connection (line 1815) | struct connection type redisCommand (line 1837) | struct redisCommand type redisCommand (line 1883) | struct redisCommand type zrangespec (line 1906) | typedef struct { type zlexrangespec (line 1912) | typedef struct { type redisCommand (line 1959) | struct redisCommand type redisCommand (line 1960) | struct redisCommand type redisCommand (line 1961) | struct redisCommand type redisCommand (line 1963) | struct redisCommand type redisCommand (line 1964) | struct redisCommand type redisMemOverhead (line 1993) | struct redisMemOverhead type redisMemOverhead (line 1994) | struct redisMemOverhead type rewriteConfigState (line 2057) | struct rewriteConfigState type rewriteConfigState (line 2058) | struct rewriteConfigState type redisCommand (line 2119) | struct redisCommand type redisCommand (line 2121) | struct redisCommand type redisCommand (line 2122) | struct redisCommand type redisCommand (line 2123) | struct redisCommand type redisCommand (line 2124) | struct redisCommand type redisCommand (line 2125) | struct redisCommand type redisCommand (line 2126) | struct redisCommand type redisCommand (line 2127) | struct redisCommand type redisCommand (line 2128) | struct redisCommand type redisCommand (line 2425) | struct redisCommand FILE: Chapter07/redis-6.0.3/src/setcpuaffinity.c function next_num (line 55) | static int next_num(const char *str, char **end, int *result) { function setcpuaffinity (line 69) | void setcpuaffinity(const char *cpulist) { FILE: Chapter07/redis-6.0.3/src/setproctitle.c function spt_min (line 74) | static inline size_t spt_min(size_t a, size_t b) { function spt_clearenv (line 83) | static int spt_clearenv(void) { function spt_copyenv (line 103) | static int spt_copyenv(char *oldenv[]) { function spt_copyargs (line 134) | static int spt_copyargs(int argc, char *argv[]) { function spt_init (line 152) | void spt_init(int argc, char *argv[]) { function setproctitle (line 220) | void setproctitle(const char *fmt, ...) { FILE: Chapter07/redis-6.0.3/src/sha1.c function SHA1Transform (line 56) | void SHA1Transform(uint32_t state[5], const unsigned char buffer[64]) function SHA1Init (line 117) | void SHA1Init(SHA1_CTX* context) function SHA1Update (line 131) | void SHA1Update(SHA1_CTX* context, const unsigned char* data, uint32_t len) function SHA1Final (line 155) | void SHA1Final(unsigned char digest[20], SHA1_CTX* context) function sha1Test (line 204) | int sha1Test(int argc, char **argv) FILE: Chapter07/redis-6.0.3/src/sha1.h type SHA1_CTX (line 10) | typedef struct { FILE: Chapter07/redis-6.0.3/src/sha256.c function sha256_transform (line 44) | void sha256_transform(SHA256_CTX *ctx, const BYTE data[]) function sha256_init (line 85) | void sha256_init(SHA256_CTX *ctx) function sha256_update (line 99) | void sha256_update(SHA256_CTX *ctx, const BYTE data[], size_t len) function sha256_final (line 114) | void sha256_final(SHA256_CTX *ctx, BYTE hash[]) FILE: Chapter07/redis-6.0.3/src/sha256.h type BYTE (line 20) | typedef uint8_t BYTE; type WORD (line 21) | typedef uint32_t WORD; type SHA256_CTX (line 23) | typedef struct { FILE: Chapter07/redis-6.0.3/src/siphash.c function siptlw (line 50) | int siptlw(int c) { function siphash (line 116) | uint64_t siphash(const uint8_t *in, const size_t inlen, const uint8_t *k) { function siphash_nocase (line 175) | uint64_t siphash_nocase(const uint8_t *in, const size_t inlen, const uin... function siphash_test (line 314) | int siphash_test(void) { function main (line 351) | int main(void) { FILE: Chapter07/redis-6.0.3/src/slowlog.c function slowlogEntry (line 48) | slowlogEntry *slowlogCreateEntry(client *c, robj **argv, int argc, long ... function slowlogFreeEntry (line 100) | void slowlogFreeEntry(void *septr) { function slowlogInit (line 114) | void slowlogInit(void) { function slowlogPushEntryIfNeeded (line 123) | void slowlogPushEntryIfNeeded(client *c, robj **argv, int argc, long lon... function slowlogReset (line 135) | void slowlogReset(void) { function slowlogCommand (line 142) | void slowlogCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/slowlog.h type slowlogEntry (line 37) | typedef struct slowlogEntry { FILE: Chapter07/redis-6.0.3/src/sort.c function redisSortOperation (line 38) | redisSortOperation *createSortOperation(int type, robj *pattern) { function robj (line 61) | robj *lookupKeyByPattern(redisDb *db, robj *pattern, robj *subst, int wr... function sortCompare (line 141) | int sortCompare(const void *s1, const void *s2) { function sortCommand (line 192) | void sortCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/sparkline.c type sequence (line 57) | struct sequence type sequence (line 58) | struct sequence function sparklineSequenceAddSample (line 65) | void sparklineSequenceAddSample(struct sequence *seq, double value, char... function freeSparklineSequence (line 81) | void freeSparklineSequence(struct sequence *seq) { function sds (line 97) | sds sparklineRenderRange(sds output, struct sequence *seq, int rows, int... function sds (line 165) | sds sparklineRender(sds output, struct sequence *seq, int columns, int r... FILE: Chapter07/redis-6.0.3/src/sparkline.h type sample (line 34) | struct sample { type sequence (line 39) | struct sequence { type sequence (line 50) | struct sequence type sequence (line 51) | struct sequence type sequence (line 52) | struct sequence type sequence (line 53) | struct sequence type sequence (line 54) | struct sequence FILE: Chapter07/redis-6.0.3/src/stream.h type streamID (line 11) | typedef struct streamID { type stream (line 16) | typedef struct stream { type streamIterator (line 29) | typedef struct streamIterator { type streamCG (line 51) | typedef struct streamCG { type streamConsumer (line 67) | typedef struct streamConsumer { type streamNACK (line 82) | typedef struct streamNACK { type streamPropInfo (line 91) | typedef struct streamPropInfo { type client (line 97) | struct client FILE: Chapter07/redis-6.0.3/src/syncio.c function syncWrite (line 49) | ssize_t syncWrite(int fd, char *ptr, ssize_t size, long long timeout) { function syncRead (line 85) | ssize_t syncRead(int fd, char *ptr, ssize_t size, long long timeout) { function syncReadLine (line 125) | ssize_t syncReadLine(int fd, char *ptr, ssize_t size, long long timeout) { FILE: Chapter07/redis-6.0.3/src/t_hash.c function hashTypeTryConversion (line 40) | void hashTypeTryConversion(robj *o, robj **argv, int start, int end) { function hashTypeGetFromZiplist (line 57) | int hashTypeGetFromZiplist(robj *o, sds field, function sds (line 90) | sds hashTypeGetFromHashTable(robj *o, sds field) { function hashTypeGetValue (line 109) | int hashTypeGetValue(robj *o, sds field, unsigned char **vstr, unsigned ... function robj (line 131) | robj *hashTypeGetValueObject(robj *o, sds field) { function hashTypeGetValueLength (line 144) | size_t hashTypeGetValueLength(robj *o, sds field) { function hashTypeExists (line 166) | int hashTypeExists(robj *o, sds field) { function hashTypeSet (line 202) | int hashTypeSet(robj *o, sds field, sds value, int flags) { function hashTypeDelete (line 279) | int hashTypeDelete(robj *o, sds field) { function hashTypeLength (line 311) | unsigned long hashTypeLength(const robj *o) { function hashTypeIterator (line 324) | hashTypeIterator *hashTypeInitIterator(robj *subject) { function hashTypeReleaseIterator (line 340) | void hashTypeReleaseIterator(hashTypeIterator *hi) { function hashTypeNext (line 348) | int hashTypeNext(hashTypeIterator *hi) { function hashTypeCurrentFromZiplist (line 385) | void hashTypeCurrentFromZiplist(hashTypeIterator *hi, int what, function sds (line 406) | sds hashTypeCurrentFromHashTable(hashTypeIterator *hi, int what) { function hashTypeCurrentObject (line 426) | void hashTypeCurrentObject(hashTypeIterator *hi, int what, unsigned char... function sds (line 441) | sds hashTypeCurrentObjectNewSds(hashTypeIterator *hi, int what) { function robj (line 451) | robj *hashTypeLookupWriteOrCreate(client *c, robj *key) { function hashTypeConvertZiplist (line 465) | void hashTypeConvertZiplist(robj *o, int enc) { function hashTypeConvert (line 500) | void hashTypeConvert(robj *o, int enc) { function hsetnxCommand (line 514) | void hsetnxCommand(client *c) { function hsetCommand (line 530) | void hsetCommand(client *c) { function hincrbyCommand (line 559) | void hincrbyCommand(client *c) { function hincrbyfloatCommand (line 594) | void hincrbyfloatCommand(client *c) { function addHashFieldToReply (line 644) | static void addHashFieldToReply(client *c, robj *o, sds field) { function hgetCommand (line 679) | void hgetCommand(client *c) { function hmgetCommand (line 688) | void hmgetCommand(client *c) { function hdelCommand (line 706) | void hdelCommand(client *c) { function hlenCommand (line 734) | void hlenCommand(client *c) { function hstrlenCommand (line 743) | void hstrlenCommand(client *c) { function addHashIteratorCursorToReply (line 751) | static void addHashIteratorCursorToReply(client *c, hashTypeIterator *hi... function genericHgetallCommand (line 770) | void genericHgetallCommand(client *c, int flags) { function hkeysCommand (line 806) | void hkeysCommand(client *c) { function hvalsCommand (line 810) | void hvalsCommand(client *c) { function hgetallCommand (line 814) | void hgetallCommand(client *c) { function hexistsCommand (line 818) | void hexistsCommand(client *c) { function hscanCommand (line 826) | void hscanCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/t_list.c function listTypePush (line 41) | void listTypePush(robj *subject, robj *value, int where) { function robj (line 57) | robj *listTypePop(robj *subject, int where) { function listTypeLength (line 74) | unsigned long listTypeLength(const robj *subject) { function listTypeIterator (line 83) | listTypeIterator *listTypeInitIterator(robj *subject, long index, function listTypeReleaseIterator (line 104) | void listTypeReleaseIterator(listTypeIterator *li) { function listTypeNext (line 112) | int listTypeNext(listTypeIterator *li, listTypeEntry *entry) { function robj (line 126) | robj *listTypeGet(listTypeEntry *entry) { function listTypeInsert (line 141) | void listTypeInsert(listTypeEntry *entry, robj *value, int where) { function listTypeEqual (line 160) | int listTypeEqual(listTypeEntry *entry, robj *o) { function listTypeDelete (line 170) | void listTypeDelete(listTypeIterator *iter, listTypeEntry *entry) { function listTypeConvert (line 179) | void listTypeConvert(robj *subject, int enc) { function pushGenericCommand (line 197) | void pushGenericCommand(client *c, int where) { function lpushCommand (line 226) | void lpushCommand(client *c) { function rpushCommand (line 230) | void rpushCommand(client *c) { function pushxGenericCommand (line 234) | void pushxGenericCommand(client *c, int where) { function lpushxCommand (line 256) | void lpushxCommand(client *c) { function rpushxCommand (line 260) | void rpushxCommand(client *c) { function linsertCommand (line 264) | void linsertCommand(client *c) { function llenCommand (line 308) | void llenCommand(client *c) { function lindexCommand (line 314) | void lindexCommand(client *c) { function lsetCommand (line 341) | void lsetCommand(client *c) { function popGenericCommand (line 367) | void popGenericCommand(client *c, int where) { function lpopCommand (line 390) | void lpopCommand(client *c) { function rpopCommand (line 394) | void rpopCommand(client *c) { function lrangeCommand (line 398) | void lrangeCommand(client *c) { function ltrimCommand (line 444) | void ltrimCommand(client *c) { function lremCommand (line 490) | void lremCommand(client *c) { function rpoplpushHandlePush (line 550) | void rpoplpushHandlePush(client *c, robj *dstkey, robj *dstobj, robj *va... function rpoplpushCommand (line 565) | void rpoplpushCommand(client *c) { function serveClientBlockedOnList (line 628) | int serveClientBlockedOnList(client *receiver, robj *key, robj *dstkey, ... function blockingPopGenericCommand (line 679) | void blockingPopGenericCommand(client *c, int where) { function blpopCommand (line 735) | void blpopCommand(client *c) { function brpopCommand (line 739) | void brpopCommand(client *c) { function brpoplpushCommand (line 743) | void brpoplpushCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/t_set.c function robj (line 42) | robj *setTypeCreate(sds value) { function setTypeAdd (line 52) | int setTypeAdd(robj *subject, sds value) { function setTypeRemove (line 88) | int setTypeRemove(robj *setobj, sds value) { function setTypeIsMember (line 107) | int setTypeIsMember(robj *subject, sds value) { function setTypeIterator (line 121) | setTypeIterator *setTypeInitIterator(robj *subject) { function setTypeReleaseIterator (line 135) | void setTypeReleaseIterator(setTypeIterator *si) { function setTypeNext (line 154) | int setTypeNext(setTypeIterator *si, sds *sdsele, int64_t *llele) { function sds (line 177) | sds setTypeNextObject(setTypeIterator *si) { function setTypeRandomElement (line 208) | int setTypeRandomElement(robj *setobj, sds *sdsele, int64_t *llele) { function setTypeSize (line 222) | unsigned long setTypeSize(const robj *subject) { function setTypeConvert (line 235) | void setTypeConvert(robj *setobj, int enc) { function saddCommand (line 264) | void saddCommand(client *c) { function sremCommand (line 290) | void sremCommand(client *c) { function smoveCommand (line 318) | void smoveCommand(client *c) { function sismemberCommand (line 373) | void sismemberCommand(client *c) { function scardCommand (line 385) | void scardCommand(client *c) { function spopWithCountCommand (line 402) | void spopWithCountCommand(client *c) { function spopCommand (line 553) | void spopCommand(client *c) { function srandmemberWithCountCommand (line 614) | void srandmemberWithCountCommand(client *c) { function srandmemberCommand (line 749) | void srandmemberCommand(client *c) { function qsortCompareSetsByCardinality (line 774) | int qsortCompareSetsByCardinality(const void *s1, const void *s2) { function qsortCompareSetsByRevCardinality (line 782) | int qsortCompareSetsByRevCardinality(const void *s1, const void *s2) { function sinterGenericCommand (line 792) | void sinterGenericCommand(client *c, robj **setkeys, function sinterCommand (line 919) | void sinterCommand(client *c) { function sinterstoreCommand (line 923) | void sinterstoreCommand(client *c) { function sunionDiffGenericCommand (line 931) | void sunionDiffGenericCommand(client *c, robj **setkeys, int setnum, function sunionCommand (line 1092) | void sunionCommand(client *c) { function sunionstoreCommand (line 1096) | void sunionstoreCommand(client *c) { function sdiffCommand (line 1100) | void sdiffCommand(client *c) { function sdiffstoreCommand (line 1104) | void sdiffstoreCommand(client *c) { function sscanCommand (line 1108) | void sscanCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/t_stream.c function stream (line 52) | stream *streamNew(void) { function freeStream (line 63) | void freeStream(stream *s) { function streamLength (line 71) | unsigned long streamLength(const robj *subject) { function streamIncrID (line 77) | void streamIncrID(streamID *id) { function streamNextID (line 95) | void streamNextID(streamID *last_id, streamID *new_id) { function lpGetInteger (line 127) | int64_t lpGetInteger(unsigned char *ele) { function streamLogListpackContent (line 143) | void streamLogListpackContent(unsigned char *lp) { function streamEncodeID (line 156) | void streamEncodeID(void *buf, streamID *id) { function streamDecodeID (line 166) | void streamDecodeID(void *buf, streamID *id) { function streamCompareID (line 174) | int streamCompareID(streamID *a, streamID *b) { function streamAppendItem (line 196) | int streamAppendItem(stream *s, robj **argv, int64_t numfields, streamID... function streamTrimByLength (line 398) | int64_t streamTrimByLength(stream *s, size_t maxlen, int approx) { function streamIteratorStart (line 512) | void streamIteratorStart(streamIterator *si, stream *s, streamID *start,... function streamIteratorGetID (line 557) | int streamIteratorGetID(streamIterator *si, streamID *id, int64_t *numfi... function streamIteratorGetField (line 702) | void streamIteratorGetField(streamIterator *si, unsigned char **fieldptr... function streamIteratorRemoveEntry (line 724) | void streamIteratorRemoveEntry(streamIterator *si, streamID *current) { function streamIteratorStop (line 780) | void streamIteratorStop(streamIterator *si) { function streamDeleteItem (line 786) | int streamDeleteItem(stream *s, streamID *id) { function streamLastValidID (line 801) | void streamLastValidID(stream *s, streamID *maxid) function addReplyStreamID (line 813) | void addReplyStreamID(client *c, streamID *id) { function robj (line 820) | robj *createObjectFromStreamID(streamID *id) { function streamPropagateXCLAIM (line 828) | void streamPropagateXCLAIM(client *c, robj *key, streamCG *group, robj *... function streamPropagateGroupID (line 876) | void streamPropagateGroupID(client *c, robj *key, streamCG *group, robj ... function streamReplyWithRange (line 942) | size_t streamReplyWithRange(client *c, stream *s, streamID *start, strea... function streamReplyWithRangeFromConsumerPEL (line 1063) | size_t streamReplyWithRangeFromConsumerPEL(client *c, stream *s, streamI... function robj (line 1106) | robj *streamTypeLookupWriteOrCreate(client *c, robj *key) { function streamGenericParseIDOrReply (line 1132) | int streamGenericParseIDOrReply(client *c, robj *o, streamID *id, uint64... function streamParseIDOrReply (line 1170) | int streamParseIDOrReply(client *c, robj *o, streamID *id, uint64_t miss... function streamParseStrictIDOrReply (line 1177) | int streamParseStrictIDOrReply(client *c, robj *o, streamID *id, uint64_... function streamRewriteApproxMaxlen (line 1183) | void streamRewriteApproxMaxlen(client *c, stream *s, int maxlen_arg_idx) { function xaddCommand (line 1195) | void xaddCommand(client *c) { function xrangeGenericCommand (line 1304) | void xrangeGenericCommand(client *c, int rev) { function xrangeCommand (line 1346) | void xrangeCommand(client *c) { function xrevrangeCommand (line 1351) | void xrevrangeCommand(client *c) { function xlenCommand (line 1356) | void xlenCommand(client *c) { function xreadCommand (line 1372) | void xreadCommand(client *c) { function streamNACK (line 1648) | streamNACK *streamCreateNACK(streamConsumer *consumer) { function streamFreeNACK (line 1657) | void streamFreeNACK(streamNACK *na) { function streamFreeConsumer (line 1666) | void streamFreeConsumer(streamConsumer *sc) { function streamCG (line 1677) | streamCG *streamCreateCG(stream *s, char *name, size_t namelen, streamID... function streamFreeCG (line 1691) | void streamFreeCG(streamCG *cg) { function streamCG (line 1699) | streamCG *streamLookupCG(stream *s, sds groupname) { function streamConsumer (line 1710) | streamConsumer *streamLookupConsumer(streamCG *cg, sds name, int flags) { function streamDelConsumer (line 1730) | uint64_t streamDelConsumer(streamCG *cg, sds name) { function xgroupCommand (line 1763) | void xgroupCommand(client *c) { function xsetidCommand (line 1898) | void xsetidCommand(client *c) { function xackCommand (line 1934) | void xackCommand(client *c) { function xpendingCommand (line 1989) | void xpendingCommand(client *c) { function xclaimCommand (line 2197) | void xclaimCommand(client *c) { function xdelCommand (line 2390) | void xdelCommand(client *c) { function xtrimCommand (line 2433) | void xtrimCommand(client *c) { function xinfoReplyWithStreamInfo (line 2501) | void xinfoReplyWithStreamInfo(client *c, stream *s) { function xinfoCommand (line 2687) | void xinfoCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/t_string.c function checkStringLength (line 37) | static int checkStringLength(client *c, long long size) { function setGenericCommand (line 68) | void setGenericCommand(client *c, int flags, robj *key, robj *val, robj ... function setCommand (line 97) | void setCommand(client *c) { function setnxCommand (line 149) | void setnxCommand(client *c) { function setexCommand (line 154) | void setexCommand(client *c) { function psetexCommand (line 159) | void psetexCommand(client *c) { function getGenericCommand (line 164) | int getGenericCommand(client *c) { function getCommand (line 179) | void getCommand(client *c) { function getsetCommand (line 183) | void getsetCommand(client *c) { function setrangeCommand (line 191) | void setrangeCommand(client *c) { function getrangeCommand (line 251) | void getrangeCommand(client *c) { function mgetCommand (line 292) | void mgetCommand(client *c) { function msetGenericCommand (line 310) | void msetGenericCommand(client *c, int nx) { function msetCommand (line 338) | void msetCommand(client *c) { function msetnxCommand (line 342) | void msetnxCommand(client *c) { function incrDecrCommand (line 346) | void incrDecrCommand(client *c, long long incr) { function incrCommand (line 384) | void incrCommand(client *c) { function decrCommand (line 388) | void decrCommand(client *c) { function incrbyCommand (line 392) | void incrbyCommand(client *c) { function decrbyCommand (line 399) | void decrbyCommand(client *c) { function incrbyfloatCommand (line 406) | void incrbyfloatCommand(client *c) { function appendCommand (line 443) | void appendCommand(client *c) { function strlenCommand (line 476) | void strlenCommand(client *c) { function stralgoCommand (line 488) | void stralgoCommand(client *c) { function stralgoLCS (line 500) | void stralgoLCS(client *c) { FILE: Chapter07/redis-6.0.3/src/t_zset.c function zskiplistNode (line 71) | zskiplistNode *zslCreateNode(int level, double score, sds ele) { function zskiplist (line 80) | zskiplist *zslCreate(void) { function zslFreeNode (line 100) | void zslFreeNode(zskiplistNode *node) { function zslFree (line 106) | void zslFree(zskiplist *zsl) { function zslRandomLevel (line 122) | int zslRandomLevel(void) { function zskiplistNode (line 132) | zskiplistNode *zslInsert(zskiplist *zsl, double score, sds ele) { function zslDeleteNode (line 191) | void zslDeleteNode(zskiplist *zsl, zskiplistNode *x, zskiplistNode **upd... function zslDelete (line 219) | int zslDelete(zskiplist *zsl, double score, sds ele, zskiplistNode **nod... function zskiplistNode (line 259) | zskiplistNode *zslUpdateScore(zskiplist *zsl, double curscore, sds ele, ... function zslValueGteMin (line 303) | int zslValueGteMin(double value, zrangespec *spec) { function zslValueLteMax (line 307) | int zslValueLteMax(double value, zrangespec *spec) { function zslIsInRange (line 312) | int zslIsInRange(zskiplist *zsl, zrangespec *range) { function zskiplistNode (line 330) | zskiplistNode *zslFirstInRange(zskiplist *zsl, zrangespec *range) { function zskiplistNode (line 356) | zskiplistNode *zslLastInRange(zskiplist *zsl, zrangespec *range) { function zslDeleteRangeByScore (line 383) | unsigned long zslDeleteRangeByScore(zskiplist *zsl, zrangespec *range, d... function zslDeleteRangeByLex (line 414) | unsigned long zslDeleteRangeByLex(zskiplist *zsl, zlexrangespec *range, ... function zslDeleteRangeByRank (line 445) | unsigned long zslDeleteRangeByRank(zskiplist *zsl, unsigned int start, u... function zslGetRank (line 477) | unsigned long zslGetRank(zskiplist *zsl, double score, sds ele) { function zskiplistNode (line 501) | zskiplistNode* zslGetElementByRank(zskiplist *zsl, unsigned long rank) { function zslParseRange (line 521) | static int zslParseRange(robj *min, robj *max, zrangespec *spec) { function zslParseLexRangeItem (line 572) | int zslParseLexRangeItem(robj *item, sds *dest, int *ex) { function zslFreeLexRange (line 601) | void zslFreeLexRange(zlexrangespec *spec) { function zslParseLexRange (line 613) | int zslParseLexRange(robj *min, robj *max, zlexrangespec *spec) { function sdscmplex (line 632) | int sdscmplex(sds a, sds b) { function zslLexValueGteMin (line 639) | int zslLexValueGteMin(sds value, zlexrangespec *spec) { function zslLexValueLteMax (line 645) | int zslLexValueLteMax(sds value, zlexrangespec *spec) { function zslIsInLexRange (line 652) | int zslIsInLexRange(zskiplist *zsl, zlexrangespec *range) { function zskiplistNode (line 670) | zskiplistNode *zslFirstInLexRange(zskiplist *zsl, zlexrangespec *range) { function zskiplistNode (line 696) | zskiplistNode *zslLastInLexRange(zskiplist *zsl, zlexrangespec *range) { function zzlGetScore (line 723) | double zzlGetScore(unsigned char *sptr) { function sds (line 745) | sds ziplistGetObject(unsigned char *sptr) { function zzlCompareElements (line 761) | int zzlCompareElements(unsigned char *eptr, unsigned char *cstr, unsigne... function zzlLength (line 781) | unsigned int zzlLength(unsigned char *zl) { function zzlNext (line 787) | void zzlNext(unsigned char *zl, unsigned char **eptr, unsigned char **sp... function zzlPrev (line 806) | void zzlPrev(unsigned char *zl, unsigned char **eptr, unsigned char **sp... function zzlIsInRange (line 825) | int zzlIsInRange(unsigned char *zl, zrangespec *range) { function zzlLexValueGteMin (line 910) | int zzlLexValueGteMin(unsigned char *p, zlexrangespec *spec) { function zzlLexValueLteMax (line 917) | int zzlLexValueLteMax(unsigned char *p, zlexrangespec *spec) { function zzlIsInLexRange (line 926) | int zzlIsInLexRange(unsigned char *zl, zlexrangespec *range) { function zsetLength (line 1157) | unsigned long zsetLength(const robj *zobj) { function zsetConvert (line 1169) | void zsetConvert(robj *zobj, int encoding) { function zsetConvertToZiplistIfNeeded (line 1243) | void zsetConvertToZiplistIfNeeded(robj *zobj, size_t maxelelen) { function zsetScore (line 1256) | int zsetScore(robj *zobj, sds member, double *score) { function zsetAdd (line 1315) | int zsetAdd(robj *zobj, double score, sds ele, int *flags, double *newsc... function zsetDel (line 1424) | int zsetDel(robj *zobj, sds ele) { function zsetRank (line 1473) | long zsetRank(robj *zobj, sds ele, int reverse) { function zaddGenericCommand (line 1533) | void zaddGenericCommand(client *c, int flags) { function zaddCommand (line 1655) | void zaddCommand(client *c) { function zincrbyCommand (line 1659) | void zincrbyCommand(client *c) { function zremCommand (line 1663) | void zremCommand(client *c) { function zremrangeGenericCommand (line 1694) | void zremrangeGenericCommand(client *c, int rangetype) { function zremrangebyrankCommand (line 1794) | void zremrangebyrankCommand(client *c) { function zremrangebyscoreCommand (line 1798) | void zremrangebyscoreCommand(client *c) { function zremrangebylexCommand (line 1802) | void zremrangebylexCommand(client *c) { type zsetopsrc (line 1806) | typedef struct { type zsetopval (line 1852) | typedef struct { type iterset (line 1862) | typedef union _iterset iterset; type iterzset (line 1863) | typedef union _iterzset iterzset; function zuiInitIterator (line 1865) | void zuiInitIterator(zsetopsrc *op) { function zuiClearIterator (line 1901) | void zuiClearIterator(zsetopsrc *op) { function zuiLength (line 1928) | unsigned long zuiLength(zsetopsrc *op) { function zuiNext (line 1958) | int zuiNext(zsetopsrc *op, zsetopval *val) { function zuiLongLongFromValue (line 2018) | int zuiLongLongFromValue(zsetopval *val) { function sds (line 2036) | sds zuiSdsFromValue(zsetopval *val) { function sds (line 2050) | sds zuiNewSdsFromValue(zsetopval *val) { function zuiBufferFromValue (line 2066) | int zuiBufferFromValue(zsetopval *val) { function zuiFind (line 2081) | int zuiFind(zsetopsrc *op, zsetopval *val, double *score) { function zuiCompareByCardinality (line 2134) | int zuiCompareByCardinality(const void *s1, const void *s2) { function zunionInterAggregate (line 2147) | inline static void zunionInterAggregate(double *target, double val, int ... function zunionInterGenericCommand (line 2176) | void zunionInterGenericCommand(client *c, robj *dstkey, int op) { function zunionstoreCommand (line 2403) | void zunionstoreCommand(client *c) { function zinterstoreCommand (line 2407) | void zinterstoreCommand(client *c) { function zrangeGenericCommand (line 2411) | void zrangeGenericCommand(client *c, int reverse) { function zrangeCommand (line 2518) | void zrangeCommand(client *c) { function zrevrangeCommand (line 2522) | void zrevrangeCommand(client *c) { function genericZrangebyscoreCommand (line 2527) | void genericZrangebyscoreCommand(client *c, int reverse) { function zrangebyscoreCommand (line 2712) | void zrangebyscoreCommand(client *c) { function zrevrangebyscoreCommand (line 2716) | void zrevrangebyscoreCommand(client *c) { function zcountCommand (line 2720) | void zcountCommand(client *c) { function zlexcountCommand (line 2797) | void zlexcountCommand(client *c) { function genericZrangebylexCommand (line 2877) | void genericZrangebylexCommand(client *c, int reverse) { function zrangebylexCommand (line 3056) | void zrangebylexCommand(client *c) { function zrevrangebylexCommand (line 3060) | void zrevrangebylexCommand(client *c) { function zcardCommand (line 3064) | void zcardCommand(client *c) { function zscoreCommand (line 3074) | void zscoreCommand(client *c) { function zrankGenericCommand (line 3089) | void zrankGenericCommand(client *c, int reverse) { function zrankCommand (line 3107) | void zrankCommand(client *c) { function zrevrankCommand (line 3111) | void zrevrankCommand(client *c) { function zscanCommand (line 3115) | void zscanCommand(client *c) { function genericZpopCommand (line 3134) | void genericZpopCommand(client *c, robj **keyv, int keyc, int where, int... function zpopminCommand (line 3239) | void zpopminCommand(client *c) { function zpopmaxCommand (line 3249) | void zpopmaxCommand(client *c) { function blockingGenericZpopCommand (line 3259) | void blockingGenericZpopCommand(client *c, int where) { function bzpopminCommand (line 3299) | void bzpopminCommand(client *c) { function bzpopmaxCommand (line 3304) | void bzpopmaxCommand(client *c) { FILE: Chapter07/redis-6.0.3/src/timeout.c function checkBlockedClientTimeout (line 37) | int checkBlockedClientTimeout(client *c, mstime_t now) { function clientsCronHandleTimeout (line 55) | int clientsCronHandleTimeout(client *c, mstime_t now_ms) { function encodeTimeoutKey (line 96) | void encodeTimeoutKey(unsigned char *buf, uint64_t timeout, client *c) { function decodeTimeoutKey (line 105) | void decodeTimeoutKey(unsigned char *buf, uint64_t *toptr, client **cptr) { function addClientToTimeoutTable (line 114) | void addClientToTimeoutTable(client *c) { function removeClientFromTimeoutTable (line 125) | void removeClientFromTimeoutTable(client *c) { function handleBlockedClientsTimeout (line 136) | void handleBlockedClientsTimeout(void) { function getTimeoutFromObjectOrReply (line 163) | int getTimeoutFromObjectOrReply(client *c, robj *object, mstime_t *timeo... FILE: Chapter07/redis-6.0.3/src/tls.c function parseProtocolsConfig (line 57) | static int parseProtocolsConfig(const char *str) { function sslLockingCallback (line 109) | static void sslLockingCallback(int mode, int lock_id, const char *f, int... function initCryptoLocks (line 122) | static void initCryptoLocks(void) { function tlsInit (line 137) | void tlsInit(void) { function tlsConfigure (line 159) | int tlsConfigure(redisTLSContextConfig *ctx_config) { type WantIOType (line 309) | typedef enum { type tls_connection (line 318) | typedef struct tls_connection { function connection (line 326) | connection *connCreateTLS(void) { function connection (line 334) | connection *connCreateAcceptedTLS(int fd, int require_auth) { type aeEventLoop (line 351) | struct aeEventLoop function handleSSLReturnCode (line 358) | static int handleSSLReturnCode(tls_connection *conn, int ret_value, Want... function registerSSLEvent (line 388) | void registerSSLEvent(tls_connection *conn, WantIOType want) { function updateSSLEvent (line 408) | void updateSSLEvent(tls_connection *conn) { function tlsHandleEvent (line 424) | static void tlsHandleEvent(tls_connection *conn, int mask) { function tlsEventHandler (line 550) | static void tlsEventHandler(struct aeEventLoop *el, int fd, void *client... function connTLSClose (line 557) | static void connTLSClose(connection *conn_) { function connTLSAccept (line 578) | static int connTLSAccept(connection *_conn, ConnectionCallbackFunc accep... function connTLSConnect (line 607) | static int connTLSConnect(connection *conn_, const char *addr, int port,... function connTLSWrite (line 622) | static int connTLSWrite(connection *conn_, const void *data, size_t data... function connTLSRead (line 652) | static int connTLSRead(connection *conn_, void *buf, size_t buf_len) { function connTLSSetWriteHandler (line 690) | int connTLSSetWriteHandler(connection *conn, ConnectionCallbackFunc func... function connTLSSetReadHandler (line 700) | int connTLSSetReadHandler(connection *conn, ConnectionCallbackFunc func) { function setBlockingTimeout (line 706) | static void setBlockingTimeout(tls_connection *conn, long long timeout) { function unsetBlockingTimeout (line 712) | static void unsetBlockingTimeout(tls_connection *conn) { function connTLSBlockingConnect (line 718) | static int connTLSBlockingConnect(connection *conn_, const char *addr, i... function connTLSSyncWrite (line 742) | static ssize_t connTLSSyncWrite(connection *conn_, char *ptr, ssize_t si... function connTLSSyncRead (line 754) | static ssize_t connTLSSyncRead(connection *conn_, char *ptr, ssize_t siz... function connTLSSyncReadLine (line 764) | static ssize_t connTLSSyncReadLine(connection *conn_, char *ptr, ssize_t... function tlsHasPendingData (line 810) | int tlsHasPendingData() { function tlsProcessPendingData (line 816) | int tlsProcessPendingData() { function tlsInit (line 831) | void tlsInit(void) { function tlsConfigure (line 834) | int tlsConfigure(redisTLSContextConfig *ctx_config) { function connection (line 839) | connection *connCreateTLS(void) { function connection (line 843) | connection *connCreateAcceptedTLS(int fd, int require_auth) { function tlsHasPendingData (line 850) | int tlsHasPendingData() { function tlsProcessPendingData (line 854) | int tlsProcessPendingData() { FILE: Chapter07/redis-6.0.3/src/tracking.c type bcastState (line 55) | typedef struct bcastState { function disableTracking (line 67) | void disableTracking(client *c) { function enableBcastTrackingForPrefix (line 104) | void enableBcastTrackingForPrefix(client *c, char *prefix, size_t plen) { function enableTracking (line 129) | void enableTracking(client *c, uint64_t redirect_to, uint64_t options, r... function trackingRememberKeys (line 166) | void trackingRememberKeys(client *c) { function sendTrackingMessage (line 204) | void sendTrackingMessage(client *c, char *keyname, size_t keylen, int pr... function trackingRememberKeyToBroadcast (line 257) | void trackingRememberKeyToBroadcast(client *c, char *keyname, size_t key... function trackingInvalidateKeyRaw (line 291) | void trackingInvalidateKeyRaw(client *c, char *key, size_t keylen, int b... function trackingInvalidateKey (line 340) | void trackingInvalidateKey(client *c, robj *keyobj) { function freeTrackingRadixTree (line 351) | void freeTrackingRadixTree(void *rt) { function trackingInvalidateKeysOnFlush (line 355) | void trackingInvalidateKeysOnFlush(int dbid) { function trackingLimitUsedSlots (line 386) | void trackingLimitUsedSlots(void) { function sds (line 429) | sds trackingBuildBroadcastReply(client *c, rax *keys) { function trackingBroadcastInvalidationMessages (line 474) | void trackingBroadcastInvalidationMessages(void) { function trackingGetTotalItems (line 524) | uint64_t trackingGetTotalItems(void) { function trackingGetTotalKeys (line 528) | uint64_t trackingGetTotalKeys(void) { function trackingGetTotalPrefixes (line 533) | uint64_t trackingGetTotalPrefixes(void) { FILE: Chapter07/redis-6.0.3/src/util.c function stringmatchlen (line 48) | int stringmatchlen(const char *pattern, int patternLen, function stringmatch (line 168) | int stringmatch(const char *pattern, const char *string, int nocase) { function stringmatchlen_fuzz_test (line 173) | int stringmatchlen_fuzz_test(void) { function memtoll (line 195) | long long memtoll(const char *p, int *err) { function digits10 (line 249) | uint32_t digits10(uint64_t v) { function sdigits10 (line 270) | uint32_t sdigits10(int64_t v) { function ll2string (line 292) | int ll2string(char *dst, size_t dstlen, long long svalue) { function string2ll (line 358) | int string2ll(const char *s, size_t slen, long long *value) { function string2ull (line 429) | int string2ull(const char *s, unsigned long long *value) { function string2l (line 447) | int string2l(const char *s, size_t slen, long *lval) { function string2ld (line 467) | int string2ld(const char *s, size_t slen, long double *dp) { function string2d (line 497) | int string2d(const char *s, size_t slen, double *dp) { function d2string (line 516) | int d2string(char *buf, size_t len, double value) { function ld2string (line 562) | int ld2string(char *buf, size_t len, long double value, ld2string_mode m... function getRandomBytes (line 620) | void getRandomBytes(unsigned char *p, size_t len) { function getRandomHexChars (line 688) | void getRandomHexChars(char *p, size_t len) { function sds (line 703) | sds getAbsolutePath(char *filename) { function getTimeZone (line 753) | unsigned long getTimeZone(void) { function pathIsBaseName (line 770) | int pathIsBaseName(char *path) { function test_string2ll (line 777) | static void test_string2ll(void) { function test_string2l (line 832) | static void test_string2l(void) { function test_ll2string (line 881) | static void test_ll2string(void) { function utilTest (line 923) | int utilTest(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/src/util.h type ld2string_mode (line 42) | typedef enum { FILE: Chapter07/redis-6.0.3/src/ziplist.c type zlentry (line 271) | typedef struct zlentry { function zipIntSize (line 306) | unsigned int zipIntSize(unsigned char encoding) { function zipStoreEntryEncoding (line 332) | unsigned int zipStoreEntryEncoding(unsigned char *p, unsigned char encod... function zipStorePrevEntryLengthLarge (line 397) | int zipStorePrevEntryLengthLarge(unsigned char *p, unsigned int len) { function zipStorePrevEntryLength (line 408) | unsigned int zipStorePrevEntryLength(unsigned char *p, unsigned int len) { function zipPrevLenByteDiff (line 464) | int zipPrevLenByteDiff(unsigned char *p, unsigned int len) { function zipRawEntryLength (line 471) | unsigned int zipRawEntryLength(unsigned char *p) { function zipTryEncoding (line 480) | int zipTryEncoding(unsigned char *entry, unsigned int entrylen, long lon... function zipSaveInteger (line 507) | void zipSaveInteger(unsigned char *p, int64_t value, unsigned char encod... function zipLoadInteger (line 537) | int64_t zipLoadInteger(unsigned char *p, unsigned char encoding) { function zipEntry (line 569) | void zipEntry(unsigned char *p, zlentry *e) { function ziplistGet (line 1034) | unsigned int ziplistGet(unsigned char *p, unsigned char **sstr, unsigned... function ziplistCompare (line 1081) | unsigned int ziplistCompare(unsigned char *p, unsigned char *sstr, unsig... function ziplistLen (line 1168) | unsigned int ziplistLen(unsigned char *zl) { function ziplistBlobLen (line 1186) | size_t ziplistBlobLen(unsigned char *zl) { function ziplistRepr (line 1190) | void ziplistRepr(unsigned char *zl) { function usec (line 1283) | static long long usec(void) { function stress (line 1289) | static void stress(int pos, int num, int maxsize, int dnum) { function randstring (line 1339) | static int randstring(char *target, unsigned int min, unsigned int max) { function verify (line 1365) | static void verify(unsigned char *zl, zlentry *e) { function ziplistTest (line 1382) | int ziplistTest(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/src/zipmap.c function zipmapDecodeLength (line 105) | static unsigned int zipmapDecodeLength(unsigned char *p) { function zipmapEncodeLength (line 116) | static unsigned int zipmapEncodeLength(unsigned char *p, unsigned int le... function zipmapRequiredLength (line 168) | static unsigned long zipmapRequiredLength(unsigned int klen, unsigned in... function zipmapRawKeyLength (line 178) | static unsigned int zipmapRawKeyLength(unsigned char *p) { function zipmapRawValueLength (line 185) | static unsigned int zipmapRawValueLength(unsigned char *p) { function zipmapRawEntryLength (line 197) | static unsigned int zipmapRawEntryLength(unsigned char *p) { function zipmapGet (line 334) | int zipmapGet(unsigned char *zm, unsigned char *key, unsigned int klen, ... function zipmapExists (line 345) | int zipmapExists(unsigned char *zm, unsigned char *key, unsigned int kle... function zipmapLen (line 350) | unsigned int zipmapLen(unsigned char *zm) { function zipmapBlobLen (line 367) | size_t zipmapBlobLen(unsigned char *zm) { function zipmapRepr (line 374) | static void zipmapRepr(unsigned char *p) { function zipmapTest (line 408) | int zipmapTest(int argc, char *argv[]) { FILE: Chapter07/redis-6.0.3/src/zmalloc.c function zlibc_free (line 39) | void zlibc_free(void *ptr) { function zmalloc_default_oom (line 89) | static void zmalloc_default_oom(size_t size) { function zfree_no_tcache (line 123) | void zfree_no_tcache(void *ptr) { function zmalloc_size (line 181) | size_t zmalloc_size(void *ptr) { function zmalloc_usable (line 189) | size_t zmalloc_usable(void *ptr) { function zfree (line 194) | void zfree(void *ptr) { function zmalloc_used_memory (line 220) | size_t zmalloc_used_memory(void) { function zmalloc_set_oom_handler (line 226) | void zmalloc_set_oom_handler(void (*oom_handler)(size_t)) { function zmalloc_get_rss (line 246) | size_t zmalloc_get_rss(void) { function zmalloc_get_rss (line 286) | size_t zmalloc_get_rss(void) { function zmalloc_get_rss (line 303) | size_t zmalloc_get_rss(void) { function zmalloc_get_rss (line 318) | size_t zmalloc_get_rss(void) { function zmalloc_get_allocator_info (line 330) | int zmalloc_get_allocator_info(size_t *allocated, function set_jemalloc_bg_thread (line 352) | void set_jemalloc_bg_thread(int enable) { function jemalloc_purge (line 359) | int jemalloc_purge() { function zmalloc_get_allocator_info (line 374) | int zmalloc_get_allocator_info(size_t *allocated, function set_jemalloc_bg_thread (line 381) | void set_jemalloc_bg_thread(int enable) { function jemalloc_purge (line 385) | int jemalloc_purge() { function zmalloc_get_smap_bytes_by_field (line 410) | size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) { function zmalloc_get_smap_bytes_by_field (line 445) | size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) { function zmalloc_get_private_dirty (line 466) | size_t zmalloc_get_private_dirty(long pid) { function zmalloc_get_memory_size (line 483) | size_t zmalloc_get_memory_size(void) { function zmalloc_test (line 528) | int zmalloc_test(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/tests/modules/auth.c function UserChangedCallback (line 8) | void UserChangedCallback(uint64_t client_id, void *privdata) { function Auth_CreateModuleUser (line 14) | int Auth_CreateModuleUser(RedisModuleCtx *ctx, RedisModuleString **argv,... function Auth_AuthModuleUser (line 30) | int Auth_AuthModuleUser(RedisModuleCtx *ctx, RedisModuleString **argv, i... function Auth_AuthRealUser (line 39) | int Auth_AuthRealUser(RedisModuleCtx *ctx, RedisModuleString **argv, int... function Auth_ChangeCount (line 56) | int Auth_ChangeCount(RedisModuleCtx *ctx, RedisModuleString **argv, int ... function RedisModule_OnLoad (line 66) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/tests/modules/blockonkeys.c type fsl_t (line 10) | typedef struct { function fsl_t (line 17) | fsl_t *fsl_type_create() { function fsl_type_free (line 24) | void fsl_type_free(fsl_t *o) { function fsl_rdb_save (line 41) | void fsl_rdb_save(RedisModuleIO *rdb, void *value) { function fsl_aofrw (line 48) | void fsl_aofrw(RedisModuleIO *aof, RedisModuleString *key, void *value) { function fsl_free (line 54) | void fsl_free(void *value) { function get_fsl (line 60) | int get_fsl(RedisModuleCtx *ctx, RedisModuleString *keyname, int mode, i... function fsl_push (line 93) | int fsl_push(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function bpop_reply_callback (line 117) | int bpop_reply_callback(RedisModuleCtx *ctx, RedisModuleString **argv, i... function bpop_timeout_callback (line 130) | int bpop_timeout_callback(RedisModuleCtx *ctx, RedisModuleString **argv,... function fsl_bpop (line 138) | int fsl_bpop(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function bpopgt_reply_callback (line 160) | int bpopgt_reply_callback(RedisModuleCtx *ctx, RedisModuleString **argv,... function bpopgt_timeout_callback (line 177) | int bpopgt_timeout_callback(RedisModuleCtx *ctx, RedisModuleString **arg... function bpopgt_free_privdata (line 183) | void bpopgt_free_privdata(RedisModuleCtx *ctx, void *privdata) { function fsl_bpopgt (line 190) | int fsl_bpopgt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function bpoppush_reply_callback (line 219) | int bpoppush_reply_callback(RedisModuleCtx *ctx, RedisModuleString **arg... function bpoppush_timeout_callback (line 239) | int bpoppush_timeout_callback(RedisModuleCtx *ctx, RedisModuleString **a... function bpoppush_free_privdata (line 245) | void bpoppush_free_privdata(RedisModuleCtx *ctx, void *privdata) { function fsl_bpoppush (line 252) | int fsl_bpoppush(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function fsl_getall (line 284) | int fsl_getall(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function RedisModule_OnLoad (line 301) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/tests/modules/commandfilter.c function CommandFilter_UnregisterCommand (line 15) | int CommandFilter_UnregisterCommand(RedisModuleCtx *ctx, RedisModuleStri... function CommandFilter_PingCommand (line 26) | int CommandFilter_PingCommand(RedisModuleCtx *ctx, RedisModuleString **a... function CommandFilter_LogCommand (line 42) | int CommandFilter_LogCommand(RedisModuleCtx *ctx, RedisModuleString **ar... function CommandFilter_CommandFilter (line 77) | void CommandFilter_CommandFilter(RedisModuleCommandFilterCtx *filter) function RedisModule_OnLoad (line 119) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... function RedisModule_OnUnload (line 151) | int RedisModule_OnUnload(RedisModuleCtx *ctx) { FILE: Chapter07/redis-6.0.3/tests/modules/datatype.c type DataType (line 9) | typedef struct { function datatype_save (line 29) | static void datatype_save(RedisModuleIO *io, void *value) { function datatype_free (line 35) | static void datatype_free(void *value) { function datatype_set (line 44) | static int datatype_set(RedisModuleCtx *ctx, RedisModuleString **argv, i... function datatype_restore (line 70) | static int datatype_restore(RedisModuleCtx *ctx, RedisModuleString **arg... function datatype_get (line 90) | static int datatype_get(RedisModuleCtx *ctx, RedisModuleString **argv, i... function datatype_dump (line 106) | static int datatype_dump(RedisModuleCtx *ctx, RedisModuleString **argv, ... function datatype_swap (line 127) | static int datatype_swap(RedisModuleCtx *ctx, RedisModuleString **argv, ... function RedisModule_OnLoad (line 150) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/tests/modules/fork.c function done_handler (line 17) | void done_handler(int exitcode, int bysignal, void *user_data) { function fork_create (line 24) | int fork_create(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function fork_exitcode (line 52) | int fork_exitcode(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function fork_kill (line 60) | int fork_kill(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function RedisModule_OnLoad (line 72) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/tests/modules/hooks.c type EventElement (line 42) | typedef struct EventElement { function LogStringEvent (line 48) | void LogStringEvent(RedisModuleCtx *ctx, const char* keyname, const char... function LogNumericEvent (line 60) | void LogNumericEvent(RedisModuleCtx *ctx, const char* keyname, long data) { function FreeEvent (line 72) | void FreeEvent(RedisModuleCtx *ctx, EventElement *event) { function cmdEventCount (line 78) | int cmdEventCount(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function cmdEventLast (line 90) | int cmdEventLast(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function clearEvents (line 107) | void clearEvents(RedisModuleCtx *ctx) function cmdEventsClear (line 123) | int cmdEventsClear(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function clientChangeCallback (line 132) | void clientChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint6... function flushdbCallback (line 142) | void flushdbCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t s... function roleChangeCallback (line 152) | void roleChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_... function replicationChangeCallback (line 163) | void replicationChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, ... function rasterLinkChangeCallback (line 173) | void rasterLinkChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, u... function persistenceCallback (line 183) | void persistenceCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64... function loadingCallback (line 202) | void loadingCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t s... function loadingProgressCallback (line 218) | void loadingProgressCallback(RedisModuleCtx *ctx, RedisModuleEvent e, ui... function shutdownCallback (line 228) | void shutdownCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t ... function cronLoopCallback (line 237) | void cronLoopCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint64_t ... function moduleChangeCallback (line 246) | void moduleChangeCallback(RedisModuleCtx *ctx, RedisModuleEvent e, uint6... function RedisModule_OnLoad (line 258) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... function RedisModule_OnUnload (line 305) | int RedisModule_OnUnload(RedisModuleCtx *ctx) { FILE: Chapter07/redis-6.0.3/tests/modules/infotest.c function InfoFunc (line 5) | void InfoFunc(RedisModuleInfoCtx *ctx, int for_crash_report) { function info_get (line 33) | int info_get(RedisModuleCtx *ctx, RedisModuleString **argv, int argc, ch... function info_gets (line 74) | int info_gets(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function info_getc (line 78) | int info_getc(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function info_geti (line 82) | int info_geti(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function info_getu (line 86) | int info_getu(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function info_getd (line 90) | int info_getd(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function RedisModule_OnLoad (line 94) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/tests/modules/misc.c function test_call_generic (line 11) | int test_call_generic(RedisModuleCtx *ctx, RedisModuleString **argv, int... function test_call_info (line 29) | int test_call_info(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_ld_conv (line 45) | int test_ld_conv(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { function test_flushall (line 97) | int test_flushall(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_dbsize (line 106) | int test_dbsize(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_randomkey (line 115) | int test_randomkey(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function RedisModuleKey (line 125) | RedisModuleKey *open_key_or_reply(RedisModuleCtx *ctx, RedisModuleString... function test_getlru (line 134) | int test_getlru(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_setlru (line 148) | int test_setlru(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_getlfu (line 166) | int test_getlfu(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function test_setlfu (line 180) | int test_setlfu(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function RedisModule_OnLoad (line 198) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/tests/modules/propagate.c function timerHandler (line 45) | void timerHandler(RedisModuleCtx *ctx, void *data) { function propagateTestCommand (line 75) | int propagateTestCommand(RedisModuleCtx *ctx, RedisModuleString **argv, ... function propagateTest2Command (line 93) | int propagateTest2Command(RedisModuleCtx *ctx, RedisModuleString **argv,... function propagateTest3Command (line 105) | int propagateTest3Command(RedisModuleCtx *ctx, RedisModuleString **argv,... function RedisModule_OnLoad (line 125) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/tests/modules/scan.c type scan_strings_pd (line 7) | typedef struct { function scan_strings_callback (line 11) | void scan_strings_callback(RedisModuleCtx *ctx, RedisModuleString* keyna... function scan_strings (line 31) | int scan_strings(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) type scan_key_pd (line 49) | typedef struct { function scan_key_callback (line 54) | void scan_key_callback(RedisModuleKey *key, RedisModuleString* field, Re... function scan_key (line 66) | int scan_key(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) function RedisModule_OnLoad (line 94) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... FILE: Chapter07/redis-6.0.3/tests/modules/testrdb.c function testrdb_type_save (line 35) | void testrdb_type_save(RedisModuleIO *rdb, void *value) { function testrdb_aux_save (line 43) | void testrdb_aux_save(RedisModuleIO *rdb, int when) { function testrdb_aux_load (line 63) | int testrdb_aux_load(RedisModuleIO *rdb, int encver, int when) { function testrdb_type_free (line 92) | void testrdb_type_free(void *value) { function testrdb_set_before (line 97) | int testrdb_set_before(RedisModuleCtx *ctx, RedisModuleString **argv, in... function testrdb_get_before (line 112) | int testrdb_get_before(RedisModuleCtx *ctx, RedisModuleString **argv, in... function testrdb_set_after (line 126) | int testrdb_set_after(RedisModuleCtx *ctx, RedisModuleString **argv, int... function testrdb_get_after (line 141) | int testrdb_get_after(RedisModuleCtx *ctx, RedisModuleString **argv, int... function testrdb_set_key (line 155) | int testrdb_set_key(RedisModuleCtx *ctx, RedisModuleString **argv, int a... function testrdb_get_key (line 173) | int testrdb_get_key(RedisModuleCtx *ctx, RedisModuleString **argv, int a... function RedisModule_OnLoad (line 187) | int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, in... function RedisModule_OnUnload (line 253) | int RedisModule_OnUnload(RedisModuleCtx *ctx) { FILE: Chapter07/redis-6.0.3/utils/corrupt_rdb.c function main (line 14) | int main(int argc, char **argv) { FILE: Chapter07/redis-6.0.3/utils/generate-command-help.rb function argument (line 27) | def argument arg function arguments (line 40) | def arguments command function commands (line 47) | def commands function generate_groups (line 67) | def generate_groups function generate_commands (line 73) | def generate_commands FILE: Chapter07/redis-6.0.3/utils/hashtable/rehashing.c function _redisAssert (line 4) | void _redisAssert(char *x, char *y, int l) { function dictKeyHash (line 9) | unsigned int dictKeyHash(const void *keyp) { function dictKeyCompare (line 21) | int dictKeyCompare(void *privdata, const void *key1, const void *key2) { function showBuckets (line 36) | void showBuckets(dictht ht) { function show (line 48) | void show(dict *d) { function sortPointers (line 63) | int sortPointers(const void *a, const void *b) { function stressGetKeys (line 71) | void stressGetKeys(dict *d, int times, int *perfect_run, int *approx_run) { function main (line 101) | int main(void) { FILE: Chapter07/redis-6.0.3/utils/hyperloglog/hll-gnuplot-graph.rb function run_experiment (line 21) | def run_experiment(r,seed,max,step) function filter_samples (line 42) | def filter_samples(numsets,max,step,filter) FILE: Chapter07/redis-6.0.3/utils/lru/lfu-simulation.c type entry (line 10) | struct entry { function minutes_diff (line 28) | uint16_t minutes_diff(uint16_t now, uint16_t prev) { function log_incr (line 36) | uint8_t log_incr(uint8_t counter) { function access_entry (line 47) | void access_entry(struct entry *e) { function scan_entry (line 54) | uint8_t scan_entry(struct entry *e) { function show_entry (line 71) | void show_entry(long pos, struct entry *e) { function main (line 83) | int main(void) { FILE: Chapter07/redis-6.0.3/utils/lru/test-lru.rb function testit (line 7) | def testit(filename) function print_avg (line 187) | def print_avg FILE: Chapter07/redis-6.0.3/utils/redis-copy.rb function redisCopy (line 11) | def redisCopy(opts={}) FILE: Chapter07/redis-6.0.3/utils/redis-sha1.rb function redisSha1 (line 15) | def redisSha1(opts={}) FILE: Chapter07/redis-6.0.3/utils/tracking_collisions.c function crc64Hash (line 34) | uint64_t crc64Hash(char *key, size_t len) { function sha1Hash (line 38) | uint64_t sha1Hash(char *key, size_t len) { function testHashingFunction (line 52) | unsigned long testHashingFunction(uint64_t (*hash)(char *, size_t)) { function main (line 72) | int main(void) { FILE: Chapter09/code/AsyncLogger/AsyncLogger.cpp function init_log_file (line 20) | bool init_log_file() function uninit_log_file (line 27) | void uninit_log_file() function write_log_tofile (line 33) | bool write_log_tofile(const std::string& line) function log_producer (line 47) | void log_producer() function log_consumer (line 67) | void log_consumer() function main (line 99) | int main(int argc, char* argv[]) FILE: Chapter09/code/AsyncLogger1/AsyncLogger.cpp function init_log_file (line 18) | bool init_log_file() function uninit_log_file (line 25) | void uninit_log_file() function write_log_tofile (line 31) | bool write_log_tofile(const std::string& line) function log_producer (line 45) | void log_producer() function log_consumer (line 64) | void log_consumer() function main (line 93) | int main(int argc, char* argv[]) FILE: Chapter09/code/AsyncLoggerLinux.cpp function init (line 21) | bool init() function uninit (line 33) | void uninit() function write_log_to_file (line 42) | bool write_log_to_file(const std::string& line) function main (line 105) | int main(int argc, char* argv[]) FILE: Chapter09/code/AsyncLoggerWindows/AsyncLogger.cpp function Init (line 18) | bool Init() function Uninit (line 33) | void Uninit() function WriteLogToFile (line 44) | bool WriteLogToFile(const std::string& line) function DWORD (line 60) | DWORD CALLBACK LogProduceThreadProc(LPVOID lpThreadParameter) function DWORD (line 81) | DWORD CALLBACK LogConsumeThreadProc(LPVOID lpThreadParameter) function main (line 111) | int main(int argc, char* argv[])