diff --git a/CommandParser/LinuxLikeCommandLineInterface.docx b/CommandParser/LinuxLikeCommandLineInterface.docx index 5fbc5b2..8632d6e 100755 Binary files a/CommandParser/LinuxLikeCommandLineInterface.docx and b/CommandParser/LinuxLikeCommandLineInterface.docx differ diff --git a/CommandParser/Makefile b/CommandParser/Makefile index bcf468f..28e549f 100644 --- a/CommandParser/Makefile +++ b/CommandParser/Makefile @@ -3,10 +3,10 @@ CFLAGS=-g -Wall INCLUDES=-I . CLILIB=libcli.a TARGET:exe ${CLILIB} -OBJ=cmd_hier.o parser.o serialize.o string_util.o clistd.o clicbext.o +OBJ=cmd_hier.o parser.o serialize.o string_util.o clistd.o clicbext.o ../EventDispatcher/event_dispatcher.o ../gluethread/glthread.o exe:testapp.o ${CLILIB} @echo "Building final executable" - @ ${CC} ${CFLAGS} ${INCLUDES} testapp.o -o exe -L . -lcli + @ ${CC} ${CFLAGS} ${INCLUDES} testapp.o -o exe -L . -lcli -lpthread cmd_hier.o:cmd_hier.c @echo "Building cmd_hier.o" @ ${CC} ${CFLAGS} -c ${INCLUDES} cmd_hier.c -o cmd_hier.o @@ -32,15 +32,15 @@ ${CLILIB}: ${OBJ} @echo "Building Library ${CLILIB}" ar rs ${CLILIB} ${OBJ} clean: - rm exe - rm *.o - rm ${CLILIB} - rm CMD_HIST_RECORD_FILE.txt || true + rm -f exe + rm -f *.o + rm -f ${CLILIB} + rm -f CMD_HIST_RECORD_FILE.txt install: cp ${CLILIB} /usr/local/lib/ cp libcli.h /usr/include/ cp cmdtlv.h /usr/include/ uninstall: - rm /usr/local/lib/${CLILIB} - rm /usr/include/libcli.h - rm /usr/include/cmdtlv.h + rm -f /usr/local/lib/${CLILIB} + rm -f /usr/include/libcli.h + rm -f /usr/include/cmdtlv.h diff --git a/CommandParser/cliconst.h b/CommandParser/cliconst.h index 29f3ef9..95ea8a8 100644 --- a/CommandParser/cliconst.h +++ b/CommandParser/cliconst.h @@ -28,11 +28,11 @@ #define TERMINAL_NAME_SIZE CONS_INPUT_BUFFER_SIZE #define TLV_MAX_BUFFER_SIZE 1024 #define POSSIBILITY_ARRAY_SIZE 10 -#define DEFAULT_DEVICE_NAME "root@juniper" +#define DEFAULT_DEVICE_NAME "tcp-ip-stack" #define MODE_CHARACTER "/" #define SUBOPTIONS_CHARACTER "?" #define CMD_EXPANSION_CHARACTER "." -#define MAX_OPTION_SIZE 64 +#define MAX_OPTION_SIZE 16 #define CMD_HIST_RECORD_FILE "CMD_HIST_RECORD_FILE.txt" #define FILE_CMD_SIZE_MAX (LEAF_VALUE_HOLDER_SIZE * MAX_CMD_TREE_DEPTH) #define MODE_PARAM_INDEX 0 @@ -73,7 +73,7 @@ typedef enum{ #define CONFIG_SUPPORTSAVE_ENABLE 5 #define CONFIG_CONSOLEN_NAME_NAME 6 #define DEBUG_SHOW_CMDTREE 7 - +#define CONFIG_LOAD_FILE 8 typedef enum{ COMPLETE, diff --git a/CommandParser/clistd.c b/CommandParser/clistd.c index 7158383..1a4f5d4 100644 --- a/CommandParser/clistd.c +++ b/CommandParser/clistd.c @@ -48,7 +48,7 @@ dump_all_commands(param_t *root, unsigned int index){ } else if(IS_PARAM_LEAF(root)){ untokenize(index); - memset(temp, 0, LEAF_VALUE_HOLDER_SIZE + 2); + memset(temp, 0, sizeof(temp)); sprintf(temp, "<%s>", GET_LEAF_ID(root)); tokenize(temp, strlen(GET_LEAF_ID(root)) + 2, index); } @@ -314,6 +314,30 @@ config_mode_enter_handler(param_t *param, ser_buff_t *b, op_mode enable_or_disab return 0; } +extern void +parse_file(char *file_name); + +int +load_file_handler(param_t *param, ser_buff_t *b, op_mode enable_or_disable){ + + char *file_name = NULL; + tlv_struct_t *tlv = NULL; + + TLV_LOOP_BEGIN(b, tlv) { + + if (strncmp(tlv->leaf_id, "file-name", + strlen("file-name")) == 0) { + + file_name = tlv->value; + } + } TLV_LOOP_END; + + assert(file_name); + + parse_file(file_name); + return 0; +} + int negate_callback(param_t *param, ser_buff_t *b, op_mode enable_or_disable){ printf("Command Negation - Type the cmd following to Negate\n"); @@ -358,7 +382,8 @@ show_help_handler(param_t *param, ser_buff_t *b, op_mode enable_or_disable){ printf(" f. debug show cmdtree - Show entire command tree\n"); printf(" g. show history - show history of commands triggered\n"); printf(" h. repeat - repeat the last command\n"); - printf(ANSI_COLOR_YELLOW " Author : Abhishek Sagar, Juniper Networks\n" ANSI_COLOR_RESET); + printf(ANSI_COLOR_YELLOW " Author : Abhishek Sagar, Juniper Networks\n" ANSI_COLOR_RESET); + printf(ANSI_COLOR_YELLOW " Visit : www.csepracticals.com for more courses and projects\n" ANSI_COLOR_RESET); return 0; } diff --git a/CommandParser/cmd_hier.c b/CommandParser/cmd_hier.c index e5171dc..a737fc1 100644 --- a/CommandParser/cmd_hier.c +++ b/CommandParser/cmd_hier.c @@ -157,6 +157,9 @@ parse_input_cmd(char *input, unsigned int len); extern void place_console(char new_line); +extern int +load_file_handler(param_t *param, ser_buff_t *b, op_mode enable_or_disable); + void libcli_register_display_callback(param_t *param, display_possible_values_callback disp_callback){ @@ -307,6 +310,15 @@ init_libcli(){ init_param(&config, CMD, "config", config_mode_enter_handler, 0, INVALID, 0, "config cmds"); libcli_register_param(&root, &config); + static param_t load; + init_param(&load, CMD, "load", 0, 0, INVALID, 0, "load cmds"); + libcli_register_param(&config, &load); + + static param_t file_name; + init_param(&file_name, LEAF, 0, load_file_handler, 0, STRING, "file-name", "Name of the file"); + libcli_register_param(&load, &file_name); + set_param_cmd_code(&file_name, CONFIG_LOAD_FILE); + static param_t supportsave; init_param(&supportsave, CMD, "supportsave", 0 , 0, INVALID, 0, "Collect Support Save Data"); libcli_register_param(&config, &supportsave); @@ -407,7 +419,7 @@ init_param(param_t *param, /* pointer to static pa else if(param_type == NO_CMD){ GET_PARAM_CMD(param) = calloc(1, sizeof(cmd_t)); param->param_type = NO_CMD; - strncpy(GET_CMD_NAME(param), NEGATE_CHARACTER, strlen(NEGATE_CHARACTER)); + memcpy(GET_CMD_NAME(param), NEGATE_CHARACTER, strlen(NEGATE_CHARACTER)); GET_CMD_NAME(param)[CMD_NAME_SIZE -1] = '\0'; } @@ -465,7 +477,7 @@ support_cmd_negation(param_t *param){ } break; } - + assert(i <= CHILDREN_END_INDEX); param->options[i] = no_param; no_param->parent = param; @@ -625,7 +637,7 @@ go_one_level_up_cmd_tree(param_t *curr_cmd_tree_cursor){ if(IS_PARAM_LEAF(curr_cmd_tree_cursor)){ memset(GET_LEAF_VALUE_PTR(curr_cmd_tree_cursor), 0, LEAF_VALUE_HOLDER_SIZE); - serialize_buffer_skip(tlv_buff, -1 * sizeof(tlv_struct_t));/*Rewind*/ + serialize_buffer_skip(tlv_buff, -1 * (int)sizeof(tlv_struct_t));/*Rewind*/ mark_checkpoint_serialize_buffer(tlv_buff); } diff --git a/CommandParser/cmdtlv.h b/CommandParser/cmdtlv.h index 70cb5de..5e9a116 100644 --- a/CommandParser/cmdtlv.h +++ b/CommandParser/cmdtlv.h @@ -63,7 +63,10 @@ typedef struct tlv_struct{ strncpy(tlvptr->leaf_id, leaf->leaf_id, MIN(LEAF_ID_SIZE, strlen(leaf->leaf_id))); #define put_value_in_tlv(tlvptr, _val) \ - strncpy(tlvptr->value, _val, MIN(LEAF_VALUE_HOLDER_SIZE, strlen(_val))); + { \ + const char *temp = _val; \ + memcpy(tlvptr->value, temp, MIN(LEAF_VALUE_HOLDER_SIZE, strlen(temp))); \ + } static inline void print_tlv_content(tlv_struct_t *tlv){ @@ -96,4 +99,5 @@ swap_tlv_units(tlv_struct_t *tlv1, tlv_struct_t *tlv2){ *tlv1 = *tlv2; *tlv2 = tlv; } + #endif /* __CMDTLV__H */ diff --git a/CommandParser/cscope.out b/CommandParser/cscope.out deleted file mode 100644 index 5f5b38a..0000000 --- a/CommandParser/cscope.out +++ /dev/null @@ -1,31296 +0,0 @@ -cscope 15 $HOME/Documents/CommandParser 0000177865 - @clicbext.c - -34  - ~ - -35  - ~"icbext.h -" - -38 - $rme_sigl_hdr -(){ - -45 - `c_sutve_da -(); - -46 - `ex -(0); - -47 - } -} - -50 - $c_sutve_da -(){ - -51 - `tf -("%s(ied ...\n", -__FUNCTION__ -); - -52 - } -} - - @clicbext.h - -33 #ide -__CLICBEXTN__ - - -34  - #__CLICBEXTN__ - - - ) - -37 -rme_sigl_hdr -(); - -40 -c_sutve_da -(); - - @cliconst.h - -19 #ide -__LIBCLICONSTANTS__ - - -20  - #__LIBCLICONSTANTS__ - - - ) - -22  - #CMD_NAME_SIZE - 32 - - ) - -23  - #MAX_CMD_TREE_DEPTH - 16 - - ) - -24  - #LEAF_VALUE_HOLDER_SIZE - 64 - - ) - -25  - #LEAF_ID_SIZE - 32 - - ) - -26  - #PARAM_HELP_STRING_SIZE - 64 - - ) - -27  - #CONS_INPUT_BUFFER_SIZE - 2048 - - ) - -28  - #TERMINAL_NAME_SIZE - -CONS_INPUT_BUFFER_SIZE - - - ) - -29  - #TLV_MAX_BUFFER_SIZE - 1024 - - ) - -31  - #DEFAULT_DEVICE_NAME - "ro@jun" - - ) - -32  - #MODE_CHARACTER - "/" - - ) - -33  - #SUBOPTIONS_CHARACTER - "?" - - ) - -34  - #MAX_OPTION_SIZE - 16 - - ) - -36  - #MODE_PARAM_INDEX - 0 - - ) - -37  - #SUBOPTIONS_INDEX - 1 - - ) - -38  - #CHILDREN_START_INDEX - 2 - - ) - -39  - #CHILDREN_END_INDEX - ( -MAX_OPTION_SIZE - -1) - - ) - -41  - #NEGATE_CHARACTER - "no" - - ) - -50  - #SHOW_HELP - 1 - - ) - -51  - #SHOW_HISTORY - 2 - - ) - -52  - #SHOW_HISTORY_N - 3 - - ) - -53  - #SHOW_REGISTERED_COMMANDS - 4 - - ) - -54  - #CONFIG_SUPPORTSAVE_ENABLE - 5 - - ) - -55  - #CONFIG_CONSOLEN_NAME_NAME - 6 - - ) - - @clistd.c - -19  - ~"cmd_hr.h -" - -20  - ~"id.h -" - -21  - ~"cmdv.h -" - -22  - ~"libi.h -" - -23  - ~"css.h -" - -24  - ~ - -25  - ~"icbext.h -" - -26  - ~"rg_ut.h -" - -29 -r_put_cmd -(* -put -,  -n -); - -32 -g_ϡ_commd -(); - -37 - $t_vidi_hdr -( -af_t - * -af -, * -vue_sd -){ - -40  -VALIDATION_SUCCESS -; - -41 - } -} - -45 - $rg_vidi_hdr -( -af_t - * -af -, * -vue_sd -){ - -48  -VALIDATION_SUCCESS -; - -49 - } -} - -53 - $v4_vidi_hdr -( -af_t - * -af -, * -vue_sd -){ - -56  -VALIDATION_SUCCESS -; - -57 - } -} - -61 - $v6_vidi_hdr -( -af_t - * -af -, * -vue_sd -){ - -64  -VALIDATION_SUCCESS -; - -65 - } -} - -69 - $t_vidi_hdr -( -af_t - * -af -, * -vue_sd -){ - -72  -VALIDATION_SUCCESS -; - -73 - } -} - -76 - $boޗn_vidi_hdr -( -af_t - * -af -, * -vue_sd -){ - -78 if(( - `cmp -( -vue_sd -, "TRUE", - ` -("TRUE")) == 0) || - -79 ( - `cmp -( -vue_sd -, "FALSE", - ` -("FALSE")) ==0)) - -80  -VALIDATION_SUCCESS -; - -82  -VALIDATION_FAILED -; - -83 - } -} - -88  -cse_me -[ -TERMINAL_NAME_SIZE -]; - -91 - $cfig_cse_me_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -93 -v_ru_t - * -v - = -NULL -; - -94  -i - = 0; - -96 - `TLV_LOOP -( -b -, -v -, -i -){ - -97 if( -ab__dib - = -CONFIG_ENABLE -) - -98 - `t_devi_me -( -v --> -vue -); - -100 if( - `cmp -( -v --> -vue -, -cse_me -, - ` -(tlv->value)) == 0) - -101 - `t_devi_me -( -DEFAULT_DEVICE_NAME -); - -103 - `tf -("Error : Incorrect deviceame\n"); - -107 - } -} - -111 - $_ϡ_commd -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -112  -w_le_csume -[2]; - -113 * -ϡ_cmd - = - `g_ϡ_commd -(); - -114 - `tf -("ev : %s", -ϡ_cmd -); - -115 - `snf -("%c", -w_le_csume -);; - -116 - `r_put_cmd -( -ϡ_cmd -, - ` -(last_cmd)); - -118 - } -} - -122 - $mode_r_back -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -124 if( -m - = - `libi_g_ro -()){ - -125 - `tf -( -ANSI_COLOR_YELLOW - "Inf: Modn su܋droنev\n" -ANSI_COLOR_RESET -); - -128 - `t_cmd__curs -( -m -); - -129 - `bud_mode_cse_me -( -m -); - -130 - `mk_checkpot_rlize_bufr -( -b -); - -131 if( - `IS_APPLICATION_CALLBACK_HANDLER_REGISTERED -( -m -)) - -132 - `INVOKE_APPLICATION_CALLBACK_HANDLER -( -m -, -b -, -ab__dib -); - -134 - } -} - -138 - $diy_sub_tis_back -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -140  -i - = 0; - -142 if( - `IS_APPLICATION_CALLBACK_HANDLER_REGISTERED -( -m -)) - -143 - `tf -("\n"); - -145  -i - = -CHILDREN_START_INDEX -; i < -CHILDREN_END_INDEX -; i++){ - -146 if( -m --> -tis -[ -i -]){ - -148 if( - `IS_PARAM_HIDDEN -( -m --> -tis -[ -i -])) - -151 if( - `IS_PARAM_CMD -( -m --> -tis -[ -i -]|| - `IS_PARAM_NO_CMD -(param->options[i])){ - -152 - `tf -( -ANSI_COLOR_MAGENTA - "nxcmd -> %-31 | %s\n" -ANSI_COLOR_RESET -, - `GET_CMD_NAME -( -m --> -tis -[ -i -]), - `GET_PARAM_HELP_STRING -(param->options[i])); - -155 - `tf -( -ANSI_COLOR_CYAN - "nxa-> %-32 | %s\n" -ANSI_COLOR_RESET -, - `GET_LEAF_TYPE_STR -( -m --> -tis -[ -i -]), - `GET_PARAM_HELP_STRING -(param->options[i])); - -161 - } -} - -164 -r_buff_t - * - gfe_ad_bufr - = -NULL -; - -167 - $show_hiy_back -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -169 -FILE - * -f - = - `fݒ -("LIBCLI_HIST_FILE", "r"); - -170 if(! -f -){ - -171 - `tf -("Error : History file couldot beead\n"); - -175  -i - = 0; - -176 -v_ru_t - * -v - = -NULL -; - -178 -v - = ( -v_ru_t - *)( -b -->b); - -181 - } -} - -184 - $r_sn_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -186 - `syem -("clear"); - -188 - } -} - -191 - $ex_cmd_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -193 - `go_e_v_up_cmd_ -( - `g_cmd__curs -()); - -195 - } -} - -198 - $d_cmd_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -200 - `go_t_of_cmd_ -( - `g_cmd__curs -()); - -202 - } -} - -205 - $cfig_mode_r_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -207 - `t_cmd__curs -( -m -); - -208 - `bud_mode_cse_me -( -m -); - -209 - `mk_checkpot_rlize_bufr -( -b -); - -211 - } -} - -214 - $ge_back -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -215 - `tf -("Command Negation - Typehe cmd followingo Negate\n"); - -217 - } -} - -220 - $sutve_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -222  -ab__dib -){ - -223  -CONFIG_ENABLE -: - -224 - `sigl -( -SIGTERM -, -rme_sigl_hdr -); - -225 - `sigl -( -SIGSEGV -, -rme_sigl_hdr -); - -226 - `sigl -( -SIGABRT -, -rme_sigl_hdr -); - -228  -CONFIG_DISABLE -: - -229 - `sigl -( -SIGTERM -, -SIG_DFL -); - -230 - `sigl -( -SIGSEGV -, -SIG_DFL -); - -231 - `sigl -( -SIGABRT -, -SIG_DFL -); - -234 - `as -(0); - -237 - } -} - -240 - $show_hp_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -242 - `tf -("Welcomeo Help Wizard\n"); - -243 - `tf -("========================\n"); - -244 - `tf -("1. U %Chaᔁhcommdؒcommd mode\n", -MODE_CHARACTER -); - -245 - `tf -("2. U %Chaᔁhcommdأpossib flow usubtis\n", -SUBOPTIONS_CHARACTER -); - -246 - `tf -("3. Use 'do' from withinhe config brancho directlyrigger operational commands\n"); - -247 - `tf -("4. Built-in commands:\n"); - -248 - `tf -(". cls - clear screen\n"); - -249 - `tf -(" b.nd - jumpoop of cmdree\n"); - -250 - `tf -(" c.xit - jump oneevel up of commandree\n"); - -251 - `tf -(" d. config [no] consoleame - set/unsetew consoleame\n"); - -252 - `tf -(". config [no] supportsavenable -nable/disable supportsave facility\n"); - -253 - `tf -(" f. debug show cmdtree - Showntire commandree\n"); - -254 - `tf -(" g. show history - show history of commandsriggered\n"); - -255 - `tf -(" h.epeat -epeatheast command\n"); - -256 - `tf -( -ANSI_COLOR_YELLOW - " Auth : Abhishek Sag, Jun Nwks\n" -ANSI_COLOR_RESET -); - -258 - } -} - -261 - $dump_l_commds -( -m_t - * -ro -,  -dex -){ - -263 if(! -ro -) - -266 if( - `IS_PARAM_NO_CMD -( -ro -)) - -269 if( - `IS_PARAM_CMD -( -ro -)){ - -270 - `uokize -( -dex -); - -271 - `tokize -( - `GET_CMD_NAME -( -ro -), - ` -(GET_CMD_NAMEo)), -dex -); - -273 if( - `IS_PARAM_LEAF -( -ro -)){ - -274 - `uokize -( -dex -); - -275 - `tokize -( - `GET_LEAF_ID -( -ro -), - ` -(GET_LEAF_IDo)), -dex -); - -278  -i - = -CHILDREN_START_INDEX -; - -280  ; -i - < -CHILDREN_END_INDEX -; i++) - -281 - `dump_l_commds -( -ro --> -tis -[ -i -], -dex -+1); - -283 if( - `IS_APPLICATION_CALLBACK_HANDLER_REGISTERED -( -ro -)){ - -284 - `t_toks -( -dex - + 1); - -285 - `tf -("\n"); - -287 - } -} - -290 - $show_sgied_cmd_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -){ - -293 - `__toks -( -MAX_CMD_TREE_DEPTH -); - -295 -m_t - * -ro - = - `libi_g_ro -(); - -297  -dex - = 0; - -298 - `dump_l_commds -( -ro -, -dex -); - -300 - } -} - - @clistd.h - -19 #ide -__CLISTD__ - - -20  - #__CLISTD__ - - - ) - -22  - ~"libiid.h -" - -24  -af - - taf_t -; - -25  -_m_t_ - - tm_t -; - -27  -rlized_bufr - - tr_buff_t -; - -30 - mVALIDATION_FAILED - = -1, - -31 - mVALIDATION_SUCCESS - - -32 } - tCLI_VAL_RC -; - -36 -CLI_VAL_RC - - -37 -t_vidi_hdr -( -af_t - * -af -, * -vue_sd -); - -39 -CLI_VAL_RC - - -40 -rg_vidi_hdr -( -af_t - * -af -, * -vue_sd -); - -42 -CLI_VAL_RC - - -43 -v4_vidi_hdr -( -af_t - * -af -, * -vue_sd -); - -45 -CLI_VAL_RC - - -46 -v6_vidi_hdr -( -af_t - * -af -, * -vue_sd -); - -48 -CLI_VAL_RC - - -49 -t_vidi_hdr -( -af_t - * -af -, * -vue_sd -); - -51 -CLI_VAL_RC - - -52 -boޗn_vidi_hdr -( -af_t - * -af -, * -vue_sd -); - -56 -cfig_cse_me_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -59 -_ϡ_commd -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -62 -mode_r_back -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -65 -diy_sub_tis_back -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -68 -show_hiy_back -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -71 -r_sn_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -74 -ex_cmd_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -77 -d_cmd_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -80 -cfig_mode_r_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -83 -ge_back -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -86 -sutve_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -89 -show_hp_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - -92 -show_sgied_cmd_hdr -( -m_t - * -m -, -r_buff_t - * -b -, -_mode - -ab__dib -); - - @cmd_hier.c - -19  - ~ - -20  - ~ - -21  - ~ - -22  - ~ - -23  - ~"cmdv.h -" - -24  - ~"libi.h -" - -25  - ~"id.h -" - -26  - ~"rg_ut.h -" - -27  - ~"css.h -" - -28  - ~ - -30 -af_ty_hdr - - gaf_hdr_y -[ -LEAF_MAX -]; - -31 -r_buff_t - * - gv_buff -; - -32  -m_t - * - gcmd__curs - = -NULL -; - -35  -m_t - - gro -; - -36  -m_t - - gdo_hook -; - -37  -m_t - - gshow -; - -38  -m_t - - gdebug -; - -39  -m_t - - gcfig -; - -40  -m_t - - gr -; - -44  -m_t - - gmode_m -; - -45  -m_t - - gsubtis_m -; - -47 -m_t - * - -48 - $libi_g_mode_m -(){ - -49  & -mode_m -; - -50 - } -} - -53 -m_t - * - -54 - $libi_g_subtis_m -(){ - -55  & -subtis_m -; - -56 - } -} - -60 -m_t - * - -61 - $libi_g_ro -(){ - -62  & -ro -; - -63 - } -} - -65 -m_t - * - -66 - $libi_g_do_hook -(){ - -67  & -do_hook -; - -68 - } -} - -70 -m_t - * - -71 - $libi_g_show_hook -(){ - -72  & -show -; - -73 - } -} - -75 -m_t - * - -76 - $libi_g_debug_hook -(){ - -77  & -debug -; - -78 - } -} - -80 -m_t - * - -81 - $libi_g_cfig_hook -(){ - -82  & -cfig -; - -83 - } -} - -85 -m_t - * - -86 - $libi_g_r_hook -(){ - -87  & -r -; - -88 - } -} - -92 - $t_cmd__curs -(){ - -93 -cmd__curs - = & -ro -; - -94 - `t_rlize_bufr -( -v_buff -); - -95 - } -} - -98 - $t_cmd__curs -( -m_t - * -m -){ - -99 - `as -( -m -); - -100 -cmd__curs - = -m -; - -101 - } -} - -103 -m_t - * - -104 - $g_cmd__curs -(){ - -105  -cmd__curs -; - -106 - } -} - -109 - $is_ur__cmd_mode -(){ - -110  ( - `g_cmd__curs -(!& -ro -); - -111 - } -} - -114 -g_ϡ_commd -(); - -116  -cse_me -[ -TERMINAL_NAME_SIZE -]; - -118 -r_buff_t - * -fe_ad_bufr -; - -121 -r_put_cmd -(* -put -,  -n -); - -124 -a_cse -( -w_le -); - -127 - $g_r_af_ty -( -af_ty_t - -af_ty -){ - -129  -af_ty -){ - -130  -INT -: - -132  -STRING -: - -134  -IPV4 -: - -136  -FLOAT -: - -138  -IPV6 -: - -140  -BOOLEAN -: - -142  -LEAF_MAX -: - -147  -NULL -; - -148 - } -} - -152 - $C_sigl_hdr -( -sig -){ - -153 - `tf -("Ctrl-Cressed\n"); - -154 - `tf -("Bye Bye\n"); - -155 - `ex -(0); - -156 - } -} - -159 - $_libi -(){ - -161 - `_m -(& -ro -, -CMD -, "ROOT", 0, 0, -INVALID -, 0, "ROOT"); - -164 - `_rlized_bufr_of_defed_size -(& -v_buff -, -TLV_MAX_BUFFER_SIZE -); - -165 - `_rlized_bufr_of_defed_size -(& -fe_ad_bufr -, -TLV_MAX_BUFFER_SIZE -); - -167 - `t_cmd__curs -(); - -170 -af_hdr_y -[ -INT -] = -t_vidi_hdr -; - -171 -af_hdr_y -[ -STRING -] = -rg_vidi_hdr -; - -172 -af_hdr_y -[ -IPV4 -] = -v4_vidi_hdr -; - -173 -af_hdr_y -[ -IPV6 -] = -v6_vidi_hdr -; - -174 -af_hdr_y -[ -FLOAT -] = -t_vidi_hdr -; - -175 -af_hdr_y -[ -BOOLEAN -] = -boޗn_vidi_hdr -; - -177 - `t_devi_me -( -DEFAULT_DEVICE_NAME -); - -180 - `_tok_y -(); - -183 - `_m -(& -mode_m -, -CMD -, -MODE_CHARACTER -, -mode_r_back - , 0, -INVALID -, 0, "ENTER MODE"); - -184 - `_m -(& -subtis_m -, -CMD -, -SUBOPTIONS_CHARACTER -, -diy_sub_tis_back -, 0, -INVALID -, 0, "Sub-Options"); - -188 - `_m -(& -show -, -CMD -, "show", 0, 0, -INVALID -, 0, "show cmds"); - -189 - `libi_gi_m -(& -ro -, & -show -); - -191  -m_t - -hp -; - -192 - `_m -(& -hp -, -CMD -, "hp", -show_hp_hdr -, 0, -INVALID -, 0, "help howo usehis CLI"); - -193 - `libi_gi_m -(& -show -, & -hp -); - -194 - `t_m_cmd_code -(& -hp -, -SHOW_HELP -); - -197  -m_t - -show_hiy -; - -198 - `_m -(& -show_hiy -, -CMD -, "hiy", -show_hiy_back -, 0, -INVALID -, 0, "Command history"); - -199 - `libi_gi_m -(& -show -, & -show_hiy -); - -200 - `t_m_cmd_code -(& -show_hiy -, -SHOW_HISTORY -); - -202  -m_t - -no_of_commds -; - -203 - `_m -(& -no_of_commds -, -LEAF -, "N", -show_hiy_back -, 0, -INT -, "N", "No Of Commandso fetch"); - -204 - `libi_gi_m -(& -show_hiy -, & -no_of_commds -); - -205 - `t_m_cmd_code -(& -no_of_commds -, -SHOW_HISTORY_N -); - -208  -m_t - -show_sgied -; - -209 - `_m -(& -show_sgied -, -CMD -, "gied", 0, 0, -INVALID -, 0, "registered"); - -210 - `libi_gi_m -(& -show -, & -show_sgied -); - -212  -m_t - -show_sgied_cmds -; - -213 - `_m -(& -show_sgied_cmds -, -CMD -, "commds", -show_sgied_cmd_hdr -, 0, -INVALID -, 0, "commands"); - -214 - `libi_gi_m -(& -show_sgied -, & -show_sgied_cmds -); - -215 - `t_m_cmd_code -(& -show_sgied_cmds -, -SHOW_REGISTERED_COMMANDS -); - -218 - `_m -(& -debug -, -CMD -, "debug", 0, 0, -INVALID -, 0, "debug cmds"); - -219 - `libi_gi_m -(& -ro -, & -debug -); - -222 - `_m -(& -cfig -, -CMD -, "cfig", -cfig_mode_r_hdr -, 0, -INVALID -, 0, "config cmds"); - -223 - `libi_gi_m -(& -ro -, & -cfig -); - -225  -m_t - -sutve -; - -226 - `_m -(& -sutve -, -CMD -, "sutve", 0 , 0, -INVALID -, 0, "Collect Support Save Data"); - -227 - `libi_gi_m -(& -cfig -, & -sutve -); - -229  -m_t - -sutve_ab -; - -230 - `_m -(& -sutve_ab -, -CMD -, "ab", -sutve_hdr - , 0, -INVALID -, 0, "enable/disable Support Save Data Collection"); - -231 - `libi_gi_m -(& -sutve -, & -sutve_ab -); - -232 - `t_m_cmd_code -(& -sutve_ab -, -CONFIG_SUPPORTSAVE_ENABLE -); - -235 - `_m -(& -r -, -CMD -, "r", 0, 0, -INVALID -, 0, "clear cmds"); - -236 - `libi_gi_m -(& -ro -, & -r -); - -239 - `_m -(& -do_hook -, -CMD -, "DO_HOOK", 0, 0, -INVALID -, 0, "operational commands shortcut"); - -240 -do_hook -. -tis -[ -MODE_PARAM_INDEX -] = - `libi_g_subtis_m -(); - -241 -do_hook -. -tis -[ -SUBOPTIONS_INDEX -] = - `libi_g_subtis_m -(); - -242 -do_hook -. -tis -[ -CHILDREN_START_INDEX -] = & -show -; - -243 -do_hook -. -tis -[ -CHILDREN_START_INDEX -+1] = & -debug -; - -244 -do_hook -. -tis -[ -CHILDREN_START_INDEX -+2] = & -r -; - -247  -m_t - - -; - -248 - `_m -(& - -, -CMD -, "", -_ϡ_commd -, 0, -INVALID -, 0, "repeat"); - -249 - `libi_gi_m -(& -ro -, & - -); - -252  -m_t - -cfig_cse -; - -253 - `_m -(& -cfig_cse -, -CMD -, "cse", 0, 0, -INVALID -, 0, "console"); - -254 - `libi_gi_m -(& -cfig -, & -cfig_cse -); - -257  -m_t - -cfig_cse_me -; - -258 - `_m -(& -cfig_cse_me -, -CMD -, "me", 0, 0, -INVALID -, 0, "name"); - -259 - `libi_gi_m -(& -cfig_cse -, & -cfig_cse_me -); - -261  -m_t - -cfig_cse_me_me -; - -262 - `_m -(& -cfig_cse_me_me -, -LEAF -, 0, -cfig_cse_me_hdr -, 0, -STRING -, "cons-name", "Name of Console"); - -263 - `libi_gi_m -(& -cfig_cse_me -, & -cfig_cse_me_me -); - -264 - `t_m_cmd_code -(& -cfig_cse_me_me -, -CONFIG_CONSOLEN_NAME_NAME -); - -267  -m_t - -s -; - -268 - `_m -(& -s -, -CMD -, "s", -r_sn_hdr -, 0, -INVALID -, 0, "clear screen"); - -269 - `HIDE_PARAM -(& -s -); - -270 - `libi_gi_m -(0, & -s -); - -272  -m_t - -ex_cmd -; - -273 - `_m -(& -ex_cmd -, -CMD -, "ex", -ex_cmd_hdr -, 0, -INVALID -, 0, "Move One Level Up"); - -274 - `HIDE_PARAM -(& -ex_cmd -); - -275 - `libi_gi_m -(0, & -ex_cmd -); - -277  -m_t - -d_cmd -; - -278 - `_m -(& -d_cmd -, -CMD -, "d", -d_cmd_hdr -, 0, -INVALID -, 0, "Goto Topevel"); - -279 - `HIDE_PARAM -(& -d_cmd -); - -280 - `libi_gi_m -(0, & -d_cmd -); - -288 - `sigl -( -SIGINT -, -C_sigl_hdr -); - -289 - } -} - -292 - $_m -( -m_t - * -m -, - -293 -m_ty_t - -m_ty -, - -294 * -cmd_me -, - -295 -cmd_back - -back -, - -296 -ur_vidi_back - -ur_vidi_cb_ -, - -297 -af_ty_t - -af_ty -, - -298 * -af_id -, - -299 * -hp -){ - -301  -i - = 0; - -302 if( -m_ty - = -CMD -){ - -303 - `GET_PARAM_CMD -( -m - - `oc -(1, ( -cmd_t -)); - -304 -m --> -m_ty - = -CMD -; - -305 - `y -( - `GET_CMD_NAME -( -m -), -cmd_me -, - `MIN -( -CMD_NAME_SIZE -, - ` -(cmd_name))); - -306 - `GET_CMD_NAME -( -m -)[ -CMD_NAME_SIZE - -1] = '\0'; - -308 if( -m_ty - = -LEAF -){ - -309 - `GET_PARAM_LEAF -( -m - - `oc -(1, ( -af_t -)); - -310 -m --> -m_ty - = -LEAF -; - -311 - `GET_PARAM_LEAF -( -m -)-> -af_ty - =eaf_type; - -312 -m --> -cmd_ty -. -af --> -ur_vidi_cb_ - = user_validation_cb_fn; - -313 - `y -( - `GET_LEAF_ID -( -m -), -af_id -, - `MIN -( -LEAF_ID_SIZE -, - ` -(leaf_id))); - -314 - `GET_LEAF_ID -( -m -)[ -LEAF_ID_SIZE - -1] = '\0'; - -316 if( -m_ty - = -NO_CMD -){ - -317 - `GET_PARAM_CMD -( -m - - `oc -(1, ( -cmd_t -)); - -318 -m --> -m_ty - = -NO_CMD -; - -319 - `y -( - `GET_CMD_NAME -( -m -), -NEGATE_CHARACTER -, - ` -(NEGATE_CHARACTER)); - -320 - `GET_CMD_NAME -( -m -)[ -CMD_NAME_SIZE - -1] = '\0'; - -323 -m --> -ishidd - = 0; - -324 -m --> - - = -NULL -; - -325 -m --> -back - = callback; - -326 - `y -( - `GET_PARAM_HELP_STRING -( -m -), -hp -, - `MIN -( -PARAM_HELP_STRING_SIZE -, - ` -(help))); - -327 - `GET_PARAM_HELP_STRING -( -m -)[ -PARAM_HELP_STRING_SIZE - -1] = '\0'; - -329 ; -i - < -MAX_OPTION_SIZE -; i++){ - -330 -m --> -tis -[ -i -] = -NULL -; - -333 -m --> -CMDCODE - = -1; - -334 - } -} - -337 - $t_m_cmd_code -( -m_t - * -m -,  -cmd_code -){ - -339 if( -m --> -back - = -NULL -) - -340 - `as -(0); - -341 -m --> -CMDCODE - = -cmd_code -; - -342 - } -} - -345 - $sut_cmd_gi -( -m_t - * -m -){ - -347  -i - = 0; - -348 - `as -( -m -); - -349 - `as -( - `g_cut_bnch_hook -( -m -= - `libi_g_cfig_hook -()); - -351 -m_t - * -ge_m - = - `fd_mchg_m -(& -m --> -tis -[0], -NEGATE_CHARACTER -); - -353 if( -ge_m - && - `IS_PARAM_NO_CMD -(negate_param)){ - -354 - `tf -("E : Aemadd Dui Negm icmd : %s\n", - `GET_CMD_NAME -( -m -)); - -358 -m_t - * -no_m - = - `oc -(1, (param_t)); - -359 - `_m -( -no_m -, -NO_CMD -, -NEGATE_CHARACTER -, -ge_back -, 0, -INVALID -, 0, "Command Negation"); - -365 -no_m --> -tis -[ -MODE_PARAM_INDEX -] = - `libi_g_subtis_m -(); - -366 -no_m --> -tis -[ -SUBOPTIONS_INDEX -] = - `libi_g_subtis_m -(); - -368  -i - = -CHILDREN_START_INDEX -; i < -CHILDREN_END_INDEX -; i++){ - -369 if( -m --> -tis -[ -i -]){ - -370 -no_m --> -tis -[ -i -] = -m -->options[i]; - -376 - `as -( -i - < -CHILDREN_END_INDEX -); - -377 -m --> -tis -[ -i -] = -no_m -; - -378 -no_m --> - - = -m -; - -380 - } -} - -384 - $t_devi_me -(cڡ * -cs_me -){ - -386 ** -toks - = -NULL -; - -387 -size_t - -tok_t - = 0; - -389 - `as -( -cs_me -); - -391 if( - ` -( -cse_me -)) - -392 -toks - = - `r_l2 -( -cse_me -, '>', & -tok_t -); - -394 - `rtf -( -cse_me -, "%s>", -cs_me -); - -396 if( -tok_t - > 1){ - -397 - `rt -( -cse_me -, " "); - -398 - `rg_a_im -( -toks -[1]); - -399 - `rt -( -cse_me -, -toks -[1]); - -401 - } -} - -405 - $libi_gi_m -( -m_t - * - -,am_* -chd -){ - -407  -i - = 0; - -408 if(! - -) - -409 - - = & -ro -; - -411 if(! - `IS_PARAM_MODE_ENABLE -( - -)){ - -412 - --> -tis -[ -MODE_PARAM_INDEX -] = - `libi_g_mode_m -(); - -415 if(! - `IS_PARAM_SUBOPTIONS_ENABLE -( - -)){ - -416 - --> -tis -[ -SUBOPTIONS_INDEX -] = - `libi_g_subtis_m -(); - -419  -i - = -CHILDREN_START_INDEX -; i < -CHILDREN_END_INDEX -; i++){ - -420 if( - --> -tis -[ -i -]) - -423 - --> -tis -[ -i -] = -chd -; - -424 -chd --> - - =arent; - -428 - `tf -("%s(: E : Nإa f܂ew commd\n", -__FUNCTION__ -); - -429 - `as -(0); - -430 - } -} - -433 - $_dump_e_cmd -( -m_t - * -m -,  -bs -){ - -435  -i - = 0; - -437 - `PRINT_TABS -( -bs -); - -439 if( - `IS_PARAM_CMD -( -m -|| - `IS_PARAM_NO_CMD -(param)) - -440 - `tf -("-->%s(%d)", - `GET_CMD_NAME -( -m -), -bs -); - -442 - `tf -("-->%s(%d)", - `GET_LEAF_TYPE_STR -( -m -), -bs -); - -444 ; -i - < -MAX_OPTION_SIZE -; i++){ - -445 if( -m --> -tis -[ -i -]){ - -446 - `tf -("\n"); - -447 - `_dump_e_cmd -( -m --> -tis -[ -i -], ++ -bs -); - -448 -- -bs -; - -453 - } -} - -456 - $dump_cmd_ -(){ - -457 - `_dump_e_cmd -(& -ro -, 0); - -458 - } -} - -461  -commd_rr -(); - -464  -hd_commd_rr -(); - -467 - $t_shl -(){ - -468 - `commd_rr -(); - -469 - } -} - -473 -m_t -* - -474 - $g_cut_bnch_hook -( -m_t - * -cut_m -){ - -475 - `as -( -cut_m -); - -476 - `as -( -cut_m - !& -ro -); - -477  -cut_m --> - - !& -ro -){ - -478 -cut_m - = cut_m-> - -; - -480  -cut_m -;; - -481 - } -} - -489 - $go_t_of_cmd_ -( -m_t - * -cu_cmd__curs -){ - -491 ** -toks - = -NULL -; - -492 -size_t - -tok_t - = 0; - -494 - `as -( -cu_cmd__curs -); - -496 if( -cu_cmd__curs - =& -ro -){ - -497 - `tf -( -ANSI_COLOR_BLUE - "Inf: ARoot A̗dy\n" -ANSI_COLOR_RESET -); - -502 if( - `IS_PARAM_CMD -( -cu_cmd__curs -)){ - -503 -cu_cmd__curs - = cu_cmd__curs-> - -; - -506 - `memt -( - `GET_LEAF_VALUE_PTR -( -cu_cmd__curs -), 0, -LEAF_VALUE_HOLDER_SIZE -); - -507 -cu_cmd__curs - = cu_cmd__curs-> - -; - -508 }  -cu_cmd__curs - !& -ro -); - -510 - `t_cmd__curs -(); - -511 -toks - = - `r_l2 -( -cse_me -, '>', & -tok_t -); - -512 - `rtf -( -cse_me -, "%s>", -toks -[0]); - -513 - } -} - -516 - $go_e_v_up_cmd_ -( -m_t - * -cu_cmd__curs -){ - -518 ** -toks - = -NULL -; - -519 -size_t - -tok_t - = 0; - -521 - `as -( -cu_cmd__curs -); - -523 if( -cu_cmd__curs - =& -ro -){ - -524 - `tf -( -ANSI_COLOR_BLUE - "Inf: ARoot A̗dy\n" -ANSI_COLOR_RESET -); - -528 if( - `IS_PARAM_LEAF -( -cu_cmd__curs -)){ - -529 - `memt -( - `GET_LEAF_VALUE_PTR -( -cu_cmd__curs -), 0, -LEAF_VALUE_HOLDER_SIZE -); - -530 - `rlize_bufr_sk -( -v_buff -, -1 * ( -v_ru_t -)); - -531 - `mk_checkpot_rlize_bufr -( -v_buff -); - -534 - `t_cmd__curs -( -cu_cmd__curs --> - -); - -536 if( - `g_cmd__curs -(=& -ro -){ - -537 -toks - = - `r_l2 -( -cse_me -, '>', & -tok_t -); - -538 - `rtf -( -cse_me -, "%s>", -toks -[0]); - -539 - `t_rlize_bufr -( -v_buff -); - -543 - `bud_mode_cse_me -( - `g_cmd__curs -()); - -544 - } -} - -551 - $bud_mode_cse_me -( -m_t - * -d_m -){ - -553 - `as -( -d_m -); - -554 - `as -( -d_m - !& -ro -); - -556  -i - = -MAX_CMD_TREE_DEPTH - -1; - -557 -size_t - -tok_t - = 0; - -559 ** -toks - = -NULL -; - -560 * -nd_rg - = -NULL -; - -562  -cmd_mes -[ -MAX_CMD_TREE_DEPTH -][ -LEAF_VALUE_HOLDER_SIZE -]; - -563 * -adm_t_cse_me - = -NULL -; - -565 -toks - = - `r_l2 -( -cse_me -, '>', & -tok_t -); - -566 -adm_t_cse_me - = -toks -[0]; - -567 - `rtf -( -cse_me -, "%s> ", -adm_t_cse_me -); - -570 - `as -( -i - != -1); - -571 if( - `IS_PARAM_CMD -( -d_m -)) - -572 -nd_rg - = - `GET_CMD_NAME -( -d_m -); - -574 -nd_rg - = - `GET_LEAF_VALUE_PTR -( -d_m -); - -576 - `y -( -cmd_mes -[ -i -], -nd_rg -, - ` -(append_string)); - -577 -i ---; - -578 -d_m - = d_m-> - -; - -579 } -d_m - !& -ro -); - -581  -i - = i+1; i < -MAX_CMD_TREE_DEPTH - -1; i++){ - -582 - `rt -( -cse_me -, -cmd_mes -[ -i -]); - -583 - `rt -( -cse_me -, "-"); - -586 - `rt -( -cse_me -, -cmd_mes -[ -i -]); - -587 - `memt -( -cmd_mes -, 0, -MAX_CMD_TREE_DEPTH - * -LEAF_VALUE_HOLDER_SIZE -); - -588 - } -} - -593 - $bud_cmd__aves_da -( -r_buff_t - * -v_buff -, - -594 -m_t - * -c_m -, - -595 -m_t - * -d_m -){ - -597 - `as -( -v_buff -); - -598 - `as -( -c_m -); - -599 - `as -( -d_m -); - -601 -v_ru_t - -v -, * -v_mp - = -NULL -; - -602  -v_uns - = 0, -i - = 0, -j - = 0; - -604 - `memt -(& -v -, 0, ( -v_ru_t -)); - -605 - `t_rlize_bufr -( -v_buff -); - -607  -d_m - ! -c_m -){ - -608 if( - `IS_PARAM_CMD -( -d_m -)){ - -609 -d_m - = d_m-> - -; - -613 - `e_v_om_af -( - `GET_PARAM_LEAF -( -d_m -), (& -v -)); - -614 - `put_vue__v -((& -v -), - `GET_LEAF_VALUE_PTR -( -d_m -)); - -615 - `c_v -( -v_buff -, & -v -); - -616 - `memt -(& -v -, 0, ( -v_ru_t -)); - -618 -d_m - = d_m-> - -; - -621 if( - `IS_PARAM_LEAF -( -d_m -)){ - -622 - `e_v_om_af -( - `GET_PARAM_LEAF -( -d_m -), (& -v -)); - -623 - `put_vue__v -((& -v -), - `GET_LEAF_VALUE_PTR -( -d_m -)); - -624 - `c_v -( -v_buff -, & -v -); - -628 if( - `g_rlize_bufr_size -( -v_buff -< (( -v_ru_t -) << 1)){ - -632 -v_uns - = - `g_rlize_bufr_size -( -v_buff -)/( -v_ru_t -); - -633 -v_mp - = ( -v_ru_t - *)( -v_buff --> -b -); - -634 -j - = -v_uns - -1; - -636 ; -i - < ( -v_uns - >> 1); i++, -j ---){ - -637 - `sw_v_uns -( -v_mp -+ -i -,lv_m+ -j -); - -639 - } -} - - @cmd_hier.h - -19 #ide -__CMD_HIER__ - - -20  - #__CMD_HIER__ - - - ) - -22  - ~ - -23  - ~ - -24  - ~"libiid.h -" - -25  - ~"id.h -" - -27  - ~"icڡ.h -" - -29  -rlized_bufr - - tr_buff_t -; - -30 (* - tcmd_back -)( - tm_t - * - tm -, - tr_buff_t - * - tv_buf -, - t_mode - - tab__db -); - -31 (* - tur_vidi_back -)(* - taf_vue -); - -34  -_m_t_ - - tm_t -; - -36  - scmd -{ - -37  -cmd_me -[ -CMD_NAME_SIZE -]; - -38 } - tcmd_t -; - -40  - saf -{ - -41 -af_ty_t - -af_ty -; - -42  -vue_hd -[ -LEAF_VALUE_HOLDER_SIZE -]; - -43 -ur_vidi_back - -ur_vidi_cb_ -; - -44  -af_id -[ -LEAF_ID_SIZE -]; - -45 } - taf_t -; - -47  - $CLI_VAL_RC - (* - taf_ty_hdr -)( - taf_t - * - taf -, * - tvue_sd -); - -50 -CMD -, - -51 -LEAF -, - -52 -NO_CMD - - -53 } - tm_ty_t -; - -55  - u_m_t -{ - -56 -cmd_t - * -cmd -; - -57 -af_t - * -af -; - -58 } - t_m_t -; - -60  - s_m_t_ -{ - -61 -m_ty_t - -m_ty -; - -62 -_m_t - -cmd_ty -; - -63 -cmd_back - -back -; - -64  -ishidd -; - -65  -hp -[ -PARAM_HELP_STRING_SIZE -]; - -66 -m_t - * -tis -[ -MAX_OPTION_SIZE -]; - -67 -m_t - * - -; - -68  -CMDCODE -; - -72 - `g_r_af_ty -( -af_ty_t - -af_ty -); - -75  - #MIN -( -a -, -b - < b ? : b) - - ) - -77  - #GET_PARAM_CMD -( -m -լam-> -cmd_ty -. -cmd -) - - ) - -78  - #GET_PARAM_LEAF -( -m -լam-> -cmd_ty -. -af -) - - ) - -79  - #IS_PARAM_NO_CMD -( -m -լam-> -m_ty - = -NO_CMD -) - - ) - -80  - #IS_PARAM_CMD -( -m -լam-> -m_ty - = -CMD -) - - ) - -81  - #IS_PARAM_LEAF -( -m -լam-> -m_ty - = -LEAF -) - - ) - -82  - #GET_LEAF_TYPE_STR -( -m -( - `g_r_af_ty -( - `GET_PARAM_LEAF -լam)-> -af_ty -)) - - ) - -83  - #GET_LEAF_VALUE_PTR -( -m -( - `GET_PARAM_LEAF -լam)-> -vue_hd -) - - ) - -84  - #GET_LEAF_TYPE -( -m -( - `GET_PARAM_LEAF -լam)-> -af_ty -) - - ) - -85  - #GET_CMD_NAME -( -m -( - `GET_PARAM_CMD -լam)-> -cmd_me -) - - ) - -86  - #GET_PARAM_HELP_STRING -( -m -լam-> -hp -) - - ) - -87  - #GET_LEAF_ID -( -m -( - `GET_PARAM_LEAF -լam)-> -af_id -) - - ) - -89  - #IS_LEAF_USER_VALIDATION_CALLBACK_REGISTERED -( -m -) \ - -90 ( -m --> -cmd_ty -. -af --> -ur_vidi_cb_ -) - - ) - -92  - #IS_APPLICATION_CALLBACK_HANDLER_REGISTERED -( -m -լam-> -back -) - - ) - -94  - #_INVOKE_LEAF_USER_VALIDATION_CALLBACK -( -m -, -g -) \ - -95 ( -m --> -cmd_ty -. -af --> - `ur_vidi_cb_ -( -g -)) - - ) - -97  - #INVOKE_LEAF_LIB_VALIDATION_CALLBACK -( -m -, -g -) \ - -98 ( -af_hdr_y -[ - `GET_LEAF_TYPE -( -m -)]( - `GET_PARAM_LEAF -լam), -g -)) - - ) - -100  - #INVOKE_APPLICATION_CALLBACK_HANDLER -( -m -, -g -, -ab__dib -) \ - -101 -m --> - `back -լam, -g -, -ab__dib -); - - ) - -103  - #IS_PARAM_MODE_ENABLE -( -m_r -լam_r-> -tis -[ -MODE_PARAM_INDEX -] ! -NULL -) - - ) - -104  - #IS_PARAM_SUBOPTIONS_ENABLE -( -m_r -լam_r-> -tis -[ -SUBOPTIONS_INDEX -] ! -NULL -) - - ) - -109 - `is_ur__cmd_mode -(); - -111 -m_t - * - -112 - `libi_g_no_hook -(); - -114 -m_t - * - -115 - `libi_g_do_hook -(); - -117 -m_t - * - -118 - `libi_g_ro -(); - -120 -m_t - * - -121 - `libi_g_mode_m -(); - -123 -m_t - * - -124 - `libi_g_subtis_m -(); - -126  -le -  - -127 - $is_cmd_rg_mch -( -m_t - * -m -, cڡ * -r -){ - -128  ( - `cmp -( -m --> -cmd_ty -. -cmd --> -cmd_me -, - -129 -r -, - -130 - ` -( -r -))); - -131 - } -} - -133  -le - -m_t - ** - -134 - $g_chd_y_r -( -m_t - * -m -){ - -135  & -m --> -tis -[0]; - -136 - } -} - -138  -le -  - -139 - $INVOKE_LEAF_USER_VALIDATION_CALLBACK -( -m_t - * -m -, * -af_vue -) { - -141 - `as -( -m -); - -142 - `as -( -af_vue -); - -145 if(! - `IS_LEAF_USER_VALIDATION_CALLBACK_REGISTERED -( -m -)) - -148  - `_INVOKE_LEAF_USER_VALIDATION_CALLBACK -( -m -, -af_vue -); - -149 - } -} - -152  - #PRINT_TABS -( -n -) \ - -154  -_i - = 0; \ - -155 ; -_i - < -n -; _i++) \ - -156 - `tf -(" "); \ - -157 } 0); - - ) - -161 -m_t - * - -162 -g_cut_bnch_hook -( -m_t - * -cut_m -); - -165  - #IS_CURRENT_MODE_SHOW -(( - `g_cut_bnch_hook -( - `g_cmd__curs -()= - `libi_g_show_hook -()) - - ) - -166  - #IS_CURRENT_MODE_DEBUG -(( - `g_cut_bnch_hook -( - `g_cmd__curs -()= - `libi_g_debug_hook -()) - - ) - -167  - #IS_CURRENT_MODE_CONFIG -(( - `g_cut_bnch_hook -( - `g_cmd__curs -()= - `libi_g_cfig_hook -()) - - ) - -168  - #IS_CURRENT_MODE_CLEAR -(( - `g_cut_bnch_hook -( - `g_cmd__curs -()= - `libi_g_r_hook -()) - - ) - -171 -t_cmd__curs -(); - -174 -go_t_of_cmd_ -( -m_t - * -cu_cmd__curs -); - -177 -go_e_v_up_cmd_ -( -m_t - * -cu_cmd__curs -); - -180 -t_cmd__curs -( -m_t - * -m -); - -182 -m_t - * - -183 -g_cmd__curs -(); - -185 -m_t -* - -186 -fd_mchg_m -( -m_t - ** -tis -, cڡ * -cmd_me -); - -189 -bud_mode_cse_me -( -m_t - * -d_m -); - -194 -bud_cmd__aves_da -( -r_buff_t - * -v_buff -, - -195 -m_t - * -c_m -, - -196 -m_t - * -d_m -); - - @cmdtlv.h - -20 #ide -__CMDTLV__H - - -21  - #__CMDTLV__H - - - ) - -23  - ~"libiid.h -" - -24  - ~"rlize.h -" - -25  - ~ - -26  - ~"cmd_hr.h -" - -28 #agm -ck - ( -push -,1) - -29  - sv_ru -{ - -30 -af_ty_t - - maf_ty -; - -31  - maf_id -[ -LEAF_ID_SIZE -]; - -32  - mvue -[ -LEAF_VALUE_HOLDER_SIZE -]; - -33 } - tv_ru_t -; - -34 #agm -ck -( -p -) - -36  - #EXTRACT_CMD_CODE -( -r_buff_r -) \ - -37 - `oi -((( -v_ru_t - *) -r_buff_r - + ( - `g_rlize_bufr_size -( -r_buff -)/lv_ru_t-1))-> -vue -) - - ) - -39  - #TLV_LOOP -( -r_buff -, -vr -, -i -) \ - -40 - `as -( -r_buff -); \ - -41 -vr - = ( -v_ru_t - *)( -r_buff --> -b -); \ - -42 -i - = 0; \ - -43 ; -i - < ( - `g_rlize_bufr_size -( -r_buff -)/( -v_ru_t --1); i++, -vr -++) - - ) - -45  - #v_cy_af_id -( -vr -, -d -) \ - -46 - `y -( -d -, -vr --> -af_id -, - ` -(tlvptr->leaf_id)); \ - -47 -d -[ - ` -( -vr --> -af_id -)] = '\0'; - - ) - -50  - #v_cy_af_vue -( -vr -, -d -) \ - -51 - `y -( -d -, -vr --> -vue -, - ` -(tlvptr->value)); \ - -52 -d -[ - ` -( -vr --> -vue -)] = '\0'; - - ) - -54  - #c_v -( -r_buff -, -vr -) \ - -55 - `rlize_rg -( -r_buff -, (*) -vr -, ( -v_ru_t -)) - - ) - -57  - #e_v_om_af -( -af -, -vr -) \ - -58 -vr --> -af_ty - = -af -->leaf_type; \ - -59 - `y -( -vr --> -af_id -, -af -->af_id, - `MIN -( -LEAF_ID_SIZE -, - ` -֗f->af_id))); - - ) - -61  - #put_vue__v -( -vr -, -_v -) \ - -62 - `y -( -vr --> -vue -, -_v -, - `MIN -( -LEAF_VALUE_HOLDER_SIZE -, - ` -(_v))); - - ) - -64  -le -  - -65 - $t_v_cڋ -( -v_ru_t - * -v -){ - -67 if(! -v -) - -70 - `tf -("v->af_ty = %s\n", - `g_r_af_ty -( -v --> -af_ty -)); - -71 - `tf -("v->af_id = %s\n", -v --> -af_id -); - -72 - `tf -("v->vu = %s\n", -v --> -vue -); - -73 - } -} - -75  -le -  - -76 - $dump_v_rlized_bufr -( -r_buff_t - * -v_r_buff -){ - -78  -i - = 0; - -79 -v_ru_t - * -v - = -NULL -; - -81 - `tf -("OLD TLVs...\n"); - -82 - `TLV_LOOP_OLD -( -v_r_buff -, -v -, -i -){ - -83 - `t_v_cڋ -( -v -); - -84 - `tf -("\n"); - -86 - `tf -("NEW TLVs...\n"); - -87 - `TLV_LOOP_NEW -( -v_r_buff -, -v -, -i -){ - -88 - `t_v_cڋ -( -v -); - -89 - `tf -("\n"); - -91 - } -} - -93  -le -  - -94 - $sw_v_uns -( -v_ru_t - * -v1 -,lv_ru_* -v2 -){ - -96 -v_ru_t - -v -; - -97 -v - = * -v1 -; - -98 * -v1 - = * -v2 -; - -99 * -v2 - = -v -; - -100 - } -} - - @css.h - -1 #ide -__CSS__ - - -2  - #__CSS__ - - - ) - -4  - #ANSI_COLOR_RED - "\x1b[31m" - - ) - -5  - #ANSI_COLOR_GREEN - "\x1b[32m" - - ) - -6  - #ANSI_COLOR_YELLOW - "\x1b[33m" - - ) - -7  - #ANSI_COLOR_BLUE - "\x1b[34m" - - ) - -8  - #ANSI_COLOR_MAGENTA - "\x1b[35m" - - ) - -9  - #ANSI_COLOR_CYAN - "\x1b[36m" - - ) - -10  - #ANSI_COLOR_RESET - "\x1b[0m" - - ) - - @libcli.h - -19 #ide -__LIBCLI__ - - -20  - #__LIBCLI__ - - - ) - -22  - ~"libiid.h -" - -23  - ~"cmd_hr.h -" - -27 -_libi -(); - -30 -t_devi_me -(cڡ * -cs_me -); - -35 -m_t - * - -36 -libi_g_show_hook -(); - -38 -m_t - * - -39 -libi_g_debug_hook -(); - -41 -m_t - * - -42 -libi_g_cfig_hook -(); - -44 -m_t - * - -45 -libi_g_r_hook -(); - -48 -t_m_cmd_code -( -m_t - * -m -,  -cmd_code -); - -52 -_m -( -m_t - * -m -, - -53 -m_ty_t - -m_ty -, - -54 * -cmd_me -, - -55 -cmd_back - -back -, - -56 -ur_vidi_back - -ur_vidi_cb_ -, - -57 -af_ty_t - -af_ty -, - -58 * -af_id -, - -59 * -hp -); - -62 -libi_gi_m -( -m_t - * - -,am_* -chd -); - -66 -sut_cmd_gi -( -m_t - * -m -); - -69 -dump_cmd_ -(); - -72 -t_shl -(); - -74  - #HIDE_PARAM -( -m_r -(լam_r)-> -ishidd - = 1) - - ) - -75  - #IS_PARAM_HIDDEN -( -m_r -(լam_r)-> -ishidd - =1) - - ) - - @libcliid.h - -19 #ide -__LIBCLIID__ - - -20  - #__LIBCLIID__ - - - ) - -23 - mCONFIG_DISABLE -, - -24 - mCONFIG_ENABLE -, - -25 - mOPERATIONAL -, - -26 - mMODE_UNKNOWN - - -27 } - t_mode -; - -30 - mINT -, - -31 - mSTRING -, - -32 - mIPV4 -, - -33 - mFLOAT -, - -34 - mIPV6 -, - -35 - mBOOLEAN -, - -36 - mINVALID -, - -37 - mLEAF_MAX - - -38 } - taf_ty_t -; - - @parser.c - -19  - ~ - -20  - ~ - -21  - ~ - -22  - ~"rg_ut.h -" - -23  - ~"cmdv.h -" - -24  - ~"icڡ.h -" - -25  - ~"css.h -" - -26  - ~"libi.h -" - -28 -m_t - -ro -; - -29 -af_ty_hdr - -af_hdr_y -[ -LEAF_MAX -]; - -30 -r_buff_t - * -v_buff -; - -31  - gcse_me -[ -TERMINAL_NAME_SIZE -]; - -34 - $a_cse -( -w_le -){ - -35 if( -w_le -) - -36 - `tf -("\n"); - -37 - `tf -("%$ ", -cse_me -); - -38 - } -} - -40  - gcs_put_bufr -[ -CONS_INPUT_BUFFER_SIZE -]; - -41  - gϡ_commd_put_bufr -[ -CONS_INPUT_BUFFER_SIZE -]; - -43  -v_ru_t - - gcommd_code_v -; - -46 - mCOMPLETE -, - -47 - mERROR -, - -48 - mINVALID_LEAF -, - -49 - mUSER_INVALID_LEAF -, - -50 - mCMD_NOT_FOUND -, - -51 - mINCOMPLETE_COMMAND -, - -52 - mMULTIPLE_MATCHING_COMMANDS -, - -53 - mUNKNOWN - - -54 } - tCMD_PARSE_STATUS -; - -57 - $g_ϡ_commd -(){ - -58  -ϡ_commd_put_bufr -; - -59 - } -} - -63 -m_t -* - -64 - $fd_mchg_m -( -m_t - ** -tis -, cڡ * -cmd_me -){ - -66  -i - = 0, -af_dex - = -1; - -68 ; -tis -[ -i -] && i < -CHILDREN_END_INDEX -; i++){ - -69 if( - `IS_PARAM_LEAF -( -tis -[ -i -])){ - -70 -af_dex - = -i -; - -74 if( - `is_cmd_rg_mch -( -tis -[ -i -], -cmd_me -) == 0) - -75  -tis -[ -i -]; - -78 if( -af_dex - >= 0) - -79  -tis -[ -af_dex -]; - -81  -NULL -; - -82 - } -} - -90  -v_ru_t - - gv -; - -92  -CMD_PARSE_STATUS - - -93 - $bud_v_bufr -(** -toks -, - -94 -size_t - -tok_t -, - -95 -_mode - -ab__dib -){ - -97  -i - = 0; - -98 -m_t - * - - = -NULL -; - -99 -m_t - * -m - = - `g_cmd__curs -(); - -100 -CMD_PARSE_STATUS - -us - = -COMPLETE -; - -103 - `memt -(& -v -, 0, ( -v_ru_t -)); - -105 ; -i - < -tok_t -; i++){ - -107 - - = -m -; - -108 -m - = - `fd_mchg_m -( - `g_chd_y_r -լam), *( -toks - + -i -)); - -110 if( -m -){ - -111 if( - `IS_PARAM_LEAF -( -m -)){ - -115 if( - `INVOKE_LEAF_LIB_VALIDATION_CALLBACK -( -m -, *( -toks - + -i -)= -VALIDATION_SUCCESS -){ - -118 if( - `INVOKE_LEAF_USER_VALIDATION_CALLBACK -( -m -, *( -toks - + -i -)= -VALIDATION_SUCCESS -){ - -120 - `e_v_om_af -( - `GET_PARAM_LEAF -( -m -), (& -v -)); - -121 - `put_vue__v -((& -v -), *( -toks - + -i -)); - -122 - `y -( - `GET_LEAF_VALUE_PTR -( -m -), *( -toks - + -i -), - `MIN -( - ` -(*ok+i)), -LEAF_VALUE_HOLDER_SIZE -)); - -123 - `GET_LEAF_VALUE_PTR -( -m -)[ - ` -(*( -toks - + -i -))] = '\0'; - -124 - `c_v -( -v_buff -, & -v -); - -125 - `memt -(& -v -, 0, ( -v_ru_t -)); - -129 -us - = -USER_INVALID_LEAF -; - -134 -us - = -INVALID_LEAF -; - -139 if( - `IS_PARAM_NO_CMD -( -m -)){ - -140 -ab__dib - = -CONFIG_DISABLE -; - -146 -us - = -CMD_NOT_FOUND -; - -150 if( -us - = -COMPLETE -){ - -151 if(! - `IS_APPLICATION_CALLBACK_HANDLER_REGISTERED -( -m -)) - -152 -us - = -INCOMPLETE_COMMAND -; - -155  -us -){ - -156  -MULTIPLE_MATCHING_COMMANDS -: - -159  -CMD_NOT_FOUND -: - -160 - `tf -( -ANSI_COLOR_RED - "E : Flowg Tokلegied : %s\n" -ANSI_COLOR_RESET -, *( -toks - + -i -)); - -163  -INVALID_LEAF -: - -164 - `tf -( -ANSI_COLOR_RED - "E : Flowgvucould bvided : %s, Exed Dty = %s\n" -ANSI_COLOR_RESET -, *( -toks - + -i -), - `GET_LEAF_TYPE_STR -( -m -)); - -167  -COMPLETE -: - -168 - `tf -( -ANSI_COLOR_GREEN - "P Sucss.\n" -ANSI_COLOR_RESET -); - -170 if( -m - = - `libi_g_subtis_m -()) - -171 - `diy_sub_tis_back -( - -, 0, -MODE_UNKNOWN -); - -173 if( -m - = - `libi_g_mode_m -()) - -174 - `mode_r_back -( - -, -v_buff -, -MODE_UNKNOWN -); - -177 -m_t - * -cu_hook - = - `g_cut_bnch_hook -( -m -); - -179 if( -cu_hook - = - `libi_g_cfig_hook -() && - -180 -ab__dib - ! -CONFIG_DISABLE -) - -181 -ab__dib - = -CONFIG_ENABLE -; - -183 if( -cu_hook - ! - `libi_g_cfig_hook -()) - -184 -ab__dib - = -OPERATIONAL -; - -188 - `memt -( -commd_code_v -. -vue -, 0, -LEAF_VALUE_HOLDER_SIZE -); - -189 - `rtf -( -commd_code_v -. -vue -, "%d", -m --> -CMDCODE -); - -190 - `c_v -( -v_buff -, & -commd_code_v -); - -192 - `INVOKE_APPLICATION_CALLBACK_HANDLER -( -m -, -v_buff -, -ab__dib -); - -197  -USER_INVALID_LEAF -: - -198 - `tf -( -ANSI_COLOR_YELLOW - "E : Uvidi haed\n" -ANSI_COLOR_RESET -); - -201  -INCOMPLETE_COMMAND -: - -202 - `tf -( -ANSI_COLOR_YELLOW - "E : IncomCommd\n" -ANSI_COLOR_RESET -); - -206 - `tf -( -ANSI_COLOR_RED - "FATAL : Unknow fl\n" -ANSI_COLOR_RESET -); - -208  -us -;; - -209 - } -} - -212 - $r_put_cmd -(* -put -,  -n -){ - -214 ** -toks - = -NULL -; - -215 -size_t - -tok_t - = 0; - -216 -CMD_PARSE_STATUS - -us - = -COMPLETE -; - -218 -toks - = - `r_l2 -( -put -, ' ', & -tok_t -); - -219 if(! -toks -) - -222 if( -tok_t - > 1 && - -223 (( - `cmp -( -toks -[0], "do", 2) == 0)) && - -224 ( - `g_cmd__curs -(! - `libi_g_ro -())) - -227 if( - `IS_CURRENT_MODE_CONFIG -()) - -229 -m_t - * -d_curs_e - = - `g_cmd__curs -(), * -w_curs_e - = -NULL -; - -230 - `t_cmd__curs -( - `libi_g_do_hook -()); - -233 - `t_rlize_bufr -( -v_buff -); - -234 -us - = - `bud_v_bufr -(& -toks -[1], -tok_t --1, -OPERATIONAL -); - -237 -w_curs_e - = - `g_cmd__curs -(); - -242 if( -w_curs_e - ! - `libi_g_do_hook -()){ - -243 if( - `IS_CURRENT_MODE_CONFIG -()){ - -244 - `as -(0); - -254 - `t_cmd__curs -( -d_curs_e -); - -256 - `bud_cmd__aves_da -( -v_buff -, - `libi_g_ro -(), - `g_cmd__curs -()); - -257 - `mk_checkpot_rlize_bufr -( -v_buff -); - -261 - `tf -("Info : do is supported from within config mode only\n"); - -264 if(( - `cmp -( -toks -[0], "d", - ` -("d")=0&& ( -tok_t - == 1)) - -265 - `go_t_of_cmd_ -( - `g_cmd__curs -()); - -267 if(( - `cmp -( -toks -[0], "ex", - ` -("ex")=0&& ( -tok_t - == 1)) - -268 - `go_e_v_up_cmd_ -( - `g_cmd__curs -()); - -270 if(( - `cmp -( -toks -[0], "s", - ` -("s")=0&& ( -tok_t - == 1)) - -271 - `r_sn_hdr -(0, 0, -MODE_UNKNOWN -); - -274 -us - = - `bud_v_bufr -( -toks -, -tok_t -, -MODE_UNKNOWN -); - -276 - `__toks -( -MAX_CMD_TREE_DEPTH -); - -278 if( - `is_ur__cmd_mode -()) - -279 - `e_checkpot_rlize_bufr -( -v_buff -); - -281 - `t_rlize_bufr -( -v_buff -); - -282 - } -} - -286 - $commd_rr -(){ - -288 - `tf -("run - \'show help\' cmdoearn more"); - -289 - `a_cse -(1); - -290 - `memt -(& -commd_code_v -, 0, ( -v_ru_t -)); - -292 -commd_code_v -. -af_ty - = -INT -; - -293 - `y -( -commd_code_v -. -af_id -, "CMDCODE", -LEAF_ID_SIZE -); - -294 -commd_code_v -. -af_id -[ -LEAF_ID_SIZE - -1] = '\0'; - -298 if(( - `fgs -((*) -cs_put_bufr -, (cs_put_bufr)-1, -d -= -NULL -)){ - -299 - `tf -("error ineading from stdin\n"); - -300 - `ex -( -EXIT_SUCCESS -); - -304 if( - ` -( -cs_put_bufr -) == 1){ - -305 -cs_put_bufr -[0]= '\0'; - -306 - `a_cse -(0); - -310 -cs_put_bufr -[ - ` -(cons_input_buffer) - 1] = '\0'; - -312 - `r_put_cmd -( -cs_put_bufr -, - ` -(cons_input_buffer)); - -314 if( - `cmp -( -cs_put_bufr -, "", - ` -(cons_input_buffer)) == 0){ - -315 - `memt -( -cs_put_bufr -, 0, -CONS_INPUT_BUFFER_SIZE -); - -316 - `a_cse -(1); - -319 - `memt -( -ϡ_commd_put_bufr -, 0, -CONS_INPUT_BUFFER_SIZE -); - -321 - `memy -( -ϡ_commd_put_bufr -, -cs_put_bufr -, - ` -(cons_input_buffer)); - -323 -ϡ_commd_put_bufr -[ - ` -(last_command_input_buffer)] = '\0'; - -325 - `memt -( -cs_put_bufr -, 0, -CONS_INPUT_BUFFER_SIZE -); - -327 - `a_cse -(1); - -329 - } -} - - @serialize.c - -1  - ~ - -2  - ~"rlize.h -" - -3  - ~ - -4  - ~ - -5  - ~ - -8 - $_rlized_bufr -( -r_buff_t - ** -b -){ - -9 (* -b -( -r_buff_t - *) - `oc -(1, (ser_buff_t)); - -10 (* -b -)->b = - `oc -(1, -SERIALIZE_BUFFER_DEFAULT_SIZE -); - -11 (* -b -)-> -size - = -SERIALIZE_BUFFER_DEFAULT_SIZE -; - -12 (* -b -)-> -xt - = 0; - -13 (* -b -)-> -checkpot - = 0; - -15 - } -} - -18 - $_rlized_bufr_of_defed_size -( -r_buff_t - ** -b -,  -size -){ - -19 (* -b -( -r_buff_t - *) - `oc -(1, (ser_buff_t)); - -20 (* -b -)->b = - `oc -(1, -size -); - -21 (* -b -)-> -size - = size; - -22 (* -b -)-> -xt - = 0; - -23 (* -b -)-> -checkpot - = 0; - -24 - } -} - -28 - $is_rlized_bufr_emy -( -r_buff_t - * -b -){ - -29 if( -b --> -xt - == 0) - -32 - } -} - -34  - $_rlize_bufr -( -r_buff_t - * -b -){ - -35 - ` -( -b -->b); - -36 - ` -( -b -); - -37 - } -} - -39  - $g_rlize_bufr_cut_r_offt -( -r_buff_t - * -b -){ - -40 if(! -b -)  -1; - -41  -b --> -xt -; - -42 - } -} - -44 * - $g_rlize_bufr_cut_r -( -r_buff_t - * -b -){ - -45 if(! -b - -NULL -; - -46  (*)( -b -->b+ b-> -xt -; - -47 - } -} - -49  - $g_rlize_bufr_size -( -r_buff_t - * -b -){ - -50  -b --> -xt -; - -51 - } -} - -54 - $rlize_bufr_sk -( -r_buff_t - * -b -,  -size -){ - -55  -avaab_size - = -b --> -size - - b-> -xt -; - -57 if( -avaab_size - > -size -){ - -58 -b --> -xt - + -size -; - -62  -avaab_size - < -size -){ - -63 -b --> -size - = b->size * 2; - -64 -avaab_size - = -b --> -size - - b-> -xt -; - -67 -b -->b = - `loc -(b->b, b-> -size -); - -68 -b --> -xt - + -size -; - -69 - } -} - -72 - $e_checkpot_rlize_bufr -( -r_buff_t - * -b -){ - -74 if(! -b - - `as -(0); - -75 -b --> -xt - = b-> -checkpot -; - -76 - } -} - -79 - $mk_checkpot_rlize_bufr -( -r_buff_t - * -b -){ - -81 if(! -b - - `as -(0); - -82 -b --> -checkpot - = b-> -xt -; - -83 - } -} - -86 - $g_rlize_bufr_checkpot_offt -( -r_buff_t - * -b -){ - -87  -b --> -checkpot -; - -88 - } -} - -90  - $rlize_t -( -r_buff_t - * -b -,  -da -){ - -91 i( -b - = -NULL - - `as -(0); - -92 -r_buff_t - * -buff - = (r_buff_*)( -b -); - -93  -avaab_size - = -buff --> -size - - buff-> -xt -; - -94  -isResize - = 0; - -96  -avaab_size - < ()){ - -97 -buff --> -size - = buff->size * 2; - -98 -avaab_size - = -buff --> -size - - buff-> -xt -; - -99 -isResize - = 1; - -102 if( -isResize - == 0){ - -103 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -104 -buff --> -xt - += (); - -109 -buff --> -b - = - `loc -(buff->b, buff-> -size -); - -110 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -111 -buff --> -xt - += (); - -113 - } -} - -116  - $rlize_t8 -( -r_buff_t - * -b -,  -da -){ - -117 i( -b - = -NULL - - `as -(0); - -118 -r_buff_t - * -buff - = (r_buff_*)( -b -); - -119  -avaab_size - = -buff --> -size - - buff-> -xt -; - -120  -isResize - = 0; - -122  -avaab_size - < ()){ - -123 -buff --> -size - = buff->size * 2; - -124 -avaab_size - = -buff --> -size - - buff-> -xt -; - -125 -isResize - = 1; - -128 if( -isResize - == 0){ - -129 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -130 -buff --> -xt - += (); - -135 -buff --> -b - = - `loc -(buff->b, buff-> -size -); - -136 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -137 -buff --> -xt - += (); - -139 - } -} - -142  - $rlize_ut8 -( -r_buff_t - * -b -,  -da -){ - -143 i( -b - = -NULL - - `as -(0); - -144 -r_buff_t - * -buff - = (r_buff_*)( -b -); - -145  -avaab_size - = -buff --> -size - - buff-> -xt -; - -146  -isResize - = 0; - -148  -avaab_size - < ()){ - -149 -buff --> -size - = buff->size * 2; - -150 -avaab_size - = -buff --> -size - - buff-> -xt -; - -151 -isResize - = 1; - -154 if( -isResize - == 0){ - -155 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -156 -buff --> -xt - += (); - -161 -buff --> -b - = - `loc -(buff->b, buff-> -size -); - -162 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -163 -buff --> -xt - += (); - -165 - } -} - -167  - $rlize_t32 -( -r_buff_t - * -b -,  -da -){ - -168 i( -b - = -NULL - - `as -(0); - -169 -r_buff_t - * -buff - = (r_buff_*)( -b -); - -170  -avaab_size - = -buff --> -size - - buff-> -xt -; - -171  -isResize - = 0; - -173  -avaab_size - < ()){ - -174 -buff --> -size - = buff->size * 2; - -175 -avaab_size - = -buff --> -size - - buff-> -xt -; - -176 -isResize - = 1; - -179 if( -isResize - == 0){ - -180 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -181 -buff --> -xt - += (); - -186 -buff --> -b - = - `loc -(buff->b, buff-> -size -); - -187 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -188 -buff --> -xt - += (); - -190 - } -} - -192  - $rlize_ut32 -( -r_buff_t - * -b -,  -da -){ - -193 i( -b - = -NULL - - `as -(0); - -194 -r_buff_t - * -buff - = (r_buff_*)( -b -); - -195  -avaab_size - = -buff --> -size - - buff-> -xt -; - -196  -isResize - = 0; - -198  -avaab_size - < ()){ - -199 -buff --> -size - = buff->size * 2; - -200 -avaab_size - = -buff --> -size - - buff-> -xt -; - -201 -isResize - = 1; - -204 if( -isResize - == 0){ - -205 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -206 -buff --> -xt - += (); - -211 -buff --> -b - = - `loc -(buff->b, buff-> -size -); - -212 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -213 -buff --> -xt - += (); - -215 - } -} - -219  - $rlize_t -( -r_buff_t - * -b -,  -da -){ - -220 i( -b - = -NULL - - `as -(0); - -221 -r_buff_t - * -buff - = (r_buff_*)( -b -); - -222  -avaab_size - = -buff --> -size - - buff-> -xt -; - -223  -isResize - = 0; - -225  -avaab_size - < ()){ - -226 -buff --> -size - = buff->size * 2; - -227 -avaab_size - = -buff --> -size - - buff-> -xt -; - -228 -isResize - = 1; - -231 if( -isResize - == 0){ - -232 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -233 -buff --> -xt - += (); - -238 -buff --> -b - = - `loc -(buff->b, buff-> -size -); - -239 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -240 -buff --> -xt - += (); - -242 - } -} - -246  - $rlize_doub -( -r_buff_t - * -b -,  -da -){ - -247 i( -b - = -NULL - - `as -(0); - -248 -r_buff_t - * -buff - = (r_buff_*)( -b -); - -249  -avaab_size - = -buff --> -size - - buff-> -xt -; - -250  -isResize - = 0; - -252  -avaab_size - < ()){ - -253 -buff --> -size - = buff->size * 2; - -254 -avaab_size - = -buff --> -size - - buff-> -xt -; - -255 -isResize - = 1; - -258 if( -isResize - == 0){ - -259 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -260 -buff --> -xt - += (); - -265 -buff --> -b - = - `loc -(buff->b, buff-> -size -); - -266 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ()); - -267 -buff --> -xt - += (); - -269 - } -} - -271  - $rlize_rg -( -r_buff_t - * -b -, * -da -,  -nbys -){ - -272 i( -b - = -NULL - - `as -(0); - -273 -r_buff_t - * -buff - = (r_buff_*)( -b -); - -274  -avaab_size - = -buff --> -size - - buff-> -xt -; - -275  -isResize - = 0; - -277  -avaab_size - < -nbys -){ - -278 -buff --> -size - = buff->size * 2; - -279 -avaab_size - = -buff --> -size - - buff-> -xt -; - -280 -isResize - = 1; - -283 if( -isResize - == 0){ - -284 - `memy -((*) -buff --> -b - + buff-> -xt -, -da -, -nbys -); - -285 -buff --> -xt - + -nbys -; - -290 -buff --> -b - = - `loc -(buff->b, buff-> -size -); - -291 - `memy -((*) -buff --> -b - + buff-> -xt -, -da -, -nbys -); - -292 -buff --> -xt - + -nbys -; - -294 - } -} - -296  - $un_rlize_bufr -( -r_buff_t - ** -b -){ - -297 -r_buff_t - * -e - = -NULL -; - -299 if((* -b -)-> -xt - =(*b)-> -size -){ - -302 - `_rlized_bufr_of_defed_size -(& -e -, (* -b -)-> -xt -); - -303 - `memy -( -e --> -b -, (*b)->b, (*b)-> -xt -); - -304 -e --> -xt - = cle-> -size -; - -305 - `_rlize_bufr -(* -b -); - -306 * -b - = -e -; - -307 - } -} - -310  - $t_bufr_das -( -r_buff_t - * -b -, cڡ * - -,  -lo -){ - -312 - `tf -("%s():%d : sgdds0x%x\n", - -, -lo -, () -b -); - -313 - `tf -("siz%d\n", -b --> -size -); - -314 - `tf -("x%d\n", -b --> -xt -); - -317 - } -} - -322 - $de_rlize_rg -(* -de -, -r_buff_t - * -b -,  -size -){ - -323 if(! -b - || !b->b - `as -(0); - -324 if(! -size - - `as -(0);; - -325 if(( -b --> -size - - b-> -xt -)< size - `as -(0); - -326 - `memy -( -de -, -b -->b + b-> -xt -, -size -); - -327 -b --> -xt - + -size -; - -328 - } -} - -332  - $cy__rlized_bufr_by_offt -( -r_buff_t - * -b -,  -size -, * -vue -,  -offt -){ - -333 if(( -b --> -size - - b-> -xt -) < size){ - -334 - `tf -("%s(): E : Insuffic buf㸥a\n", -__FUNCTION__ -); - -338 if( -offt - > -b --> -size -){ - -339 - `tf -("%s(): E : Aemtwroutsidbufbounds\n", -__FUNCTION__ -); - -343 - `memy -( -b -->b + -offt -, -vue -, -size -); - -344 - } -} - -346  - $t_rlize_bufr -( -r_buff_t - * -b -){ - -347 -b --> -xt - = 0; - -348 -b --> -checkpot - = 0; - -349 - } -} - - @serialize.h - -1 #ide -__SERIALIZE__ - - -2  - #__SERIALIZE__ - - - ) - -7  - srlized_bufr -{ - -8  - #SERIALIZE_BUFFER_DEFAULT_SIZE - 512 - - ) - -9 * - mb -; - -10  - msize -; - -11  - mxt -; - -12  - mcheckpot -; - -13 } - tr_buff_t -; - -16  -_rlized_bufr -( -r_buff_t - ** -b -); - -17  -_rlized_bufr_of_defed_size -( -r_buff_t - ** -b -,  -size -); - -21  -rlize_ut8 - ( -r_buff_t - * -b -,  -da -); - -22  -rlize_t8 - ( -r_buff_t - * -b -,  -da -); - -23  -rlize_t32 - ( -r_buff_t - * -b -,  -da -); - -24  -rlize_ut32 -( -r_buff_t - * -b -,  -da -); - -25  -rlize_t - ( -r_buff_t - * -b -,  -da -); - -26  -rlize_doub -( -r_buff_t - * -b -,  -da -); - -27  -rlize_rg -( -r_buff_t - * -b -, * -da -,  -size -); - -28  -is_rlized_bufr_emy -( -r_buff_t - * -b -); - -30  -g_rlize_bufr_size -( -r_buff_t - * -b -); - -31  -g_rlize_bufr_cut_r_offt -( -r_buff_t - * -b -); - -32 * -g_rlize_bufr_cut_r -( -r_buff_t - * -b -); - -33  -rlize_bufr_sk -( -r_buff_t - * -b -,  -size -); - -34  -cy__rlized_bufr_by_offt -( -r_buff_t - * -b -,  -size -, * -vue -,  -offt -); - -38  -de_rlize_rg -(* -de -, -r_buff_t - * -b -,  -v_size -); - -42  -_rlize_bufr -( -r_buff_t - * -b -); - -45  -un_rlize_bufr -( -r_buff_t - ** -b -); - -46  -t_rlize_bufr -( -r_buff_t - * -b -); - -47  -e_checkpot_rlize_bufr -( -r_buff_t - * -b -); - -48  -g_rlize_bufr_checkpot_offt -( -r_buff_t - * -b -); - -49  -mk_checkpot_rlize_bufr -( -r_buff_t - * -b -); - -51  -t_bufr_das -( -r_buff_t - * -b -, cڡ * - -,  -lo -); - -55  - #derlize_imive -( -r_buff -, -de -, -ty -) \ - -57 -r_buff_t - * -_b - = (r_buff_*)( -r_buff -); \ - -58 - `memy -((*)& -de -, (*)( -_b --> -b -+ _b-> -xt -, ( -ty -)); \ - -59 -_b --> -xt - +( -ty -); \ - -60 }0); - - ) - -64  - #derlize_rg -( -r_buff -, -de -, -size -) \ - -66 -r_buff_t - * -_b - = (r_buff_*)( -r_buff -); \ - -67 - `memy -((*) -de -, (*)( -_b --> -b -+ _b-> -xt -, -size -); \ - -68 -_b --> -xt - + -size -; \ - -69 }0); - - ) - -72  - #rlize_imive -( -r_buff -, -de -, -ty -) \ - -74 i( -r_buff - = -NULL - - `as -(0); \ - -75 -r_buff_t - * -buff - = (r_buff_*)( -r_buff -); \ - -76  -avaab_size - = -buff --> -size - - buff-> -xt -; \ - -77  -isResize - = 0; \ - -78  -avaab_size - < ( -ty -)){ \ - -79 -buff --> -size - = buff->size * 2; \ - -80 -avaab_size - = -buff --> -size - - buff-> -xt -; \ - -81 -isResize - = 1; \ - -83 if( -isResize - == 0){ \ - -84 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ( -ty -)); \ - -85 -buff --> -xt - +( -ty -); \ - -88 -buff --> -b - = - `loc -(buff->b, buff-> -size -); \ - -89 - `memy -((*) -buff --> -b - + buff-> -xt -, & -da -, ( -ty -)); \ - -90 -buff --> -xt - +( -ty -); \ - -91 }0); - - ) - - @string_util.c - -19  - ~"rg_ut.h -" - -20  - ~ - -21  - ~ - -22  - ~"icڡ.h -" - -23  - ~ - -24  - ~ - -26  - ga_r -[ -CONS_INPUT_BUFFER_SIZE -]; - -28 * - gtoks -[ -MAX_CMD_TREE_DEPTH -]; - -31 - $_tok_y -(){ - -33  -i - = 0; - -34 ; -i - < -MAX_CMD_TREE_DEPTH -; i++){ - -35 -toks -[ -i -] = - `oc -(1, -LEAF_VALUE_HOLDER_SIZE -); - -37 - } -} - -40 - $__toks -( -tok_t -){ - -42  -i - = 0; - -43 ; -i - < -tok_t -; i++){ - -44 - `memt -( -toks -[ -i -], 0, -LEAF_VALUE_HOLDER_SIZE -); - -46 - } -} - -49 - $tokize -(* -tok -,  -size -,  -dex -){ - -51 if( -size - > -LEAF_VALUE_HOLDER_SIZE -) - -52 - `as -(0); - -54 - `y -( -toks -[ -dex -], -tok -, -size -); - -55 - } -} - -58 - $uokize -( -dex -){ - -60 - `memt -( -toks -[ -dex -], 0, -LEAF_VALUE_HOLDER_SIZE -); - -61 - } -} - -64 - $g_tok -( -dex -){ - -66  -toks -[ -dex -]; - -67 - } -} - -69 ** - $r_l2 -(* -_a_r -, cڡ  -a_dim -, -size_t - * -tok_t -){ - -71 * -tok - = -NULL -; - -72  -i - = 0; - -74 - `memt -( -a_r -, 0, -CONS_INPUT_BUFFER_SIZE -); - -75 - `memy -( -a_r -, -_a_r -, - ` -(_a_str)); - -77 - `rg_a_im -( -a_r -); - -79 if( - ` -( -a_r -) < 1){ - -80 * -tok_t - = 0; - -81  -NULL -; - -84 -tok - = - `ok -( -a_r -, & -a_dim -); - -85 if( -tok -){ - -86 - `y -( -toks -[ -i -], -tok -, - ` -(token)); - -87 -i -++; - -90 * -tok_t - = 0; - -91  -NULL -; - -95  -tok - ! -NULL - ) - -97 -tok - = - `ok -( -NULL -, & -a_dim -); - -98 if( -tok -){ - -99 - `y -( -toks -[ -i -], -tok -, - ` -(token)); - -100 -i -++; - -104 * -tok_t - = -i -; - -105  & -toks -[0]; - -106 - } -} - -109 - $rg_a_im -(* -rg -){ - -111 if(! -rg -) - -114 * -r - = -rg -; - -115  -n - = - ` -( -r -); - -117 if(! -n -){ - -121 if(! - `isa -( -r -[0]&& !isaՌ[ -n --1])){ - -125  -n --1 > 0 && - `isa -( -r -[len-1])){ - -126 -r -[-- -n -] = 0; - -129 * -r - && - `isa -(*ptr)){ - -130 ++ -r -, -- -n -; - -133 - `memmove -( -rg -, -r -, -n - + 1); - -134 - } -} - -138 - $t_toks -( -dex -){ - -140  -i - = 0; - -141  ; -i - < -dex -; i++) - -143 if( -toks -[ -i -] = -NULL -) - -146 - `tf -("%", -toks -[ -i -]); - -148 - } -} - - @string_util.h - -19 #ide -__STRING_UTIL__ - - -20  - #__STRING_UTIL__ - - - ) - -21  - ~ - -24 ** -r_l2 -(* -a_r -, - -25 cڡ  -a_dim -, - -26 -size_t - * -tok_t -); - -29 -rg_a_im -(* -rg -); - -32 -t_toks -( -dex -); - -35 -_tok_y -(); - -38 -__toks -( -tok_t -); - -41 -tokize -(* -tok -,  -size -,  -dex -); - -44 -uokize -( -dex -); - -47 -g_tok -( -dex -); - - @testapp.c - -18  - ~ - -19  - ~"cmdv.h -" - -20  - ~"libi.h -" - -21  - ~ - -25 - $show__igmp_groups_hdr -( -m_t - * -m -, -r_buff_t - * -v_buf -, -_mode - -ab__dib -){ - -27 -v_ru_t - * -v - = -NULL -; - -28  -i - = 0; - -30 - `dump_v_rlized_bufr -( -v_buf -); - -33 - `TLV_LOOP -( -v_buf -, -v -, -i -){ - -34 if( - `cmp -( -v --> -af_id -, "group-", - ` -("group-ip")) == 0){ - -35 - `tf -("GrouIRecvd iiti = %s\n", -v --> -vue -); - -37 if( - `cmp -( -v --> -af_id -, "vn-id", - ` -("vlan-id")) == 0){ - -38 - `tf -("vcved iiti = %s\n", -v --> -vue -); - -43 - } -} - -46 - $ma_hdr -( -m_t - * -m -, -r_buff_t - * -v_buf -, -_mode - -ab__dib -){ - -48 - `dump_v_rlized_bufr -( -v_buf -); - -50 - } -} - -54 - $cfig_rour_me_hdr -( -m_t - * -m -, -r_buff_t - * -v_buf -, -_mode - -ab__dib -){ - -55 - `t_devi_me -("router2"); - -57 - } -} - -61 - $show_cmd_ -( -m_t - * -m -, -r_buff_t - * -v_buf -, -_mode - -ab__dib -){ - -63 - `dump_cmd_ -(); - -65 - } -} - -68 - $ur_vn_vidi_back -(* -vn_id -){ - -70  -vn_no - = - `oi -( -vn_id -); - -72 if( -vn_no - > 0 && vlan_no < 4096) - -75 - `tf -("Invalid vlan. Pls follow Help\n"); - -77 - } -} - -80 - $ma -( -gc -, ** -gv -){ - -82 - `_libi -(); - -85 -m_t - * -show - = - `libi_g_show_hook -(); - -86 -m_t - * -debug - = - `libi_g_debug_hook -(); - -87 -m_t - * -cfig - = - `libi_g_cfig_hook -(); - -89  -m_t - -cmsh -; - -90 - `_m -(& -cmsh -, -CMD -, "cmsh", 0, 0, -INVALID -, 0, "cmsh hidden commands"); - -91 - `libi_gi_m -(0, & -cmsh -); - -94  -m_t - - -; - -95 - `_m -(& - -, -CMD -, "", 0, 0, -INVALID -, 0, "Internet Protocol(IP)"); - -96 - `libi_gi_m -( -show -, & - -); - -98  -m_t - -v6 -; - -99 - `_m -(& -v6 -, -CMD -, "v6", 0, 0, -INVALID -, 0, "Internet Protocol(IPV6)"); - -100 - `libi_gi_m -( -show -, & -v6 -); - -102  -m_t - -debug_show -; - -103 - `_m -(& -debug_show -, -CMD -, "show", 0, 0, -INVALID -, 0, "debug show commands"); - -104 - `libi_gi_m -( -debug -, & -debug_show -); - -106  -m_t - -cfig_rour -; - -107 - `_m -(& -cfig_rour -, -CMD -, "rour", 0, 0, -INVALID -, 0, "Configuration Router"); - -108 - `libi_gi_m -( -cfig -, & -cfig_rour -); - -111  -m_t - -cfig_rour_me -; - -112 - `_m -(& -cfig_rour_me -, -CMD -, "me", 0, 0, -INVALID -, 0, "configureouterame"); - -113 - `libi_gi_m -(& -cfig_rour -, & -cfig_rour_me -); - -115  -m_t - -igmp -; - -116 - `_m -(& -igmp -, -CMD -, "igmp", 0, 0, -INVALID -, 0, "IGMP Protocol"); - -117 - `libi_gi_m -(& - -, & -igmp -); - -119  -m_t - -igmp_cfig -; - -120 - `_m -(& -igmp_cfig -, -CMD -, "cfiguti", -show__igmp_groups_hdr -, 0, -INVALID -, 0, "IGMP Protocol Configuration"); - -121 - `libi_gi_m -(& -igmp -, & -igmp_cfig -); - -123  -m_t - -debug_show_cmd -; - -124 - `_m -(& -debug_show_cmd -, -CMD -, "cmd", -show_cmd_ -, 0, -INVALID -, 0, "Display commandree"); - -125 - `libi_gi_m -(& -debug_show -, & -debug_show_cmd -); - -128  -m_t - -cfig_rour_me_me -; - -129 - `_m -(& -cfig_rour_me_me -, -LEAF -, 0, -cfig_rour_me_hdr -, 0, - -130 -STRING -, "cons-name", "Name of Console"); - -131 - `libi_gi_m -(& -cfig_rour_me -, & -cfig_rour_me_me -); - -133  -m_t - -show__igmp_groups -; - -134 - `_m -(& -show__igmp_groups -, -CMD -, "groups", -show__igmp_groups_hdr -, 0, -INVALID -, 0, "Ipv4 Group Address"); - -135 - `libi_gi_m -(& -igmp -, & -show__igmp_groups -); - -137  -m_t - -show__igmp_groups_vn -; - -138 - `_m -(& -show__igmp_groups_vn -, -CMD -, "vn", 0, 0, -INVALID -, 0, "vlan"); - -139 - `libi_gi_m -(& -show__igmp_groups -, & -show__igmp_groups_vn -); - -141  -m_t - -show__igmp_groups_vn_vn -; - -142 - `_m -(& -show__igmp_groups_vn_vn -, -LEAF -, 0, -show__igmp_groups_hdr -, -ur_vn_vidi_back -, - -143 -INT -, "vlan-id", "Vlan id(1-4095)"); - -144 - `libi_gi_m -(& -show__igmp_groups_vn -, & -show__igmp_groups_vn_vn -); - -147  -m_t - -show__igmp_groups_group_ -; - -148 - `_m -(& -show__igmp_groups_group_ -, -LEAF -, 0, -show__igmp_groups_hdr -, 0, -IPV4 -, - -150 - `libi_gi_m -(& -show__igmp_groups -, & -show__igmp_groups_group_ -); - -153  -m_t - -show__igmp_groups_group__vn -; - -154 - `_m -(& -show__igmp_groups_group__vn -, -CMD -, "vn", 0, 0, -INVALID -, 0, "Vlan"); - -155 - `libi_gi_m -(& -show__igmp_groups_group_ -, & -show__igmp_groups_group__vn -); - -158  -m_t - -show__igmp_groups_group__vn_vn_id -; - -159 - `_m -(& -show__igmp_groups_group__vn_vn_id -, -LEAF -, 0, -show__igmp_groups_hdr -, - -160 -ur_vn_vidi_back -, -INT -, "vlan-id" ,"Vlan id(1-4095)"); - -161 - `libi_gi_m -(& -show__igmp_groups_group__vn -, & -show__igmp_groups_group__vn_vn_id -); - -164  -m_t - -ma -; - -165 - `_m -(& -ma -, -CMD -, "ma", 0, 0, -INVALID -, 0, "mtrace command"); - -166 - `libi_gi_m -( -cfig -, & -ma -); - -168  -m_t - -sour -; - -169 - `_m -(& -sour -, -CMD -, "sour", 0, 0, -INVALID -, 0, "source command"); - -170 - `libi_gi_m -(& -ma -, & -sour -); - -172  -m_t - -sour_ -; - -173 - `_m -(& -sour_ -, -LEAF -, 0, -ma_hdr -, 0, -IPV4 -, "source-ip", "Source Ipv4ddress"); - -174 - `libi_gi_m -(& -sour -, & -sour_ -); - -178  -m_t - -dei -; - -179 - `_m -(& -dei -, -CMD -, "dei", 0, 0, -INVALID -, 0, "destination command"); - -180 - `libi_gi_m -(& -sour_ -, & -dei -); - -182  -m_t - -de_ -; - -183 - `_m -(& -de_ -, -LEAF -, 0, -ma_hdr -, 0, -IPV4 -, "destination-ip", "Destination Ipv4ddress"); - -184 - `libi_gi_m -(& -dei -, & -de_ -); - -188  -m_t - -group -; - -189 - `_m -(& -group -, -CMD -, "group", 0, 0, -INVALID -, 0, "group command"); - -190 - `libi_gi_m -(& -sour_ -, & -group -); - -192  -m_t - -group_ -; - -193 - `_m -(& -group_ -, -LEAF -, 0, -ma_hdr -, 0, -IPV4 -, "group-ip", "Multicast Group Ipv4ddress"); - -194 - `libi_gi_m -(& -group -, & -group_ -); - -199  -m_t - -group2 -; - -200 - `_m -(& -group2 -, -CMD -, "group", 0, 0, -INVALID -, 0, "group command"); - -201 - `libi_gi_m -(& -de_ -, & -group2 -); - -203  -m_t - -group_2 -; - -204 - `_m -(& -group_2 -, -LEAF -, 0, -ma_hdr -, 0, -IPV4 -, "group-ip", "Multicast Group Ipv4ddress"); - -205 - `libi_gi_m -(& -group2 -, & -group_2 -); - -207 - `sut_cmd_gi -( -cfig -); - -209 - `t_shl -(); - -211 - } -} - - @/usr/include/assert.h - -22 #ifdef -_ASSERT_H - - -24 #unde -_ASSERT_H - - -25 #unde -as - - -26 #unde -__ASSERT_VOID_CAST - - -28 #ifdef -__USE_GNU - - -29 #unde -as_ - - -34  - #_ASSERT_H - 1 - - ) - -35  - ~ - -37 #i -defed - -__lulus - && -__GNUC_PREREQ - (2,95) - -38  - #__ASSERT_VOID_CAST - -ic_ -<> - - ) - -40  - #__ASSERT_VOID_CAST - () - - ) - -48 #ifdef -NDEBUG - - -50  - #as -( -ex -( - `__ASSERT_VOID_CAST - (0)) - - ) - -58 #ifdef -__USE_GNU - - -59  - #as_ -( -um -( - `__ASSERT_VOID_CAST - (0)) - - ) - -64 #ide -_ASSERT_H_DECLS - - -65  - #_ASSERT_H_DECLS - - - ) - -66 -__BEGIN_DECLS - - -69  - $__as_ - (cڡ * -__asi -, cڡ * -__fe -, - -70  -__le -, cڡ * -__funi -) - -71 -__THROW - - `__ibu__ - (( -__nܑu__ -)); - -74  - $__as__ - ( -__um -, cڡ * -__fe -, - -75  -__le -, cڡ * -__funi -) - -76 -__THROW - - `__ibu__ - (( -__nܑu__ -)); - -81  - $__as - (cڡ * -__asi -, cڡ * -__fe -,  -__le -) - -82 -__THROW - - `__ibu__ - (( -__nܑu__ -)); - -85 -__END_DECLS - - -88  - #as -( -ex -) \ - -89 (( -ex -) \ - -90 ? - `__ASSERT_VOID_CAST - (0) \ - -91 : - `__as_ - ( - `__STRING -( -ex -), -__FILE__ -, -__LINE__ -, -__ASSERT_FUNCTION -)) - - ) - -93 #ifdef -__USE_GNU - - -94  - #as_ -( -um -) \ - -95 (!( -um -) \ - -96 ? - `__ASSERT_VOID_CAST - (0) \ - -97 : - `__as__ - (( -um -), -__FILE__ -, -__LINE__ -, -__ASSERT_FUNCTION -)) - - ) - -105 #i -defed - -__lulus - ? - `__GNUC_PREREQ - (2, 6) : __GNUC_PREREQ (2, 4) - -106  - #__ASSERT_FUNCTION - -__PRETTY_FUNCTION__ - - - ) - -108 #i -defed - -__STDC_VERSION__ - && __STDC_VERSION__ >= 199901L - -109  - #__ASSERT_FUNCTION - -__func__ - - - ) - -111  - #__ASSERT_FUNCTION - ((cڡ *0) - - ) - -118 #i -defed - -__USE_ISOC11 - && !defed -__lulus - - -120 #unde -ic_as - - -121  - #ic_as - -_Stic_as - - - ) - - @/usr/include/ctype.h - -22 #idef -_CTYPE_H - - -23  - #_CTYPE_H - 1 - - ) - -25  - ~ - -26  - ~ - -28 - g__BEGIN_DECLS - - -30 #ide -_ISb - - -39  - ~ - -40 #i -__BYTE_ORDER - = -__BIG_ENDIAN - - -41  - #_ISb -( -b -(1 << (b)) - - ) - -43  - #_ISb -( -b -((b< 8 ? ((1 << (b)<< 8: ((1 << (b)>> 8)) - - ) - -48 - m_ISu - = -_ISb - (0), - -49 - m_ISlow - = -_ISb - (1), - -50 - m_ISpha - = -_ISb - (2), - -51 - m_ISdig - = -_ISb - (3), - -52 - m_ISxdig - = -_ISb - (4), - -53 - m_ISa - = -_ISb - (5), - -54 - m_ISt - = -_ISb - (6), - -55 - m_ISgph - = -_ISb - (7), - -56 - m_ISbnk - = -_ISb - (8), - -57 - m_ISl - = -_ISb - (9), - -58 - m_ISpun - = -_ISb - (10), - -59 - m_ISnum - = -_ISb - (11) - -79 cڡ ** - $__y_b_loc - () - -80 -__THROW - - `__ibu__ - (( -__cڡ__ -)); - -81 cڡ -__t32_t - ** - $__y_tow_loc - () - -82 -__THROW - - `__ibu__ - (( -__cڡ__ -)); - -83 cڡ -__t32_t - ** - $__y_tou_loc - () - -84 -__THROW - - `__ibu__ - (( -__cڡ__ -)); - -87 #ide -__lulus - - -88  - #__isy -( -c -, -ty -) \ - -89 ((* - `__y_b_loc - ())[(( -c -)] & ( -ty -) - - ) - -90 #i -defed - -__USE_EXTERN_INLINES - - -91  - #__isy_f -( -ty -) \ - -92 -__ex_le - \ - -93 -is -## - `ty - ( -__c - -__THROW - \ - -95  (* - `__y_b_loc - ())[(( -__c -)] & ( -_IS -## -ty -; \ - -96 - } - - ) -} - -99  - #__iscii -( -c -(((c& ~0x7f=0 - - ) - -100  - #__tscii -( -c -((c& 0x7f - - ) - -102  - #__exy -( -me -  - `me - ( -__THROW - - - ) - -104 -__BEGIN_NAMESPACE_STD - - -110 -__exy - ( -ium -); - -111 -__exy - ( -iha -); - -112 -__exy - ( -isl -); - -113 -__exy - ( -isdig -); - -114 -__exy - ( -iow -); - -115 -__exy - ( -isgph -); - -116 -__exy - ( -irt -); - -117 -__exy - ( -iun -); - -118 -__exy - ( -isa -); - -119 -__exy - ( -isu -); - -120 -__exy - ( -isxdig -); - -124  - $tow - ( -__c - -__THROW -; - -127  - $tou - ( -__c - -__THROW -; - -129 -__END_NAMESPACE_STD - - -133 #ifdef -__USE_ISOC99 - - -134 -__BEGIN_NAMESPACE_C99 - - -136 - `__exy - ( -isbnk -); - -138 -__END_NAMESPACE_C99 - - -141 #ifde -__USE_GNU - - -143  - $isy - ( -__c -,  -__mask - -__THROW -; - -146 #i -defed - -__USE_SVID - || defed -__USE_MISC - || defed -__USE_XOPEN - - -150  - $iscii - ( -__c - -__THROW -; - -154  - $tscii - ( -__c - -__THROW -; - -158 - `__exy - ( -_tou -); - -159 - `__exy - ( -_tow -); - -163  - #__tobody -( -c -, -f -, -a -, -gs -) \ - -164 ( -__exnsi__ - \ - -165 ({  -__s -; \ - -166 i( ( -c -) > 1) \ - -168 i( - `__but_cڡt_p - ( -c -)) \ - -170  -__c - = ( -c -); \ - -171 -__s - = -__c - < -128 || __> 255 ? __: ( -a -)[__c]; \ - -174 -__s - = -f - -gs -; \ - -177 -__s - = ( -a -)[(( -c -)]; \ - -178 -__s -; - } -})) - - ) - -180 #i! -defed - -__NO_CTYPE - - -181 #ifde -__isy_f - - -182 - $__isy_f - ( -num -) - -183 - $__isy_f - ( -pha -) - -184 - $__isy_f - ( -l -) - -185 - $__isy_f - ( -dig -) - -186 - $__isy_f - ( -low -) - -187 - $__isy_f - ( -gph -) - -188 - $__isy_f - ( -t -) - -189 - $__isy_f - ( -pun -) - -190 - $__isy_f - ( -a -) - -191 - $__isy_f - ( -u -) - -192 - $__isy_f - ( -xdig -) - -193 #ifde -__USE_ISOC99 - - -194 - $__isy_f - ( -bnk -) - -196 #i -defed - -__isy - - -197  - #ium -( -c - - `__isy -((c), -_ISnum -) - - ) - -198  - #iha -( -c - - `__isy -((c), -_ISpha -) - - ) - -199  - #isl -( -c - - `__isy -((c), -_ISl -) - - ) - -200  - #isdig -( -c - - `__isy -((c), -_ISdig -) - - ) - -201  - #iow -( -c - - `__isy -((c), -_ISlow -) - - ) - -202  - #isgph -( -c - - `__isy -((c), -_ISgph -) - - ) - -203  - #irt -( -c - - `__isy -((c), -_ISt -) - - ) - -204  - #iun -( -c - - `__isy -((c), -_ISpun -) - - ) - -205  - #isa -( -c - - `__isy -((c), -_ISa -) - - ) - -206  - #isu -( -c - - `__isy -((c), -_ISu -) - - ) - -207  - #isxdig -( -c - - `__isy -((c), -_ISxdig -) - - ) - -208 #ifde -__USE_ISOC99 - - -209  - #isbnk -( -c - - `__isy -((c), -_ISbnk -) - - ) - -213 #ifde -__USE_EXTERN_INLINES - - -214 -__ex_le -  - -215 - `__NTH - ( - $tow - ( -__c -)) - -217  -__c - >-128 && __< 256 ? (* - `__y_tow_loc - ())[__c] : __c; - -218 - } -} - -220 -__ex_le -  - -221 -__NTH - ( - $tou - ( -__c -)) - -223  -__c - >-128 && __< 256 ? (* - `__y_tou_loc - ())[__c] : __c; - -224 - } -} - -227 #i -__GNUC__ - >2 && -defed - -__OPTIMIZE__ - && !defed -__lulus - - -228  - #tow -( -c - - `__tobody - (c, -tow -, * - `__y_tow_loc - (), (c)) - - ) - -229  - #tou -( -c - - `__tobody - (c, -tou -, * - `__y_tou_loc - (), (c)) - - ) - -232 #i -defed - -__USE_SVID - || defed -__USE_MISC - || defed -__USE_XOPEN - - -233  - #iscii -( -c - - `__iscii - (c) - - ) - -234  - #tscii -( -c - - `__tscii - (c) - - ) - -236  - #_tow -( -c -(((* - `__y_tow_loc - ())[((c)]) - - ) - -237  - #_tou -( -c -(((* - `__y_tou_loc - ())[((c)]) - - ) - -243 #ifde -__USE_XOPEN2K8 - - -257  - ~ - -261  - #__isy_l -( -c -, -ty -, -lo -) \ - -262 (( -lo -)-> -__y_b -[(( -c -)] & ( -ty -) - - ) - -264  - #__exy_l -( -me -) \ - -265  - `me - (, -__lo_t - -__THROW - - - ) - -271 -__exy_l - ( -ium_l -); - -272 -__exy_l - ( -iha_l -); - -273 -__exy_l - ( -isl_l -); - -274 -__exy_l - ( -isdig_l -); - -275 -__exy_l - ( -iow_l -); - -276 -__exy_l - ( -isgph_l -); - -277 -__exy_l - ( -irt_l -); - -278 -__exy_l - ( -iun_l -); - -279 -__exy_l - ( -isa_l -); - -280 -__exy_l - ( -isu_l -); - -281 -__exy_l - ( -isxdig_l -); - -283 -__exy_l - ( -isbnk_l -); - -287  - $__tow_l - ( -__c -, -__lo_t - -__l - -__THROW -; - -288  - $tow_l - ( -__c -, -__lo_t - -__l - -__THROW -; - -291  - $__tou_l - ( -__c -, -__lo_t - -__l - -__THROW -; - -292  - $tou_l - ( -__c -, -__lo_t - -__l - -__THROW -; - -294 #i -__GNUC__ - >2 && -defed - -__OPTIMIZE__ - && !defed -__lulus - - -295  - #__tow_l -( -c -, -lo -) \ - -296 - `__tobody - ( -c -, -__tow_l -, ( -lo -)-> -__y_tow -, (c,o)) - - ) - -297  - #__tou_l -( -c -, -lo -) \ - -298 - `__tobody - ( -c -, -__tou_l -, ( -lo -)-> -__y_tou -, (c,o)) - - ) - -299  - #tow_l -( -c -, -lo - - `__tow_l - ((c), (lo)) - - ) - -300  - #tou_l -( -c -, -lo - - `__tou_l - ((c), (lo)) - - ) - -304 #ide -__NO_CTYPE - - -305  - #__ium_l -( -c -, -l - - `__isy_l -((c), -_ISnum -, (l)) - - ) - -306  - #__iha_l -( -c -, -l - - `__isy_l -((c), -_ISpha -, (l)) - - ) - -307  - #__isl_l -( -c -, -l - - `__isy_l -((c), -_ISl -, (l)) - - ) - -308  - #__isdig_l -( -c -, -l - - `__isy_l -((c), -_ISdig -, (l)) - - ) - -309  - #__iow_l -( -c -, -l - - `__isy_l -((c), -_ISlow -, (l)) - - ) - -310  - #__isgph_l -( -c -, -l - - `__isy_l -((c), -_ISgph -, (l)) - - ) - -311  - #__irt_l -( -c -, -l - - `__isy_l -((c), -_ISt -, (l)) - - ) - -312  - #__iun_l -( -c -, -l - - `__isy_l -((c), -_ISpun -, (l)) - - ) - -313  - #__isa_l -( -c -, -l - - `__isy_l -((c), -_ISa -, (l)) - - ) - -314  - #__isu_l -( -c -, -l - - `__isy_l -((c), -_ISu -, (l)) - - ) - -315  - #__isxdig_l -( -c -, -l - - `__isy_l -((c), -_ISxdig -, (l)) - - ) - -317  - #__isbnk_l -( -c -, -l - - `__isy_l -((c), -_ISbnk -, (l)) - - ) - -319 #i -defed - -__USE_SVID - || defed -__USE_MISC - - -320  - #__iscii_l -( -c -, -l -(), - `__iscii - (c)) - - ) - -321  - #__tscii_l -( -c -, -l -(), - `__tscii - (c)) - - ) - -324  - #ium_l -( -c -, -l - - `__ium_l - ((c), (l)) - - ) - -325  - #iha_l -( -c -, -l - - `__iha_l - ((c), (l)) - - ) - -326  - #isl_l -( -c -, -l - - `__isl_l - ((c), (l)) - - ) - -327  - #isdig_l -( -c -, -l - - `__isdig_l - ((c), (l)) - - ) - -328  - #iow_l -( -c -, -l - - `__iow_l - ((c), (l)) - - ) - -329  - #isgph_l -( -c -, -l - - `__isgph_l - ((c), (l)) - - ) - -330  - #irt_l -( -c -, -l - - `__irt_l - ((c), (l)) - - ) - -331  - #iun_l -( -c -, -l - - `__iun_l - ((c), (l)) - - ) - -332  - #isa_l -( -c -, -l - - `__isa_l - ((c), (l)) - - ) - -333  - #isu_l -( -c -, -l - - `__isu_l - ((c), (l)) - - ) - -334  - #isxdig_l -( -c -, -l - - `__isxdig_l - ((c), (l)) - - ) - -336  - #isbnk_l -( -c -, -l - - `__isbnk_l - ((c), (l)) - - ) - -338 #i -defed - -__USE_SVID - || defed -__USE_MISC - - -339  - #iscii_l -( -c -, -l - - `__iscii_l - ((c), (l)) - - ) - -340  - #tscii_l -( -c -, -l - - `__tscii_l - ((c), (l)) - - ) - -347 -__END_DECLS - - - @/usr/include/memory.h - -22 #idef -_MEMORY_H - - -23  - #_MEMORY_H - 1 - - ) - -25  - ~ - -28 #idef -_STRING_H - - -29  - ~ - - @/usr/include/signal.h - -22 #idef -_SIGNAL_H - - -24 #i! -defed - -__ed_sig_omic_t - && !defed -__ed_sigt_t - - -25  - #_SIGNAL_H - - - ) - -28  - ~ - -30 - g__BEGIN_DECLS - - -32  - ~ - -36 #i -defed - -__ed_sig_omic_t - || defed -_SIGNAL_H - - -37 #ide -__sig_omic_t_defed - - -38  - #__sig_omic_t_defed - - - ) - -39 -__BEGIN_NAMESPACE_STD - - -40  -__sig_omic_t - - tsig_omic_t -; - -41 - g__END_NAMESPACE_STD - - -43 #unde -__ed_sig_omic_t - - -46 #i -defed - -__ed_sigt_t - || (defed -_SIGNAL_H - && defed -__USE_POSIX -) - -47 #ide -__sigt_t_defed - - -48  - #__sigt_t_defed - - - ) - -49  -__sigt_t - - tsigt_t -; - -51 #unde -__ed_sigt_t - - -54 #ifde -_SIGNAL_H - - -56  - ~ - -57  - ~ - -59 #i -defed - -__USE_XOPEN - || defed -__USE_XOPEN2K - - -60 #ide -__pid_t_defed - - -61  -__pid_t - - tpid_t -; - -62  - #__pid_t_defed - - - ) - -64 #ifde -__USE_XOPEN - - -66 #ide -__uid_t_defed - - -67  -__uid_t - - tuid_t -; - -68  - #__uid_t_defed - - - ) - -72 #ifde -__USE_POSIX199309 - - -74  - #__ed_timeec - - - ) - -75  - ~ - -78 #i -defed - -__USE_POSIX199309 - || defed -__USE_XOPEN_EXTENDED - - -80  - ~ - -85 (* - t__sighdr_t -) (); - -90 -__sighdr_t - - $__sysv_sigl - ( -__sig -, -__sighdr_t - -__hdr -) - -91 -__THROW -; - -92 #ifde -__USE_GNU - - -93 -__sighdr_t - - $sysv_sigl - ( -__sig -, -__sighdr_t - -__hdr -) - -94 -__THROW -; - -100 -__BEGIN_NAMESPACE_STD - - -101 #ifde -__USE_BSD - - -102 -__sighdr_t - - $sigl - ( -__sig -, -__sighdr_t - -__hdr -) - -103 -__THROW -; - -106 #ifde -__REDIRECT_NTH - - -107 -__sighdr_t - - `__REDIRECT_NTH - ( -sigl -, - -108 ( -__sig -, -__sighdr_t - -__hdr -), - -109 -__sysv_sigl -); - -111  - #sigl - -__sysv_sigl - - - ) - -114 -__END_NAMESPACE_STD - - -116 #ifde -__USE_XOPEN - - -119 -__sighdr_t - - $bsd_sigl - ( -__sig -, -__sighdr_t - -__hdr -) - -120 -__THROW -; - -126 #ifde -__USE_POSIX - - -127  - $kl - ( -__pid_t - -__pid -,  -__sig - -__THROW -; - -130 #i -defed - -__USE_BSD - || defed -__USE_XOPEN_EXTENDED - - -134  - $kg - ( -__pid_t - -__pg -,  -__sig - -__THROW -; - -137 -__BEGIN_NAMESPACE_STD - - -139  - $i - ( -__sig - -__THROW -; - -140 -__END_NAMESPACE_STD - - -142 #ifde -__USE_SVID - - -144 -__sighdr_t - - $ssigl - ( -__sig -, -__sighdr_t - -__hdr -) - -145 -__THROW -; - -146  - $gsigl - ( -__sig - -__THROW -; - -149 #i -defed - -__USE_MISC - || defed -__USE_XOPEN2K - - -151  - `psigl - ( -__sig -, cڡ * -__s -); - -154 #ifde -__USE_XOPEN2K - - -156  - `psigfo - (cڡ -sigfo_t - * -__pfo -, cڡ * -__s -); - -167  - `__sigu - ( -__sig__mask -,  -__is_sig -); - -169 #ifde -__USE_XOPEN - - -170 #ifde -__GNUC__ - - -171  - $sigu - ( -__sig - - `__asm__ - ("__xpg_sigpause"); - -174  - #sigu -( -sig - - `__sigu - ((sig), 1) - - ) - -179 #ifde -__USE_BSD - - -186  - #sigmask -( -sig - - `__sigmask -(sig) - - ) - -189  - $sigblock - ( -__mask - -__THROW - -__ibu_dd__ -; - -192  - $sigtmask - ( -__mask - -__THROW - -__ibu_dd__ -; - -195  - $siggmask - ( -__THROW - -__ibu_dd__ -; - -199 #ifde -__USE_MISC - - -200  - #NSIG - -_NSIG - - - ) - -203 #ifde -__USE_GNU - - -204  -__sighdr_t - - tsighdr_t -; - -208 #ifde -__USE_BSD - - -209  -__sighdr_t - - tsig_t -; - -212 #ifde -__USE_POSIX - - -215  - $sigemyt - ( -sigt_t - * -__t - -__THROW - - `__nnu - ((1)); - -218  - $sigflt - ( -sigt_t - * -__t - -__THROW - - `__nnu - ((1)); - -221  - $sigaddt - ( -sigt_t - * -__t -,  -__signo - -__THROW - - `__nnu - ((1)); - -224  - $sigdt - ( -sigt_t - * -__t -,  -__signo - -__THROW - - `__nnu - ((1)); - -227  - $sigismemb - (cڡ -sigt_t - * -__t -,  -__signo -) - -228 -__THROW - - `__nnu - ((1)); - -230 #ifde -__USE_GNU - - -232  - $sigimyt - (cڡ -sigt_t - * -__t - -__THROW - - `__nnu - ((1)); - -235  - $sigdt - ( -sigt_t - * -__t -, cڡ sigt_* -__ -, - -236 cڡ -sigt_t - * -__right - -__THROW - - `__nnu - ((1, 2, 3)); - -239  - $sigܣt - ( -sigt_t - * -__t -, cڡ sigt_* -__ -, - -240 cڡ -sigt_t - * -__right - -__THROW - - `__nnu - ((1, 2, 3)); - -245  - ~ - -248  - $sigocmask - ( -__how -, cڡ -sigt_t - * -__ri - -__t -, - -249 -sigt_t - * -__ri - -__ot - -__THROW -; - -256  - $sigsud - (cڡ -sigt_t - * -__t - - `__nnu - ((1)); - -259  - $sigai - ( -__sig -, cڡ  -sigai - * -__ri - -__a -, - -260  -sigai - * -__ri - -__ - -__THROW -; - -263  - $signdg - ( -sigt_t - * -__t - -__THROW - - `__nnu - ((1)); - -270  - $sigwa - (cڡ -sigt_t - * -__ri - -__t -, *__ri -__sig -) - -271 - `__nnu - ((1, 2)); - -273 #ifde -__USE_POSIX199309 - - -278  - $sigwafo - (cڡ -sigt_t - * -__ri - -__t -, - -279 -sigfo_t - * -__ri - -__fo - - `__nnu - ((1)); - -286  - $sigtimedwa - (cڡ -sigt_t - * -__ri - -__t -, - -287 -sigfo_t - * -__ri - -__fo -, - -288 cڡ  -timeec - * -__ri - -__timeout -) - -289 - `__nnu - ((1)); - -293  - $sigqueue - ( -__pid_t - -__pid -,  -__sig -, cڡ  -sigv - -__v -) - -294 -__THROW -; - -299 #ifde -__USE_BSD - - -303 cڡ *cڡ -_sys_sigli -[ -_NSIG -]; - -304 cڡ *cڡ -sys_sigli -[ -_NSIG -]; - -307  - ssigvec - - -309 -__sighdr_t - -sv_hdr -; - -310  -sv_mask -; - -312  -sv_ags -; - -313  - #sv_ڡack - -sv_ags - - - ) - -317  - #SV_ONSTACK - (1 << 0) - - ) - -318  - #SV_INTERRUPT - (1 << 1) - - ) - -319  - #SV_RESETHAND - (1 << 2) - - ) - -327  - $sigvec - ( -__sig -, cڡ  -sigvec - * -__vec -, - -328  -sigvec - * -__ovec - -__THROW -; - -332  - ~ - -335  - $sigtu - ( -sigcڋxt - * -__s - -__THROW -; - -340 #i -defed - -__USE_BSD - || defed -__USE_XOPEN_EXTENDED - || defed -__USE_XOPEN2K8 - - -341  - #__ed_size_t - - - ) - -342  - ~ - -347  - $sigu - ( -__sig -,  -__u - -__THROW -; - -349  - ~ - -350 #i -defed - -__USE_XOPEN - || defed -__USE_XOPEN2K8 - - -352  - ~ - -358  - $sigack - ( -sigack - * -__ss -, sigack * -__oss -) - -359 -__THROW - -__ibu_dd__ -; - -363  - $sigtack - (cڡ  -sigtack - * -__ri - -__ss -, - -364  -sigtack - * -__ri - -__oss - -__THROW -; - -368 #ifde -__USE_XOPEN_EXTENDED - - -372  - $sighd - ( -__sig - -__THROW -; - -375  - $sigl - ( -__sig - -__THROW -; - -378  - $sigigne - ( -__sig - -__THROW -; - -381 -__sighdr_t - - $sigt - ( -__sig -, -__sighdr_t - -__di - -__THROW -; - -384 #i -defed - -__USE_POSIX199506 - || defed -__USE_UNIX98 - - -387  - ~ - -388  - ~ - -395  - $__libc_cut_sigm - ( -__THROW -; - -397  - $__libc_cut_sigmax - ( -__THROW -; - -401 -__END_DECLS - - - @/usr/include/stdio.h - -23 #ide -_STDIO_H - - -25 #i! -defed - -__ed_FILE - && !defed -__ed___FILE - - -26  - #_STDIO_H - 1 - - ) - -27  - ~ - -29 - g__BEGIN_DECLS - - -31  - #__ed_size_t - - - ) - -32  - #__ed_NULL - - - ) - -33  - ~ - -35  - ~ - -36  - #__ed_FILE - - - ) - -37  - #__ed___FILE - - - ) - -41 #i! -defed - -__FILE_defed - && defed -__ed_FILE - - -44  - g_IO_FILE -; - -46 -__BEGIN_NAMESPACE_STD - - -48  -_IO_FILE - - tFILE -; - -49 - g__END_NAMESPACE_STD - - -50 #i -defed - -__USE_LARGEFILE64 - || defed -__USE_SVID - || defed -__USE_POSIX - \ - -51 || -defed - - g__USE_BSD - || defed - g__USE_ISOC99 - || defed - g__USE_XOPEN - \ - -52 || -defed - -__USE_POSIX2 - - -53 - $__USING_NAMESPACE_STD -( -FILE -) - -56  - #__FILE_defed - 1 - - ) - -58 #unde -__ed_FILE - - -61 #i! -defed - -____FILE_defed - && defed -__ed___FILE - - -64  -_IO_FILE - - t__FILE -; - -66  - #____FILE_defed - 1 - - ) - -68 #unde -__ed___FILE - - -71 #ifdef -_STDIO_H - - -72  - #_STDIO_USES_IOSTREAM - - - ) - -74  - ~ - -76 #i -defed - -__USE_XOPEN - || defed -__USE_XOPEN2K8 - - -77 #ifde -__GNUC__ - - -78 #ide -_VA_LIST_DEFINED - - -79  -_G_va_li - - tva_li -; - -80  - #_VA_LIST_DEFINED - - - ) - -83  - ~ - -87 #ifde -__USE_XOPEN2K8 - - -88 #ide -__off_t_defed - - -89 #ide -__USE_FILE_OFFSET64 - - -90  -__off_t - - toff_t -; - -92  -__off64_t - - toff_t -; - -94  - #__off_t_defed - - - ) - -96 #i -defed - -__USE_LARGEFILE64 - && !defed -__off64_t_defed - - -97  -__off64_t - - toff64_t -; - -98  - #__off64_t_defed - - - ) - -101 #ide -__ssize_t_defed - - -102  -__ssize_t - - tssize_t -; - -103  - #__ssize_t_defed - - - ) - -108 -__BEGIN_NAMESPACE_STD - - -109 #ide -__USE_FILE_OFFSET64 - - -110  -_G_os_t - - tos_t -; - -112  -_G_os64_t - - tos_t -; - -114 -__END_NAMESPACE_STD - - -115 #ifde -__USE_LARGEFILE64 - - -116  -_G_os64_t - - tos64_t -; - -120  - #_IOFBF - 0 - - ) - -121  - #_IOLBF - 1 - - ) - -122  - #_IONBF - 2 - - ) - -126 #ide -BUFSIZ - - -127  - #BUFSIZ - -_IO_BUFSIZ - - - ) - -133 #ide -EOF - - -134  - #EOF - (-1) - - ) - -140  - #SEEK_SET - 0 - - ) - -141  - #SEEK_CUR - 1 - - ) - -142  - #SEEK_END - 2 - - ) - -143 #ifde -__USE_GNU - - -144  - #SEEK_DATA - 3 - - ) - -145  - #SEEK_HOLE - 4 - - ) - -149 #i -defed - -__USE_SVID - || defed -__USE_XOPEN - - -151  - #P_tmpd - "/tmp" - - ) - -164  - ~ - -168  -_IO_FILE - * -d -; - -169  -_IO_FILE - * -dout -; - -170  -_IO_FILE - * -dr -; - -172  - #d - -d - - - ) - -173  - #dout - -dout - - - ) - -174  - #dr - -dr - - - ) - -176 -__BEGIN_NAMESPACE_STD - - -178  - $move - (cڡ * -__fame - -__THROW -; - -180  - $me - (cڡ * -__d -, cڡ * -__w - -__THROW -; - -181 -__END_NAMESPACE_STD - - -183 #ifde -__USE_ATFILE - - -185  - $mt - ( -__dfd -, cڡ * -__d -,  -__wfd -, - -186 cڡ * -__w - -__THROW -; - -189 -__BEGIN_NAMESPACE_STD - - -194 #ide -__USE_FILE_OFFSET64 - - -195 -FILE - * - $tmpfe - ( -__wur -; - -197 #ifde -__REDIRECT - - -198 -FILE - * - `__REDIRECT - ( -tmpfe -, (), -tmpfe64 - -__wur -; - -200  - #tmpfe - -tmpfe64 - - - ) - -204 #ifde -__USE_LARGEFILE64 - - -205 -FILE - * - $tmpfe64 - ( -__wur -; - -209 * - $tmam - (* -__s - -__THROW - -__wur -; - -210 -__END_NAMESPACE_STD - - -212 #ifde -__USE_MISC - - -215 * - $tmam_r - (* -__s - -__THROW - -__wur -; - -219 #i -defed - -__USE_SVID - || defed -__USE_XOPEN - - -227 * - $mam - (cڡ * -__d -, cڡ * -__pfx -) - -228 -__THROW - -__ibu_mloc__ - -__wur -; - -232 -__BEGIN_NAMESPACE_STD - - -237  - `fo - ( -FILE - * -__am -); - -242  - `fush - ( -FILE - * -__am -); - -243 -__END_NAMESPACE_STD - - -245 #ifde -__USE_MISC - - -252  - `fush_uocked - ( -FILE - * -__am -); - -255 #ifde -__USE_GNU - - -262  - `fol - (); - -266 -__BEGIN_NAMESPACE_STD - - -267 #ide -__USE_FILE_OFFSET64 - - -272 -FILE - * - $fݒ - (cڡ * -__ri - -__fame -, - -273 cڡ * -__ri - -__modes - -__wur -; - -278 -FILE - * - $eݒ - (cڡ * -__ri - -__fame -, - -279 cڡ * -__ri - -__modes -, - -280 -FILE - * -__ri - -__am - -__wur -; - -282 #ifde -__REDIRECT - - -283 -FILE - * - `__REDIRECT - ( -fݒ -, (cڡ * -__ri - -__fame -, - -284 cڡ * -__ri - -__modes -), -fݒ64 -) - -285 -__wur -; - -286 -FILE - * - `__REDIRECT - ( -eݒ -, (cڡ * -__ri - -__fame -, - -287 cڡ * -__ri - -__modes -, - -288 -FILE - * -__ri - -__am -), -eݒ64 -) - -289 -__wur -; - -291  - #fݒ - -fݒ64 - - - ) - -292  - #eݒ - -eݒ64 - - - ) - -295 -__END_NAMESPACE_STD - - -296 #ifde -__USE_LARGEFILE64 - - -297 -FILE - * - $fݒ64 - (cڡ * -__ri - -__fame -, - -298 cڡ * -__ri - -__modes - -__wur -; - -299 -FILE - * - $eݒ64 - (cڡ * -__ri - -__fame -, - -300 cڡ * -__ri - -__modes -, - -301 -FILE - * -__ri - -__am - -__wur -; - -304 #ifdef -__USE_POSIX - - -306 -FILE - * - $fdݒ - ( -__fd -, cڡ * -__modes - -__THROW - -__wur -; - -309 #ifdef -__USE_GNU - - -312 -FILE - * - $fݒcook - (* -__ri - -__magic_cook -, - -313 cڡ * -__ri - -__modes -, - -314 -_IO_cook_io_funis_t - -__io_funcs - -__THROW - -__wur -; - -317 #ifde -__USE_XOPEN2K8 - - -319 -FILE - * - $fmemݒ - (* -__s -, -size_t - -__n -, cڡ * -__modes -) - -320 -__THROW - -__wur -; - -325 -FILE - * - $ݒ_memam - (** -__buoc -, -size_t - * -__sizoc - -__THROW - -__wur -; - -329 -__BEGIN_NAMESPACE_STD - - -332  - $tbuf - ( -FILE - * -__ri - -__am -, *__ri -__buf - -__THROW -; - -336  - $tvbuf - ( -FILE - * -__ri - -__am -, *__ri -__buf -, - -337  -__modes -, -size_t - -__n - -__THROW -; - -338 -__END_NAMESPACE_STD - - -340 #ifdef -__USE_BSD - - -343  - $tbufr - ( -FILE - * -__ri - -__am -, *__ri -__buf -, - -344 -size_t - -__size - -__THROW -; - -347  - $ebuf - ( -FILE - * -__am - -__THROW -; - -351 -__BEGIN_NAMESPACE_STD - - -356  - `rtf - ( -FILE - * -__ri - -__am -, - -357 cڡ * -__ri - -__fm -, ...); - -362  - `tf - (cڡ * -__ri - -__fm -, ...); - -364  - $rtf - (* -__ri - -__s -, - -365 cڡ * -__ri - -__fm -, ... -__THROWNL -; - -371  - `vrtf - ( -FILE - * -__ri - -__s -, cڡ *__ri -__fm -, - -372 -_G_va_li - -__g -); - -377  - `vtf - (cڡ * -__ri - -__fm -, -_G_va_li - -__g -); - -379  - $vrtf - (* -__ri - -__s -, cڡ *__ri -__fm -, - -380 -_G_va_li - -__g - -__THROWNL -; - -381 -__END_NAMESPACE_STD - - -383 #i -defed - -__USE_BSD - || defed -__USE_ISOC99 - || defed -__USE_UNIX98 - - -384 -__BEGIN_NAMESPACE_C99 - - -386  - $tf - (* -__ri - -__s -, -size_t - -__maxn -, - -387 cڡ * -__ri - -__fm -, ...) - -388 -__THROWNL - - `__ibu__ - (( - `__fm__ - ( -__tf__ -, 3, 4))); - -390  - $vtf - (* -__ri - -__s -, -size_t - -__maxn -, - -391 cڡ * -__ri - -__fm -, -_G_va_li - -__g -) - -392 -__THROWNL - - `__ibu__ - (( - `__fm__ - ( -__tf__ -, 3, 0))); - -393 -__END_NAMESPACE_C99 - - -396 #ifde -__USE_GNU - - -399  - $vartf - (** -__ri - -__r -, cڡ *__ri -__f -, - -400 -_G_va_li - -__g -) - -401 -__THROWNL - - `__ibu__ - (( - $__fm__ - ( -__tf__ -, 2, 0)) -__wur -; - -402  - $__artf - (** -__ri - -__r -, - -403 cڡ * -__ri - -__fmt -, ...) - -404 -__THROWNL - - `__ibu__ - (( - $__fm__ - ( -__tf__ -, 2, 3)) -__wur -; - -405  - $artf - (** -__ri - -__r -, - -406 cڡ * -__ri - -__fmt -, ...) - -407 -__THROWNL - - `__ibu__ - (( - $__fm__ - ( -__tf__ -, 2, 3)) -__wur -; - -410 #ifde -__USE_XOPEN2K8 - - -412  - $vdtf - ( -__fd -, cڡ * -__ri - -__fmt -, - -413 -_G_va_li - -__g -) - -414 - `__ibu__ - (( - `__fm__ - ( -__tf__ -, 2, 0))); - -415  - $dtf - ( -__fd -, cڡ * -__ri - -__fmt -, ...) - -416 - `__ibu__ - (( - `__fm__ - ( -__tf__ -, 2, 3))); - -420 -__BEGIN_NAMESPACE_STD - - -425  - $fsnf - ( -FILE - * -__ri - -__am -, - -426 cڡ * -__ri - -__fm -, ... -__wur -; - -431  - $snf - (cڡ * -__ri - -__fm -, ... -__wur -; - -433  - $ssnf - (cڡ * -__ri - -__s -, - -434 cڡ * -__ri - -__fm -, ... -__THROW -; - -436 #i -defed - -__USE_ISOC99 - && !defed -__USE_GNU - \ - -437 && (! -defed - -__LDBL_COMPAT - || !defed -__REDIRECT -) \ - -438 && ( -defed - -__STRICT_ANSI__ - || defed -__USE_XOPEN2K -) - -439 #ifde -__REDIRECT - - -443  - `__REDIRECT - ( -fsnf -, ( -FILE - * -__ri - -__am -, - -444 cڡ * -__ri - -__fm -, ...), - -445 -__isoc99_fsnf - -__wur -; - -446  - `__REDIRECT - ( -snf -, (cڡ * -__ri - -__fm -, ...), - -447 -__isoc99_snf - -__wur -; - -448  - `__REDIRECT_NTH - ( -ssnf -, (cڡ * -__ri - -__s -, - -449 cڡ * -__ri - -__fm -, ...), - -450 -__isoc99_ssnf -); - -452  - $__isoc99_fsnf - ( -FILE - * -__ri - -__am -, - -453 cڡ * -__ri - -__fm -, ... -__wur -; - -454  - $__isoc99_snf - (cڡ * -__ri - -__fm -, ... -__wur -; - -455  - $__isoc99_ssnf - (cڡ * -__ri - -__s -, - -456 cڡ * -__ri - -__fm -, ... -__THROW -; - -457  - #fsnf - -__isoc99_fsnf - - - ) - -458  - #snf - -__isoc99_snf - - - ) - -459  - #ssnf - -__isoc99_ssnf - - - ) - -463 -__END_NAMESPACE_STD - - -465 #ifdef -__USE_ISOC99 - - -466 -__BEGIN_NAMESPACE_C99 - - -471  - $vfsnf - ( -FILE - * -__ri - -__s -, cڡ *__ri -__fm -, - -472 -_G_va_li - -__g -) - -473 - `__ibu__ - (( - $__fm__ - ( -__snf__ -, 2, 0)) -__wur -; - -479  - $vsnf - (cڡ * -__ri - -__fm -, -_G_va_li - -__g -) - -480 - `__ibu__ - (( - $__fm__ - ( -__snf__ -, 1, 0)) -__wur -; - -483  - $vssnf - (cڡ * -__ri - -__s -, - -484 cڡ * -__ri - -__fm -, -_G_va_li - -__g -) - -485 -__THROW - - `__ibu__ - (( - `__fm__ - ( -__snf__ -, 2, 0))); - -487 #i! -defed - -__USE_GNU - \ - -488 && (! -defed - -__LDBL_COMPAT - || !defed -__REDIRECT -) \ - -489 && ( -defed - -__STRICT_ANSI__ - || defed -__USE_XOPEN2K -) - -490 #ifde -__REDIRECT - - -494  - `__REDIRECT - ( -vfsnf -, - -495 ( -FILE - * -__ri - -__s -, - -496 cڡ * -__ri - -__fm -, -_G_va_li - -__g -), - -497 -__isoc99_vfsnf -) - -498 - `__ibu__ - (( - $__fm__ - ( -__snf__ -, 2, 0)) -__wur -; - -499  - `__REDIRECT - ( -vsnf -, (cڡ * -__ri - -__fm -, - -500 -_G_va_li - -__g -), -__isoc99_vsnf -) - -501 - `__ibu__ - (( - $__fm__ - ( -__snf__ -, 1, 0)) -__wur -; - -502  - `__REDIRECT_NTH - ( -vssnf -, - -503 (cڡ * -__ri - -__s -, - -504 cڡ * -__ri - -__fm -, - -505 -_G_va_li - -__g -), -__isoc99_vssnf -) - -506 - `__ibu__ - (( - `__fm__ - ( -__snf__ -, 2, 0))); - -508  - $__isoc99_vfsnf - ( -FILE - * -__ri - -__s -, - -509 cڡ * -__ri - -__fm -, - -510 -_G_va_li - -__g - -__wur -; - -511  - $__isoc99_vsnf - (cڡ * -__ri - -__fm -, - -512 -_G_va_li - -__g - -__wur -; - -513  - $__isoc99_vssnf - (cڡ * -__ri - -__s -, - -514 cڡ * -__ri - -__fm -, - -515 -_G_va_li - -__g - -__THROW -; - -516  - #vfsnf - -__isoc99_vfsnf - - - ) - -517  - #vsnf - -__isoc99_vsnf - - - ) - -518  - #vssnf - -__isoc99_vssnf - - - ) - -522 -__END_NAMESPACE_C99 - - -526 -__BEGIN_NAMESPACE_STD - - -531  - `fgc - ( -FILE - * -__am -); - -532  - `gc - ( -FILE - * -__am -); - -538  - `gch - (); - -539 -__END_NAMESPACE_STD - - -543  - #gc -( -_ - - `_IO_gc - (_) - - ) - -545 #i -defed - -__USE_POSIX - || defed -__USE_MISC - - -550  - `gc_uocked - ( -FILE - * -__am -); - -551  - `gch_uocked - (); - -554 #ifde -__USE_MISC - - -561  - `fgc_uocked - ( -FILE - * -__am -); - -565 -__BEGIN_NAMESPACE_STD - - -573  - `utc - ( -__c -, -FILE - * -__am -); - -574  - `putc - ( -__c -, -FILE - * -__am -); - -580  - `putch - ( -__c -); - -581 -__END_NAMESPACE_STD - - -585  - #putc -( -_ch -, -_ - - `_IO_putc - (_ch, _) - - ) - -587 #ifde -__USE_MISC - - -594  - `utc_uocked - ( -__c -, -FILE - * -__am -); - -597 #i -defed - -__USE_POSIX - || defed -__USE_MISC - - -602  - `putc_uocked - ( -__c -, -FILE - * -__am -); - -603  - `putch_uocked - ( -__c -); - -607 #i -defed - -__USE_SVID - || defed -__USE_MISC - \ - -608 || ( -defed - -__USE_XOPEN - && !defed -__USE_XOPEN2K -) - -610  - `gw - ( -FILE - * -__am -); - -613  - `putw - ( -__w -, -FILE - * -__am -); - -617 -__BEGIN_NAMESPACE_STD - - -622 * - $fgs - (* -__ri - -__s -,  -__n -, -FILE - *__ri -__am -) - -623 -__wur -; - -625 #i! -defed - -__USE_ISOC11 - \ - -626 || ( -defed - -__lulus - && __cplusplus <= 201103L) - -638 * - $gs - (* -__s - -__wur - -__ibu_dd__ -; - -640 -__END_NAMESPACE_STD - - -642 #ifde -__USE_GNU - - -649 * - $fgs_uocked - (* -__ri - -__s -,  -__n -, - -650 -FILE - * -__ri - -__am - -__wur -; - -654 #ifdef -__USE_XOPEN2K8 - - -665 -_IO_ssize_t - - $__gdim - (** -__ri - -__l -, - -666 -size_t - * -__ri - -__n -,  -__dim -, - -667 -FILE - * -__ri - -__am - -__wur -; - -668 -_IO_ssize_t - - $gdim - (** -__ri - -__l -, - -669 -size_t - * -__ri - -__n -,  -__dim -, - -670 -FILE - * -__ri - -__am - -__wur -; - -678 -_IO_ssize_t - - $gle - (** -__ri - -__l -, - -679 -size_t - * -__ri - -__n -, - -680 -FILE - * -__ri - -__am - -__wur -; - -684 -__BEGIN_NAMESPACE_STD - - -689  - `uts - (cڡ * -__ri - -__s -, -FILE - *__ri -__am -); - -695  - `puts - (cڡ * -__s -); - -702  - `ungc - ( -__c -, -FILE - * -__am -); - -709 -size_t - - $d - (* -__ri - -__r -, -size_t - -__size -, - -710 -size_t - -__n -, -FILE - * -__ri - -__am - -__wur -; - -715 -size_t - - `fwre - (cڡ * -__ri - -__r -, size_ -__size -, - -716 -size_t - -__n -, -FILE - * -__ri - -__s -); - -717 -__END_NAMESPACE_STD - - -719 #ifde -__USE_GNU - - -726  - `uts_uocked - (cڡ * -__ri - -__s -, - -727 -FILE - * -__ri - -__am -); - -730 #ifde -__USE_MISC - - -737 -size_t - - $d_uocked - (* -__ri - -__r -, -size_t - -__size -, - -738 -size_t - -__n -, -FILE - * -__ri - -__am - -__wur -; - -739 -size_t - - `fwre_uocked - (cڡ * -__ri - -__r -, size_ -__size -, - -740 -size_t - -__n -, -FILE - * -__ri - -__am -); - -744 -__BEGIN_NAMESPACE_STD - - -749  - `fek - ( -FILE - * -__am -,  -__off -,  -__wh -); - -754  - $l - ( -FILE - * -__am - -__wur -; - -759  - `wd - ( -FILE - * -__am -); - -760 -__END_NAMESPACE_STD - - -767 #i -defed - -__USE_LARGEFILE - || defed -__USE_XOPEN2K - - -768 #ide -__USE_FILE_OFFSET64 - - -773  - `feko - ( -FILE - * -__am -, -__off_t - -__off -,  -__wh -); - -778 -__off_t - - $lo - ( -FILE - * -__am - -__wur -; - -780 #ifde -__REDIRECT - - -781  - `__REDIRECT - ( -feko -, - -782 ( -FILE - * -__am -, -__off64_t - -__off -,  -__wh -), - -783 -feko64 -); - -784 -__off64_t - - `__REDIRECT - ( -lo -, ( -FILE - * -__am -), -lo64 -); - -786  - #feko - -feko64 - - - ) - -787  - #lo - -lo64 - - - ) - -792 -__BEGIN_NAMESPACE_STD - - -793 #ide -__USE_FILE_OFFSET64 - - -798  - `fgpos - ( -FILE - * -__ri - -__am -, -os_t - *__ri -__pos -); - -803  - `fos - ( -FILE - * -__am -, cڡ -os_t - * -__pos -); - -805 #ifde -__REDIRECT - - -806  - `__REDIRECT - ( -fgpos -, ( -FILE - * -__ri - -__am -, - -807 -os_t - * -__ri - -__pos -), -fgpos64 -); - -808  - `__REDIRECT - ( -fos -, - -809 ( -FILE - * -__am -, cڡ -os_t - * -__pos -), -fos64 -); - -811  - #fgpos - -fgpos64 - - - ) - -812  - #fos - -fos64 - - - ) - -815 -__END_NAMESPACE_STD - - -817 #ifde -__USE_LARGEFILE64 - - -818  - `feko64 - ( -FILE - * -__am -, -__off64_t - -__off -,  -__wh -); - -819 -__off64_t - - $lo64 - ( -FILE - * -__am - -__wur -; - -820  - `fgpos64 - ( -FILE - * -__ri - -__am -, -os64_t - *__ri -__pos -); - -821  - `fos64 - ( -FILE - * -__am -, cڡ -os64_t - * -__pos -); - -824 -__BEGIN_NAMESPACE_STD - - -826  - $ - ( -FILE - * -__am - -__THROW -; - -828  - $of - ( -FILE - * -__am - -__THROW - -__wur -; - -830  - $ - ( -FILE - * -__am - -__THROW - -__wur -; - -831 -__END_NAMESPACE_STD - - -833 #ifde -__USE_MISC - - -835  - $_uocked - ( -FILE - * -__am - -__THROW -; - -836  - $of_uocked - ( -FILE - * -__am - -__THROW - -__wur -; - -837  - $_uocked - ( -FILE - * -__am - -__THROW - -__wur -; - -841 -__BEGIN_NAMESPACE_STD - - -846  - ` - (cڡ * -__s -); - -847 -__END_NAMESPACE_STD - - -853  - ~ - -856 #ifdef -__USE_POSIX - - -858  - $fo - ( -FILE - * -__am - -__THROW - -__wur -; - -861 #ifde -__USE_MISC - - -863  - $fo_uocked - ( -FILE - * -__am - -__THROW - -__wur -; - -867 #i( -defed - -__USE_POSIX2 - || defed -__USE_SVID - || defed -__USE_BSD - || \ - -868 -defed - -__USE_MISC -) - -873 -FILE - * - $pݒ - (cڡ * -__commd -, cڡ * -__modes - -__wur -; - -879  - `po - ( -FILE - * -__am -); - -883 #ifdef -__USE_POSIX - - -885 * - $mid - (* -__s - -__THROW -; - -889 #ifde -__USE_XOPEN - - -891 * - `curid - (* -__s -); - -895 #ifdef -__USE_GNU - - -896  -oback -; - -899  - $oback_tf - ( -oback - * -__ri - -__oback -, - -900 cڡ * -__ri - -__fm -, ...) - -901 -__THROWNL - - `__ibu__ - (( - `__fm__ - ( -__tf__ -, 2, 3))); - -902  - $oback_vtf - ( -oback - * -__ri - -__oback -, - -903 cڡ * -__ri - -__fm -, - -904 -_G_va_li - -__gs -) - -905 -__THROWNL - - `__ibu__ - (( - `__fm__ - ( -__tf__ -, 2, 0))); - -909 #i -defed - -__USE_POSIX - || defed -__USE_MISC - - -913  - $ockfe - ( -FILE - * -__am - -__THROW -; - -917  - $rylockfe - ( -FILE - * -__am - -__THROW - -__wur -; - -920  - $fuockfe - ( -FILE - * -__am - -__THROW -; - -923 #i -defed - -__USE_XOPEN - && !defed -__USE_XOPEN2K - && !defed -__USE_GNU - - -927  - #__ed_gt - - - ) - -928  - ~ - -933 #ifde -__USE_EXTERN_INLINES - - -934  - ~ - -936 #i -__USE_FORTIFY_LEVEL - > 0 && -defed - -__ex_ways_le - - -937  - ~ - -939 #ifde -__LDBL_COMPAT - - -940  - ~ - -943 -__END_DECLS - - - @/usr/include/stdlib.h - -22 #idef -_STDLIB_H - - -24  - ~ - -27  - #__ed_size_t - - - ) - -28 #ide -__ed_mloc_d_oc - - -29  - #__ed_wch_t - - - ) - -30  - #__ed_NULL - - - ) - -32  - ~ - -34 - g__BEGIN_DECLS - - -36 #ide -__ed_mloc_d_oc - - -37  - #_STDLIB_H - 1 - - ) - -39 #i( -defed - -__USE_XOPEN - || defed -__USE_XOPEN2K8 -&& !defed -_SYS_WAIT_H - - -41  - ~ - -42  - ~ - -44 #ifde -__USE_BSD - - -49 #i -defed - -__GNUC__ - && !defed -__lulus - - -50  - #__WAIT_INT -( -us -) \ - -51 ( - `__exnsi__ - (((uni { - `__tyof -( -us - -__ -;  -__i -; }) \ - -52 { . -__ - = ( -us -}). -__i -)) - - ) - -54  - #__WAIT_INT -( -us -(*(*&(us)) - - ) - -62 #i! -defed - -__GNUC__ - || __GNUC__ < 2 || defed -__lulus - - -63  - #__WAIT_STATUS - * - - ) - -64  - #__WAIT_STATUS_DEFN - * - - ) - -69  -wa - * - m__ur -; - -70 * - m__ -; - -71 } - t__WAIT_STATUS - - t__ibu__ - (( - t__t_uni__ -)); - -72  - #__WAIT_STATUS_DEFN - * - - ) - -77  - #__WAIT_INT -( -us -(us) - - ) - -78  - #__WAIT_STATUS - * - - ) - -79  - #__WAIT_STATUS_DEFN - * - - ) - -84  - #WEXITSTATUS -( -us - - `__WEXITSTATUS - ( - `__WAIT_INT - (us)) - - ) - -85  - #WTERMSIG -( -us - - `__WTERMSIG - ( - `__WAIT_INT - (us)) - - ) - -86  - #WSTOPSIG -( -us - - `__WSTOPSIG - ( - `__WAIT_INT - (us)) - - ) - -87  - #WIFEXITED -( -us - - `__WIFEXITED - ( - `__WAIT_INT - (us)) - - ) - -88  - #WIFSIGNALED -( -us - - `__WIFSIGNALED - ( - `__WAIT_INT - (us)) - - ) - -89  - #WIFSTOPPED -( -us - - `__WIFSTOPPED - ( - `__WAIT_INT - (us)) - - ) - -90 #ifde -__WIFCONTINUED - - -91  - #WIFCONTINUED -( -us - - `__WIFCONTINUED - ( - `__WAIT_INT - (us)) - - ) - -95 -__BEGIN_NAMESPACE_STD - - -99  - mqu -; - -100  - mm -; - -101 } - tdiv_t -; - -104 #ide -__ldiv_t_defed - - -107  - mqu -; - -108  - mm -; - -109 } - tldiv_t -; - -110  - #__ldiv_t_defed - 1 - - ) - -112 - g__END_NAMESPACE_STD - - -114 #i -defed - -__USE_ISOC99 - && !defed -__div_t_defed - - -115 -__BEGIN_NAMESPACE_C99 - - -117 -__exnsi__ - struct - -119  - mqu -; - -120  - mm -; - -121 } - tdiv_t -; - -122  - #__div_t_defed - 1 - - ) - -123 - g__END_NAMESPACE_C99 - - -128  - #RAND_MAX - 2147483647 - - ) - -133  - #EXIT_FAILURE - 1 - - ) - -134  - #EXIT_SUCCESS - 0 - - ) - -138  - #MB_CUR_MAX - ( - `__y_g_mb_cur_max - ()) - - ) - -139 -size_t - - $__y_g_mb_cur_max - ( -__THROW - -__wur -; - -142 -__BEGIN_NAMESPACE_STD - - -144  - $of - (cڡ * -__Ō -) - -145 -__THROW - -__ibu_pu__ - - `__nnu - ((1) -__wur -; - -147  - $oi - (cڡ * -__Ō -) - -148 -__THROW - -__ibu_pu__ - - `__nnu - ((1) -__wur -; - -150  - $ - (cڡ * -__Ō -) - -151 -__THROW - -__ibu_pu__ - - `__nnu - ((1) -__wur -; - -152 -__END_NAMESPACE_STD - - -154 #i -defed - -__USE_ISOC99 - || defed -__USE_MISC - - -155 -__BEGIN_NAMESPACE_C99 - - -157 -__exnsi__ -  - $l - (cڡ * -__Ō -) - -158 -__THROW - -__ibu_pu__ - - `__nnu - ((1) -__wur -; - -159 -__END_NAMESPACE_C99 - - -162 -__BEGIN_NAMESPACE_STD - - -164  - $od - (cڡ * -__ri - -__Ō -, - -165 ** -__ri - -__dr -) - -166 -__THROW - - `__nnu - ((1)); - -167 -__END_NAMESPACE_STD - - -169 #ifdef -__USE_ISOC99 - - -170 -__BEGIN_NAMESPACE_C99 - - -172  - $of - (cڡ * -__ri - -__Ō -, - -173 ** -__ri - -__dr - -__THROW - - `__nnu - ((1)); - -175  - $d - (cڡ * -__ri - -__Ō -, - -176 ** -__ri - -__dr -) - -177 -__THROW - - `__nnu - ((1)); - -178 -__END_NAMESPACE_C99 - - -181 -__BEGIN_NAMESPACE_STD - - -183  - $ - (cڡ * -__ri - -__Ō -, - -184 ** -__ri - -__dr -,  -__ba -) - -185 -__THROW - - `__nnu - ((1)); - -187  - $oul - (cڡ * -__ri - -__Ō -, - -188 ** -__ri - -__dr -,  -__ba -) - -189 -__THROW - - `__nnu - ((1)); - -190 -__END_NAMESPACE_STD - - -192 #ifde -__USE_BSD - - -194 -__exnsi__ - - -195  - $oq - (cڡ * -__ri - -__Ō -, - -196 ** -__ri - -__dr -,  -__ba -) - -197 -__THROW - - `__nnu - ((1)); - -199 -__exnsi__ - - -200  - $ouq - (cڡ * -__ri - -__Ō -, - -201 ** -__ri - -__dr -,  -__ba -) - -202 -__THROW - - `__nnu - ((1)); - -205 #i -defed - -__USE_ISOC99 - || defed -__USE_MISC - - -206 -__BEGIN_NAMESPACE_C99 - - -208 -__exnsi__ - - -209  - $l - (cڡ * -__ri - -__Ō -, - -210 ** -__ri - -__dr -,  -__ba -) - -211 -__THROW - - `__nnu - ((1)); - -213 -__exnsi__ - - -214  - $ou - (cڡ * -__ri - -__Ō -, - -215 ** -__ri - -__dr -,  -__ba -) - -216 -__THROW - - `__nnu - ((1)); - -217 -__END_NAMESPACE_C99 - - -221 #ifde -__USE_GNU - - -235  - ~ - -239  - $_l - (cڡ * -__ri - -__Ō -, - -240 ** -__ri - -__dr -,  -__ba -, - -241 -__lo_t - -__loc - -__THROW - - `__nnu - ((1, 4)); - -243  - $oul_l - (cڡ * -__ri - -__Ō -, - -244 ** -__ri - -__dr -, - -245  -__ba -, -__lo_t - -__loc -) - -246 -__THROW - - `__nnu - ((1, 4)); - -248 -__exnsi__ - - -249  - $l_l - (cڡ * -__ri - -__Ō -, - -250 ** -__ri - -__dr -,  -__ba -, - -251 -__lo_t - -__loc -) - -252 -__THROW - - `__nnu - ((1, 4)); - -254 -__exnsi__ - - -255  - $ou_l - (cڡ * -__ri - -__Ō -, - -256 ** -__ri - -__dr -, - -257  -__ba -, -__lo_t - -__loc -) - -258 -__THROW - - `__nnu - ((1, 4)); - -260  - $od_l - (cڡ * -__ri - -__Ō -, - -261 ** -__ri - -__dr -, -__lo_t - -__loc -) - -262 -__THROW - - `__nnu - ((1, 3)); - -264  - $of_l - (cڡ * -__ri - -__Ō -, - -265 ** -__ri - -__dr -, -__lo_t - -__loc -) - -266 -__THROW - - `__nnu - ((1, 3)); - -268  - $d_l - (cڡ * -__ri - -__Ō -, - -269 ** -__ri - -__dr -, - -270 -__lo_t - -__loc -) - -271 -__THROW - - `__nnu - ((1, 3)); - -275 #ifde -__USE_EXTERN_INLINES - - -276 -__BEGIN_NAMESPACE_STD - - -277 -__ex_le -  - -278 - `__NTH - ( - $oi - (cڡ * -__Ō -)) - -280  ( - ` - ( -__Ō -, (** -NULL -, 10); - -281 - } -} - -282 -__ex_le -  - -283 -__NTH - ( - $ - (cڡ * -__Ō -)) - -285  - ` - ( -__Ō -, (** -NULL -, 10); - -286 - } -} - -287 - g__END_NAMESPACE_STD - - -289 #i -defed - -__USE_MISC - || defed -__USE_ISOC99 - - -290 -__BEGIN_NAMESPACE_C99 - - -291 -__exnsi__ - -__ex_le -  - -292 -__NTH - ( - $l - (cڡ * -__Ō -)) - -294  - `l - ( -__Ō -, (** -NULL -, 10); - -295 - } -} - -296 - g__END_NAMESPACE_C99 - - -301 #i -defed - -__USE_SVID - || defed -__USE_XOPEN_EXTENDED - - -305 * - $l64a - ( -__n - -__THROW - -__wur -; - -308  - $a64l - (cڡ * -__s -) - -309 -__THROW - -__ibu_pu__ - - `__nnu - ((1) -__wur -; - -313 #i -defed - -__USE_SVID - || defed -__USE_XOPEN_EXTENDED - || defed -__USE_BSD - - -314  - ~ - -321  - $ndom - ( -__THROW -; - -324  - $dom - ( -__ed - -__THROW -; - -330 * - $e - ( -__ed -, * -__ebuf -, - -331 -size_t - -__ - -__THROW - - `__nnu - ((2)); - -335 * - $te - (* -__ebuf - -__THROW - - `__nnu - ((1)); - -338 #ifde -__USE_MISC - - -343  - sndom_da - - -345 -t32_t - * - -; - -346 -t32_t - * - -; - -347 -t32_t - * -e -; - -348  -nd_ty -; - -349  -nd_deg -; - -350  -nd_p -; - -351 -t32_t - * -d_r -; - -354  - $ndom_r - ( -ndom_da - * -__ri - -__buf -, - -355 -t32_t - * -__ri - -__su - -__THROW - - `__nnu - ((1, 2)); - -357  - $dom_r - ( -__ed -,  -ndom_da - * -__buf -) - -358 -__THROW - - `__nnu - ((2)); - -360  - $e_r - ( -__ed -, * -__ri - -__ebuf -, - -361 -size_t - -__ -, - -362  -ndom_da - * -__ri - -__buf -) - -363 -__THROW - - `__nnu - ((2, 4)); - -365  - $te_r - (* -__ri - -__ebuf -, - -366  -ndom_da - * -__ri - -__buf -) - -367 -__THROW - - `__nnu - ((1, 2)); - -372 -__BEGIN_NAMESPACE_STD - - -374  - $nd - ( -__THROW -; - -376  - $d - ( -__ed - -__THROW -; - -377 -__END_NAMESPACE_STD - - -379 #ifde -__USE_POSIX - - -381  - $nd_r - (* -__ed - -__THROW -; - -385 #i -defed - -__USE_SVID - || defed -__USE_XOPEN - - -389  - $dnd48 - ( -__THROW -; - -390  - $d48 - ( -__xsubi -[3] -__THROW - - `__nnu - ((1)); - -393  - $̪d48 - ( -__THROW -; - -394  - $Īd48 - ( -__xsubi -[3]) - -395 -__THROW - - `__nnu - ((1)); - -398  - $mnd48 - ( -__THROW -; - -399  - $jnd48 - ( -__xsubi -[3]) - -400 -__THROW - - `__nnu - ((1)); - -403  - $d48 - ( -__edv - -__THROW -; - -404 * - $ed48 - ( -__ed16v -[3]) - -405 -__THROW - - `__nnu - ((1)); - -406  - $lcg48 - ( -__m -[7] -__THROW - - `__nnu - ((1)); - -408 #ifde -__USE_MISC - - -412  - sdnd48_da - - -414  -__x -[3]; - -415  -__d_x -[3]; - -416  -__c -; - -417  -__ -; - -418 -__exnsi__ -  -__a -; - -423  - $dnd48_r - ( -dnd48_da - * -__ri - -__bufr -, - -424 * -__ri - -__su - -__THROW - - `__nnu - ((1, 2)); - -425  - $d48_r - ( -__xsubi -[3], - -426  -dnd48_da - * -__ri - -__bufr -, - -427 * -__ri - -__su - -__THROW - - `__nnu - ((1, 2)); - -430  - $̪d48_r - ( -dnd48_da - * -__ri - -__bufr -, - -431 * -__ri - -__su -) - -432 -__THROW - - `__nnu - ((1, 2)); - -433  - $Īd48_r - ( -__xsubi -[3], - -434  -dnd48_da - * -__ri - -__bufr -, - -435 * -__ri - -__su -) - -436 -__THROW - - `__nnu - ((1, 2)); - -439  - $mnd48_r - ( -dnd48_da - * -__ri - -__bufr -, - -440 * -__ri - -__su -) - -441 -__THROW - - `__nnu - ((1, 2)); - -442  - $jnd48_r - ( -__xsubi -[3], - -443  -dnd48_da - * -__ri - -__bufr -, - -444 * -__ri - -__su -) - -445 -__THROW - - `__nnu - ((1, 2)); - -448  - $d48_r - ( -__edv -,  -dnd48_da - * -__bufr -) - -449 -__THROW - - `__nnu - ((2)); - -451  - $ed48_r - ( -__ed16v -[3], - -452  -dnd48_da - * -__bufr - -__THROW - - `__nnu - ((1, 2)); - -454  - $lcg48_r - ( -__m -[7], - -455  -dnd48_da - * -__bufr -) - -456 -__THROW - - `__nnu - ((1, 2)); - -462 #ide -__mloc_d_oc_defed - - -463  - #__mloc_d_oc_defed - - - ) - -464 -__BEGIN_NAMESPACE_STD - - -466 * - $mloc - ( -size_t - -__size - -__THROW - -__ibu_mloc__ - -__wur -; - -468 * - $oc - ( -size_t - -__nmemb -, size_ -__size -) - -469 -__THROW - -__ibu_mloc__ - -__wur -; - -470 -__END_NAMESPACE_STD - - -473 #ide -__ed_mloc_d_oc - - -474 -__BEGIN_NAMESPACE_STD - - -480 * - $loc - (* -__r -, -size_t - -__size -) - -481 -__THROW - -__ibu_wn_unud_su__ -; - -483  - $ - (* -__r - -__THROW -; - -484 -__END_NAMESPACE_STD - - -486 #ifdef -__USE_MISC - - -488  - $c - (* -__r - -__THROW -; - -491 #i -defed - -__USE_GNU - || defed -__USE_BSD - || defed -__USE_MISC - - -492  - ~ - -495 #i( -defed - -__USE_XOPEN_EXTENDED - && !defed -__USE_XOPEN2K -) \ - -496 || -defed - -__USE_BSD - - -498 * - $vloc - ( -size_t - -__size - -__THROW - -__ibu_mloc__ - -__wur -; - -501 #ifde -__USE_XOPEN2K - - -503  - $posix_memign - (** -__memr -, -size_t - -__ignmt -, size_ -__size -) - -504 -__THROW - - `__nnu - ((1) -__wur -; - -507 #ifde -__USE_ISOC11 - - -509 * - $igd_loc - ( -size_t - -__ignmt -, size_ -__size -) - -510 -__THROW - -__ibu_mloc__ - - `__ibu_loc_size__ - ((2) -__wur -; - -513 -__BEGIN_NAMESPACE_STD - - -515  - $abt - ( -__THROW - - `__ibu__ - (( -__nܑu__ -)); - -519  - `ex - ((* -__func -() -__THROW - - `__nnu - ((1)); - -521 #i -defed - -__USE_ISOC11 - || defed -__USE_ISOCXX11 - - -523 #ifde -__lulus - - -524 "C++"  - `_quick_ex - ((* -__func -) ()) - -525 -__THROW - - `__asm - ("_quick_ex" - `__nnu - ((1)); - -527  - `_quick_ex - ((* -__func -() -__THROW - - `__nnu - ((1)); - -530 -__END_NAMESPACE_STD - - -532 #ifdef -__USE_MISC - - -535  - `_ex - ((* -__func -( -__us -, * -__g -), *__arg) - -536 -__THROW - - `__nnu - ((1)); - -539 -__BEGIN_NAMESPACE_STD - - -543  - $ex - ( -__us - -__THROW - - `__ibu__ - (( -__nܑu__ -)); - -545 #i -defed - -__USE_ISOC11 - || defed -__USE_ISOCXX11 - - -549  - $quick_ex - ( -__us - -__THROW - - `__ibu__ - (( -__nܑu__ -)); - -551 -__END_NAMESPACE_STD - - -553 #ifde -__USE_ISOC99 - - -554 -__BEGIN_NAMESPACE_C99 - - -557  - $_Ex - ( -__us - -__THROW - - `__ibu__ - (( -__nܑu__ -)); - -558 -__END_NAMESPACE_C99 - - -562 -__BEGIN_NAMESPACE_STD - - -564 * - $gv - (cڡ * -__me - -__THROW - - `__nnu - ((1) -__wur -; - -565 -__END_NAMESPACE_STD - - -567 #ifde -__USE_GNU - - -570 * - $cu_gv - (cڡ * -__me -) - -571 -__THROW - - `__nnu - ((1) -__wur -; - -574 #i -defed - -__USE_SVID - || defed -__USE_XOPEN - - -578  - $punv - (* -__rg - -__THROW - - `__nnu - ((1)); - -581 #i -defed - -__USE_BSD - || defed -__USE_XOPEN2K - - -584  - $nv - (cڡ * -__me -, cڡ * -__vue -,  -__a -) - -585 -__THROW - - `__nnu - ((2)); - -588  - $unnv - (cڡ * -__me - -__THROW - - `__nnu - ((1)); - -591 #ifdef -__USE_MISC - - -595  - $nv - ( -__THROW -; - -599 #i -defed - -__USE_MISC - \ - -600 || ( -defed - -__USE_XOPEN_EXTENDED - && !defed -__USE_XOPEN2K8 -) - -606 * - $mkmp - (* -__me - -__THROW - - `__nnu - ((1)); - -609 #i -defed - -__USE_MISC - || defed -__USE_XOPEN_EXTENDED - \ - -610 || -defed - -__USE_XOPEN2K8 - - -619 #ide -__USE_FILE_OFFSET64 - - -620  - $mkemp - (* -__me - - `__nnu - ((1) -__wur -; - -622 #ifde -__REDIRECT - - -623  - `__REDIRECT - ( -mkemp -, (* -__me -), -mkemp64 -) - -624 - `__nnu - ((1) -__wur -; - -626  - #mkemp - -mkemp64 - - - ) - -629 #ifde -__USE_LARGEFILE64 - - -630  - $mkemp64 - (* -__me - - `__nnu - ((1) -__wur -; - -634 #ifde -__USE_MISC - - -641 #ide -__USE_FILE_OFFSET64 - - -642  - $mkemps - (* -__me -,  -__suffixn - - `__nnu - ((1) -__wur -; - -644 #ifde -__REDIRECT - - -645  - `__REDIRECT - ( -mkemps -, (* -__me -,  -__suffixn -), - -646 -mkemps64 - - `__nnu - ((1) -__wur -; - -648  - #mkemps - -mkemps64 - - - ) - -651 #ifde -__USE_LARGEFILE64 - - -652  - $mkemps64 - (* -__me -,  -__suffixn -) - -653 - `__nnu - ((1) -__wur -; - -657 #i -defed - -__USE_BSD - || defed -__USE_XOPEN2K8 - - -663 * - $mkdmp - (* -__me - -__THROW - - `__nnu - ((1) -__wur -; - -666 #ifde -__USE_GNU - - -673 #ide -__USE_FILE_OFFSET64 - - -674  - $mkoemp - (* -__me -,  -__ags - - `__nnu - ((1) -__wur -; - -676 #ifde -__REDIRECT - - -677  - `__REDIRECT - ( -mkoemp -, (* -__me -,  -__ags -), -mkoemp64 -) - -678 - `__nnu - ((1) -__wur -; - -680  - #mkoemp - -mkoemp64 - - - ) - -683 #ifde -__USE_LARGEFILE64 - - -684  - $mkoemp64 - (* -__me -,  -__ags - - `__nnu - ((1) -__wur -; - -693 #ide -__USE_FILE_OFFSET64 - - -694  - $mkoemps - (* -__me -,  -__suffixn -,  -__ags -) - -695 - `__nnu - ((1) -__wur -; - -697 #ifde -__REDIRECT - - -698  - `__REDIRECT - ( -mkoemps -, (* -__me -,  -__suffixn -, - -699  -__ags -), -mkoemps64 -) - -700 - `__nnu - ((1) -__wur -; - -702  - #mkoemps - -mkoemps64 - - - ) - -705 #ifde -__USE_LARGEFILE64 - - -706  - $mkoemps64 - (* -__me -,  -__suffixn -,  -__ags -) - -707 - `__nnu - ((1) -__wur -; - -712 -__BEGIN_NAMESPACE_STD - - -717  - $syem - (cڡ * -__commd - -__wur -; - -718 -__END_NAMESPACE_STD - - -721 #ifdef -__USE_GNU - - -724 * - $nilize_fe_me - (cڡ * -__me -) - -725 -__THROW - - `__nnu - ((1) -__wur -; - -728 #i -defed - -__USE_BSD - || defed -__USE_XOPEN_EXTENDED - - -734 * - $th - (cڡ * -__ri - -__me -, - -735 * -__ri - -__sved - -__THROW - -__wur -; - -740 #ide -__COMPAR_FN_T - - -741  - #__COMPAR_FN_T - - - ) - -742 (* - t__comr__t -) (const *, const *); - -744 #ifdef -__USE_GNU - - -745  -__comr__t - - tcomris__t -; - -748 #ifde -__USE_GNU - - -749 (* - t__comr_d__t -) (const *, const *, *); - -752 -__BEGIN_NAMESPACE_STD - - -755 * - $bch - (cڡ * -__key -, cڡ * -__ba -, - -756 -size_t - -__nmemb -, size_ -__size -, -__comr__t - -__comr -) - -757 - `__nnu - ((1, 2, 5) -__wur -; - -759 #ifde -__USE_EXTERN_INLINES - - -760  - ~ - -765  - $qst - (* -__ba -, -size_t - -__nmemb -, size_ -__size -, - -766 -__comr__t - -__comr - - `__nnu - ((1, 4)); - -767 #ifde -__USE_GNU - - -768  - $qst_r - (* -__ba -, -size_t - -__nmemb -, size_ -__size -, - -769 -__comr_d__t - -__comr -, * -__g -) - -770 - `__nnu - ((1, 4)); - -775  - $abs - ( -__x - -__THROW - - `__ibu__ - (( -__cڡ__ -) -__wur -; - -776  - $bs - ( -__x - -__THROW - - `__ibu__ - (( -__cڡ__ -) -__wur -; - -777 -__END_NAMESPACE_STD - - -779 #ifde -__USE_ISOC99 - - -780 -__exnsi__ -  - $abs - ( -__x -) - -781 -__THROW - - `__ibu__ - (( -__cڡ__ -) -__wur -; - -785 -__BEGIN_NAMESPACE_STD - - -789 -div_t - - $div - ( -__num -,  -__dom -) - -790 -__THROW - - `__ibu__ - (( -__cڡ__ -) -__wur -; - -791 -ldiv_t - - $ldiv - ( -__num -,  -__dom -) - -792 -__THROW - - `__ibu__ - (( -__cڡ__ -) -__wur -; - -793 -__END_NAMESPACE_STD - - -795 #ifde -__USE_ISOC99 - - -796 -__BEGIN_NAMESPACE_C99 - - -797 -__exnsi__ - -div_t - - $div - ( -__num -, - -798  -__dom -) - -799 -__THROW - - `__ibu__ - (( -__cڡ__ -) -__wur -; - -800 -__END_NAMESPACE_C99 - - -804 #i( -defed - -__USE_XOPEN_EXTENDED - && !defed -__USE_XOPEN2K8 -) \ - -805 || -defed - -__USE_SVID - - -812 * - $ecvt - ( -__vue -,  -__ndig -, * -__ri - -__det -, - -813 * -__ri - -__sign - -__THROW - - `__nnu - ((3, 4) -__wur -; - -818 * - $fcvt - ( -__vue -,  -__ndig -, * -__ri - -__det -, - -819 * -__ri - -__sign - -__THROW - - `__nnu - ((3, 4) -__wur -; - -824 * - $gcvt - ( -__vue -,  -__ndig -, * -__buf -) - -825 -__THROW - - `__nnu - ((3) -__wur -; - -828 #ifde -__USE_MISC - - -830 * - $qecvt - ( -__vue -,  -__ndig -, - -831 * -__ri - -__det -, *__ri -__sign -) - -832 -__THROW - - `__nnu - ((3, 4) -__wur -; - -833 * - $qfcvt - ( -__vue -,  -__ndig -, - -834 * -__ri - -__det -, *__ri -__sign -) - -835 -__THROW - - `__nnu - ((3, 4) -__wur -; - -836 * - $qgcvt - ( -__vue -,  -__ndig -, * -__buf -) - -837 -__THROW - - `__nnu - ((3) -__wur -; - -842  - $ecvt_r - ( -__vue -,  -__ndig -, * -__ri - -__det -, - -843 * -__ri - -__sign -, *__ri -__buf -, - -844 -size_t - -__n - -__THROW - - `__nnu - ((3, 4, 5)); - -845  - $fcvt_r - ( -__vue -,  -__ndig -, * -__ri - -__det -, - -846 * -__ri - -__sign -, *__ri -__buf -, - -847 -size_t - -__n - -__THROW - - `__nnu - ((3, 4, 5)); - -849  - $qecvt_r - ( -__vue -,  -__ndig -, - -850 * -__ri - -__det -, *__ri -__sign -, - -851 * -__ri - -__buf -, -size_t - -__n -) - -852 -__THROW - - `__nnu - ((3, 4, 5)); - -853  - $qfcvt_r - ( -__vue -,  -__ndig -, - -854 * -__ri - -__det -, *__ri -__sign -, - -855 * -__ri - -__buf -, -size_t - -__n -) - -856 -__THROW - - `__nnu - ((3, 4, 5)); - -860 -__BEGIN_NAMESPACE_STD - - -863  - $mbn - (cڡ * -__s -, -size_t - -__n - -__THROW -; - -866  - $mbtowc - ( -wch_t - * -__ri - -__pwc -, - -867 cڡ * -__ri - -__s -, -size_t - -__n - -__THROW -; - -870  - $womb - (* -__s -, -wch_t - -__wch - -__THROW -; - -874 -size_t - - $mbowcs - ( -wch_t - * -__ri - -__pwcs -, - -875 cڡ * -__ri - -__s -, -size_t - -__n - -__THROW -; - -877 -size_t - - $wcombs - (* -__ri - -__s -, - -878 cڡ -wch_t - * -__ri - -__pwcs -, -size_t - -__n -) - -879 -__THROW -; - -880 -__END_NAMESPACE_STD - - -883 #ifde -__USE_SVID - - -888  - $mch - (cڡ * -__ڣ - -__THROW - - `__nnu - ((1) -__wur -; - -892 #i -defed - -__USE_XOPEN_EXTENDED - || defed -__USE_XOPEN2K8 - - -899  - $gsubt - (** -__ri - -__tip -, - -900 *cڡ * -__ri - -__toks -, - -901 ** -__ri - -__vu -) - -902 -__THROW - - `__nnu - ((1, 2, 3) -__wur -; - -906 #ifde -__USE_XOPEN - - -908  - $tkey - (cڡ * -__key - -__THROW - - `__nnu - ((1)); - -914 #ifde -__USE_XOPEN2KXSI - - -916  - $posix_ݒ - ( -__oag - -__wur -; - -919 #ifde -__USE_XOPEN - - -924  - $g - ( -__fd - -__THROW -; - -928  - $uock - ( -__fd - -__THROW -; - -933 * - $ame - ( -__fd - -__THROW - -__wur -; - -936 #ifde -__USE_GNU - - -940  - $ame_r - ( -__fd -, * -__buf -, -size_t - -__bu -) - -941 -__THROW - - `__nnu - ((2)); - -944  - `g - (); - -947 #ifde -__USE_BSD - - -951  - $gldavg - ( -__ldavg -[],  -__m -) - -952 -__THROW - - `__nnu - ((1)); - -955  - ~ - -958 #i -__USE_FORTIFY_LEVEL - > 0 && -defed - -__ftify_funi - - -959  - ~ - -961 #ifde -__LDBL_COMPAT - - -962  - ~ - -966 #unde -__ed_mloc_d_oc - - -968 -__END_DECLS - - - @/usr/include/string.h - -22 #idef -_STRING_H - - -23  - #_STRING_H - 1 - - ) - -25  - ~ - -27 - g__BEGIN_DECLS - - -30  - #__ed_size_t - - - ) - -31  - #__ed_NULL - - - ) - -32  - ~ - -39 #i -defed - -__lulus - && (__lulu>199711L || -__GNUC_PREREQ - (4, 4)) - -40  - #__CORRECT_ISO_CPP_STRING_H_PROTO - - - ) - -44 -__BEGIN_NAMESPACE_STD - - -46 * - $memy - (* -__ri - -__de -, cڡ *__ri -__c -, - -47 -size_t - -__n - -__THROW - - `__nnu - ((1, 2)); - -50 * - $memmove - (* -__de -, cڡ * -__c -, -size_t - -__n -) - -51 -__THROW - - `__nnu - ((1, 2)); - -52 -__END_NAMESPACE_STD - - -57 #i -defed - -__USE_SVID - || defed -__USE_BSD - || defed -__USE_XOPEN - - -58 * - $memcy - (* -__ri - -__de -, cڡ *__ri -__c -, - -59  -__c -, -size_t - -__n -) - -60 -__THROW - - `__nnu - ((1, 2)); - -64 -__BEGIN_NAMESPACE_STD - - -66 * - $memt - (* -__s -,  -__c -, -size_t - -__n - -__THROW - - `__nnu - ((1)); - -69  - $memcmp - (cڡ * -__s1 -, cڡ * -__s2 -, -size_t - -__n -) - -70 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -73 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -76 * - `memchr - (* -__s -,  -__c -, -size_t - -__n -) - -77 -__THROW - - `__asm - ("memchr" -__ibu_pu__ - - `__nnu - ((1)); - -78 cڡ * - `memchr - (cڡ * -__s -,  -__c -, -size_t - -__n -) - -79 -__THROW - - `__asm - ("memchr" -__ibu_pu__ - - `__nnu - ((1)); - -81 #ifde -__OPTIMIZE__ - - -82 -__ex_ways_le - * - -83 - `memchr - (* -__s -,  -__c -, -size_t - -__n - -__THROW - - -85  - `__but_memchr - ( -__s -, -__c -, -__n -); - -88 -__ex_ways_le - const * - -89 - `memchr - (cڡ * -__s -,  -__c -, -size_t - -__n - -__THROW - - -91  - `__but_memchr - ( -__s -, -__c -, -__n -); - -94 - } -} - -96 * - $memchr - (cڡ * -__s -,  -__c -, -size_t - -__n -) - -97 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -99 -__END_NAMESPACE_STD - - -101 #ifde -__USE_GNU - - -104 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -105 "C++" * - $wmemchr - (* -__s -,  -__c -) - -106 -__THROW - - `__asm - ("wmemchr" -__ibu_pu__ - - `__nnu - ((1)); - -107 "C++" cڡ * - $wmemchr - (cڡ * -__s -,  -__c -) - -108 -__THROW - - `__asm - ("wmemchr" -__ibu_pu__ - - `__nnu - ((1)); - -110 * - $wmemchr - (cڡ * -__s -,  -__c -) - -111 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -115 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -116 "C++" * - $memrchr - (* -__s -,  -__c -, -size_t - -__n -) - -117 -__THROW - - `__asm - ("memrchr" -__ibu_pu__ - - `__nnu - ((1)); - -118 "C++" cڡ * - $memrchr - (cڡ * -__s -,  -__c -, -size_t - -__n -) - -119 -__THROW - - `__asm - ("memrchr" -__ibu_pu__ - - `__nnu - ((1)); - -121 * - $memrchr - (cڡ * -__s -,  -__c -, -size_t - -__n -) - -122 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -127 -__BEGIN_NAMESPACE_STD - - -129 * - $ry - (* -__ri - -__de -, cڡ *__ri -__c -) - -130 -__THROW - - `__nnu - ((1, 2)); - -132 * - $y - (* -__ri - -__de -, - -133 cڡ * -__ri - -__c -, -size_t - -__n -) - -134 -__THROW - - `__nnu - ((1, 2)); - -137 * - $rt - (* -__ri - -__de -, cڡ *__ri -__c -) - -138 -__THROW - - `__nnu - ((1, 2)); - -140 * - $t - (* -__ri - -__de -, cڡ *__ri -__c -, - -141 -size_t - -__n - -__THROW - - `__nnu - ((1, 2)); - -144  - $rcmp - (cڡ * -__s1 -, cڡ * -__s2 -) - -145 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -147  - $cmp - (cڡ * -__s1 -, cڡ * -__s2 -, -size_t - -__n -) - -148 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -151  - $rcl - (cڡ * -__s1 -, cڡ * -__s2 -) - -152 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -154 -size_t - - $rxm - (* -__ri - -__de -, - -155 cڡ * -__ri - -__c -, -size_t - -__n -) - -156 -__THROW - - `__nnu - ((2)); - -157 -__END_NAMESPACE_STD - - -159 #ifde -__USE_XOPEN2K8 - - -163  - ~ - -166  - $rcl_l - (cڡ * -__s1 -, cڡ * -__s2 -, -__lo_t - -__l -) - -167 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2, 3)); - -169 -size_t - - $rxm_l - (* -__de -, cڡ * -__c -, -size_t - -__n -, - -170 -__lo_t - -__l - -__THROW - - `__nnu - ((2, 4)); - -173 #i -defed - -__USE_SVID - || defed -__USE_BSD - || defed -__USE_XOPEN_EXTENDED - \ - -174 || -defed - -__USE_XOPEN2K8 - - -176 * - $rdup - (cڡ * -__s -) - -177 -__THROW - -__ibu_mloc__ - - `__nnu - ((1)); - -183 #i -defed - -__USE_XOPEN2K8 - - -184 * - $dup - (cڡ * -__rg -, -size_t - -__n -) - -185 -__THROW - -__ibu_mloc__ - - `__nnu - ((1)); - -188 #i -defed - -__USE_GNU - && defed -__GNUC__ - - -190  - #rdu -( -s -) \ - -191 ( -__exnsi__ - \ - -193 cڡ * -__d - = ( -s -); \ - -194 -size_t - -__n - = - ` - ( -__d -) + 1; \ - -195 * -__w - = (* - `__but_lo - ( -__n -); \ - -196 (* - `memy - ( -__w -, -__d -, -__n -); \ - -197 - } -})) - - ) - -200  - #du -( -s -, -n -) \ - -201 ( -__exnsi__ - \ - -203 cڡ * -__d - = ( -s -); \ - -204 -size_t - -__n - = - `n - ( -__d -, ( -n -)); \ - -205 * -__w - = (* - `__but_lo - ( -__n - + 1); \ - -206 -__w -[ -__n -] = '\0'; \ - -207 (* - `memy - ( -__w -, -__d -, -__n -); \ - -208 })) - - ) - -211 - g__BEGIN_NAMESPACE_STD - - -213 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -216 * -rchr - (* -__s -,  -__c -) - -217 -__THROW - -__asm - ("rchr" -__ibu_pu__ - -__nnu - ((1)); - -218 cڡ * -rchr - (cڡ * -__s -,  -__c -) - -219 -__THROW - -__asm - ("rchr" -__ibu_pu__ - -__nnu - ((1)); - -221 #ifde -__OPTIMIZE__ - - -222 -__ex_ways_le - * - -223 -rchr - (* -__s -,  -__c - - g__THROW - - -225  -__but_rchr - ( -__s -, -__c -); - -228 -__ex_ways_le - const * - -229 -rchr - (cڡ * -__s -,  -__c - - g__THROW - - -231  -__but_rchr - ( -__s -, -__c -); - -236 * - $rchr - (cڡ * -__s -,  -__c -) - -237 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -240 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -243 * - `chr - (* -__s -,  -__c -) - -244 -__THROW - - `__asm - ("chr" -__ibu_pu__ - - `__nnu - ((1)); - -245 cڡ * - `chr - (cڡ * -__s -,  -__c -) - -246 -__THROW - - `__asm - ("chr" -__ibu_pu__ - - `__nnu - ((1)); - -248 #ifde -__OPTIMIZE__ - - -249 -__ex_ways_le - * - -250 - `chr - (* -__s -,  -__c - -__THROW - - -252  - `__but_chr - ( -__s -, -__c -); - -255 -__ex_ways_le - const * - -256 - `chr - (cڡ * -__s -,  -__c - -__THROW - - -258  - `__but_chr - ( -__s -, -__c -); - -261 - } -} - -263 * - $chr - (cڡ * -__s -,  -__c -) - -264 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -266 -__END_NAMESPACE_STD - - -268 #ifde -__USE_GNU - - -271 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -272 "C++" * - $rchul - (* -__s -,  -__c -) - -273 -__THROW - - `__asm - ("rchul" -__ibu_pu__ - - `__nnu - ((1)); - -274 "C++" cڡ * - $rchul - (cڡ * -__s -,  -__c -) - -275 -__THROW - - `__asm - ("rchul" -__ibu_pu__ - - `__nnu - ((1)); - -277 * - $rchul - (cڡ * -__s -,  -__c -) - -278 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -282 -__BEGIN_NAMESPACE_STD - - -285 -size_t - - $rcn - (cڡ * -__s -, cڡ * -__je -) - -286 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -289 -size_t - - $rn - (cڡ * -__s -, cڡ * -__ac -) - -290 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -292 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -295 * - `brk - (* -__s -, cڡ * -__ac -) - -296 -__THROW - - `__asm - ("brk" -__ibu_pu__ - - `__nnu - ((1, 2)); - -297 cڡ * - `brk - (cڡ * -__s -, cڡ * -__ac -) - -298 -__THROW - - `__asm - ("brk" -__ibu_pu__ - - `__nnu - ((1, 2)); - -300 #ifde -__OPTIMIZE__ - - -301 -__ex_ways_le - * - -302 - `brk - (* -__s -, cڡ * -__ac - -__THROW - - -304  - `__but_brk - ( -__s -, -__ac -); - -307 -__ex_ways_le - const * - -308 - `brk - (cڡ * -__s -, cڡ * -__ac - -__THROW - - -310  - `__but_brk - ( -__s -, -__ac -); - -313 - } -} - -315 * - $brk - (cڡ * -__s -, cڡ * -__ac -) - -316 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -319 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -322 * - `rr - (* -__hayack -, cڡ * -__ed -) - -323 -__THROW - - `__asm - ("rr" -__ibu_pu__ - - `__nnu - ((1, 2)); - -324 cڡ * - `rr - (cڡ * -__hayack -, cڡ * -__ed -) - -325 -__THROW - - `__asm - ("rr" -__ibu_pu__ - - `__nnu - ((1, 2)); - -327 #ifde -__OPTIMIZE__ - - -328 -__ex_ways_le - * - -329 - `rr - (* -__hayack -, cڡ * -__ed - -__THROW - - -331  - `__but_rr - ( -__hayack -, -__ed -); - -334 -__ex_ways_le - const * - -335 - `rr - (cڡ * -__hayack -, cڡ * -__ed - -__THROW - - -337  - `__but_rr - ( -__hayack -, -__ed -); - -340 - } -} - -342 * - $rr - (cڡ * -__hayack -, cڡ * -__ed -) - -343 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -348 * - $ok - (* -__ri - -__s -, cڡ *__ri -__dim -) - -349 -__THROW - - `__nnu - ((2)); - -350 -__END_NAMESPACE_STD - - -354 * - $__ok_r - (* -__ri - -__s -, - -355 cڡ * -__ri - -__dim -, - -356 ** -__ri - -__ve_r -) - -357 -__THROW - - `__nnu - ((2, 3)); - -358 #i -defed - -__USE_POSIX - || defed -__USE_MISC - - -359 * - $ok_r - (* -__ri - -__s -, cڡ *__ri -__dim -, - -360 ** -__ri - -__ve_r -) - -361 -__THROW - - `__nnu - ((2, 3)); - -364 #ifde -__USE_GNU - - -366 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -367 "C++" * - $rr - (* -__hayack -, cڡ * -__ed -) - -368 -__THROW - - `__asm - ("rr" -__ibu_pu__ - - `__nnu - ((1, 2)); - -369 "C++" cڡ * - $rr - (cڡ * -__hayack -, - -370 cڡ * -__ed -) - -371 -__THROW - - `__asm - ("rr" -__ibu_pu__ - - `__nnu - ((1, 2)); - -373 * - $rr - (cڡ * -__hayack -, cڡ * -__ed -) - -374 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -378 #ifde -__USE_GNU - - -382 * - $memmem - (cڡ * -__hayack -, -size_t - -__hayackn -, - -383 cڡ * -__ed -, -size_t - -__edn -) - -384 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 3)); - -388 * - $__mempy - (* -__ri - -__de -, - -389 cڡ * -__ri - -__c -, -size_t - -__n -) - -390 -__THROW - - `__nnu - ((1, 2)); - -391 * - $mempy - (* -__ri - -__de -, - -392 cڡ * -__ri - -__c -, -size_t - -__n -) - -393 -__THROW - - `__nnu - ((1, 2)); - -397 -__BEGIN_NAMESPACE_STD - - -399 -size_t - - $ - (cڡ * -__s -) - -400 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -401 -__END_NAMESPACE_STD - - -403 #ifdef -__USE_XOPEN2K8 - - -406 -size_t - - $n - (cڡ * -__rg -, -size_t - -__maxn -) - -407 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -411 -__BEGIN_NAMESPACE_STD - - -413 * - $ - ( -__um - -__THROW -; - -414 -__END_NAMESPACE_STD - - -415 #i -defed - -__USE_XOPEN2K - || defed -__USE_MISC - - -423 #i -defed - -__USE_XOPEN2K - && !defed -__USE_GNU - - -426 #ifde -__REDIRECT_NTH - - -427  - `__REDIRECT_NTH - ( -_r -, - -428 ( -__um -, * -__buf -, -size_t - -__bu -), - -429 -__xpg__r - - `__nnu - ((2)); - -431  - $__xpg__r - ( -__um -, * -__buf -, -size_t - -__bu -) - -432 -__THROW - - `__nnu - ((2)); - -433  - #_r - -__xpg__r - - - ) - -438 * - $_r - ( -__um -, * -__buf -, -size_t - -__bu -) - -439 -__THROW - - `__nnu - ((2) -__wur -; - -443 #ifde -__USE_XOPEN2K8 - - -445 * - $_l - ( -__um -, -__lo_t - -__l - -__THROW -; - -451  - $__bzo - (* -__s -, -size_t - -__n - -__THROW - - `__nnu - ((1)); - -453 #ifde -__USE_BSD - - -455  - $bcy - (cڡ * -__c -, * -__de -, -size_t - -__n -) - -456 -__THROW - - `__nnu - ((1, 2)); - -459  - $bzo - (* -__s -, -size_t - -__n - -__THROW - - `__nnu - ((1)); - -462  - $bcmp - (cڡ * -__s1 -, cڡ * -__s2 -, -size_t - -__n -) - -463 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -466 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -469 * - `dex - (* -__s -,  -__c -) - -470 -__THROW - - `__asm - ("dex" -__ibu_pu__ - - `__nnu - ((1)); - -471 cڡ * - `dex - (cڡ * -__s -,  -__c -) - -472 -__THROW - - `__asm - ("dex" -__ibu_pu__ - - `__nnu - ((1)); - -474 #i -defed - -__OPTIMIZE__ - && !defed -__CORRECT_ISO_CPP_STRINGS_H_PROTO - - -475 -__ex_ways_le - * - -476 - `dex - (* -__s -,  -__c - -__THROW - - -478  - `__but_dex - ( -__s -, -__c -); - -481 -__ex_ways_le - const * - -482 - `dex - (cڡ * -__s -,  -__c - -__THROW - - -484  - `__but_dex - ( -__s -, -__c -); - -487 - } -} - -489 * - $dex - (cڡ * -__s -,  -__c -) - -490 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -494 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -497 * - `rdex - (* -__s -,  -__c -) - -498 -__THROW - - `__asm - ("rdex" -__ibu_pu__ - - `__nnu - ((1)); - -499 cڡ * - `rdex - (cڡ * -__s -,  -__c -) - -500 -__THROW - - `__asm - ("rdex" -__ibu_pu__ - - `__nnu - ((1)); - -502 #i -defed - -__OPTIMIZE__ - && !defed -__CORRECT_ISO_CPP_STRINGS_H_PROTO - - -503 -__ex_ways_le - * - -504 - `rdex - (* -__s -,  -__c - -__THROW - - -506  - `__but_rdex - ( -__s -, -__c -); - -509 -__ex_ways_le - const * - -510 - `rdex - (cڡ * -__s -,  -__c - -__THROW - - -512  - `__but_rdex - ( -__s -, -__c -); - -515 - } -} - -517 * - $rdex - (cڡ * -__s -,  -__c -) - -518 -__THROW - -__ibu_pu__ - - `__nnu - ((1)); - -523  - $ffs - ( -__i - -__THROW - - `__ibu__ - (( -__cڡ__ -)); - -527 #ifdef -__USE_GNU - - -528  - $ff - ( -__l - -__THROW - - `__ibu__ - (( -__cڡ__ -)); - -529 -__exnsi__ -  - $ffl - ( -__ -) - -530 -__THROW - - `__ibu__ - (( -__cڡ__ -)); - -534  - $rcmp - (cڡ * -__s1 -, cڡ * -__s2 -) - -535 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -538  - $cmp - (cڡ * -__s1 -, cڡ * -__s2 -, -size_t - -__n -) - -539 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -542 #ifdef -__USE_GNU - - -545  - $rcmp_l - (cڡ * -__s1 -, cڡ * -__s2 -, - -546 -__lo_t - -__loc -) - -547 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2, 3)); - -549  - $cmp_l - (cڡ * -__s1 -, cڡ * -__s2 -, - -550 -size_t - -__n -, -__lo_t - -__loc -) - -551 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2, 4)); - -554 #ifdef -__USE_BSD - - -557 * - $rp - (** -__ri - -__rgp -, - -558 cڡ * -__ri - -__dim -) - -559 -__THROW - - `__nnu - ((1, 2)); - -562 #ifdef -__USE_XOPEN2K8 - - -564 * - $rsigl - ( -__sig - -__THROW -; - -567 * - $__py - (* -__ri - -__de -, cڡ *__ri -__c -) - -568 -__THROW - - `__nnu - ((1, 2)); - -569 * - $py - (* -__ri - -__de -, cڡ *__ri -__c -) - -570 -__THROW - - `__nnu - ((1, 2)); - -574 * - $__y - (* -__ri - -__de -, - -575 cڡ * -__ri - -__c -, -size_t - -__n -) - -576 -__THROW - - `__nnu - ((1, 2)); - -577 * - $y - (* -__ri - -__de -, - -578 cڡ * -__ri - -__c -, -size_t - -__n -) - -579 -__THROW - - `__nnu - ((1, 2)); - -582 #ifdef -__USE_GNU - - -584  - $rvscmp - (cڡ * -__s1 -, cڡ * -__s2 -) - -585 -__THROW - -__ibu_pu__ - - `__nnu - ((1, 2)); - -588 * - $ry - (* -__rg - -__THROW - - `__nnu - ((1)); - -591 * - $memob - (* -__s -, -size_t - -__n - -__THROW - - `__nnu - ((1)); - -593 #ide -bame - - -598 #ifde -__CORRECT_ISO_CPP_STRING_H_PROTO - - -599 "C++" * - $bame - (* -__fame -) - -600 -__THROW - - `__asm - ("bame" - `__nnu - ((1)); - -601 "C++" cڡ * - $bame - (cڡ * -__fame -) - -602 -__THROW - - `__asm - ("bame" - `__nnu - ((1)); - -604 * - $bame - (cڡ * -__fame - -__THROW - - `__nnu - ((1)); - -610 #i -defed - -__GNUC__ - && __GNUC__ >= 2 - -611 #i -defed - -__OPTIMIZE__ - && !defed -__OPTIMIZE_SIZE__ - \ - -612 && ! -defed - -__NO_INLINE__ - && !defed -__lulus - - -632  - ~ - -635  - ~ - -638 #i -__USE_FORTIFY_LEVEL - > 0 && -defed - -__ftify_funi - - -640  - ~ - -644 -__END_DECLS - - - @/usr/include/alloca.h - -18 #idef -_ALLOCA_H - - -19  - #_ALLOCA_H - 1 - - ) - -21  - ~ - -23  - #__ed_size_t - - - ) - -24  - ~ - -26 - g__BEGIN_DECLS - - -29 #unde -lo - - -32 * - $lo - ( -size_t - -__size - -__THROW -; - -34 #ifdef -__GNUC__ - - -35  - #lo -( -size - - `__but_lo - (size) - - ) - -38 -__END_DECLS - - - @/usr/include/endian.h - -18 #idef -_ENDIAN_H - - -19  - #_ENDIAN_H - 1 - - ) - -21  - ~ - -31  - #__LITTLE_ENDIAN - 1234 - - ) - -32  - #__BIG_ENDIAN - 4321 - - ) - -33  - #__PDP_ENDIAN - 3412 - - ) - -36  - ~ - -40 #ide -__FLOAT_WORD_ORDER - - -41  - #__FLOAT_WORD_ORDER - -__BYTE_ORDER - - - ) - -44 #ifdef -__USE_BSD - - -45  - #LITTLE_ENDIAN - -__LITTLE_ENDIAN - - - ) - -46  - #BIG_ENDIAN - -__BIG_ENDIAN - - - ) - -47  - #PDP_ENDIAN - -__PDP_ENDIAN - - - ) - -48  - #BYTE_ORDER - -__BYTE_ORDER - - - ) - -51 #i -__BYTE_ORDER - = -__LITTLE_ENDIAN - - -52  - #__LONG_LONG_PAIR -( -HI -, -LO -LO, - ) -HI - -53 #i -__BYTE_ORDER - = -__BIG_ENDIAN - - -54  - #__LONG_LONG_PAIR -( -HI -, -LO -HI, - ) -LO - -58 #i -defed - -__USE_BSD - && !defed -__ASSEMBLER__ - - -60  - ~ - -62 #i -__BYTE_ORDER - = -__LITTLE_ENDIAN - - -63  - #htobe16 -( -x - - `__bsw_16 - (x) - - ) - -64  - #hte16 -( -x -(x) - - ) - -65  - #be16toh -( -x - - `__bsw_16 - (x) - - ) - -66  - #16toh -( -x -(x) - - ) - -68  - #htobe32 -( -x - - `__bsw_32 - (x) - - ) - -69  - #hte32 -( -x -(x) - - ) - -70  - #be32toh -( -x - - `__bsw_32 - (x) - - ) - -71  - #32toh -( -x -(x) - - ) - -73  - #htobe64 -( -x - - `__bsw_64 - (x) - - ) - -74  - #hte64 -( -x -(x) - - ) - -75  - #be64toh -( -x - - `__bsw_64 - (x) - - ) - -76  - #64toh -( -x -(x) - - ) - -79  - #htobe16 -( -x -(x) - - ) - -80  - #hte16 -( -x - - `__bsw_16 - (x) - - ) - -81  - #be16toh -( -x -(x) - - ) - -82  - #16toh -( -x - - `__bsw_16 - (x) - - ) - -84  - #htobe32 -( -x -(x) - - ) - -85  - #hte32 -( -x - - `__bsw_32 - (x) - - ) - -86  - #be32toh -( -x -(x) - - ) - -87  - #32toh -( -x - - `__bsw_32 - (x) - - ) - -89  - #htobe64 -( -x -(x) - - ) - -90  - #hte64 -( -x - - `__bsw_64 - (x) - - ) - -91  - #be64toh -( -x -(x) - - ) - -92  - #64toh -( -x - - `__bsw_64 - (x) - - ) - - @/usr/include/features.h - -18 #idef -_FEATURES_H - - -19  - #_FEATURES_H - 1 - - ) - -101 #unde -__USE_ISOC11 - - -102 #unde -__USE_ISOC99 - - -103 #unde -__USE_ISOC95 - - -104 #unde -__USE_ISOCXX11 - - -105 #unde -__USE_POSIX - - -106 #unde -__USE_POSIX2 - - -107 #unde -__USE_POSIX199309 - - -108 #unde -__USE_POSIX199506 - - -109 #unde -__USE_XOPEN - - -110 #unde -__USE_XOPEN_EXTENDED - - -111 #unde -__USE_UNIX98 - - -112 #unde -__USE_XOPEN2K - - -113 #unde -__USE_XOPEN2KXSI - - -114 #unde -__USE_XOPEN2K8 - - -115 #unde -__USE_XOPEN2K8XSI - - -116 #unde -__USE_LARGEFILE - - -117 #unde -__USE_LARGEFILE64 - - -118 #unde -__USE_FILE_OFFSET64 - - -119 #unde -__USE_BSD - - -120 #unde -__USE_SVID - - -121 #unde -__USE_MISC - - -122 #unde -__USE_ATFILE - - -123 #unde -__USE_GNU - - -124 #unde -__USE_REENTRANT - - -125 #unde -__USE_FORTIFY_LEVEL - - -126 #unde -__KERNEL_STRICT_NAMES - - -130 #ide -_LOOSE_KERNEL_NAMES - - -131  - #__KERNEL_STRICT_NAMES - - - ) - -141 #i -defed - -__GNUC__ - && defed -__GNUC_MINOR__ - - -142  - #__GNUC_PREREQ -( -maj -, -m -) \ - -143 (( -__GNUC__ - << 16+ -__GNUC_MINOR__ - >(( -maj -<< 16+ ( -m -)) - - ) - -145  - #__GNUC_PREREQ -( -maj -, -m -0 - - ) - -150 #ifde -_GNU_SOURCE - - -151 #unde -_ISOC95_SOURCE - - -152  - #_ISOC95_SOURCE - 1 - - ) - -153 #unde -_ISOC99_SOURCE - - -154  - #_ISOC99_SOURCE - 1 - - ) - -155 #unde -_ISOC11_SOURCE - - -156  - #_ISOC11_SOURCE - 1 - - ) - -157 #unde -_POSIX_SOURCE - - -158  - #_POSIX_SOURCE - 1 - - ) - -159 #unde -_POSIX_C_SOURCE - - -160  - #_POSIX_C_SOURCE - 200809L - - ) - -161 #unde -_XOPEN_SOURCE - - -162  - #_XOPEN_SOURCE - 700 - - ) - -163 #unde -_XOPEN_SOURCE_EXTENDED - - -164  - #_XOPEN_SOURCE_EXTENDED - 1 - - ) - -165 #unde -_LARGEFILE64_SOURCE - - -166  - #_LARGEFILE64_SOURCE - 1 - - ) - -167 #unde -_DEFAULT_SOURCE - - -168  - #_DEFAULT_SOURCE - 1 - - ) - -169 #unde -_BSD_SOURCE - - -170  - #_BSD_SOURCE - 1 - - ) - -171 #unde -_SVID_SOURCE - - -172  - #_SVID_SOURCE - 1 - - ) - -173 #unde -_ATFILE_SOURCE - - -174  - #_ATFILE_SOURCE - 1 - - ) - -179 #i( -defed - -_DEFAULT_SOURCE - \ - -180 || (! -defed - - g__STRICT_ANSI__ - \ - -181 && ! -defed - - g_ISOC99_SOURCE - \ - -182 && ! -defed - - g_POSIX_SOURCE - && !defed - g_POSIX_C_SOURCE - \ - -183 && ! -defed - - g_XOPEN_SOURCE - \ - -184 && ! -defed - - g_BSD_SOURCE - && !defed - g_SVID_SOURCE -)) - -185 #unde -_DEFAULT_SOURCE - - -186  - #_DEFAULT_SOURCE - 1 - - ) - -187 #unde -_BSD_SOURCE - - -188  - #_BSD_SOURCE - 1 - - ) - -189 #unde -_SVID_SOURCE - - -190  - #_SVID_SOURCE - 1 - - ) - -194 #i( -defed - -_ISOC11_SOURCE - \ - -195 || ( -defed - - g__STDC_VERSION__ - && __STDC_VERSION__ >= 201112L)) - -196  - #__USE_ISOC11 - 1 - - ) - -200 #i( -defed - -_ISOC99_SOURCE - || defed -_ISOC11_SOURCE - \ - -201 || ( -defed - -__STDC_VERSION__ - && __STDC_VERSION__ >= 199901L)) - -202  - #__USE_ISOC99 - 1 - - ) - -206 #i( -defed - -_ISOC99_SOURCE - || defed -_ISOC11_SOURCE - \ - -207 || ( -defed - -__STDC_VERSION__ - && __STDC_VERSION__ >= 199409L)) - -208  - #__USE_ISOC95 - 1 - - ) - -215 #i(( -defed - -__lulus - && __cplusplus >= 201103L) \ - -216 || -defed - -__GXX_EXPERIMENTAL_CXX0X__ -) - -217  - #__USE_ISOCXX11 - 1 - - ) - -223 #ifde -_DEFAULT_SOURCE - - -224 #i! -defed - -_POSIX_SOURCE - && !defed -_POSIX_C_SOURCE - - -225  - #__USE_POSIX_IMPLICITLY - 1 - - ) - -227 #unde -_POSIX_SOURCE - - -228  - #_POSIX_SOURCE - 1 - - ) - -229 #unde -_POSIX_C_SOURCE - - -230  - #_POSIX_C_SOURCE - 200809L - - ) - -232 #i((! -defed - -__STRICT_ANSI__ - || ( -_XOPEN_SOURCE - - 0) >= 500) && \ - -233 ! -defed - -_POSIX_SOURCE - && !defed -_POSIX_C_SOURCE -) - -234  - #_POSIX_SOURCE - 1 - - ) - -235 #i -defed - -_XOPEN_SOURCE - && (_XOPEN_SOURCE - 0) < 500 - -236  - #_POSIX_C_SOURCE - 2 - - ) - -237 #i -defed - -_XOPEN_SOURCE - && (_XOPEN_SOURCE - 0) < 600 - -238  - #_POSIX_C_SOURCE - 199506L - - ) - -239 #i -defed - -_XOPEN_SOURCE - && (_XOPEN_SOURCE - 0) < 700 - -240  - #_POSIX_C_SOURCE - 200112L - - ) - -242  - #_POSIX_C_SOURCE - 200809L - - ) - -244  - #__USE_POSIX_IMPLICITLY - 1 - - ) - -247 #i -defed - -_POSIX_SOURCE - || -_POSIX_C_SOURCE - >1 || defed -_XOPEN_SOURCE - - -248  - #__USE_POSIX - 1 - - ) - -251 #i -defed - -_POSIX_C_SOURCE - && _POSIX_C_SOURCE >2 || defed -_XOPEN_SOURCE - - -252  - #__USE_POSIX2 - 1 - - ) - -255 #i( -_POSIX_C_SOURCE - - 0) >= 199309L - -256  - #__USE_POSIX199309 - 1 - - ) - -259 #i( -_POSIX_C_SOURCE - - 0) >= 199506L - -260  - #__USE_POSIX199506 - 1 - - ) - -263 #i( -_POSIX_C_SOURCE - - 0) >= 200112L - -264  - #__USE_XOPEN2K - 1 - - ) - -265 #unde -__USE_ISOC95 - - -266  - #__USE_ISOC95 - 1 - - ) - -267 #unde -__USE_ISOC99 - - -268  - #__USE_ISOC99 - 1 - - ) - -271 #i( -_POSIX_C_SOURCE - - 0) >= 200809L - -272  - #__USE_XOPEN2K8 - 1 - - ) - -273 #unde -_ATFILE_SOURCE - - -274  - #_ATFILE_SOURCE - 1 - - ) - -277 #ifdef -_XOPEN_SOURCE - - -278  - #__USE_XOPEN - 1 - - ) - -279 #i( -_XOPEN_SOURCE - - 0) >= 500 - -280  - #__USE_XOPEN_EXTENDED - 1 - - ) - -281  - #__USE_UNIX98 - 1 - - ) - -282 #unde -_LARGEFILE_SOURCE - - -283  - #_LARGEFILE_SOURCE - 1 - - ) - -284 #i( -_XOPEN_SOURCE - - 0) >= 600 - -285 #i( -_XOPEN_SOURCE - - 0) >= 700 - -286  - #__USE_XOPEN2K8 - 1 - - ) - -287  - #__USE_XOPEN2K8XSI - 1 - - ) - -289  - #__USE_XOPEN2K - 1 - - ) - -290  - #__USE_XOPEN2KXSI - 1 - - ) - -291 #unde -__USE_ISOC95 - - -292  - #__USE_ISOC95 - 1 - - ) - -293 #unde -__USE_ISOC99 - - -294  - #__USE_ISOC99 - 1 - - ) - -297 #ifde -_XOPEN_SOURCE_EXTENDED - - -298  - #__USE_XOPEN_EXTENDED - 1 - - ) - -303 #ifde -_LARGEFILE_SOURCE - - -304  - #__USE_LARGEFILE - 1 - - ) - -307 #ifde -_LARGEFILE64_SOURCE - - -308  - #__USE_LARGEFILE64 - 1 - - ) - -311 #i -defed - -_FILE_OFFSET_BITS - && _FILE_OFFSET_BITS == 64 - -312  - #__USE_FILE_OFFSET64 - 1 - - ) - -315 #i -defed - -_BSD_SOURCE - || defed -_SVID_SOURCE - - -316  - #__USE_MISC - 1 - - ) - -319 #ifdef -_BSD_SOURCE - - -320  - #__USE_BSD - 1 - - ) - -323 #ifdef -_SVID_SOURCE - - -324  - #__USE_SVID - 1 - - ) - -327 #ifdef -_ATFILE_SOURCE - - -328  - #__USE_ATFILE - 1 - - ) - -331 #ifdef -_GNU_SOURCE - - -332  - #__USE_GNU - 1 - - ) - -335 #i -defed - -_REENTRANT - || defed -_THREAD_SAFE - - -336  - #__USE_REENTRANT - 1 - - ) - -339 #i -defed - -_FORTIFY_SOURCE - && _FORTIFY_SOURCE > 0 \ - -340 && -__GNUC_PREREQ - (4, 1&& -defed - - g__OPTIMIZE__ - && __OPTIMIZE__ > 0 - -341 #i -_FORTIFY_SOURCE - > 1 - -342  - #__USE_FORTIFY_LEVEL - 2 - - ) - -344  - #__USE_FORTIFY_LEVEL - 1 - - ) - -347  - #__USE_FORTIFY_LEVEL - 0 - - ) - -352  - ~ - -360 #unde -__GNU_LIBRARY__ - - -361  - #__GNU_LIBRARY__ - 6 - - ) - -365  - #__GLIBC__ - 2 - - ) - -366  - #__GLIBC_MINOR__ - 19 - - ) - -368  - #__GLIBC_PREREQ -( -maj -, -m -) \ - -369 (( -__GLIBC__ - << 16+ -__GLIBC_MINOR__ - >(( -maj -<< 16+ ( -m -)) - - ) - -372 #ide -__ASSEMBLER__ - - -373 #ide -_SYS_CDEFS_H - - -374  - ~ - -379 #i -defed - -__USE_FILE_OFFSET64 - && !defed -__REDIRECT - - -380  - #__USE_LARGEFILE - 1 - - ) - -381  - #__USE_LARGEFILE64 - 1 - - ) - -387 #i -__GNUC_PREREQ - (2, 7&& -defed - -__OPTIMIZE__ - \ - -388 && ! -defed - - g__OPTIMIZE_SIZE__ - && !defed - g__NO_INLINE__ - \ - -389 && -defed - - g__ex_le - - -390  - #__USE_EXTERN_INLINES - 1 - - ) - -398  - ~ - - @/usr/include/getopt.h - -19 #ide -_GETOPT_H - - -21 #ide -__ed_gt - - -22  - #_GETOPT_H - 1 - - ) - -32 #i! -defed - -__GNU_LIBRARY__ - - -33  - ~ - -36 #ide -__THROW - - -37 #ide -__GNUC_PREREQ - - -38  - #__GNUC_PREREQ -( -maj -, -m -(0) - - ) - -40 #i -defed - -__lulus - && -__GNUC_PREREQ - (2,8) - -41  - #__THROW - - `throw - () - - ) - -43  - #__THROW - - - ) - -47 #ifdef -__lulus - - -57 * -ݏrg -; - -71  -td -; - -76  -݋ -; - -80  -tt -; - -82 #ide -__ed_gt - - -104  - sti - - -106 cڡ * - gme -; - -109  - ghas_g -; - -110 * - gag -; - -111  - gv -; - -116  - #no_gumt - 0 - - ) - -117  - #qued_gumt - 1 - - ) - -118  - #tiڮ_gumt - 2 - - ) - -146 #ifde -__GNU_LIBRARY__ - - -150  -gt - ( -___gc -, *cڡ * -___gv -, cڡ * -__shtts -) - -151 -__THROW -; - -153 #i -defed - -__ed_gt - && defed -__USE_POSIX2 - \ - -154 && ! -defed - - g__USE_POSIX_IMPLICITLY - && !defed - g__USE_GNU - - -158 #ifde -__REDIRECT - - -159  -__REDIRECT_NTH - ( -gt -, ( -___gc -, *cڡ * -___gv -, - -160 cڡ * -__shtts -), - -161 -__posix_gt -); - -163  -__posix_gt - ( -___gc -, *cڡ * -___gv -, - -164 cڡ * -__shtts - -__THROW -; - -165  - #gt - -__posix_gt - - - ) - -169  -gt - (); - -172 #ide -__ed_gt - - -173  -gt_lg - ( -___gc -, *cڡ * -___gv -, - -174 cڡ * -__shtts -, - -175 cڡ  -ti - * -__lgts -, * -__lgd -) - -176 -__THROW -; - -177  -gt_lg_ly - ( -___gc -, *cڡ * -___gv -, - -178 cڡ * -__shtts -, - -179 cڡ  -ti - * -__lgts -, * -__lgd -) - -180 -__THROW -; - -184 #ifdef -__lulus - - -189 #unde -__ed_gt - - - @/usr/include/libio.h - -28 #ide -_IO_STDIO_H - - -29  - #_IO_STDIO_H - - - ) - -31  - ~<_G_cfig.h -> - -33  - #_IO_os_t - -_G_os_t - - - ) - -34  - #_IO_os64_t - -_G_os64_t - - - ) - -35  - #_IO_size_t - -size_t - - - ) - -36  - #_IO_ssize_t - -__ssize_t - - - ) - -37  - #_IO_off_t - -__off_t - - - ) - -38  - #_IO_off64_t - -__off64_t - - - ) - -39  - #_IO_pid_t - -__pid_t - - - ) - -40  - #_IO_uid_t - -__uid_t - - - ) - -41  - #_IO_icv_t - -_G_icv_t - - - ) - -42  - #_IO_HAVE_ST_BLKSIZE - -_G_HAVE_ST_BLKSIZE - - - ) - -43  - #_IO_BUFSIZ - -_G_BUFSIZ - - - ) - -44  - #_IO_va_li - -_G_va_li - - - ) - -45  - #_IO_wt_t - -wt_t - - - ) - -48  - #__ed___va_li - - - ) - -49  - ~ - -50 #ifde -__GNUC_VA_LIST - - -51 #unde -_IO_va_li - - -52  - #_IO_va_li - -__gnuc_va_li - - - ) - -55 #ide -__P - - -56  - ~ - -59  - #_IO_UNIFIED_JUMPTABLES - 1 - - ) - -61 #ide -EOF - - -62  - #EOF - (-1) - - ) - -64 #ide -NULL - - -65 #i -defed - -__GNUG__ - && \ - -66 ( - g__GNUC__ - > 2 || (__GNUC__ =2 && -__GNUC_MINOR__ - >= 8)) - -67  - #NULL - ( -__nu -) - - ) - -69 #i! -defed -( -__lulus -) - -70  - #NULL - ((*)0) - - ) - -72  - #NULL - (0) - - ) - -77  - #_IOS_INPUT - 1 - - ) - -78  - #_IOS_OUTPUT - 2 - - ) - -79  - #_IOS_ATEND - 4 - - ) - -80  - #_IOS_APPEND - 8 - - ) - -81  - #_IOS_TRUNC - 16 - - ) - -82  - #_IOS_NOCREATE - 32 - - ) - -83  - #_IOS_NOREPLACE - 64 - - ) - -84  - #_IOS_BIN - 128 - - ) - -92  - #_IO_MAGIC - 0xFBAD0000 - - ) - -93  - #_OLD_STDIO_MAGIC - 0xFABC0000 - - ) - -94  - #_IO_MAGIC_MASK - 0xFFFF0000 - - ) - -95  - #_IO_USER_BUF - 1 - - ) - -96  - #_IO_UNBUFFERED - 2 - - ) - -97  - #_IO_NO_READS - 4 - - ) - -98  - #_IO_NO_WRITES - 8 - - ) - -99  - #_IO_EOF_SEEN - 0x10 - - ) - -100  - #_IO_ERR_SEEN - 0x20 - - ) - -101  - #_IO_DELETE_DONT_CLOSE - 0x40 - - ) - -102  - #_IO_LINKED - 0x80 - - ) - -103  - #_IO_IN_BACKUP - 0x100 - - ) - -104  - #_IO_LINE_BUF - 0x200 - - ) - -105  - #_IO_TIED_PUT_GET - 0x400 - - ) - -106  - #_IO_CURRENTLY_PUTTING - 0x800 - - ) - -107  - #_IO_IS_APPENDING - 0x1000 - - ) - -108  - #_IO_IS_FILEBUF - 0x2000 - - ) - -109  - #_IO_BAD_SEEN - 0x4000 - - ) - -110  - #_IO_USER_LOCK - 0x8000 - - ) - -112  - #_IO_FLAGS2_MMAP - 1 - - ) - -113  - #_IO_FLAGS2_NOTCANCEL - 2 - - ) - -114 #ifde -_LIBC - - -115  - #_IO_FLAGS2_FORTIFY - 4 - - ) - -117  - #_IO_FLAGS2_USER_WBUF - 8 - - ) - -118 #ifde -_LIBC - - -119  - #_IO_FLAGS2_SCANF_STD - 16 - - ) - -120  - #_IO_FLAGS2_NOCLOSE - 32 - - ) - -121  - #_IO_FLAGS2_CLOEXEC - 64 - - ) - -125  - #_IO_SKIPWS - 01 - - ) - -126  - #_IO_LEFT - 02 - - ) - -127  - #_IO_RIGHT - 04 - - ) - -128  - #_IO_INTERNAL - 010 - - ) - -129  - #_IO_DEC - 020 - - ) - -130  - #_IO_OCT - 040 - - ) - -131  - #_IO_HEX - 0100 - - ) - -132  - #_IO_SHOWBASE - 0200 - - ) - -133  - #_IO_SHOWPOINT - 0400 - - ) - -134  - #_IO_UPPERCASE - 01000 - - ) - -135  - #_IO_SHOWPOS - 02000 - - ) - -136  - #_IO_SCIENTIFIC - 04000 - - ) - -137  - #_IO_FIXED - 010000 - - ) - -138  - #_IO_UNITBUF - 020000 - - ) - -139  - #_IO_STDIO - 040000 - - ) - -140  - #_IO_DONT_CLOSE - 0100000 - - ) - -141  - #_IO_BOOLALPHA - 0200000 - - ) - -144  -_IO_jump_t -;  - g_IO_FILE -; - -147 #ifde -_IO_MTSAFE_IO - - -148 #i -defed - -__GLIBC__ - && __GLIBC__ >= 2 - -149  - ~ - -154  - t_IO_lock_t -; - -160  - s_IO_mk - { - -161  -_IO_mk - * - m_xt -; - -162  -_IO_FILE - * - m_sbuf -; - -166  - m_pos -; - -168  -t_ampos -( -ampos - - -{ - m_os - = sp; } - -169  -t_offt -( -offt -{ - m_pos - = offt; - m_os - = ( -ampos -)(-2); } - -170 - mpublic -: - -171 -ammk -( -ambuf - * -sb -); - -172 ~ -ammk -(); - -173  -vg -({  - m_os - == -2; } - -174  -d -( -ammk -&); - -175  -d -(); - -180 - e__codecvt_su - - -182 - m__codecvt_ok -, - -183 - m__codecvt_l -, - -184 - m__codecvt_r -, - -185 - m__codecvt_nocv - - -188 #i -defed - -_LIBC - || defed -_GLIBCPP_USE_WCHAR_T - - -191  - s_IO_codecvt - - -193 (* - m__codecvt_der -( - m_IO_codecvt - *); - -194 -__codecvt_su - (* -__codecvt_do_out -( - m_IO_codecvt - *, - -195 - m__mbe_t - *, - -196 cڡ - mwch_t - *, - -197 cڡ - mwch_t - *, - -198 cڡ - mwch_t - **, *, - -200 -__codecvt_su - (* -__codecvt_do_unshi -( - m_IO_codecvt - *, - -201 - m__mbe_t - *, *, - -203 -__codecvt_su - (* -__codecvt_do_ -( - m_IO_codecvt - *, - -204 - m__mbe_t - *, - -206 cڡ **, - mwch_t - *, - -207 - mwch_t - *, wchar_t **); - -208 (* - m__codecvt_do_codg -( - m_IO_codecvt - *); - -209 (* - m__codecvt_do_ways_nocv -( - m_IO_codecvt - *); - -210 (* - m__codecvt_do_ngth -( - m_IO_codecvt - *, - m__mbe_t - *, - -211 cڡ *, cڡ *, - m_IO_size_t -); - -212 (* - m__codecvt_do_max_ngth -( - m_IO_codecvt - *); - -214 -_IO_icv_t - - m__cd_ -; - -215 -_IO_icv_t - - m__cd_out -; - -219  - s_IO_wide_da - - -221 -wch_t - * - m_IO_ad_r -; - -222 -wch_t - * - m_IO_ad_d -; - -223 -wch_t - * - m_IO_ad_ba -; - -224 -wch_t - * - m_IO_wre_ba -; - -225 -wch_t - * - m_IO_wre_r -; - -226 -wch_t - * - m_IO_wre_d -; - -227 -wch_t - * - m_IO_buf_ba -; - -228 -wch_t - * - m_IO_buf_d -; - -230 -wch_t - * - m_IO_ve_ba -; - -231 -wch_t - * - m_IO_backup_ba -; - -233 -wch_t - * - m_IO_ve_d -; - -235 -__mbe_t - - m_IO_e -; - -236 -__mbe_t - - m_IO_ϡ_e -; - -237  -_IO_codecvt - - m_codecvt -; - -239 -wch_t - - m_shtbuf -[1]; - -241 cڡ  -_IO_jump_t - * - m_wide_vb -; - -245  - s_IO_FILE - { - -246  - m_ags -; - -247  - #_IO_fe_ags - -_ags - - - ) - -251 * - m_IO_ad_r -; - -252 * - m_IO_ad_d -; - -253 * - m_IO_ad_ba -; - -254 * - m_IO_wre_ba -; - -255 * - m_IO_wre_r -; - -256 * - m_IO_wre_d -; - -257 * - m_IO_buf_ba -; - -258 * - m_IO_buf_d -; - -260 * - m_IO_ve_ba -; - -261 * - m_IO_backup_ba -; - -262 * - m_IO_ve_d -; - -264  -_IO_mk - * - m_mks -; - -266  -_IO_FILE - * - m_cha -; - -268  - m_fo -; - -270  - m_blksize -; - -272  - m_ags2 -; - -274 -_IO_off_t - - m_d_offt -; - -276  - #__HAVE_COLUMN - - - ) - -278  - m_cur_cumn -; - -279 sigd  - m_vb_offt -; - -280  - m_shtbuf -[1]; - -284 -_IO_lock_t - * - m_lock -; - -285 #ifde -_IO_USE_OLD_IO_FILE - - -288  - s_IO_FILE_come - - -290  -_IO_FILE - - m_fe -; - -292 #i -defed - -_G_IO_IO_FILE_VERSION - && _G_IO_IO_FILE_VERSION == 0x20001 - -293 -_IO_off64_t - - m_offt -; - -294 #i -defed - -_LIBC - || defed -_GLIBCPP_USE_WCHAR_T - - -296  -_IO_codecvt - * - m_codecvt -; - -297  -_IO_wide_da - * - m_wide_da -; - -298  -_IO_FILE - * - m_䓻s_li -; - -299 * - m_䓻s_buf -; - -300 -size_t - - m_䓻s_size -; - -302 * - m__d1 -; - -303 * - m__d2 -; - -304 * - m__d3 -; - -305 * - m__d4 -; - -306 -size_t - - m__d5 -; - -308  - m_mode -; - -310  - m_unud2 -[15 *  (- 4 *  (*-  ( -size_t -)]; - -314 #ide -__lulus - - -315  -_IO_FILE - - t_IO_FILE -; - -318  - g_IO_FILE_us -; - -320  -_IO_FILE_us - -_IO_2_1_d_ -; - -321  -_IO_FILE_us - -_IO_2_1_dout_ -; - -322  -_IO_FILE_us - -_IO_2_1_dr_ -; - -323 #ide -_LIBC - - -324  - #_IO_d - (( -_IO_FILE -*)(& -_IO_2_1_d_ -)) - - ) - -325  - #_IO_dout - (( -_IO_FILE -*)(& -_IO_2_1_dout_ -)) - - ) - -326  - #_IO_dr - (( -_IO_FILE -*)(& -_IO_2_1_dr_ -)) - - ) - -328 -_IO_FILE - * -_IO_d - -ibu_hidd -; - -329 -_IO_FILE - * -_IO_dout - -ibu_hidd -; - -330 -_IO_FILE - * -_IO_dr - -ibu_hidd -; - -338  -__ssize_t - - t__io_ad_ - (* - t__cook -, * - t__buf -, - tsize_t - - t__nbys -); - -346  -__ssize_t - - t__io_wre_ - (* - t__cook -, cڡ * - t__buf -, - -347 - tsize_t - - t__n -); - -355  - t__io_ek_ - (* - t__cook -, - t_IO_off64_t - * - t__pos -,  - t__w -); - -358  - t__io_o_ - (* - t__cook -); - -361 #ifde -_GNU_SOURCE - - -363  -__io_ad_ - - tcook_ad_funi_t -; - -364  -__io_wre_ - - tcook_wre_funi_t -; - -365  -__io_ek_ - - tcook_ek_funi_t -; - -366  -__io_o_ - - tcook_o_funi_t -; - -371 -__io_ad_ - * - mad -; - -372 -__io_wre_ - * - mwre -; - -373 -__io_ek_ - * - mek -; - -374 -__io_o_ - * - mo -; - -375 } - t_IO_cook_io_funis_t -; - -376  -_IO_cook_io_funis_t - - tcook_io_funis_t -; - -378  - g_IO_cook_fe -; - -381  -_IO_cook_ - ( -_IO_cook_fe - * -__cfe -,  -__ad_wre -, - -382 * -__cook -, -_IO_cook_io_funis_t - -__s -); - -386 #ifde -__lulus - - -390  -__undow - ( -_IO_FILE - *); - -391  -__uow - ( -_IO_FILE - *); - -392  -__ovow - ( -_IO_FILE - *, ); - -393 #i -defed - -_LIBC - || defed -_GLIBCPP_USE_WCHAR_T - - -394 -_IO_wt_t - -__wundow - ( -_IO_FILE - *); - -395 -_IO_wt_t - -__wuow - ( -_IO_FILE - *); - -396 -_IO_wt_t - -__wovow - ( -_IO_FILE - *, _IO_wint_t); - -399 #i -__GNUC__ - >= 3 - -400  - #_IO_BE -( -ex -, -s - - `__but_ex - (x),es) - - ) - -402  - #_IO_BE -( -ex -, -s -x) - - ) - -405  - #_IO_gc_uocked -( -_ -) \ - -406 ( - `_IO_BE - (( -_ -)-> -_IO_ad_r - >(_)-> -_IO_ad_d -, 0) \ - -407 ? - `__uow - ( -_ -: *(*(_)-> -_IO_ad_r -++) - - ) - -408  - #_IO_ekc_uocked -( -_ -) \ - -409 ( - `_IO_BE - (( -_ -)-> -_IO_ad_r - >(_)-> -_IO_ad_d -, 0) \ - -410 && - `__undow - ( -_ -= -EOF - ? EOF \ - -411 : *(*( -_ -)-> -_IO_ad_r -) - - ) - -412  - #_IO_putc_uocked -( -_ch -, -_ -) \ - -413 ( - `_IO_BE - (( -_ -)-> -_IO_wre_r - >(_)-> -_IO_wre_d -, 0) \ - -414 ? - `__ovow - ( -_ -, (( -_ch -)) \ - -415 : ((*( -_ -)-> -_IO_wre_r -++ = ( -_ch -))) - - ) - -417 #i -defed - -_LIBC - || defed -_GLIBCPP_USE_WCHAR_T - - -418  - #_IO_gwc_uocked -( -_ -) \ - -419 ( - `_IO_BE - (( -_ -)-> -_wide_da - = -NULL - \ - -420 || (( -_ -)-> -_wide_da --> -_IO_ad_r - \ - -421 >( -_ -)-> -_wide_da --> -_IO_ad_d -), 0) \ - -422 ? - `__wuow - ( -_ -: ( -_IO_wt_t -*(_)-> -_wide_da --> -_IO_ad_r -++) - - ) - -423  - #_IO_putwc_uocked -( -_wch -, -_ -) \ - -424 ( - `_IO_BE - (( -_ -)-> -_wide_da - = -NULL - \ - -425 || (( -_ -)-> -_wide_da --> -_IO_wre_r - \ - -426 >( -_ -)-> -_wide_da --> -_IO_wre_d -), 0) \ - -427 ? - `__wovow - ( -_ -, -_wch -) \ - -428 : ( -_IO_wt_t -(*( -_ -)-> -_wide_da --> -_IO_wre_r -++ = ( -_wch -))) - - ) - -431  - #_IO_of_uocked -( -__ -(((__)-> -_ags - & -_IO_EOF_SEEN -!0) - - ) - -432  - #_IO__uocked -( -__ -(((__)-> -_ags - & -_IO_ERR_SEEN -!0) - - ) - -434  -_IO_gc - ( -_IO_FILE - * -__ -); - -435  -_IO_putc - ( -__c -, -_IO_FILE - * -__ -); - -436  -_IO_of - ( -_IO_FILE - * -__ - -__THROW -; - -437  -_IO_ - ( -_IO_FILE - * -__ - -__THROW -; - -439  -_IO_ekc_locked - ( -_IO_FILE - * -__ -); - -442  - #_IO_PENDING_OUTPUT_COUNT -( -_ -) \ - -443 (( -_ -)-> -_IO_wre_r - - (_)-> -_IO_wre_ba -) - - ) - -445  -_IO_ockfe - ( -_IO_FILE - * -__THROW -; - -446  -_IO_fuockfe - ( -_IO_FILE - * -__THROW -; - -447  -_IO_rylockfe - ( -_IO_FILE - * -__THROW -; - -449 #ifde -_IO_MTSAFE_IO - - -450  - #_IO_ekc -( -_ - - `_IO_ekc_locked - (_) - - ) - -451  - #_IO_ockfe -( -_ -) \ - -452 i((( -_ -)-> -_ags - & -_IO_USER_LOCK -=0 - `_IO_ockfe - (_) - - ) - -453  - #_IO_fuockfe -( -_ -) \ - -454 i((( -_ -)-> -_ags - & -_IO_USER_LOCK -=0 - `_IO_fuockfe - (_) - - ) - -456  - #_IO_ekc -( -_ - - `_IO_ekc_uocked - (_) - - ) - -457  - #_IO_ockfe -( -_ - - - ) - -458  - #_IO_fuockfe -( -_ - - - ) - -459  - #_IO_rylockfe -( -_ - - - ) - -460  - #_IO_nup_gi_t -( -_f -, -_ - - - ) - -461  - #_IO_nup_gi_d -( -_Do - - - ) - -464  -_IO_vfsnf - ( -_IO_FILE - * -__ri -, const * __restrict, - -465 -_IO_va_li -, * -__ri -); - -466  -_IO_vrtf - ( -_IO_FILE - * -__ri -, const *__restrict, - -467 -_IO_va_li -); - -468 -_IO_ssize_t - -_IO_dn - ( -_IO_FILE - *, , _IO_ssize_t); - -469 -_IO_size_t - -_IO_sgn - ( -_IO_FILE - *, *, _IO_size_t); - -471 -_IO_off64_t - -_IO_ekoff - ( -_IO_FILE - *, _IO_off64_t, , ); - -472 -_IO_off64_t - -_IO_ekpos - ( -_IO_FILE - *, _IO_off64_t, ); - -474  -_IO__backup_ - ( -_IO_FILE - * -__THROW -; - -476 #i -defed - -_LIBC - || defed -_GLIBCPP_USE_WCHAR_T - - -477 -_IO_wt_t - -_IO_gwc - ( -_IO_FILE - * -__ -); - -478 -_IO_wt_t - -_IO_putwc - ( -wch_t - -__wc -, -_IO_FILE - * -__ -); - -479  -_IO_fwide - ( -_IO_FILE - * -__ -,  -__mode - -__THROW -; - -480 #i -__GNUC__ - >= 2 - -483 #i -defed - -_LIBC - && defed -SHARED - - -484  - ~ - -485 #i -SHLIB_COMPAT - ( -libc -, -GLIBC_2_0 -, -GLIBC_2_1 -) - -486  - #_IO_fwide_maybe_comtib - \ - -487 ( - `__but_ex - (& -_IO_d_ud - = -NULL -, 0)) - - ) - -488 cڡ  -_IO_d_ud -; - -489 -wk_ex - ( -_IO_d_ud -); - -492 #ide -_IO_fwide_maybe_comtib - - -493  - #_IO_fwide_maybe_comtib - (0) - - ) - -497  - #_IO_fwide -( -__ -, -__mode -) \ - -498 ({  -__su - = ( -__mode -); \ - -499 i( -__su - < 0 && ! -_IO_fwide_maybe_comtib -) \ - -501 i(( -__ -)-> -_mode - == 0) \ - -503 ( -__ -)-> -_mode - = -1; \ - -504 -__su - = ( -__ -)-> -_mode -; \ - -506 i( - `__but_cڡt_p - ( -__mode -) && (__mode) == 0) \ - -507 -__su - = -_IO_fwide_maybe_comtib - ? -1 : ( -__ -)-> -_mode -; \ - -509 -__su - = - `_IO_fwide - ( -__ -, __result); \ - -510 -__su -; }) - - ) - -513  -_IO_vfwsnf - ( -_IO_FILE - * -__ri -, cڡ -wch_t - * __restrict, - -514 -_IO_va_li -, * -__ri -); - -515  -_IO_vfwtf - ( -_IO_FILE - * -__ri -, cڡ -wch_t - *__restrict, - -516 -_IO_va_li -); - -517 -_IO_ssize_t - -_IO_wdn - ( -_IO_FILE - *, -wt_t -, _IO_ssize_t); - -518  -_IO__wbackup_ - ( -_IO_FILE - * -__THROW -; - -521 #ifde -__LDBL_COMPAT - - -522  - ~ - -525 #ifde -__lulus - - - @/usr/include/time.h - -22 #idef -_TIME_H - - -24 #i(! -defed - -__ed_time_t - && !defed -__ed_ock_t - && \ - -25 ! -defed - - g__ed_timeec -) - -26  - #_TIME_H - 1 - - ) - -27  - ~ - -29 - g__BEGIN_DECLS - - -33 #ifdef -_TIME_H - - -35  - #__ed_size_t - - - ) - -36  - #__ed_NULL - - - ) - -37  - ~ - -41  - ~ - -44 #i! -defed - -__STRICT_ANSI__ - && !defed -__USE_XOPEN2K - - -45 #ide -CLK_TCK - - -46  - #CLK_TCK - -CLOCKS_PER_SEC - - - ) - -52 #i! -defed - -__ock_t_defed - && (defed -_TIME_H - || defed -__ed_ock_t -) - -53  - #__ock_t_defed - 1 - - ) - -55  - ~ - -57 -__BEGIN_NAMESPACE_STD - - -59  -__ock_t - - tock_t -; - -60 - g__END_NAMESPACE_STD - - -61 #i -defed - -__USE_XOPEN - || defed -__USE_POSIX - || defed -__USE_MISC - - -62 - $__USING_NAMESPACE_STD -( -ock_t -) - -66 #unde -__ed_ock_t - - -68 #i! -defed - -__time_t_defed - && (defed -_TIME_H - || defed -__ed_time_t -) - -69  - #__time_t_defed - 1 - - ) - -71  - ~ - -73 -__BEGIN_NAMESPACE_STD - - -75  -__time_t - - ttime_t -; - -76 -__END_NAMESPACE_STD - - -77 #i -defed - -__USE_POSIX - || defed -__USE_MISC - || defed -__USE_SVID - - -78 - $__USING_NAMESPACE_STD -( -time_t -) - -82 #unde -__ed_time_t - - -84 #i! -defed - -__ockid_t_defed - && \ - -85 (( -defed - -_TIME_H - && defed -__USE_POSIX199309 -|| defed -__ed_ockid_t -) - -86  - #__ockid_t_defed - 1 - - ) - -88  - ~ - -91  -__ockid_t - - tockid_t -; - -94 #unde -__ockid_time_t - - -96 #i! -defed - -__tim_t_defed - && \ - -97 (( -defed - -_TIME_H - && defed -__USE_POSIX199309 -|| defed -__ed_tim_t -) - -98  - #__tim_t_defed - 1 - - ) - -100  - ~ - -103  -__tim_t - - ttim_t -; - -106 #unde -__ed_tim_t - - -109 #i(! -defed - -__timeec_defed - \ - -110 && (( -defed - -_TIME_H - \ - -111 && ( -defed - -__USE_POSIX199309 - || defed -__USE_MISC - \ - -112 || -defed - -__USE_ISOC11 -)) \ - -113 || -defed - -__ed_timeec -)) - -114  - #__timeec_defed - 1 - - ) - -116  - ~ - -120  - stimeec - - -122 -__time_t - -tv_c -; - -123 -__sys_g_t - -tv_nc -; - -127 #unde -__ed_timeec - - -130 #ifdef -_TIME_H - - -131 -__BEGIN_NAMESPACE_STD - - -133  - stm - - -135  -tm_c -; - -136  -tm_m -; - -137  -tm_hour -; - -138  -tm_mday -; - -139  -tm_m -; - -140  -tm_yr -; - -141  -tm_wday -; - -142  -tm_yday -; - -143  -tm_isd -; - -145 #ifdef -__USE_BSD - - -146  -tm_gmtoff -; - -147 cڡ * -tm_ze -; - -149  -__tm_gmtoff -; - -150 cڡ * -__tm_ze -; - -153 -__END_NAMESPACE_STD - - -154 #i -defed - -__USE_XOPEN - || defed -__USE_POSIX - || defed -__USE_MISC - - -155 - $__USING_NAMESPACE_STD -( -tm -) - -159 #ifde -__USE_POSIX199309 - - -161  - simec - - -163  -timeec - -_rv -; - -164  -timeec - -_vue -; - -168  -sigevt -; - -172 #ifde -__USE_XOPEN2K - - -173 #ide -__pid_t_defed - - -174  -__pid_t - - tpid_t -; - -175  - #__pid_t_defed - - - ) - -180 #ifde -__USE_ISOC11 - - -182  - #TIME_UTC - 1 - - ) - -186 -__BEGIN_NAMESPACE_STD - - -189 -ock_t - - $ock - ( -__THROW -; - -192 -time_t - - $time - ( -time_t - * -__tim - -__THROW -; - -195  - $difime - ( -time_t - -__time1 -,ime_ -__time0 -) - -196 -__THROW - - `__ibu__ - (( -__cڡ__ -)); - -199 -time_t - - $mktime - ( -tm - * -__ - -__THROW -; - -205 -size_t - - $rime - (* -__ri - -__s -, -size_t - -__maxsize -, - -206 cڡ * -__ri - -__fm -, - -207 cڡ  -tm - * -__ri - -__ - -__THROW -; - -208 -__END_NAMESPACE_STD - - -210 #ifde -__USE_XOPEN - - -213 * - $time - (cڡ * -__ri - -__s -, - -214 cڡ * -__ri - -__fmt -,  -tm - * -__ -) - -215 -__THROW -; - -218 #ifde -__USE_XOPEN2K8 - - -221  - ~ - -223 -size_t - - $rime_l - (* -__ri - -__s -, -size_t - -__maxsize -, - -224 cڡ * -__ri - -__fm -, - -225 cڡ  -tm - * -__ri - -__ -, - -226 -__lo_t - -__loc - -__THROW -; - -229 #ifde -__USE_GNU - - -230 * - $time_l - (cڡ * -__ri - -__s -, - -231 cڡ * -__ri - -__fmt -,  -tm - * -__ -, - -232 -__lo_t - -__loc - -__THROW -; - -236 -__BEGIN_NAMESPACE_STD - - -239  -tm - * - $gmtime - (cڡ -time_t - * -__tim - -__THROW -; - -243  -tm - * - $loime - (cڡ -time_t - * -__tim - -__THROW -; - -244 -__END_NAMESPACE_STD - - -246 #i -defed - -__USE_POSIX - || defed -__USE_MISC - - -249  -tm - * - $gmtime_r - (cڡ -time_t - * -__ri - -__tim -, - -250  -tm - * -__ri - -__ - -__THROW -; - -254  -tm - * - $loime_r - (cڡ -time_t - * -__ri - -__tim -, - -255  -tm - * -__ri - -__ - -__THROW -; - -258 -__BEGIN_NAMESPACE_STD - - -261 * - $asime - (cڡ  -tm - * -__ - -__THROW -; - -264 * - $ime - (cڡ -time_t - * -__tim - -__THROW -; - -265 -__END_NAMESPACE_STD - - -267 #i -defed - -__USE_POSIX - || defed -__USE_MISC - - -272 * - $asime_r - (cڡ  -tm - * -__ri - -__ -, - -273 * -__ri - -__buf - -__THROW -; - -276 * - $ime_r - (cڡ -time_t - * -__ri - -__tim -, - -277 * -__ri - -__buf - -__THROW -; - -282 * -__tzme -[2]; - -283  -__daylight -; - -284  -__timeze -; - -287 #ifdef -__USE_POSIX - - -289 * -tzme -[2]; - -293  - $tzt - ( -__THROW -; - -296 #i -defed - -__USE_SVID - || defed -__USE_XOPEN - - -297  -daylight -; - -298  -timeze -; - -301 #ifde -__USE_SVID - - -304  - $ime - (cڡ -time_t - * -__wh - -__THROW -; - -310  - #__ip -( -yr -) \ - -311 (( -yr -% 4 =0 && ((yr% 100 !0 || (yr% 400 =0)) - - ) - -314 #ifde -__USE_MISC - - -319 -time_t - - $timegm - ( -tm - * -__ - -__THROW -; - -322 -time_t - - $timol - ( -tm - * -__ - -__THROW -; - -325  - $dysize - ( -__yr - -__THROW - - `__ibu__ - (( -__cڡ__ -)); - -329 #ifde -__USE_POSIX199309 - - -334  - `nop - (cڡ  -timeec - * -__queed_time -, - -335  -timeec - * -__mag -); - -339  - $ock_gs - ( -ockid_t - -__ock_id -,  -timeec - * -__s - -__THROW -; - -342  - $ock_gtime - ( -ockid_t - -__ock_id -,  -timeec - * -__ - -__THROW -; - -345  - $ock_ime - ( -ockid_t - -__ock_id -, cڡ  -timeec - * -__ -) - -346 -__THROW -; - -348 #ifde -__USE_XOPEN2K - - -353  - `ock_nop - ( -ockid_t - -__ock_id -,  -__ags -, - -354 cڡ  -timeec - * -__q -, - -355  -timeec - * -__m -); - -358  - $ock_guockid - ( -pid_t - -__pid -, -ockid_t - * -__ock_id - -__THROW -; - -363  - $tim_ - ( -ockid_t - -__ock_id -, - -364  -sigevt - * -__ri - -__evp -, - -365 -tim_t - * -__ri - -__timid - -__THROW -; - -368  - $tim_de - ( -tim_t - -__timid - -__THROW -; - -371  - $tim_ime - ( -tim_t - -__timid -,  -__ags -, - -372 cڡ  -imec - * -__ri - -__vue -, - -373  -imec - * -__ri - -__ovue - -__THROW -; - -376  - $tim_gtime - ( -tim_t - -__timid -,  -imec - * -__vue -) - -377 -__THROW -; - -380  - $tim_govrun - ( -tim_t - -__timid - -__THROW -; - -384 #ifde -__USE_ISOC11 - - -386  - $timeec_g - ( -timeec - * -__ts -,  -__ba -) - -387 -__THROW - - `__nnu - ((1)); - -391 #ifde -__USE_XOPEN_EXTENDED - - -403  -gde_r -; - -412  -tm - * - `gde - (cڡ * -__rg -); - -415 #ifde -__USE_GNU - - -426  - `gde_r - (cڡ * -__ri - -__rg -, - -427  -tm - * -__ri - -__sbu -); - -430 -__END_DECLS - - - @/usr/include/xlocale.h - -20 #ide -_XLOCALE_H - - -21  - #_XLOCALE_H - 1 - - ) - -27  - s__lo_ru - - -30  -__lo_da - * - m__los -[13]; - -33 cڡ * - m__y_b -; - -34 cڡ * - m__y_tow -; - -35 cڡ * - m__y_tou -; - -38 cڡ * - m__mes -[13]; - -39 } * - t__lo_t -; - -42  -__lo_t - - tlo_t -; - - @/usr/include/_G_config.h - -4 #ide -_G_cfig_h - - -5  - #_G_cfig_h - 1 - - ) - -9  - ~ - -10  - #__ed_size_t - - - ) - -11 #i -defed - -_LIBC - || defed -_GLIBCPP_USE_WCHAR_T - - -12  - #__ed_wch_t - - - ) - -14  - #__ed_NULL - - - ) - -15  - ~ - -16  - #__ed_mbe_t - - - ) - -17 #i -defed - -_LIBC - || defed -_GLIBCPP_USE_WCHAR_T - - -18  - #__ed_wt_t - - - ) - -20  - ~ - -23 -__off_t - - m__pos -; - -24 -__mbe_t - - m__e -; - -25 } - t_G_os_t -; - -28 -__off64_t - - m__pos -; - -29 -__mbe_t - - m__e -; - -30 } - t_G_os64_t -; - -31 #i -defed - -_LIBC - || defed -_GLIBCPP_USE_WCHAR_T - - -32  - ~ - -35  -__gcv_fo - - m__cd -; - -38  -__gcv_fo - - m__cd -; - -39  -__gcv__da - - m__da -; - -40 } - m__combed -; - -41 } - t_G_icv_t -; - -46  - #_G_va_li - -__gnuc_va_li - - - ) - -48  - #_G_HAVE_MMAP - 1 - - ) - -49  - #_G_HAVE_MREMAP - 1 - - ) - -51  - #_G_IO_IO_FILE_VERSION - 0x20001 - - ) - -54  - #_G_HAVE_ST_BLKSIZE - - `defed - ( -_STATBUF_ST_BLKSIZE -) - - ) - -56  - #_G_BUFSIZ - 8192 - - ) - - @/usr/include/stdc-predef.h - -18 #idef -_STDC_PREDEF_H - - -19  - #_STDC_PREDEF_H - 1 - - ) - -36 #ifde -__GCC_IEC_559 - - -37 #i -__GCC_IEC_559 - > 0 - -38  - #__STDC_IEC_559__ - 1 - - ) - -41  - #__STDC_IEC_559__ - 1 - - ) - -44 #ifde -__GCC_IEC_559_COMPLEX - - -45 #i -__GCC_IEC_559_COMPLEX - > 0 - -46  - #__STDC_IEC_559_COMPLEX__ - 1 - - ) - -49  - #__STDC_IEC_559_COMPLEX__ - 1 - - ) - -54  - #__STDC_ISO_10646__ - 201103L - - ) - -57  - #__STDC_NO_THREADS__ - 1 - - ) - - @/usr/include/gconv.h - -22 #ide -_GCONV_H - - -23  - #_GCONV_H - 1 - - ) - -25  - ~ - -26  - #__ed_mbe_t - - - ) - -27  - #__ed_wt_t - - - ) - -28  - ~ - -29  - #__ed_size_t - - - ) - -30  - #__ed_wch_t - - - ) - -31  - ~ - -34  - #__UNKNOWN_10646_CHAR - (( -wch_t -0xfffd) - - ) - -39 - m__GCONV_OK - = 0, - -40 - m__GCONV_NOCONV -, - -41 - m__GCONV_NODB -, - -42 - m__GCONV_NOMEM -, - -44 - m__GCONV_EMPTY_INPUT -, - -45 - m__GCONV_FULL_OUTPUT -, - -46 - m__GCONV_ILLEGAL_INPUT -, - -47 - m__GCONV_INCOMPLETE_INPUT -, - -49 - m__GCONV_ILLEGAL_DESCRIPTOR -, - -50 - m__GCONV_INTERNAL_ERROR - - -57 - m__GCONV_IS_LAST - = 0x0001, - -58 - m__GCONV_IGNORE_ERRORS - = 0x0002, - -59 - m__GCONV_SWAP - = 0x0004 - -64  - g__gcv_ -; - -65  - g__gcv__da -; - -66  - g__gcv_lded_obje -; - -67  - g__gcv_s_da -; - -71 (* - t__gcv_f -( - t__gcv_ - *,  - t__gcv__da - *, - -73 **, - tsize_t - *, , ); - -76  - $wt_t - (* - t__gcv_btowc_f -( - t__gcv_ - *, ); - -79 (* - t__gcv__f -( - t__gcv_ - *); - -80 (* - t__gcv_d_f -( - t__gcv_ - *); - -84 (* - t__gcv_s_f -( - t__gcv_ - *, - -85  - t__gcv__da - *, *, - -89 - tsize_t - *); - -92 (* - t__gcv_s_cڋxt_f -) (*, const *, - -97 (* - t__gcv_s_quy_f -) (const *, const ***, - -98 - tsize_t - *); - -101 (* - t__gcv_s__f -) (**, const *); - -102 (* - t__gcv_s_d_f -) (*); - -104  - s__gcv_s_da - - -107 -__gcv_s_f - -__s_f -; - -108 -__gcv_s_cڋxt_f - -__s_cڋxt_f -; - -109 -__gcv_s_d_f - -__s_d_f -; - -110 * -__da -; - -111  -__gcv_s_da - * -__xt -; - -116  - s__gcv_ - - -118  -__gcv_lded_obje - * -__shlib_hd -; - -119 cڡ * -__modme -; - -121  -__cou -; - -123 * -__om_me -; - -124 * -__to_me -; - -126 -__gcv_f - -__f -; - -127 -__gcv_btowc_f - -__btowc_f -; - -128 -__gcv__f - -___f -; - -129 -__gcv_d_f - -__d_f -; - -133  -__m_eded_om -; - -134  -__max_eded_om -; - -135  -__m_eded_to -; - -136  -__max_eded_to -; - -139  -__eful -; - -141 * -__da -; - -146  - s__gcv__da - - -148 * -__outbuf -; - -149 * -__outbund -; - -153  -__ags -; - -157  -__voti_cou -; - -161  -___u -; - -163 -__mbe_t - * -__ -; - -164 -__mbe_t - -__e -; - -168  -__gcv_s_da - * -__s -; - -173  - s__gcv_fo - - -175 -size_t - -__ns -; - -176  -__gcv_ - * -__s -; - -177 -__exnsi__ -  -__gcv__da - -__da - -__exr -; - -178 } * - t__gcv_t -; - - @/usr/include/wchar.h - -23 #ide -_WCHAR_H - - -25 #i! -defed - -__ed_mbe_t - && !defed -__ed_wt_t - - -26  - #_WCHAR_H - 1 - - ) - -27  - ~ - -30 #ifde -_WCHAR_H - - -32  - #__ed___FILE - - - ) - -33 #i -defed - -__USE_UNIX98 - || defed -__USE_XOPEN2K - - -34  - #__ed_FILE - - - ) - -36  - ~ - -38  - #__ed___va_li - - - ) - -39  - ~ - -41  - ~ - -44  - #__ed_size_t - - - ) - -45  - #__ed_wch_t - - - ) - -46  - #__ed_NULL - - - ) - -48 #i -defed - -_WCHAR_H - || defed -__ed_wt_t - || !defed -__WINT_TYPE__ - - -49 #unde -__ed_wt_t - - -50  - #__ed_wt_t - - - ) - -51  - ~ - -55 #ide -_WINT_T - - -60  - #_WINT_T - - - ) - -61  - twt_t -; - -65 #i -defed - -__lulus - && defed -_GLIBCPP_USE_NAMESPACES - \ - -66 && -defed - -__WINT_TYPE__ - - -67 -__BEGIN_NAMESPACE_STD - - -68  -__WINT_TYPE__ - - twt_t -; - -69 - g__END_NAMESPACE_STD - - -74 #i -defed - -__lulus - && -__GNUC_PREREQ - (4, 4) - -75  - #__CORRECT_ISO_CPP_WCHAR_H_PROTO - - - ) - -79 #i( -defed - -_WCHAR_H - || defed -__ed_mbe_t -&& !defed -____mbe_t_defed - - -80  - #____mbe_t_defed - 1 - - ) - -84  - m__cou -; - -87 #ifde -__WINT_TYPE__ - - -88 -__WINT_TYPE__ - - m__wch -; - -90 -wt_t - - m__wch -; - -92  - m__wchb -[4]; - -93 } - m__vue -; - -94 } - t__mbe_t -; - -96 #unde -__ed_mbe_t - - -101 #ifde -_WCHAR_H - - -103 #ide -__mbe_t_defed - - -104 -__BEGIN_NAMESPACE_C99 - - -106  -__mbe_t - - tmbe_t -; - -107 - g__END_NAMESPACE_C99 - - -108  - #__mbe_t_defed - 1 - - ) - -111 #ifde -__USE_GNU - - -112 - $__USING_NAMESPACE_C99 -( -mbe_t -) - -115 #ide -WCHAR_MIN - - -117  - #WCHAR_MIN - -__WCHAR_MIN - - - ) - -118  - #WCHAR_MAX - -__WCHAR_MAX - - - ) - -121 #ide -WEOF - - -122  - #WEOF - (0xffffffffu) - - ) - -127 #i -defed - -__USE_XOPEN - && !defed -__USE_UNIX98 - - -128  - ~ - -132 -__BEGIN_DECLS - - -134 -__BEGIN_NAMESPACE_STD - - -137  -tm -; - -138 -__END_NAMESPACE_STD - - -142 - $__USING_NAMESPACE_STD -( -tm -) - -145 -__BEGIN_NAMESPACE_STD - - -147 -wch_t - * - $wcsy - ( -wch_t - * -__ri - -__de -, - -148 cڡ -wch_t - * -__ri - -__c - -__THROW -; - -150 -wch_t - * - $wcy - ( -wch_t - * -__ri - -__de -, - -151 cڡ -wch_t - * -__ri - -__c -, -size_t - -__n -) - -152 -__THROW -; - -155 -wch_t - * - $wcst - ( -wch_t - * -__ri - -__de -, - -156 cڡ -wch_t - * -__ri - -__c - -__THROW -; - -158 -wch_t - * - $wct - ( -wch_t - * -__ri - -__de -, - -159 cڡ -wch_t - * -__ri - -__c -, -size_t - -__n -) - -160 -__THROW -; - -163  - $wcscmp - (cڡ -wch_t - * -__s1 -, cڡ wch_* -__s2 -) - -164 -__THROW - -__ibu_pu__ -; - -166  - $wccmp - (cڡ -wch_t - * -__s1 -, cڡ wch_* -__s2 -, -size_t - -__n -) - -167 -__THROW - -__ibu_pu__ -; - -168 -__END_NAMESPACE_STD - - -170 #ifde -__USE_XOPEN2K8 - - -172  - $wcscmp - (cڡ -wch_t - * -__s1 -, cڡ wch_* -__s2 - -__THROW -; - -175  - $wccmp - (cڡ -wch_t - * -__s1 -, cڡ wch_* -__s2 -, - -176 -size_t - -__n - -__THROW -; - -180  - ~ - -182  - $wcscmp_l - (cڡ -wch_t - * -__s1 -, cڡ wch_* -__s2 -, - -183 -__lo_t - -__loc - -__THROW -; - -185  - $wccmp_l - (cڡ -wch_t - * -__s1 -, cڡ wch_* -__s2 -, - -186 -size_t - -__n -, -__lo_t - -__loc - -__THROW -; - -189 -__BEGIN_NAMESPACE_STD - - -192  - $wcscl - (cڡ -wch_t - * -__s1 -, cڡ wch_* -__s2 - -__THROW -; - -196 -size_t - - $wcsxm - ( -wch_t - * -__ri - -__s1 -, - -197 cڡ -wch_t - * -__ri - -__s2 -, -size_t - -__n - -__THROW -; - -198 -__END_NAMESPACE_STD - - -200 #ifde -__USE_XOPEN2K8 - - -206  - $wcscl_l - (cڡ -wch_t - * -__s1 -, cڡ wch_* -__s2 -, - -207 -__lo_t - -__loc - -__THROW -; - -212 -size_t - - $wcsxm_l - ( -wch_t - * -__s1 -, cڡ wch_* -__s2 -, - -213 -size_t - -__n -, -__lo_t - -__loc - -__THROW -; - -216 -wch_t - * - $wcsdup - (cڡ -wch_t - * -__s - -__THROW - -__ibu_mloc__ -; - -219 -__BEGIN_NAMESPACE_STD - - -221 #ifde -__CORRECT_ISO_CPP_WCHAR_H_PROTO - - -222 "C++" -wch_t - * - $wcschr - ( -wch_t - * -__wcs -, wch_ -__wc -) - -223 -__THROW - - `__asm - ("wcschr" -__ibu_pu__ -; - -224 "C++" cڡ -wch_t - * - $wcschr - (cڡ -wch_t - * -__wcs -, wch_ -__wc -) - -225 -__THROW - - `__asm - ("wcschr" -__ibu_pu__ -; - -227 -wch_t - * - $wcschr - (cڡ -wch_t - * -__wcs -, wch_ -__wc -) - -228 -__THROW - -__ibu_pu__ -; - -231 #ifde -__CORRECT_ISO_CPP_WCHAR_H_PROTO - - -232 "C++" -wch_t - * - $wcchr - ( -wch_t - * -__wcs -, wch_ -__wc -) - -233 -__THROW - - `__asm - ("wcchr" -__ibu_pu__ -; - -234 "C++" cڡ -wch_t - * - $wcchr - (cڡ -wch_t - * -__wcs -, wch_ -__wc -) - -235 -__THROW - - `__asm - ("wcchr" -__ibu_pu__ -; - -237 -wch_t - * - $wcchr - (cڡ -wch_t - * -__wcs -, wch_ -__wc -) - -238 -__THROW - -__ibu_pu__ -; - -240 -__END_NAMESPACE_STD - - -242 #ifde -__USE_GNU - - -245 -wch_t - * - $wcschul - (cڡ -wch_t - * -__s -, wch_ -__wc -) - -246 -__THROW - -__ibu_pu__ -; - -249 -__BEGIN_NAMESPACE_STD - - -252 -size_t - - $wcscn - (cڡ -wch_t - * -__wcs -, cڡ wch_* -__je -) - -253 -__THROW - -__ibu_pu__ -; - -256 -size_t - - $wcsn - (cڡ -wch_t - * -__wcs -, cڡ wch_* -__ac -) - -257 -__THROW - -__ibu_pu__ -; - -259 #ifde -__CORRECT_ISO_CPP_WCHAR_H_PROTO - - -260 "C++" -wch_t - * - $wcbrk - ( -wch_t - * -__wcs -, cڡ wch_* -__ac -) - -261 -__THROW - - `__asm - ("wcbrk" -__ibu_pu__ -; - -262 "C++" cڡ -wch_t - * - $wcbrk - (cڡ -wch_t - * -__wcs -, - -263 cڡ -wch_t - * -__ac -) - -264 -__THROW - - `__asm - ("wcbrk" -__ibu_pu__ -; - -266 -wch_t - * - $wcbrk - (cڡ -wch_t - * -__wcs -, cڡ wch_* -__ac -) - -267 -__THROW - -__ibu_pu__ -; - -270 #ifde -__CORRECT_ISO_CPP_WCHAR_H_PROTO - - -271 "C++" -wch_t - * - $wcsr - ( -wch_t - * -__hayack -, cڡ wch_* -__ed -) - -272 -__THROW - - `__asm - ("wcsr" -__ibu_pu__ -; - -273 "C++" cڡ -wch_t - * - $wcsr - (cڡ -wch_t - * -__hayack -, - -274 cڡ -wch_t - * -__ed -) - -275 -__THROW - - `__asm - ("wcsr" -__ibu_pu__ -; - -277 -wch_t - * - $wcsr - (cڡ -wch_t - * -__hayack -, cڡ wch_* -__ed -) - -278 -__THROW - -__ibu_pu__ -; - -282 -wch_t - * - $wcok - ( -wch_t - * -__ri - -__s -, - -283 cڡ -wch_t - * -__ri - -__dim -, - -284 -wch_t - ** -__ri - -__r - -__THROW -; - -287 -size_t - - $wc - (cڡ -wch_t - * -__s - -__THROW - -__ibu_pu__ -; - -288 -__END_NAMESPACE_STD - - -290 #ifde -__USE_XOPEN - - -292 #ifde -__CORRECT_ISO_CPP_WCHAR_H_PROTO - - -293 "C++" -wch_t - * - $wcswcs - ( -wch_t - * -__hayack -, cڡ wch_* -__ed -) - -294 -__THROW - - `__asm - ("wcswcs" -__ibu_pu__ -; - -295 "C++" cڡ -wch_t - * - $wcswcs - (cڡ -wch_t - * -__hayack -, - -296 cڡ -wch_t - * -__ed -) - -297 -__THROW - - `__asm - ("wcswcs" -__ibu_pu__ -; - -299 -wch_t - * - $wcswcs - (cڡ -wch_t - * -__hayack -, cڡ wch_* -__ed -) - -300 -__THROW - -__ibu_pu__ -; - -304 #ifde -__USE_XOPEN2K8 - - -306 -size_t - - $wcn - (cڡ -wch_t - * -__s -, -size_t - -__maxn -) - -307 -__THROW - -__ibu_pu__ -; - -311 -__BEGIN_NAMESPACE_STD - - -313 #ifde -__CORRECT_ISO_CPP_WCHAR_H_PROTO - - -314 "C++" -wch_t - * - $wmemchr - ( -wch_t - * -__s -, wch_ -__c -, -size_t - -__n -) - -315 -__THROW - - `__asm - ("wmemchr" -__ibu_pu__ -; - -316 "C++" cڡ -wch_t - * - $wmemchr - (cڡ -wch_t - * -__s -, wch_ -__c -, - -317 -size_t - -__n -) - -318 -__THROW - - `__asm - ("wmemchr" -__ibu_pu__ -; - -320 -wch_t - * - $wmemchr - (cڡ -wch_t - * -__s -, wch_ -__c -, -size_t - -__n -) - -321 -__THROW - -__ibu_pu__ -; - -325  - $wmemcmp - (cڡ -wch_t - * -__s1 -, cڡ wch_* -__s2 -, -size_t - -__n -) - -326 -__THROW - -__ibu_pu__ -; - -329 -wch_t - * - $wmemy - ( -wch_t - * -__ri - -__s1 -, - -330 cڡ -wch_t - * -__ri - -__s2 -, -size_t - -__n - -__THROW -; - -334 -wch_t - * - $wmemmove - ( -wch_t - * -__s1 -, cڡ wch_* -__s2 -, -size_t - -__n -) - -335 -__THROW -; - -338 -wch_t - * - $wmemt - ( -wch_t - * -__s -, wch_ -__c -, -size_t - -__n - -__THROW -; - -339 -__END_NAMESPACE_STD - - -341 #ifde -__USE_GNU - - -344 -wch_t - * - $wmempy - ( -wch_t - * -__ri - -__s1 -, - -345 cڡ -wch_t - * -__ri - -__s2 -, -size_t - -__n -) - -346 -__THROW -; - -350 -__BEGIN_NAMESPACE_STD - - -353 -wt_t - - $btowc - ( -__c - -__THROW -; - -357  - $wob - ( -wt_t - -__c - -__THROW -; - -361  - $mbs - (cڡ -mbe_t - * -__ps - -__THROW - -__ibu_pu__ -; - -365 -size_t - - $mbowc - ( -wch_t - * -__ri - -__pwc -, - -366 cڡ * -__ri - -__s -, -size_t - -__n -, - -367 -mbe_t - * -__ri - -__p - -__THROW -; - -370 -size_t - - $wtomb - (* -__ri - -__s -, -wch_t - -__wc -, - -371 -mbe_t - * -__ri - -__ps - -__THROW -; - -374 -size_t - - $__mb - (cڡ * -__ri - -__s -, -size_t - -__n -, - -375 -mbe_t - * -__ri - -__ps - -__THROW -; - -376 -size_t - - $mb - (cڡ * -__ri - -__s -, -size_t - -__n -, - -377 -mbe_t - * -__ri - -__ps - -__THROW -; - -378 -__END_NAMESPACE_STD - - -380 #ifde -__USE_EXTERN_INLINES - - -386 -wt_t - - $__btowc_s - ( -__c - - `__asm - ("btowc"); - -387 -__ex_le - -wt_t - - -388 - `__NTH - ( - $btowc - ( -__c -)) - -389 {  ( - `__but_cڡt_p - ( -__c -) && __c >= '\0' && __c <= '\x7f' - -390 ? ( -wt_t - -__c - : - `__btowc_s - (__c)); - } -} - -392  - $__wob_s - ( -wt_t - -__c - - `__asm - ("wctob"); - -393 -__ex_le -  - -394 - `__NTH - ( - $wob - ( -wt_t - -__wc -)) - -395 {  ( - `__but_cڡt_p - ( -__wc -&& __w> -L -'\0' && __wc <= L'\x7f' - -396 ? ( -__wc - : - `__wob_s - (__wc)); - } -} - -398 -__ex_le - -size_t - - -399 -__NTH - ( - $mb - (cڡ * -__ri - -__s -, -size_t - -__n -, - -400 -mbe_t - * -__ri - -__ps -)) - -401 {  ( -__ps - ! -NULL - - -402 ? - `mbowc - ( -NULL -, -__s -, -__n -, -__ps -: - `__mb - (__s, __n, NULL)); - } -} - -405 -__BEGIN_NAMESPACE_STD - - -408 -size_t - - $mbtowcs - ( -wch_t - * -__ri - -__d -, - -409 cڡ ** -__ri - -__c -, -size_t - -__n -, - -410 -mbe_t - * -__ri - -__ps - -__THROW -; - -414 -size_t - - $wctombs - (* -__ri - -__d -, - -415 cڡ -wch_t - ** -__ri - -__c -, -size_t - -__n -, - -416 -mbe_t - * -__ri - -__ps - -__THROW -; - -417 -__END_NAMESPACE_STD - - -420 #ifdef -__USE_XOPEN2K8 - - -423 -size_t - - $mbowcs - ( -wch_t - * -__ri - -__d -, - -424 cڡ ** -__ri - -__c -, -size_t - -__nmc -, - -425 -size_t - -__n -, -mbe_t - * -__ri - -__ps - -__THROW -; - -429 -size_t - - $wcombs - (* -__ri - -__d -, - -430 cڡ -wch_t - ** -__ri - -__c -, - -431 -size_t - -__nwc -, size_ -__n -, - -432 -mbe_t - * -__ri - -__ps - -__THROW -; - -437 #ifde -__USE_XOPEN - - -439  - $wcwidth - ( -wch_t - -__c - -__THROW -; - -443  - $wcswidth - (cڡ -wch_t - * -__s -, -size_t - -__n - -__THROW -; - -447 -__BEGIN_NAMESPACE_STD - - -450  - $wcod - (cڡ -wch_t - * -__ri - -__Ō -, - -451 -wch_t - ** -__ri - -__dr - -__THROW -; - -452 -__END_NAMESPACE_STD - - -454 #ifde -__USE_ISOC99 - - -455 -__BEGIN_NAMESPACE_C99 - - -457  - $wcof - (cڡ -wch_t - * -__ri - -__Ō -, - -458 -wch_t - ** -__ri - -__dr - -__THROW -; - -459  - $wcd - (cڡ -wch_t - * -__ri - -__Ō -, - -460 -wch_t - ** -__ri - -__dr - -__THROW -; - -461 -__END_NAMESPACE_C99 - - -465 -__BEGIN_NAMESPACE_STD - - -468  - $wc - (cڡ -wch_t - * -__ri - -__Ō -, - -469 -wch_t - ** -__ri - -__dr -,  -__ba - -__THROW -; - -473  - $wcoul - (cڡ -wch_t - * -__ri - -__Ō -, - -474 -wch_t - ** -__ri - -__dr -,  -__ba -) - -475 -__THROW -; - -476 -__END_NAMESPACE_STD - - -478 #ifde -__USE_ISOC99 - - -479 -__BEGIN_NAMESPACE_C99 - - -482 -__exnsi__ - - -483  - $wcl - (cڡ -wch_t - * -__ri - -__Ō -, - -484 -wch_t - ** -__ri - -__dr -,  -__ba -) - -485 -__THROW -; - -489 -__exnsi__ - - -490  - $wcou - (cڡ -wch_t - * -__ri - -__Ō -, - -491 -wch_t - ** -__ri - -__dr -, - -492  -__ba - -__THROW -; - -493 -__END_NAMESPACE_C99 - - -496 #ifde -__USE_GNU - - -499 -__exnsi__ - - -500  - $wcoq - (cڡ -wch_t - * -__ri - -__Ō -, - -501 -wch_t - ** -__ri - -__dr -,  -__ba -) - -502 -__THROW -; - -506 -__exnsi__ - - -507  - $wcouq - (cڡ -wch_t - * -__ri - -__Ō -, - -508 -wch_t - ** -__ri - -__dr -, - -509  -__ba - -__THROW -; - -512 #ifde -__USE_GNU - - -526  - ~ - -530  - $wc_l - (cڡ -wch_t - * -__ri - -__Ō -, - -531 -wch_t - ** -__ri - -__dr -,  -__ba -, - -532 -__lo_t - -__loc - -__THROW -; - -534  - $wcoul_l - (cڡ -wch_t - * -__ri - -__Ō -, - -535 -wch_t - ** -__ri - -__dr -, - -536  -__ba -, -__lo_t - -__loc - -__THROW -; - -538 -__exnsi__ - - -539  - $wcl_l - (cڡ -wch_t - * -__ri - -__Ō -, - -540 -wch_t - ** -__ri - -__dr -, - -541  -__ba -, -__lo_t - -__loc - -__THROW -; - -543 -__exnsi__ - - -544  - $wcou_l - (cڡ -wch_t - * -__ri - -__Ō -, - -545 -wch_t - ** -__ri - -__dr -, - -546  -__ba -, -__lo_t - -__loc -) - -547 -__THROW -; - -549  - $wcod_l - (cڡ -wch_t - * -__ri - -__Ō -, - -550 -wch_t - ** -__ri - -__dr -, -__lo_t - -__loc -) - -551 -__THROW -; - -553  - $wcof_l - (cڡ -wch_t - * -__ri - -__Ō -, - -554 -wch_t - ** -__ri - -__dr -, -__lo_t - -__loc -) - -555 -__THROW -; - -557  - $wcd_l - (cڡ -wch_t - * -__ri - -__Ō -, - -558 -wch_t - ** -__ri - -__dr -, - -559 -__lo_t - -__loc - -__THROW -; - -563 #ifde -__USE_XOPEN2K8 - - -566 -wch_t - * - $wy - ( -wch_t - * -__ri - -__de -, - -567 cڡ -wch_t - * -__ri - -__c - -__THROW -; - -571 -wch_t - * - $wny - ( -wch_t - * -__ri - -__de -, - -572 cڡ -wch_t - * -__ri - -__c -, -size_t - -__n -) - -573 -__THROW -; - -580 -__FILE - * - $ݒ_wmemam - ( -wch_t - ** -__buoc -, -size_t - * -__sizoc - -__THROW -; - -583 #i -defed - -__USE_ISOC95 - || defed -__USE_UNIX98 - - -584 -__BEGIN_NAMESPACE_STD - - -587  - $fwide - ( -__FILE - * -__ -,  -__mode - -__THROW -; - -594  - `fwtf - ( -__FILE - * -__ri - -__am -, - -595 cڡ -wch_t - * -__ri - -__fm -, ...) - -601  - `wtf - (cڡ -wch_t - * -__ri - -__fm -, ...) - -604  - $swtf - ( -wch_t - * -__ri - -__s -, -size_t - -__n -, - -605 cڡ -wch_t - * -__ri - -__fm -, ...) - -606 -__THROW - ; - -612  - `vfwtf - ( -__FILE - * -__ri - -__s -, - -613 cڡ -wch_t - * -__ri - -__fm -, - -614 -__gnuc_va_li - -__g -) - -620  - `vwtf - (cڡ -wch_t - * -__ri - -__fm -, - -621 -__gnuc_va_li - -__g -) - -625  - $vswtf - ( -wch_t - * -__ri - -__s -, -size_t - -__n -, - -626 cڡ -wch_t - * -__ri - -__fm -, - -627 -__gnuc_va_li - -__g -) - -628 -__THROW - ; - -635  - `fwsnf - ( -__FILE - * -__ri - -__am -, - -636 cڡ -wch_t - * -__ri - -__fm -, ...) - -642  - `wsnf - (cڡ -wch_t - * -__ri - -__fm -, ...) - -645  - $swsnf - (cڡ -wch_t - * -__ri - -__s -, - -646 cڡ -wch_t - * -__ri - -__fm -, ...) - -647 -__THROW - ; - -649 #i -defed - -__USE_ISOC99 - && !defed -__USE_GNU - \ - -650 && (! -defed - -__LDBL_COMPAT - || !defed -__REDIRECT -) \ - -651 && ( -defed - -__STRICT_ANSI__ - || defed -__USE_XOPEN2K -) - -652 #ifde -__REDIRECT - - -656  - `__REDIRECT - ( -fwsnf -, ( -__FILE - * -__ri - -__am -, - -657 cڡ -wch_t - * -__ri - -__fm -, ...), - -658 -__isoc99_fwsnf -) - -660  - `__REDIRECT - ( -wsnf -, (cڡ -wch_t - * -__ri - -__fm -, ...), - -661 -__isoc99_wsnf -) - -663  - `__REDIRECT_NTH - ( -swsnf -, (cڡ -wch_t - * -__ri - -__s -, - -664 cڡ -wch_t - * -__ri - -__fm -, - -665 ...), -__isoc99_swsnf -) - -668  - `__isoc99_fwsnf - ( -__FILE - * -__ri - -__am -, - -669 cڡ -wch_t - * -__ri - -__fm -, ...); - -670  - `__isoc99_wsnf - (cڡ -wch_t - * -__ri - -__fm -, ...); - -671  - $__isoc99_swsnf - (cڡ -wch_t - * -__ri - -__s -, - -672 cڡ -wch_t - * -__ri - -__fm -, ...) - -673 -__THROW -; - -674  - #fwsnf - -__isoc99_fwsnf - - - ) - -675  - #wsnf - -__isoc99_wsnf - - - ) - -676  - #swsnf - -__isoc99_swsnf - - - ) - -680 -__END_NAMESPACE_STD - - -683 #ifde -__USE_ISOC99 - - -684 -__BEGIN_NAMESPACE_C99 - - -689  - `vfwsnf - ( -__FILE - * -__ri - -__s -, - -690 cڡ -wch_t - * -__ri - -__fm -, - -691 -__gnuc_va_li - -__g -) - -697  - `vwsnf - (cڡ -wch_t - * -__ri - -__fm -, - -698 -__gnuc_va_li - -__g -) - -701  - $vswsnf - (cڡ -wch_t - * -__ri - -__s -, - -702 cڡ -wch_t - * -__ri - -__fm -, - -703 -__gnuc_va_li - -__g -) - -704 -__THROW - ; - -706 #i! -defed - -__USE_GNU - \ - -707 && (! -defed - -__LDBL_COMPAT - || !defed -__REDIRECT -) \ - -708 && ( -defed - -__STRICT_ANSI__ - || defed -__USE_XOPEN2K -) - -709 #ifde -__REDIRECT - - -710  - `__REDIRECT - ( -vfwsnf -, ( -__FILE - * -__ri - -__s -, - -711 cڡ -wch_t - * -__ri - -__fm -, - -712 -__gnuc_va_li - -__g -), -__isoc99_vfwsnf -) - -714  - `__REDIRECT - ( -vwsnf -, (cڡ -wch_t - * -__ri - -__fm -, - -715 -__gnuc_va_li - -__g -), -__isoc99_vwsnf -) - -717  - `__REDIRECT_NTH - ( -vswsnf -, (cڡ -wch_t - * -__ri - -__s -, - -718 cڡ -wch_t - * -__ri - -__fm -, - -719 -__gnuc_va_li - -__g -), -__isoc99_vswsnf -) - -722  - `__isoc99_vfwsnf - ( -__FILE - * -__ri - -__s -, - -723 cڡ -wch_t - * -__ri - -__fm -, - -724 -__gnuc_va_li - -__g -); - -725  - `__isoc99_vwsnf - (cڡ -wch_t - * -__ri - -__fm -, - -726 -__gnuc_va_li - -__g -); - -727  - $__isoc99_vswsnf - (cڡ -wch_t - * -__ri - -__s -, - -728 cڡ -wch_t - * -__ri - -__fm -, - -729 -__gnuc_va_li - -__g - -__THROW -; - -730  - #vfwsnf - -__isoc99_vfwsnf - - - ) - -731  - #vwsnf - -__isoc99_vwsnf - - - ) - -732  - #vswsnf - -__isoc99_vswsnf - - - ) - -736 -__END_NAMESPACE_C99 - - -740 -__BEGIN_NAMESPACE_STD - - -745 -wt_t - - `fgwc - ( -__FILE - * -__am -); - -746 -wt_t - - `gwc - ( -__FILE - * -__am -); - -752 -wt_t - - `gwch - (); - -759 -wt_t - - `utwc - ( -wch_t - -__wc -, -__FILE - * -__am -); - -760 -wt_t - - `putwc - ( -wch_t - -__wc -, -__FILE - * -__am -); - -766 -wt_t - - `putwch - ( -wch_t - -__wc -); - -774 -wch_t - * - `fgws - (wch_* -__ri - -__ws -,  -__n -, - -775 -__FILE - * -__ri - -__am -); - -781  - `utws - (cڡ -wch_t - * -__ri - -__ws -, - -782 -__FILE - * -__ri - -__am -); - -789 -wt_t - - `ungwc - (wt_ -__wc -, -__FILE - * -__am -); - -790 -__END_NAMESPACE_STD - - -793 #ifde -__USE_GNU - - -801 -wt_t - - `gwc_uocked - ( -__FILE - * -__am -); - -802 -wt_t - - `gwch_uocked - (); - -810 -wt_t - - `fgwc_uocked - ( -__FILE - * -__am -); - -818 -wt_t - - `utwc_uocked - ( -wch_t - -__wc -, -__FILE - * -__am -); - -827 -wt_t - - `putwc_uocked - ( -wch_t - -__wc -, -__FILE - * -__am -); - -828 -wt_t - - `putwch_uocked - ( -wch_t - -__wc -); - -837 -wch_t - * - `fgws_uocked - (wch_* -__ri - -__ws -,  -__n -, - -838 -__FILE - * -__ri - -__am -); - -846  - `utws_uocked - (cڡ -wch_t - * -__ri - -__ws -, - -847 -__FILE - * -__ri - -__am -); - -851 -__BEGIN_NAMESPACE_C99 - - -855 -size_t - - $wcsime - ( -wch_t - * -__ri - -__s -, -size_t - -__maxsize -, - -856 cڡ -wch_t - * -__ri - -__fm -, - -857 cڡ  -tm - * -__ri - -__ - -__THROW -; - -858 -__END_NAMESPACE_C99 - - -860 #ifde -__USE_GNU - - -861  - ~ - -865 -size_t - - $wcsime_l - ( -wch_t - * -__ri - -__s -, -size_t - -__maxsize -, - -866 cڡ -wch_t - * -__ri - -__fm -, - -867 cڡ  -tm - * -__ri - -__ -, - -868 -__lo_t - -__loc - -__THROW -; - -877 #i -defed - -__USE_UNIX98 - && !defed -__USE_GNU - - -878  - #__ed_iswxxx - - - ) - -879  - ~ - -883 #i -__USE_FORTIFY_LEVEL - > 0 && -defed - -__ftify_funi - - -884  - ~ - -887 #ifde -__LDBL_COMPAT - - -888  - ~ - -891 -__END_DECLS - - -899 #unde -__ed_mbe_t - - -900 #unde -__ed_wt_t - - - @/usr/include/wctype.h - -23 #ide -_WCTYPE_H - - -25  - ~ - -26  - ~ - -28 #ide -__ed_iswxxx - - -29  - #_WCTYPE_H - 1 - - ) - -32  - #__ed_wt_t - - - ) - -33  - ~ - -37 #ide -WEOF - - -38  - #WEOF - (0xffffffffu) - - ) - -41 #unde -__ed_iswxxx - - -46 #ide -__iswxxx_defed - - -47  - #__iswxxx_defed - 1 - - ) - -49 -__BEGIN_NAMESPACE_C99 - - -52  - twy_t -; - -53 - g__END_NAMESPACE_C99 - - -55 #ide -_ISwb - - -60  - ~ - -61 #i -__BYTE_ORDER - = -__BIG_ENDIAN - - -62  - #_ISwb -( -b -(1 << (b)) - - ) - -64  - #_ISwb -( -b -) \ - -65 (( -b -) < 8 ? () ((1UL << (bit)) << 24) \ - -66 : (( -b -) < 16 ? () ((1UL << (bit)) << 8) \ - -67 : (( -b -) < 24 ? () ((1UL << (bit)) >> 8) \ - -68 : (((1UL << ( -b -)>> 24)))) - - ) - -73 - m__ISwu - = 0, - -74 - m__ISwlow - = 1, - -75 - m__ISwpha - = 2, - -76 - m__ISwdig - = 3, - -77 - m__ISwxdig - = 4, - -78 - m__ISwa - = 5, - -79 - m__ISwt - = 6, - -80 - m__ISwgph - = 7, - -81 - m__ISwbnk - = 8, - -82 - m__ISwl - = 9, - -83 - m__ISwpun - = 10, - -84 - m__ISwnum - = 11, - -86 - m_ISwu - = -_ISwb - ( -__ISwu -), - -87 - m_ISwlow - = -_ISwb - ( -__ISwlow -), - -88 - m_ISwpha - = -_ISwb - ( -__ISwpha -), - -89 - m_ISwdig - = -_ISwb - ( -__ISwdig -), - -90 - m_ISwxdig - = -_ISwb - ( -__ISwxdig -), - -91 - m_ISwa - = -_ISwb - ( -__ISwa -), - -92 - m_ISwt - = -_ISwb - ( -__ISwt -), - -93 - m_ISwgph - = -_ISwb - ( -__ISwgph -), - -94 - m_ISwbnk - = -_ISwb - ( -__ISwbnk -), - -95 - m_ISwl - = -_ISwb - ( -__ISwl -), - -96 - m_ISwpun - = -_ISwb - ( -__ISwpun -), - -97 - m_ISwnum - = -_ISwb - ( -__ISwnum -) - -102 -__BEGIN_DECLS - - -104 -__BEGIN_NAMESPACE_C99 - - -111  - $iswnum - ( -wt_t - -__wc - -__THROW -; - -117  - $iswpha - ( -wt_t - -__wc - -__THROW -; - -120  - $iswl - ( -wt_t - -__wc - -__THROW -; - -124  - $iswdig - ( -wt_t - -__wc - -__THROW -; - -128  - $iswgph - ( -wt_t - -__wc - -__THROW -; - -133  - $iswlow - ( -wt_t - -__wc - -__THROW -; - -136  - $iswt - ( -wt_t - -__wc - -__THROW -; - -141  - $iswpun - ( -wt_t - -__wc - -__THROW -; - -146  - $iswa - ( -wt_t - -__wc - -__THROW -; - -151  - $iswu - ( -wt_t - -__wc - -__THROW -; - -156  - $iswxdig - ( -wt_t - -__wc - -__THROW -; - -161 #ifde -__USE_ISOC99 - - -162  - $iswbnk - ( -wt_t - -__wc - -__THROW -; - -171 -wy_t - - $wy - (cڡ * -__ݔty - -__THROW -; - -175  - $iswy - ( -wt_t - -__wc -, -wy_t - -__desc - -__THROW -; - -176 -__END_NAMESPACE_C99 - - -183 -__BEGIN_NAMESPACE_C99 - - -186 cڡ - t__t32_t - * - twns_t -; - -187 -__END_NAMESPACE_C99 - - -188 #ifde -__USE_GNU - - -189 - $__USING_NAMESPACE_C99 -( -wns_t -) - -192 -__BEGIN_NAMESPACE_C99 - - -194 -wt_t - - $towlow - ( -wt_t - -__wc - -__THROW -; - -197 -wt_t - - $towu - ( -wt_t - -__wc - -__THROW -; - -198 -__END_NAMESPACE_C99 - - -200 -__END_DECLS - - -207 #ifde -_WCTYPE_H - - -213 -__BEGIN_DECLS - - -215 -__BEGIN_NAMESPACE_C99 - - -218 -wns_t - - $wns - (cڡ * -__ݔty - -__THROW -; - -221 -wt_t - - $towns - ( -wt_t - -__wc -, -wns_t - -__desc - -__THROW -; - -222 -__END_NAMESPACE_C99 - - -224 #ifde -__USE_XOPEN2K8 - - -226  - ~ - -230  - $iswnum_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -236  - $iswpha_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -239  - $iswl_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -243  - $iswdig_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -247  - $iswgph_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -252  - $iswlow_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -255  - $iswt_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -260  - $iswpun_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -265  - $iswa_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -270  - $iswu_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -275  - $iswxdig_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -280  - $iswbnk_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -284 -wy_t - - $wy_l - (cڡ * -__ݔty -, -__lo_t - -__lo -) - -285 -__THROW -; - -289  - $iswy_l - ( -wt_t - -__wc -, -wy_t - -__desc -, -__lo_t - -__lo -) - -290 -__THROW -; - -298 -wt_t - - $towlow_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -301 -wt_t - - $towu_l - ( -wt_t - -__wc -, -__lo_t - -__lo - -__THROW -; - -305 -wns_t - - $wns_l - (cڡ * -__ݔty -, -__lo_t - -__lo -) - -306 -__THROW -; - -309 -wt_t - - $towns_l - ( -wt_t - -__wc -, -wns_t - -__desc -, - -310 -__lo_t - -__lo - -__THROW -; - -314 -__END_DECLS - - - @ -1 -. -1 -/usr/include -36 -601 -clicbext.c -clicbext.h -cliconst.h -clistd.c -clistd.h -cmd_hier.c -cmd_hier.h -cmdtlv.h -css.h -libcli.h -libcliid.h -parser.c -serialize.c -serialize.h -string_util.c -string_util.h -testapp.c -/usr/include/assert.h -/usr/include/ctype.h -/usr/include/memory.h -/usr/include/signal.h -/usr/include/stdio.h -/usr/include/stdlib.h -/usr/include/string.h -/usr/include/alloca.h -/usr/include/endian.h -/usr/include/features.h -/usr/include/getopt.h -/usr/include/libio.h -/usr/include/time.h -/usr/include/xlocale.h -/usr/include/_G_config.h -/usr/include/stdc-predef.h -/usr/include/gconv.h -/usr/include/wchar.h -/usr/include/wctype.h diff --git a/CommandParser/main1.c b/CommandParser/main1.c index 20960af..5605dff 100644 --- a/CommandParser/main1.c +++ b/CommandParser/main1.c @@ -1,5 +1,5 @@ -#include "cmdtlv.h" -#include "libcli.h" +#include "CommandParser/cmdtlv.h" +#include "CommandParser/libcli.h" int diff --git a/CommandParser/main2.c b/CommandParser/main2.c index d415c2d..fcc503e 100644 --- a/CommandParser/main2.c +++ b/CommandParser/main2.c @@ -1,5 +1,5 @@ -#include "cmdtlv.h" -#include "libcli.h" +#include "CommandParser/cmdtlv.h" +#include "CommandParser/libcli.h" #define CMDODE_SHOW_NODE 1 #define CMDODE_SHOW_NODE_LOOPBACK 2 @@ -41,7 +41,7 @@ main(int argc, char **argv){ param_t *clear = libcli_get_clear_hook(); param_t *run = libcli_get_run_hook(); - /*Implementing CMD1*/ + /*Implementing CMD1 : show node */ { /*show node*/ static param_t node; /*Get the param_t variable, either a static memory or heap memory, not stack memory*/ @@ -86,7 +86,7 @@ main(int argc, char **argv){ 0, /*Applicable only for LEAF params. Always NULL for CMD param*/ INVALID, /*Always INVALID for CMD params*/ 0, /*Always NULL for CMD params*/ - "Help : node"); /*Help String*/ + "Help : loopback"); /*Help String*/ libcli_register_param(&node_name, &loopback); /*Add loopback param as suboption of param*/ @@ -102,7 +102,7 @@ main(int argc, char **argv){ IPV4, /*leaf param value type. loopback address is IPV4 type, hence pass IPV4*/ "lo-address", /*Applicable only for LEAF param. Give some name to leaf-params. It is this string that we will parse in application code to find the value passed by the user*/ "Help : Node's loopback address"); /*Help String*/ - libcli_register_param(&node_name, &loopback_address); /*Add node_name leaf param as suboption of param. Note that: show --> node --> node_name --> lo-address has been chained*/ + libcli_register_param(&loopback, &loopback_address); /*Add node_name leaf param as suboption of param. Note that: show --> node --> node_name --> lo-address has been chained*/ /* The below API should be called for param at which the command is supposed to invoke application callback rouine. * This CMDODE_SHOW_NODE_LOOPBACK code is sent to application using which we find which command was triggered, and accordingly what * are expected leaf params we need to parse. More on this ater.*/ diff --git a/CommandParser/main3.c b/CommandParser/main3.c index 26cb03e..9bd1e8a 100644 --- a/CommandParser/main3.c +++ b/CommandParser/main3.c @@ -1,5 +1,5 @@ -#include "cmdtlv.h" -#include "libcli.h" +#include "CommandParser/cmdtlv.h" +#include "CommandParser/libcli.h" #define CMDODE_SHOW_NODE 1 #define CMDODE_SHOW_NODE_LOOPBACK 2 @@ -88,7 +88,8 @@ main(int argc, char **argv){ init_param(&node_name, /*Address of the current param*/ LEAF, /*CMD for command param, LEAF for leaf param. Since it is a leaf param which takes node names, hence pass LEAF*/ 0, /*Always NULL for LEAF param*/ - node_callback_handler, /*Since this is complete command, it should invoke application routine. Pass the pointer to that routine here.*/ + node_loopback_callback_handler, + //node_callback_handler, /*Since this is complete command, it should invoke application routine. Pass the pointer to that routine here.*/ validate_node_name, /*Optional : can be NULL. This is also application specific routine, and perform validation test to the value entered by the user for this leaf param. If validation pass, then only node_callback_handler routine is invoked*/ STRING, /*leaf param value type. Node name is string, hence pass STRING*/ @@ -128,7 +129,7 @@ main(int argc, char **argv){ IPV4, /*leaf param value type. loopback address is IPV4 type, hence pass IPV4*/ "lo_address", /*Leaf id. Applicable only for LEAF param. Give some name to leaf-params. It is this string that we will parse in application code to find the value passed by the user*/ "Help : Node's loopback address"); /*Help String*/ - libcli_register_param(&node_name, &loopback_address); /*Add node_name leaf param as suboption of param. Note that: show --> node --> node_name --> lo-address has been chained*/ + libcli_register_param(&loopback, &loopback_address); /*Add node_name leaf param as suboption of param. Note that: show --> node --> node_name --> lo-address has been chained*/ /* The below API should be called for param at which the command is supposed to invoke application callback rouine. * This CMDODE_SHOW_NODE_LOOPBACK code is sent to application using which we find which command was triggered, and accordingly what * are expected leaf params we need to parse. More on this ater.*/ diff --git a/CommandParser/main4.c b/CommandParser/main4.c new file mode 100644 index 0000000..a33cf8d --- /dev/null +++ b/CommandParser/main4.c @@ -0,0 +1,223 @@ +#include "CommandParser/cmdtlv.h" +#include "CommandParser/libcli.h" + +#define CMDODE_SHOW_NODE 1 +#define CMDODE_SHOW_NODE_LOOPBACK 2 + +#define CMDODE_CONFIG_NODE_LOOPBACK 3 + +int +node_callback_handler(param_t *param, ser_buff_t *tlv_buf, op_mode enable_or_disable){ + printf("%s() is called ...\n", __FUNCTION__); + return 0; +} + +int +validate_node_name(char *value){ + + printf("%s() is called with value = %s\n", __FUNCTION__, value); + return VALIDATION_SUCCESS; /*else return VALIDATION_FAILED*/ +} + + +int +node_loopback_callback_handler(param_t *param, + ser_buff_t *tlv_buf, /*This is the buffer in which all leaf values in the command are present*/ + op_mode enable_or_disable){ /*This is meaningful for config commands, will discuss later*/ + printf("%s() is called ...\n", __FUNCTION__); + + int cmd_code = EXTRACT_CMD_CODE(tlv_buf); /*Extract the cmdcode. If you did not specify the command during command tree building, default cmdcode would come as -1 */ + printf("cmd_code = %d\n", cmd_code); + + tlv_struct_t *tlv = NULL; + char *node_name = NULL; + char *lo_address = NULL; + + TLV_LOOP_BEGIN(tlv_buf, tlv){ + if(strncmp(tlv->leaf_id, "node_name", strlen("node_name")) == 0){ /*node-name is the leaf id which was specified in init_param()*/ + node_name = tlv->value; /*actual value of leaf is present in tlv->value*/ + } + else if(strncmp(tlv->leaf_id, "lo_address", strlen("lo-address")) == 0){ /*lo-address is the leaf id*/ + lo_address = tlv->value; /*actual value of leaf is present in tlv->value*/ + } + } TLV_LOOP_END; + + switch(cmd_code){ + case CMDODE_SHOW_NODE_LOOPBACK: + printf("node_name = %s. lo-address = %s\n", node_name, lo_address); + break; + case CMDODE_CONFIG_NODE_LOOPBACK: + printf("node_name = %s. lo-address = %s, op_code = %s\n", + node_name, lo_address, + enable_or_disable == CONFIG_ENABLE ? "CONFIG_ENABLE" : "CONFIG_DISABLE"); + break; + default: + ; + } + return 0; +} + +int +validate_loopback_address(char *value){ + + printf("%s() is called with value = %s\n", __FUNCTION__, value); + return VALIDATION_SUCCESS; /*else return VALIDATION_FAILED*/ +} + +int +main(int argc, char **argv){ + + init_libcli(); + param_t *show = libcli_get_show_hook(); + param_t *debug = libcli_get_debug_hook(); + param_t *config = libcli_get_config_hook(); + param_t *clear = libcli_get_clear_hook(); + param_t *run = libcli_get_run_hook(); + + /*Implementing CMD1*/ + { + /*show node*/ + static param_t node; /*Get the param_t variable, either a static memory or heap memory, not stack memory*/ + init_param(&node, /*Address of the current param*/ + CMD, /*CMD for command param, LEAF for leaf param*/ + "node", /*Name of the param, this string is what is displayed in command line*/ + 0, /*callback : pointer to application function. Null in this case since 'show node' is not a complete command*/ + 0, /*Applicable only for LEAF params. Always NULL for CMD param*/ + INVALID, /*Always INVALID for CMD params*/ + 0, /*Always NULL for CMD params*/ + "Help : node"); /*Help String*/ + + libcli_register_param(show, &node); /*Add node param as suboption of show param*/ + + { + /*show node */ + static param_t node_name; /*Get the param_t variable, either a static memory or heap memory, not stack memory*/ + init_param(&node_name, /*Address of the current param*/ + LEAF, /*CMD for command param, LEAF for leaf param. Since it is a leaf param which takes node names, hence pass LEAF*/ + 0, /*Always NULL for LEAF param*/ + node_callback_handler, /*Since this is complete command, it should invoke application routine. Pass the pointer to that routine here.*/ + validate_node_name, /*Optional : can be NULL. This is also application specific routine, and perform validation test + to the value entered by the user for this leaf param. If validation pass, then only node_callback_handler routine is invoked*/ + STRING, /*leaf param value type. Node name is string, hence pass STRING*/ + "node_name", /*Leaf id. Applicable only for LEAF param. Give some name to leaf-params. It is this string that we will parse in application code to find the value passed by the user*/ + "Help : Node name"); /*Help String*/ + libcli_register_param(&node, &node_name); /*Add node_name leaf param as suboption of node param. Note that: show --> node --> node_name has been chained*/ + /*The below API should be called for param upto which the command is supposed to invoke application callback rouine. + * The CMDODE_SHOW_NODE code is sent to application using which we find which command was triggered, and accordingly what + * are expected leaf params we need to parse. More on this ater.*/ + set_param_cmd_code(&node_name, CMDODE_SHOW_NODE); + + /*Implementing CMD2*/ + + { + /*show node loopback*/ + static param_t loopback; /*Get the param_t variable, either a static memory or heap memory, not stack memory*/ + init_param(&loopback, /*Address of the current param*/ + CMD, /*CMD for command param, LEAF for leaf param*/ + "loopback", /*Name of the param, this string is what is displayed in command line*/ + 0, /*callback : pointer to application function. Null in this case since 'show node loopback' is not a complete command*/ + 0, /*Applicable only for LEAF params. Always NULL for CMD param*/ + INVALID, /*Always INVALID for CMD params*/ + 0, /*Always NULL for CMD params*/ + "Help : node"); /*Help String*/ + + libcli_register_param(&node_name, &loopback); /*Add loopback param as suboption of param*/ + + { + /*show node loopback */ + static param_t loopback_address; /*Get the param_t variable, either a static memory or heap memory, not stack memory*/ + init_param(&loopback_address, /*Address of the current param*/ + LEAF, /*CMD for command param, LEAF for leaf param. Since it is a leaf param which takes node names, hence pass LEAF*/ + 0, /*Always NULL for LEAF param*/ + node_loopback_callback_handler, /*Since this is complete command, it should invoke application routine. Pass the pointer to that routine here.*/ + validate_loopback_address, /*Optional : can be NULL. This is also application specific routine, and perform validation test + to the value entered by the user for this leaf param. If validation pass, then only node_loopback_callback_handler routine is invoked*/ + IPV4, /*leaf param value type. loopback address is IPV4 type, hence pass IPV4*/ + "lo_address", /*Leaf id. Applicable only for LEAF param. Give some name to leaf-params. It is this string that we will parse in application code to find the value passed by the user*/ + "Help : Node's loopback address"); /*Help String*/ + libcli_register_param(&loopback, &loopback_address); /*Add node_name leaf param as suboption of param. Note that: show --> node --> node_name --> lo-address has been chained*/ + /* The below API should be called for param at which the command is supposed to invoke application callback rouine. + * This CMDODE_SHOW_NODE_LOOPBACK code is sent to application using which we find which command was triggered, and accordingly what + * are expected leaf params we need to parse. More on this ater.*/ + set_param_cmd_code(&loopback_address, CMDODE_SHOW_NODE_LOOPBACK); + } + } + } + } + + /*Command Tree starts here: Note that all hooks are siblings */ + + + { + /*config node*/ + static param_t node; /*Get the param_t variable, either a static memory or heap memory, not stack memory*/ + init_param(&node, /*Address of the current param*/ + CMD, /*CMD for command param, LEAF for leaf param*/ + "node", /*Name of the param, this string is what is displayed in command line*/ + 0, /*callback : pointer to application function. Null in this case since 'config node' is not a complete command*/ + 0, /*Applicable only for LEAF params. Always NULL for CMD param*/ + INVALID, /*Always INVALID for CMD params*/ + 0, /*Always NULL for CMD params*/ + "Help : node"); /*Help String*/ + + libcli_register_param(config, &node); /*Add node param as suboption of config param*/ + + { + /*config node */ + static param_t node_name; /*Get the param_t variable, either a static memory or heap memory, not stack memory*/ + init_param(&node_name, /*Address of the current param*/ + LEAF, /*CMD for command param, LEAF for leaf param. Since it is a leaf param which takes node names, hence pass LEAF*/ + 0, /*Always NULL for LEAF param*/ + 0, /*Since this is an incomplete command, we are configuring a node, we need to have additional parameter which we are configuring*/ + validate_node_name, /*Optional : can be NULL. This is also application specific routine, and perform validation test + to the value entered by the user for this leaf param. If validation pass, then only node_callback_handler routine is invoked*/ + STRING, /*leaf param value type. Node name is string, hence pass STRING*/ + "node_name", /*Leaf id. Applicable only for LEAF param. Give some name to leaf-params. It is this string that we will parse in application code to find the value passed by the user*/ + "Help : Node name"); /*Help String*/ + libcli_register_param(&node, &node_name); /*Add node_name leaf param as suboption of node param. Note that: config --> node --> node_name has been chained*/ + /* No cmd code registered with above command because it is + * incomeplete command*/ + + /*Implementing CMD3*/ + + { + /*config node loopback*/ + static param_t loopback; /*Get the param_t variable, either a static memory or heap memory, not stack memory*/ + init_param(&loopback, /*Address of the current param*/ + CMD, /*CMD for command param, LEAF for leaf param*/ + "loopback", /*Name of the param, this string is what is displayed in command line*/ + 0, /*callback : pointer to application function. Null in this case since 'config node loopback' is not a complete command*/ + 0, /*Applicable only for LEAF params. Always NULL for CMD param*/ + INVALID, /*Always INVALID for CMD params*/ + 0, /*Always NULL for CMD params*/ + "Help : node"); /*Help String*/ + + libcli_register_param(&node_name, &loopback); /*Add loopback param as suboption of param*/ + + { + /*config node loopback */ + static param_t loopback_address; /*Get the param_t variable, either a static memory or heap memory, not stack memory*/ + init_param(&loopback_address, /*Address of the current param*/ + LEAF, /*CMD for command param, LEAF for leaf param. Since it is a leaf param which takes node names, hence pass LEAF*/ + 0, /*Always NULL for LEAF param*/ + node_loopback_callback_handler, /*Since this is complete command, it should invoke application routine. Pass the pointer to that routine here.*/ + validate_loopback_address, /*Optional : can be NULL. This is also application specific routine, and perform validation test + to the value entered by the user for this leaf param. If validation pass, then only node_loopback_callback_handler routine is invoked*/ + IPV4, /*leaf param value type. loopback address is IPV4 type, hence pass IPV4*/ + "lo_address", /*Leaf id. Applicable only for LEAF param. Give some name to leaf-params. It is this string that we will parse in application code to find the value passed by the user*/ + "Help : Node's loopback address"); /*Help String*/ + libcli_register_param(&loopback, &loopback_address); /*Add node_name leaf param as suboption of param. Note that: config --> node --> node_name --> loopback --> has been chained*/ + /* The below API should be called for param at which the command is supposed to invoke application callback rouine. + * This CMDODE_SHOW_NODE_LOOPBACK code is sent to application using which we find which command was triggered, and accordingly what + * are expected leaf params we need to parse. More on this ater.*/ + set_param_cmd_code(&loopback_address, CMDODE_CONFIG_NODE_LOOPBACK); + } + } + } + } + + support_cmd_negation(config); + /*Do not add any param in config command tree after above line*/ + start_shell(); + return 0; +} diff --git a/CommandParser/parser.c b/CommandParser/parser.c index f30298a..0f8c2da 100644 --- a/CommandParser/parser.c +++ b/CommandParser/parser.c @@ -19,17 +19,22 @@ #include #include #include +#include #include "string_util.h" +#include #include "cmdtlv.h" #include "cliconst.h" #include "css.h" #include "libcli.h" +#include "../EventDispatcher/event_dispatcher.h" extern param_t root; extern leaf_type_handler leaf_handler_array[LEAF_MAX]; extern ser_buff_t *tlv_buff; char console_name[TERMINAL_NAME_SIZE]; +static bool cmd_recording_enabled = true; + static param_t* array_of_possibilities[POSSIBILITY_ARRAY_SIZE]; @@ -97,6 +102,56 @@ find_matching_param(param_t **options, const char *cmd_name){ return array_of_possibilities[choice]; } +#ifdef ENABLE_EVENT_DISPATCHER +/* Structure to support callback invocation + * via Task Scheduler */ +typedef struct unified_cli_data_{ + + param_t *param; + ser_buff_t *tlv_ser_buff; + op_mode enable_or_disable; +} unified_cli_data_t; + +static void +task_cbk_handler_internal(void *arg, uint32_t arg_size){ + + unified_cli_data_t *unified_cli_data = + (unified_cli_data_t *)arg; + + unified_cli_data->param->callback( + unified_cli_data->param, + unified_cli_data->tlv_ser_buff, + unified_cli_data->enable_or_disable); + + /* Free the memory now */ + + free_serialize_buffer(unified_cli_data->tlv_ser_buff); + free(unified_cli_data); +} + +static void +task_invoke_appln_cbk_handler(param_t *param, + ser_buff_t *tlv_buff, + op_mode enable_or_disable) { + + unified_cli_data_t *unified_cli_data = + (unified_cli_data_t *)calloc(1, sizeof(unified_cli_data_t)); + + unified_cli_data->param = param; + unified_cli_data->tlv_ser_buff = calloc(1, sizeof(ser_buff_t)); + memcpy(unified_cli_data->tlv_ser_buff, tlv_buff, sizeof(ser_buff_t)); + unified_cli_data->tlv_ser_buff->b = calloc(1, + get_serialize_buffer_size(tlv_buff)); + memcpy(unified_cli_data->tlv_ser_buff->b, + tlv_buff->b, + get_serialize_buffer_size(tlv_buff)); + unified_cli_data->enable_or_disable = enable_or_disable; + + task_create_new_job_synchronous((void *)unified_cli_data, + task_cbk_handler_internal, + TASK_ONE_SHOT); +} +#endif static tlv_struct_t tlv; @@ -190,8 +245,13 @@ build_tlv_buffer(char **tokens, memset(command_code_tlv.value, 0, LEAF_VALUE_HOLDER_SIZE); sprintf(command_code_tlv.value, "%d", parent->CMDCODE); collect_tlv(tlv_buff, &command_code_tlv); - /*Now invoke the pplication handler*/ + /*Now invoke the application handler*/ +#ifndef ENABLE_EVENT_DISPATCHER INVOKE_APPLICATION_CALLBACK_HANDLER(parent, tlv_buff, enable_or_disable); +#else + task_invoke_appln_cbk_handler(parent, tlv_buff, enable_or_disable); + printf("CLI returned\n"); +#endif } else if(param == libcli_get_suboptions_param()) @@ -229,7 +289,12 @@ build_tlv_buffer(char **tokens, sprintf(command_code_tlv.value, "%d", param->CMDCODE); collect_tlv(tlv_buff, &command_code_tlv); } +#ifndef ENABLE_EVENT_DISPATCHER INVOKE_APPLICATION_CALLBACK_HANDLER(param, tlv_buff, enable_or_disable); +#else + task_invoke_appln_cbk_handler(param, tlv_buff, enable_or_disable); + printf("CLI returned\n"); +#endif } break; @@ -358,8 +423,13 @@ command_parser(void){ continue; } - if(status == COMPLETE) - record_command(CMD_HIST_RECORD_FILE, cons_input_buffer, strlen(cons_input_buffer)); + if(status == COMPLETE && cmd_recording_enabled) { + record_command(CMD_HIST_RECORD_FILE, + cons_input_buffer, + strlen(cons_input_buffer)); + } + + cmd_recording_enabled = true; memset(last_command_input_buffer, 0, CONS_INPUT_BUFFER_SIZE); @@ -373,3 +443,38 @@ command_parser(void){ } } +void +parse_file(char *file_name) { + + char line[256]; + char** tokens = NULL; + size_t token_cnt = 0; + + FILE *fptr = fopen(file_name, "r"); + + if (!fptr) { + + printf("Error : Could not open log file %s, errno = %d\n", + file_name, errno); + return; + } + + memset(line, 0, sizeof(line)); + + cmd_recording_enabled = false; + + while (fgets(line, sizeof(line) - 1, fptr)) { + + printf("Executing : %s", line); + + tokens = tokenizer(line, ' ', &token_cnt); + + reset_serialize_buffer(tlv_buff); + build_tlv_buffer(tokens, token_cnt); + memset(line, 0, sizeof(line)); + } + + fclose(fptr); + place_console(1); +} + diff --git a/CommandParser/screenshots/CommandParserScreenShot.PNG b/CommandParser/screenshots/CommandParserScreenShot.PNG deleted file mode 100755 index 9ea846a..0000000 Binary files a/CommandParser/screenshots/CommandParserScreenShot.PNG and /dev/null differ diff --git a/CommandParser/screenshots/CommandParserScreenShot2.PNG b/CommandParser/screenshots/CommandParserScreenShot2.PNG deleted file mode 100755 index 041c796..0000000 Binary files a/CommandParser/screenshots/CommandParserScreenShot2.PNG and /dev/null differ diff --git a/CommandParser/serialize.c b/CommandParser/serialize.c index 6ddcaaa..cdf1818 100644 --- a/CommandParser/serialize.c +++ b/CommandParser/serialize.c @@ -309,7 +309,7 @@ void truncate_serialize_buffer(ser_buff_t **b){ void print_buffer_details(ser_buff_t *b, const char *fn, int lineno){ #if 1 - printf("%s():%d : starting address = 0x%x\n", fn, lineno, (unsigned int)b); + printf("%s():%d : starting address = %p\n", fn, lineno, b); printf("size = %d\n", b->size); printf("next = %d\n", b->next); #endif diff --git a/EventDispatcher/.event_dispatcher.c.swp b/EventDispatcher/.event_dispatcher.c.swp new file mode 100644 index 0000000..72bd5fd Binary files /dev/null and b/EventDispatcher/.event_dispatcher.c.swp differ diff --git a/EventDispatcher/README.md b/EventDispatcher/README.md new file mode 100644 index 0000000..0c87e2c --- /dev/null +++ b/EventDispatcher/README.md @@ -0,0 +1,6 @@ +This project is about implement a Job Scheduler (also called an Event scheduler) Library. +Using this library : +1. There is no need of deploying any locking +2. All execution flows are serialized +3. No concurrent access +4. The execution unit can "fork" multiple execution units, all of which are serialized diff --git a/EventDispatcher/compile.sh b/EventDispatcher/compile.sh new file mode 100644 index 0000000..72cbe9d --- /dev/null +++ b/EventDispatcher/compile.sh @@ -0,0 +1,10 @@ +rm *.o +rm *exe +gcc -g -c event_dispatcher.c -o event_dispatcher.o +gcc -g -c main.c -o main.o +gcc -g -c ../gluethread/glthread.c -o ../gluethread/glthread.o +gcc -g -c main_pkt_q.c -o main_pkt_q.o +gcc -g -c main_mixed.c -o main_mixed.o +gcc -g main.o event_dispatcher.o ../gluethread/glthread.o -o exe -lpthread +gcc -g event_dispatcher.o ../gluethread/glthread.o main_pkt_q.o -o main_pkt_q.exe -lpthread +gcc -g event_dispatcher.o ../gluethread/glthread.o main_mixed.o -o main_mixed.exe -lpthread diff --git a/EventDispatcher/event_dispatcher.c b/EventDispatcher/event_dispatcher.c new file mode 100644 index 0000000..fbbe017 --- /dev/null +++ b/EventDispatcher/event_dispatcher.c @@ -0,0 +1,389 @@ +/* + * ===================================================================================== + * + * Filename: event_dispatcher.c + * + * Description: This file defines the routine to imeplement Event Dispatcher + * + * Version: 1.0 + * Created: 10/20/2020 09:01:49 AM + * Revision: none + * Compiler: gcc + * + * Author: ABHISHEK SAGAR (), sachinites@gmail.com + * Organization: Juniper Networks + * + * ===================================================================================== + */ + +#include +#include +#include +#include +#include +#include "event_dispatcher.h" + +static event_dispatcher_t ev_dis; +bool static debug = false; + + +void +event_dispatcher_init(){ + + pthread_mutex_init(&ev_dis.ev_dis_mutex, NULL); + init_glthread(&ev_dis.task_array_head); + ev_dis.pending_task_count = 0; + + ev_dis.ev_dis_state = EV_DIS_IDLE; + + pthread_cond_init(&ev_dis.ev_dis_cond_wait, NULL); + ev_dis.thread = NULL; + ev_dis.signal_sent = false; + ev_dis.current_task = NULL; +} + +static void +event_dispatcher_schedule_task(task_t *task){ + + /* TASK_PKT_Q_JOB could be scheduled again because of + * enque-ing of more pkts via external thread while + * the dispatcher mmay have removed it already from + * its task_array_head Queue for processing. + */ + if (task->task_type == TASK_PKT_Q_JOB && + !IS_GLTHREAD_LIST_EMPTY(&task->glue)) { + return; + } + + assert(IS_GLTHREAD_LIST_EMPTY(&task->glue)); + + EV_DIS_LOCK(&ev_dis); + + glthread_add_last(&ev_dis.task_array_head, &task->glue); + + if(debug) printf("Task Added to Dispatcher's Queue\n"); + + ev_dis.pending_task_count++; + + if (ev_dis.ev_dis_state == EV_DIS_IDLE && + ev_dis.signal_sent == false) { + + pthread_cond_signal(&ev_dis.ev_dis_cond_wait); + ev_dis.signal_sent = true; + if(debug) printf("signal sent to dispatcher\n"); + ev_dis.signal_sent_cnt++; + } + + if (task->app_cond_var) { + + if(debug) printf("Syn Task Waiting to return\n"); + pthread_cond_wait(task->app_cond_var, + &ev_dis.ev_dis_mutex); + EV_DIS_UNLOCK(&ev_dis); + if(debug) printf("Syn Task Returned\n"); + /* Task finished, free now */ + free(task->app_cond_var); + free(task); + } + else { + EV_DIS_UNLOCK(&ev_dis); + } +} + +static void +eve_dis_process_task_post_call(task_t *task){ + + pkt_q_t *pkt_q; + + switch(task->task_type) { + + case TASK_ONE_SHOT: + if(task->re_schedule == false){ + if(task->app_cond_var) { + /* We will free the task when it will be + * unlocked, dont free here */ + if(debug) printf("Dispatcher sent Signal Syn Task\n"); + pthread_cond_signal(task->app_cond_var); + } + else { + free(task); + } + } + else{ + task->re_schedule = false; + event_dispatcher_schedule_task(task); + } + break; + + case TASK_BG: + event_dispatcher_schedule_task(task); + break; + + case TASK_PKT_Q_JOB: + pkt_q = (pkt_q_t *)(task->data); + pthread_mutex_lock(&pkt_q->q_mutex); + + if (IS_GLTHREAD_LIST_EMPTY(&pkt_q->q_head)) { + if(debug) printf("Queue Exhausted, will stop untill pkt enqueue..\n"); + pthread_mutex_unlock(&pkt_q->q_mutex); + return; + } + pthread_mutex_unlock(&pkt_q->q_mutex); + if(debug) printf("more pkts in Queue, will continue..\n"); + event_dispatcher_schedule_task(task); + break; + + default: + ; + } +} + +static task_t * +event_dispatcher_get_next_task_to_run(){ + + glthread_t *curr; + curr = dequeue_glthread_first(&ev_dis.task_array_head); + if(!curr) return NULL; + return glue_to_task(curr); +} + +static void * +event_dispatcher_thread(void *arg) { + + task_t *task; + + EV_DIS_LOCK(&ev_dis); + + if(debug) printf("Dispatcher Thread started\n"); + + while(1) { + + task = event_dispatcher_get_next_task_to_run(); + + if(!task) { + ev_dis.ev_dis_state = EV_DIS_IDLE; + if(debug) printf("No Task to run, EVE DIS moved to IDLE STATE\n"); + ev_dis.signal_sent = false; + pthread_cond_wait(&ev_dis.ev_dis_cond_wait, + &ev_dis.ev_dis_mutex); + ev_dis.signal_recv_cnt++; + if(debug) printf("Eve Dis recvd Signal # %u, woken up\n", + ev_dis.signal_recv_cnt); + } + else { + ev_dis.pending_task_count--; + ev_dis.current_task = task; + + if(ev_dis.ev_dis_state != EV_DIS_TASK_FIN_WAIT){ + ev_dis.ev_dis_state = EV_DIS_TASK_FIN_WAIT; + if(debug) printf("EVE DIS moved to EV_DIS_TASK_FIN_WAIT, " + "dispatching the task\n"); + } + + EV_DIS_UNLOCK(&ev_dis); + + if(debug) printf("invoking the task\n"); + + task->ev_cbk(task->data, task->data_size); + task->no_of_invocations++; + if(debug) printf("Job execution finished\n"); + + eve_dis_process_task_post_call(task); + + EV_DIS_LOCK(&ev_dis); + ev_dis.current_task = NULL; + } + } + return 0; +} + +static task_t * +create_new_task(void *arg, + uint32_t arg_size, + event_cbk cbk){ + + task_t *task = calloc(1, sizeof(task_t)); + task->data = arg; + task->data_size = arg_size; + task->ev_cbk = cbk; + task->task_type = TASK_ONE_SHOT; /* default */ + task->re_schedule = false; + init_glthread(&task->glue); + return task; +} + +void +task_schedule_again(task_t *task){ + + if(task == NULL) { + task = eve_dis_get_current_task(); + } + assert(task->task_type == TASK_ONE_SHOT); + task->re_schedule = true; +} + +void +event_dispatcher_run(){ + + pthread_attr_t attr; + pthread_t *event_dis_thread; + + event_dis_thread = calloc(1, sizeof(pthread_t)); + ev_dis.thread = event_dis_thread; + + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + pthread_create(event_dis_thread, &attr, + event_dispatcher_thread, + NULL); +} + +task_t * +eve_dis_get_current_task(){ + + return ev_dis.current_task; +} + + +task_t * +task_create_new_job( + void *data, + event_cbk cbk, + task_type_t task_type) { + + task_t *task = create_new_task(data, 0, cbk); + task->task_type = task_type; + event_dispatcher_schedule_task(task); + return task; +} + +task_t * +task_create_new_job_synchronous( + void *data, + event_cbk cbk, + task_type_t task_type) { + + task_t *task = create_new_task(data, 0, cbk); + task->task_type = task_type; + task->app_cond_var = calloc(1, sizeof(pthread_cond_t)); + pthread_cond_init(task->app_cond_var, 0); + event_dispatcher_schedule_task(task); + return task; +} + +void +task_cancel_job(task_t *task){ + + /* Dont kill yourself while you are still executing + * and you are one SHOT */ + if(ev_dis.current_task->task_type == TASK_ONE_SHOT && + ev_dis.current_task == task) { + assert(0); + } + + if (task->task_type == TASK_PKT_Q_JOB) { + + pkt_q_t *pkt_q = (pkt_q_t *)(task->data); + + pthread_mutex_lock(&pkt_q->q_mutex); + delete_glthread_list(&pkt_q->q_head); + pthread_mutex_unlock(&pkt_q->q_mutex); + + EV_DIS_LOCK(&ev_dis); + remove_glthread(&pkt_q->glue); + remove_glthread(&task->glue); + free(task); + EV_DIS_UNLOCK(&ev_dis); + } + else if (task->task_type == TASK_ONE_SHOT || + task->task_type == TASK_BG ) { + EV_DIS_LOCK(&ev_dis); + remove_glthread(&task->glue); + EV_DIS_UNLOCK(&ev_dis); + free(task); + } +} + +typedef struct pkt_{ + + char *pkt; + uint32_t pkt_size; + glthread_t glue; +} pkt_t; +GLTHREAD_TO_STRUCT(glue_to_pkt, pkt_t, glue); + +static pkt_t * +task_get_new_pkt(char *pkt, uint32_t pkt_size){ + + pkt_t *_pkt = calloc(1, sizeof(pkt_t)); + _pkt->pkt = pkt; + _pkt->pkt_size = pkt_size; + init_glthread(&_pkt->glue); + return _pkt; +} + +char * +task_get_next_pkt(uint32_t *pkt_size){ + + pkt_t *pkt; + task_t *task; + char *actual_pkt; + glthread_t *curr; + + task = eve_dis_get_current_task(); + + pkt_q_t *pkt_q = (pkt_q_t *)(task->data); + + pthread_mutex_lock(&pkt_q->q_mutex); + curr = dequeue_glthread_first(&pkt_q->q_head); + if(debug) printf("%s() ...\n", __FUNCTION__); + pthread_mutex_unlock(&pkt_q->q_mutex); + + if(!curr) return NULL; + + pkt = glue_to_pkt(curr); + + actual_pkt = pkt->pkt; + *pkt_size = pkt->pkt_size; + free(pkt); + return actual_pkt; +} + + +void +pkt_q_enqueue(pkt_q_t *pkt_q, + char *_pkt, uint32_t pkt_size){ + + pkt_t *pkt = task_get_new_pkt(_pkt, pkt_size); + + if (debug) printf("%s() ... \n", __FUNCTION__); + + pthread_mutex_lock(&pkt_q->q_mutex); + glthread_add_next(&pkt_q->q_head, &pkt->glue); + pthread_mutex_unlock(&pkt_q->q_mutex); + + EV_DIS_LOCK(&ev_dis); + /* Job is already scheduled to run */ + if (!IS_GLTHREAD_LIST_EMPTY(&pkt_q->task->glue)){ + EV_DIS_UNLOCK(&ev_dis); + return; + } + EV_DIS_UNLOCK(&ev_dis); + if (debug) printf("%s() calling event_dispatcher_schedule_task()\n", + __FUNCTION__); + event_dispatcher_schedule_task(pkt_q->task); +} + +void +init_pkt_q(pkt_q_t *pkt_q, event_cbk cbk){ + + init_glthread(&pkt_q->q_head); + pthread_mutex_init(&pkt_q->q_mutex, NULL); + pkt_q->task = create_new_task((void *)pkt_q, + sizeof(*pkt_q), + cbk); + pkt_q->task->task_type = TASK_PKT_Q_JOB; + init_glthread(&pkt_q->glue); + glthread_add_next(&ev_dis.pkt_queue_head, &pkt_q->glue); +} + diff --git a/EventDispatcher/event_dispatcher.h b/EventDispatcher/event_dispatcher.h new file mode 100644 index 0000000..5536031 --- /dev/null +++ b/EventDispatcher/event_dispatcher.h @@ -0,0 +1,155 @@ +/* + * ===================================================================================== + * + * Filename: event_dispatcher.h + * + * Description: This file defines the data structures for Event Dispatcher Design + * + * Version: 1.0 + * Created: 10/20/2020 08:47:29 AM + * Revision: none + * Compiler: gcc + * + * Author: ABHISHEK SAGAR (), sachinites@gmail.com + * Organization: Juniper Networks + * + * ===================================================================================== + */ + +#ifndef EVENT_DISPATCHER +#define EVENT_DISPATCHER + +#include +#include +#include +#include "../gluethread/glthread.h" + + +#define ENABLE_EVENT_DISPATCHER +//#undef ENABLE_EVENT_DISPATCHER + + +typedef struct event_dispatcher_ event_dispatcher_t; +typedef struct task_ task_t; +typedef struct pkt_q_ pkt_q_t; + +typedef void (*event_cbk)(void *, uint32_t ); + +typedef enum { + + TASK_ONE_SHOT, + TASK_PKT_Q_JOB, + TASK_BG +} task_type_t; + +typedef enum { + + TASK_CLI, /* Is this Task created due to USER CLI interaction */ + TASK_TIMER, /* Is this Task created by timer expiration */ + TASK_PKT_THREAD, /* Is this Task created for pkt processing */ + TASK_FORKED_TASK, /* Is this Task forked by other task */ + TASK_DEFAULT +} task_src_t; + +typedef enum { + + TASK_PRIORITY_MEDIUM, + TASK_PRIORITY_LOW, + TASK_PRIORITY_HIGH +} task_priority_t; + +struct task_{ + + void *data; + uint32_t data_size; + event_cbk ev_cbk; + uint32_t no_of_invocations; + task_type_t task_type; + bool re_schedule; + pthread_cond_t *app_cond_var; /* For synchronous Schedules */ + glthread_t glue; +}; +GLTHREAD_TO_STRUCT(glue_to_task, + task_t, glue); + +struct pkt_q_{ + + glthread_t q_head; + pthread_mutex_t q_mutex; + task_t *task; + glthread_t glue; +}; +GLTHREAD_TO_STRUCT(glue_to_pkt_q, + pkt_q_t, glue); + +typedef enum { + + EV_DIS_IDLE, + EV_DIS_TASK_FIN_WAIT, +} EV_DISPATCHER_STATE; + +struct event_dispatcher_{ + + pthread_mutex_t ev_dis_mutex; + + glthread_t task_array_head; + uint32_t pending_task_count; + + glthread_t pkt_queue_head; + + EV_DISPATCHER_STATE ev_dis_state; + + pthread_cond_t ev_dis_cond_wait; + bool signal_sent; + uint32_t signal_sent_cnt; + uint32_t signal_recv_cnt; + pthread_t *thread; + + task_t *current_task; +}; + +#define EV_DIS_LOCK(ev_dis_ptr) \ + (pthread_mutex_lock(&((ev_dis_ptr)->ev_dis_mutex))) + +#define EV_DIS_UNLOCK(ev_dis_ptr) \ + (pthread_mutex_unlock(&((ev_dis_ptr)->ev_dis_mutex))) + +/* To be used by applications */ +task_t * +eve_dis_get_current_task(); + +void +event_dispatcher_init(); + +void +event_dispatcher_run(); + +task_t * +task_create_new_job( + void *data, + event_cbk cbk, + task_type_t task_type); + +task_t * +task_create_new_job_synchronous( + void *data, + event_cbk cbk, + task_type_t task_type); + +void +task_cancel_job(task_t *task); + +void +init_pkt_q(pkt_q_t *pkt_q, event_cbk cbk); + +void +pkt_q_enqueue(pkt_q_t *pkt_q, + char *pkt, uint32_t pkt_size); + +char * +task_get_next_pkt(uint32_t *pkt_size); + +void +task_schedule_again(task_t *task); + +#endif /* EVENT_DISPATCHER */ diff --git a/EventDispatcher/main.c b/EventDispatcher/main.c new file mode 100644 index 0000000..c50da39 --- /dev/null +++ b/EventDispatcher/main.c @@ -0,0 +1,82 @@ +/* + * ===================================================================================== + * + * Filename: main.c + * + * Description: This file demonstrates the use of Event Dispatcher + * + * Version: 1.0 + * Created: 10/20/2020 02:14:05 PM + * Revision: none + * Compiler: gcc + * + * Author: ABHISHEK SAGAR (), sachinites@gmail.com + * Organization: Juniper Networks + * + * ===================================================================================== + */ + + +#include +#include +#include +#include "event_dispatcher.h" + +void +compute_square2(void *arg, uint32_t arg_size){ + + int *a = (int *)arg; + printf("Square of %d = %d\n", *a, (*a) * (*a)); + task_t *task = eve_dis_get_current_task(); + printf("current task = %p\n", task); + //sleep(2); +} + +void +compute_square(void *arg, uint32_t arg_size){ + + int *a = (int *)arg; + printf("Square of %d = %d\n", *a, (*a) * (*a)); + + task_t *task = eve_dis_get_current_task(); + printf("current task = %p\n", task); + + a = calloc(1, sizeof(int)); + *a = 10; + //task_t *task_2 = create_new_task((void *)a, sizeof(*a), compute_square2); + task_t *task_2 = task_create_new_job(a, compute_square2, TASK_ONE_SHOT); + a = calloc(1, sizeof(int)); + *a = 20; + //task_t *task_3 = create_new_task((void *)a, sizeof(*a), compute_square2); + task_create_new_job(a, compute_square2, TASK_ONE_SHOT); + //event_dispatcher_schedule_task(task_2); + //event_dispatcher_schedule_task(task_3); + //sleep(5); +} + +int +main(int argc, char **argv){ + + event_dispatcher_init(); + event_dispatcher_run(); + //sleep(1); + + int *a = calloc(1, sizeof(int)); + *a = 5; + task_t *task_1 = task_create_new_job((void *)a, compute_square, TASK_ONE_SHOT); + + a = calloc(1, sizeof(int)); + *a = 6; + task_t *task_2 = task_create_new_job((void *)a, compute_square, TASK_ONE_SHOT); + + a = calloc(1, sizeof(int)); + *a = 9; + task_t *task_3 = task_create_new_job((void *)a, compute_square, TASK_ONE_SHOT); + + pause(); + return 0; +} + + + + diff --git a/EventDispatcher/main_mixed.c b/EventDispatcher/main_mixed.c new file mode 100644 index 0000000..40e67a6 --- /dev/null +++ b/EventDispatcher/main_mixed.c @@ -0,0 +1,167 @@ +/* + * ===================================================================================== + * + * Filename: main_pkt_q.c + * + * Description: This file demonstrates the use of pkt Q tasks + * + * Version: 1.0 + * Created: 10/21/2020 10:46:38 AM + * Revision: none + * Compiler: gcc + * + * Author: ABHISHEK SAGAR (), sachinites@gmail.com + * Organization: Juniper Networks + * + * ===================================================================================== + */ + +#include +#include +#include +#include "event_dispatcher.h" + +static pkt_q_t pkt_queue1; +static pkt_q_t pkt_queue2; +static pkt_q_t pkt_queue3; +static int tcount = 1; + +static void +pkt_reciever1(void *_pkt, uint32_t pkt_size) { + + static int i = 1; + char *pkt = (char *)task_get_next_pkt(&pkt_size); + + if(!pkt) { + return; + } + + for( ; pkt; + pkt = (char *)task_get_next_pkt(&pkt_size)) { + + printf("%s(%d) : pkt recvd : %s, tcount = %d\n", + __FUNCTION__, i, pkt, tcount); + + i++; + tcount++; + } +} + +static void +pkt_reciever2(void *_pkt, uint32_t pkt_size) { + + static int i = 1; + char *pkt = (char *)task_get_next_pkt(&pkt_size); + + if(!pkt) { + return; + } + + for( ; pkt; + pkt = (char *)task_get_next_pkt(&pkt_size)) { + + printf("%s(%d) : pkt recvd : %s, tcount = %d\n", + __FUNCTION__, i, pkt, tcount); + i++; + tcount++; + } +} + +static void +pkt_reciever3(void *_pkt, uint32_t pkt_size) { + + static int i = 1; + char *pkt = (char *)task_get_next_pkt(&pkt_size); + + if(!pkt) { + return; + } + + for( ; pkt; + pkt = (char *)task_get_next_pkt(&pkt_size)) { + + printf("%s(%d) : pkt recvd : %s, tcount = %d\n", + __FUNCTION__, i, pkt, tcount); + i++; + tcount++; + } +} + +void +compute_square2(void *arg, uint32_t arg_size){ + + int *a = (int *)arg; + printf("Square of %d = %d\n", *a, (*a) * (*a)); + task_t *task = eve_dis_get_current_task(); + printf("current task = %p\n", task); + //sleep(2); +} + +void +compute_square(void *arg, uint32_t arg_size){ + + int *a = (int *)arg; + printf("Square of %d = %d\n", *a, (*a) * (*a)); + + task_t *task = eve_dis_get_current_task(); + printf("current task = %p\n", task); + + a = calloc(1, sizeof(int)); + *a = 10; + //task_t *task_2 = create_new_task((void *)a, sizeof(*a), compute_square2); + task_t *task_2 = task_create_new_job(a, compute_square2, TASK_ONE_SHOT); + a = calloc(1, sizeof(int)); + *a = 20; + //task_t *task_3 = create_new_task((void *)a, sizeof(*a), compute_square2); + task_create_new_job(a, compute_square2, TASK_ONE_SHOT); + //event_dispatcher_schedule_task(task_2); + //event_dispatcher_schedule_task(task_3); + //sleep(5); +} + +int +main(int argc, char **argv){ + + /* init the event dispatcher */ + event_dispatcher_init(); + + /* init all pkt Queues */ + init_pkt_q(&pkt_queue1, pkt_reciever1); + init_pkt_q(&pkt_queue2, pkt_reciever2); + init_pkt_q(&pkt_queue3, pkt_reciever3); + + event_dispatcher_run(); + + /* prepare the pkt */ + int i = 0; + char pkt1[] = "This is first pkt"; + char pkt2[] = "This is second pkt"; + char pkt3[] = "This is third pkt"; + for(; i < 5; i++){ + pkt_q_enqueue(&pkt_queue3, pkt3, sizeof(pkt3)); + pkt_q_enqueue(&pkt_queue1, pkt1, sizeof(pkt1)); + pkt_q_enqueue(&pkt_queue1, pkt1, sizeof(pkt1)); + pkt_q_enqueue(&pkt_queue2, pkt2, sizeof(pkt2)); + pkt_q_enqueue(&pkt_queue1, pkt1, sizeof(pkt1)); + pkt_q_enqueue(&pkt_queue1, pkt1, sizeof(pkt1)); + pkt_q_enqueue(&pkt_queue2, pkt2, sizeof(pkt2)); + pkt_q_enqueue(&pkt_queue3, pkt3, sizeof(pkt3)); + } + + int *a = calloc(1, sizeof(int)); + *a = 5; + task_t *task_1 = task_create_new_job((void *)a, compute_square, TASK_ONE_SHOT); + + a = calloc(1, sizeof(int)); + *a = 6; + task_t *task_2 = task_create_new_job((void *)a, compute_square, TASK_ONE_SHOT); + + a = calloc(1, sizeof(int)); + *a = 9; + task_t *task_3 = task_create_new_job((void *)a, compute_square, TASK_ONE_SHOT); + + pause(); + return 0; +} + + diff --git a/EventDispatcher/main_pkt_q.c b/EventDispatcher/main_pkt_q.c new file mode 100644 index 0000000..7d00b68 --- /dev/null +++ b/EventDispatcher/main_pkt_q.c @@ -0,0 +1,119 @@ +/* + * ===================================================================================== + * + * Filename: main_pkt_q.c + * + * Description: This file demonstrates the use of pkt Q tasks + * + * Version: 1.0 + * Created: 10/21/2020 10:46:38 AM + * Revision: none + * Compiler: gcc + * + * Author: ABHISHEK SAGAR (), sachinites@gmail.com + * Organization: Juniper Networks + * + * ===================================================================================== + */ + +#include +#include +#include +#include "event_dispatcher.h" + +static pkt_q_t pkt_queue1; +static pkt_q_t pkt_queue2; +static pkt_q_t pkt_queue3; +static int tcount = 1; + +static void +pkt_reciever1(void *_pkt, uint32_t pkt_size) { + + static int i = 1; + char *pkt = (char *)task_get_next_pkt(&pkt_size); + + if(!pkt) { + return; + } + + for( ; pkt; + pkt = (char *)task_get_next_pkt(&pkt_size)) { + + printf("%s(%d) : pkt recvd : %s, tcount = %d\n", + __FUNCTION__, i, pkt, tcount); + + i++; + tcount++; + } +} + +static void +pkt_reciever2(void *_pkt, uint32_t pkt_size) { + + static int i = 1; + char *pkt = (char *)task_get_next_pkt(&pkt_size); + + if(!pkt) { + return; + } + + for( ; pkt; + pkt = (char *)task_get_next_pkt(&pkt_size)) { + + printf("%s(%d) : pkt recvd : %s, tcount = %d\n", + __FUNCTION__, i, pkt, tcount); + i++; + tcount++; + } +} + +static void +pkt_reciever3(void *_pkt, uint32_t pkt_size) { + + static int i = 1; + char *pkt = (char *)task_get_next_pkt(&pkt_size); + + if(!pkt) { + return; + } + + for( ; pkt; + pkt = (char *)task_get_next_pkt(&pkt_size)) { + + printf("%s(%d) : pkt recvd : %s, tcount = %d\n", + __FUNCTION__, i, pkt, tcount); + i++; + tcount++; + } +} + +int +main(int argc, char **argv){ + + /* init the event dispatcher */ + event_dispatcher_init(); + + /* init all pkt Queues */ + init_pkt_q(&pkt_queue1, pkt_reciever1); + init_pkt_q(&pkt_queue2, pkt_reciever2); + init_pkt_q(&pkt_queue3, pkt_reciever3); + + event_dispatcher_run(); + + /* prepare the pkt */ + int i = 0; + char pkt1[] = "This is first pkt"; + char pkt2[] = "This is second pkt"; + char pkt3[] = "This is third pkt"; + for(; i < 5; i++){ + pkt_q_enqueue(&pkt_queue3, pkt3, sizeof(pkt3)); + pkt_q_enqueue(&pkt_queue1, pkt1, sizeof(pkt1)); + pkt_q_enqueue(&pkt_queue1, pkt1, sizeof(pkt1)); + pkt_q_enqueue(&pkt_queue2, pkt2, sizeof(pkt2)); + pkt_q_enqueue(&pkt_queue1, pkt1, sizeof(pkt1)); + pkt_q_enqueue(&pkt_queue1, pkt1, sizeof(pkt1)); + pkt_q_enqueue(&pkt_queue2, pkt2, sizeof(pkt2)); + pkt_q_enqueue(&pkt_queue3, pkt3, sizeof(pkt3)); + } + pause(); +} diff --git a/Makefile b/Makefile index 81c26f6..d8527f8 100644 --- a/Makefile +++ b/Makefile @@ -32,11 +32,13 @@ OBJ=advert.o \ flex_algo.o \ tilfa.o \ mem_init.o \ - srte_dcm.o + srte_dcm.o \ + EventDispatcher/event_dispatcher.o + ${TARGET_NAME}:testapp.o ${OBJ} ${DSOBJ} @echo "Building final executable : ${TARGET_NAME}" @echo "Linking with libcli.a(${USECLILIB})" - @ ${CC} ${CFLAGS} ${INCLUDES} testapp.o ${OBJ} ${DSOBJ} -o ${TARGET_NAME} -L ./CommandParser ${USECLILIB} + @ ${CC} ${CFLAGS} ${INCLUDES} testapp.o ${OBJ} ${DSOBJ} -o ${TARGET_NAME} -L ./CommandParser ${USECLILIB} -lpthread @echo "Executable created : ${TARGET_NAME}. Finished." conflct_res.o:conflct_res.c @echo "Building conflct_res.o" @@ -122,6 +124,9 @@ spfclihandler.o:spfclihandler.c Libtrace/libtrace.o:Libtrace/libtrace.c @echo "Building Libtrace/libtrace.o" @ ${CC} ${CFLAGS} -c ${INCLUDES} Libtrace/libtrace.c -o Libtrace/libtrace.o +EventDispatcher/event_dispatcher.o:EventDispatcher/event_dispatcher.c + @echo "Building EventDispatcher/event_dispatcher.o" + ${CC} ${CFLAGS} -c -I EventDispatcher -I gluethread EventDispatcher/event_dispatcher.c -o EventDispatcher/event_dispatcher.o ${DSOBJ}: (cd LinkedList; make) @echo "Building Queue/Queue.o" @@ -152,6 +157,7 @@ cleanall: rm -f BitOp/*.o rm -f Tree/*.o rm -f LinuxMemoryManager/*.o + rm -f EventDispatcher/*.o (cd LinkedList; make clean) (cd CommandParser; make clean) make clean diff --git a/testapp.c b/testapp.c index ce0f8e1..7b28d0d 100644 --- a/testapp.c +++ b/testapp.c @@ -62,12 +62,18 @@ extern instance_t * tilfa_topo_page_408_node_protection(); extern instance_t * tilfa_topo_2_adj_segment_example(); extern instance_t * tilfa_ecmp_topology(); +extern void event_dispatcher_init(); +extern void event_dispatcher_run(); + /*Globals */ instance_t *instance = NULL; int main(int argc, char **argv){ + event_dispatcher_init(); + event_dispatcher_run(); + /* Lib cli initialization */ spf_init_dcm();