X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb%2Ftools%2Fkeywords.c;h=a238d5f5e40b4f45fb9cab6e6feba74959afe4f8;hp=cfe445bdeb457c374b364f56946f6afe1cfe6c11;hb=c4c5fed020ba44b9930119672a36a1cb33aff090;hpb=8a98a4bca54bc829a16fb0714873e554ec9d41f1 diff --git a/ccan/tdb/tools/keywords.c b/ccan/tdb/tools/keywords.c index cfe445bd..a238d5f5 100644 --- a/ccan/tdb/tools/keywords.c +++ b/ccan/tdb/tools/keywords.c @@ -35,10 +35,10 @@ struct op_table { const char *name; enum op_type type; - void (*enhance_op)(const char *filename, - struct op op[], unsigned int op_num, char *words[]); + void (*enhance_op)(char *filename[], struct op op[], + unsigned file, unsigned op_num, char *words[]); }; -/* maximum key range = 43, duplicates = 0 */ +/* maximum key range = 53, duplicates = 0 */ #ifdef __GNUC__ __inline @@ -52,32 +52,32 @@ hash_keyword (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 15, 51, 25, - 5, 0, 10, 0, 0, 51, 51, 0, 0, 0, - 15, 51, 15, 51, 51, 0, 5, 0, 51, 0, - 51, 15, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51 + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 45, 61, 30, + 5, 0, 0, 5, 5, 61, 61, 0, 0, 0, + 20, 61, 20, 61, 25, 0, 5, 0, 61, 0, + 61, 5, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61 }; return len + asso_values[(unsigned char)str[4]] + asso_values[(unsigned char)str[len - 1]]; } @@ -93,18 +93,18 @@ find_keyword (register const char *str, register unsigned int len) { enum { - TOTAL_KEYWORDS = 32, + TOTAL_KEYWORDS = 35, MIN_WORD_LENGTH = 8, - MAX_WORD_LENGTH = 25, + MAX_WORD_LENGTH = 30, MIN_HASH_VALUE = 8, - MAX_HASH_VALUE = 50 + MAX_HASH_VALUE = 60 }; static const struct op_table wordlist[] = { {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 43 "keywords.gperf" - {"traverse", OP_TDB_TRAVERSE, op_add_key_data,}, +#line 44 "keywords.gperf" + {"traverse", OP_TDB_TRAVERSE, op_add_traverse,}, #line 33 "keywords.gperf" {"tdb_store", OP_TDB_STORE, op_add_store,}, #line 32 "keywords.gperf" @@ -112,20 +112,21 @@ find_keyword (register const char *str, register unsigned int len) #line 16 "keywords.gperf" {"tdb_lockall", OP_TDB_LOCKALL, op_add_nothing,}, #line 36 "keywords.gperf" - {"tdb_wipe_all", OP_TDB_WIPE_ALL, op_add_nothing,}, + {"tdb_wipe_all", OP_TDB_WIPE_ALL, op_add_wipe_all,}, #line 20 "keywords.gperf" {"tdb_unlockall", OP_TDB_UNLOCKALL, op_add_nothing,}, -#line 35 "keywords.gperf" - {"tdb_get_seqnum", OP_TDB_GET_SEQNUM, op_add_seqnum,}, -#line 47 "keywords.gperf" +#line 48 "keywords.gperf" + {"tdb_fetch", OP_TDB_FETCH, op_add_key_data,}, +#line 49 "keywords.gperf" {"tdb_delete", OP_TDB_DELETE, op_add_key_ret,}, #line 17 "keywords.gperf" {"tdb_lockall_mark", OP_TDB_LOCKALL_MARK, op_add_nothing,}, - {""}, +#line 46 "keywords.gperf" + {"tdb_firstkey", OP_TDB_FIRSTKEY, op_add_key,}, #line 18 "keywords.gperf" {"tdb_lockall_unmark", OP_TDB_LOCKALL_UNMARK, op_add_nothing,}, -#line 46 "keywords.gperf" - {"tdb_fetch", OP_TDB_FETCH, op_add_key_data,}, +#line 35 "keywords.gperf" + {"tdb_get_seqnum", OP_TDB_GET_SEQNUM, op_add_seqnum,}, #line 19 "keywords.gperf" {"tdb_lockall_nonblock", OP_TDB_LOCKALL_NONBLOCK, op_add_nothing,}, #line 21 "keywords.gperf" @@ -136,34 +137,38 @@ find_keyword (register const char *str, register unsigned int len) {""}, #line 22 "keywords.gperf" {"tdb_lockall_read_nonblock", OP_TDB_LOCKALL_READ_NONBLOCK, op_add_nothing,}, -#line 42 "keywords.gperf" +#line 43 "keywords.gperf" {"tdb_traverse_end", OP_TDB_TRAVERSE_END, op_analyze_traverse,}, #line 38 "keywords.gperf" - {"tdb_transaction_cancel", OP_TDB_TRANSACTION_CANCEL, op_add_nothing,}, -#line 41 "keywords.gperf" - {"tdb_traverse_start", OP_TDB_TRAVERSE_START, op_add_traverse,}, + {"tdb_transaction_cancel", OP_TDB_TRANSACTION_CANCEL, op_analyze_transaction,}, +#line 42 "keywords.gperf" + {"tdb_traverse_start", OP_TDB_TRAVERSE_START, op_add_traverse_start,}, {""}, -#line 34 "keywords.gperf" - {"tdb_append", OP_TDB_APPEND, op_add_append,}, +#line 45 "keywords.gperf" + {"traversefn", OP_TDB_TRAVERSE, op_add_traversefn,}, #line 37 "keywords.gperf" - {"tdb_transaction_start", OP_TDB_TRANSACTION_START, op_add_nothing,}, + {"tdb_transaction_start", OP_TDB_TRANSACTION_START, op_add_transaction,}, #line 39 "keywords.gperf" - {"tdb_transaction_commit", OP_TDB_TRANSACTION_COMMIT, op_add_nothing,}, + {"tdb_transaction_commit", OP_TDB_TRANSACTION_COMMIT, op_analyze_transaction,}, +#line 41 "keywords.gperf" + {"tdb_traverse_read_start", OP_TDB_TRAVERSE_READ_START, op_add_traverse_start,}, + {""}, +#line 50 "keywords.gperf" + {"tdb_repack", OP_TDB_REPACK, op_add_nothing,}, +#line 47 "keywords.gperf" + {"tdb_nextkey", OP_TDB_NEXTKEY, op_add_key_data,}, + {""}, {""}, {""}, #line 40 "keywords.gperf" - {"tdb_traverse_read_start", OP_TDB_TRAVERSE_READ_START, op_add_traverse,}, - {""}, {""}, + {"tdb_transaction_prepare_commit", OP_TDB_TRANSACTION_PREPARE_COMMIT, op_add_nothing,}, #line 31 "keywords.gperf" {"tdb_parse_record", OP_TDB_PARSE_RECORD, op_add_key_ret,}, -#line 44 "keywords.gperf" - {"tdb_firstkey", OP_TDB_FIRSTKEY, op_add_key,}, + {""}, #line 24 "keywords.gperf" - {"tdb_chainlock", OP_TDB_CHAINLOCK, op_add_key,}, + {"tdb_chainlock", OP_TDB_CHAINLOCK, op_add_chainlock,}, {""}, #line 28 "keywords.gperf" - {"tdb_chainunlock", OP_TDB_CHAINUNLOCK, op_add_key,}, -#line 45 "keywords.gperf" - {"tdb_nextkey", OP_TDB_NEXTKEY, op_add_key_data,}, - {""}, + {"tdb_chainunlock", OP_TDB_CHAINUNLOCK, op_analyze_chainlock,}, + {""}, {""}, #line 26 "keywords.gperf" {"tdb_chainlock_mark", OP_TDB_CHAINLOCK_MARK, op_add_key,}, {""}, @@ -171,12 +176,15 @@ find_keyword (register const char *str, register unsigned int len) {"tdb_chainlock_unmark", OP_TDB_CHAINLOCK_UNMARK, op_add_key,}, {""}, #line 25 "keywords.gperf" - {"tdb_chainlock_nonblock", OP_TDB_CHAINLOCK_NONBLOCK, op_add_key_ret,}, + {"tdb_chainlock_nonblock", OP_TDB_CHAINLOCK_NONBLOCK, op_add_chainlock_ret,}, #line 29 "keywords.gperf" - {"tdb_chainlock_read", OP_TDB_CHAINLOCK_READ, op_add_key,}, + {"tdb_chainlock_read", OP_TDB_CHAINLOCK_READ, op_add_chainlock,}, {""}, #line 30 "keywords.gperf" - {"tdb_chainunlock_read", OP_TDB_CHAINUNLOCK_READ, op_add_key,} + {"tdb_chainunlock_read", OP_TDB_CHAINUNLOCK_READ, op_analyze_chainlock,}, + {""}, {""}, {""}, {""}, +#line 34 "keywords.gperf" + {"tdb_append", OP_TDB_APPEND, op_add_append,} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)