Lines Matching refs:argstate

248     STR_CMD_T cmd, ARGSTATE *argstate, int *print_only)  in process_args()  argument
255 bzero(argstate, sizeof (*argstate)); in process_args()
256 argstate->obj_state = obj_state; in process_args()
268 argstate->optmask |= getopt_ret->gor_idmask; in process_args()
310 !((argc == 2) && (argstate->optmask & STR_OPT_F_END)); in process_args()
325 argstate->argc = argc; in process_args()
326 argstate->argv = argv; in process_args()
328 if (argstate->optmask & STR_OPT_F_ANY) { in process_args()
330 argstate->str.sec = elfedit_sec_get(obj_state, ndx); in process_args()
345 argstate->str.sec = elfedit_sec_getstr(obj_state, ndx, 1); in process_args()
355 argstate->dyn.sec = NULL; in process_args()
356 elfedit_dyn_elt_init(&argstate->dyn.strpad); in process_args()
362 (argstate->str.sec->sec_shndx == in process_args()
364 argstate->dyn.sec = elfedit_sec_getdyn(obj_state, in process_args()
365 &argstate->dyn.data, &argstate->dyn.n); in process_args()
367 &argstate->dyn.strpad); in process_args()
373 if ((argstate->dyn.strpad.dn_seen != 0) && in process_args()
374 (argstate->dyn.strpad.dn_dyn.d_un.d_val > in process_args()
375 argstate->str.sec->sec_data->d_size)) { in process_args()
376 argstate->dyn.strpad.dn_seen = 0; in process_args()
379 EC_WORD(argstate->str.sec->sec_shndx), in process_args()
380 argstate->str.sec->sec_name, in process_args()
381 EC_XWORD(argstate->dyn.strpad.dn_dyn. in process_args()
383 EC_XWORD(argstate->str.sec-> in process_args()
397 if (argstate->optmask & STR_OPT_F_STRNDX) { in process_args()
398 argstate->str.ndx = (elfedit_atoui_range(argv[0], in process_args()
400 argstate->str.sec->sec_data->d_size - 1, NULL)); in process_args()
402 if (elfedit_sec_findstr(argstate->str.sec, 0, argv[0], in process_args()
403 &argstate->str.ndx) == 0) in process_args()
406 EC_WORD(argstate->str.sec->sec_shndx), in process_args()
407 argstate->str.sec->sec_name, argv[0]); in process_args()
410 argstate->str.ndx = 0; in process_args()
425 print_strtab(int autoprint, ARGSTATE *argstate) in print_strtab() argument
439 argstate->str.sec->sec_name); in print_strtab()
440 if (argstate->dyn.strpad.dn_seen) in print_strtab()
442 EC_WORD(argstate->str.sec->sec_data->d_size - in print_strtab()
443 argstate->dyn.strpad.dn_dyn.d_un.d_val), in print_strtab()
444 EC_WORD(argstate->str.sec->sec_data->d_size - 1), in print_strtab()
445 EC_WORD(argstate->dyn.strpad.dn_dyn.d_un.d_val)); in print_strtab()
449 str = argstate->str.sec->sec_data->d_buf; in print_strtab()
450 tbl_limit = str + argstate->str.sec->sec_data->d_size; in print_strtab()
451 ndx = argstate->str.ndx; in print_strtab()
452 if (argstate->argc > 0) { in print_strtab()
517 cmd_body_set(ARGSTATE *argstate) in cmd_body_set() argument
519 elfedit_section_t *strsec = argstate->str.sec; in cmd_body_set()
520 const char *newstr = argstate->argv[1]; in cmd_body_set()
521 Word ndx = argstate->str.ndx; in cmd_body_set()
527 if (!(argstate->optmask & STR_OPT_F_NOTERM)) in cmd_body_set()
542 (argstate->optmask & STR_OPT_F_NOTERM)) in cmd_body_set()
584 if (argstate->dyn.strpad.dn_seen) { in cmd_body_set()
585 elfedit_dyn_elt_t *strpad = &argstate->dyn.strpad; in cmd_body_set()
587 Word pad_ndx = argstate->str.sec->sec_data->d_size - in cmd_body_set()
599 argstate->dyn.data[strpad->dn_ndx].d_un.d_val = in cmd_body_set()
600 (argstate->str.sec->sec_data->d_size - new_pad_ndx); in cmd_body_set()
601 elfedit_modified_data(argstate->dyn.sec); in cmd_body_set()
619 cmd_body_zero(ARGSTATE *argstate) in cmd_body_zero() argument
621 elfedit_section_t *strsec = argstate->str.sec; in cmd_body_zero()
623 Word ndx = argstate->str.ndx; in cmd_body_zero()
628 if (argstate->optmask & STR_OPT_F_END) in cmd_body_zero()
629 count = strsec->sec_data->d_size - argstate->str.ndx; in cmd_body_zero()
630 else if (argstate->argc == 2) in cmd_body_zero()
631 count = elfedit_atoui_range(argstate->argv[1], in cmd_body_zero()
633 argstate->str.sec->sec_data->d_size - argstate->str.ndx, in cmd_body_zero()
668 ARGSTATE argstate; in cmd_body() local
672 process_args(obj_state, argc, argv, cmd, &argstate, &print_only); in cmd_body()
679 print_strtab(0, &argstate); in cmd_body()
687 ret = cmd_body_set(&argstate); in cmd_body()
691 argstate.str.ndx = elfedit_strtab_insert(obj_state, in cmd_body()
692 argstate.str.sec, argstate.dyn.sec, argstate.argv[0]); in cmd_body()
696 ret = cmd_body_zero(&argstate); in cmd_body()
704 elfedit_modified_data(argstate.str.sec); in cmd_body()
707 print_strtab(1, &argstate); in cmd_body()