Lines Matching refs:datap

335 quote_string_ascii(pargs_data_t *datap, char *src)  in quote_string_ascii()  argument
392 quote_string(pargs_data_t *datap, char *src) in quote_string() argument
404 if (datap->pd_conv_flags & CONV_STRICT_ASCII) in quote_string()
405 return (quote_string_ascii(datap, src)); in quote_string()
411 return (quote_string_ascii(datap, src)); in quote_string()
478 lookup_locale(pargs_data_t *datap) in lookup_locale() argument
490 for (i = 0; i < datap->pd_envc; i++) { in lookup_locale()
491 char *s = datap->pd_envp_strs[i]; in lookup_locale()
544 datap->pd_locale = pd_locale; in lookup_locale()
552 extract_string(pargs_data_t *datap, uintptr_t addr) in extract_string() argument
560 if (Pread_string(datap->pd_proc, result, size, addr) < 0) { in extract_string()
579 read_ptr_array(pargs_data_t *datap, uintptr_t offset, uintptr_t *buf, in read_ptr_array() argument
585 res = Pread(datap->pd_proc, buf, nelems * sizeof (uintptr_t), in read_ptr_array()
591 res = Pread(datap->pd_proc, arr32, nelems * sizeof (uint32_t), in read_ptr_array()
607 get_args(pargs_data_t *datap) in get_args() argument
609 size_t argc = datap->pd_psinfo->pr_argc; in get_args()
610 uintptr_t argvoff = datap->pd_psinfo->pr_argv; in get_args()
613 datap->pd_argc = argc; in get_args()
614 datap->pd_argv = safe_zalloc(argc * sizeof (uintptr_t)); in get_args()
616 if (read_ptr_array(datap, argvoff, datap->pd_argv, argc) <= 0) { in get_args()
617 free(datap->pd_argv); in get_args()
618 datap->pd_argv = NULL; in get_args()
622 datap->pd_argv_strs = safe_zalloc(argc * sizeof (char *)); in get_args()
624 if (datap->pd_argv[i] == 0) in get_args()
626 datap->pd_argv_strs[i] = extract_string(datap, in get_args()
627 datap->pd_argv[i]); in get_args()
635 pargs_data_t *datap = data; in build_env() local
637 if (datap->pd_envp != NULL) { in build_env()
638 if (datap->pd_envc == datap->pd_env_space) { in build_env()
643 void *new = realloc(datap->pd_envp, in build_env()
644 sizeof (uintptr_t) * datap->pd_env_space * 2); in build_env()
647 datap->pd_envp = new; in build_env()
649 new = realloc(datap->pd_envp_strs, in build_env()
650 sizeof (char *) * datap->pd_env_space * 2); in build_env()
653 datap->pd_envp_strs = new; in build_env()
655 datap->pd_env_space *= 2; in build_env()
658 datap->pd_envp[datap->pd_envc] = addr; in build_env()
660 datap->pd_envp_strs[datap->pd_envc] = NULL; in build_env()
662 datap->pd_envp_strs[datap->pd_envc] = strdup(str); in build_env()
665 datap->pd_envc++; in build_env()
671 get_env(pargs_data_t *datap) in get_env() argument
673 struct ps_prochandle *pr = datap->pd_proc; in get_env()
675 datap->pd_envc = 0; in get_env()
676 (void) Penv_iter(pr, build_env, datap); in get_env()
679 datap->pd_env_space = datap->pd_envc != 0 ? datap->pd_envc : 1; in get_env()
680 datap->pd_envp = safe_zalloc(sizeof (uintptr_t) * datap->pd_env_space); in get_env()
681 datap->pd_envp_strs = in get_env()
682 safe_zalloc(sizeof (char *) * datap->pd_env_space); in get_env()
684 datap->pd_envc = 0; in get_env()
685 (void) Penv_iter(pr, build_env, datap); in get_env()
862 get_auxv(pargs_data_t *datap) in get_auxv() argument
870 if (ps_pauxv(datap->pd_proc, &auxvp) != PS_OK) in get_auxv()
876 datap->pd_auxc = i; in get_auxv()
877 datap->pd_auxv = safe_zalloc(i * sizeof (auxv_t)); in get_auxv()
878 bcopy(auxvp, datap->pd_auxv, i * sizeof (auxv_t)); in get_auxv()
880 datap->pd_auxv_strs = safe_zalloc(datap->pd_auxc * sizeof (char *)); in get_auxv()
881 for (i = 0; i < datap->pd_auxc; i++) { in get_auxv()
882 struct aux_id *aux = aux_find(datap->pd_auxv[i].a_type); in get_auxv()
888 datap->pd_auxv_strs[i] = in get_auxv()
889 extract_string(datap, datap->pd_auxv[i].a_un.a_val); in get_auxv()
899 setup_conversions(pargs_data_t *datap, int *diflocale) in setup_conversions() argument
911 if (datap->pd_conv_flags & CONV_STRICT_ASCII) in setup_conversions()
917 if ((strcmp(datap->pd_locale, "C") == 0) || in setup_conversions()
918 (strcmp(datap->pd_locale, "POSIX") == 0)) { in setup_conversions()
919 datap->pd_conv_flags |= CONV_STRICT_ASCII; in setup_conversions()
926 if (setlocale(LC_ALL, datap->pd_locale) == NULL) { in setup_conversions()
963 if ((datap->pd_iconv = iconv_open(mycharset, targetcharset)) in setup_conversions()
975 datap->pd_conv_flags |= CONV_STRICT_ASCII; in setup_conversions()
977 datap->pd_conv_flags |= CONV_USE_ICONV; in setup_conversions()
987 cleanup_conversions(pargs_data_t *datap) in cleanup_conversions() argument
989 if (datap->pd_conv_flags & CONV_USE_ICONV) { in cleanup_conversions()
990 (void) iconv_close(datap->pd_iconv); in cleanup_conversions()
995 convert_run_iconv(pargs_data_t *datap, const char *str) in convert_run_iconv() argument
1010 (void) iconv(datap->pd_iconv, NULL, &inleft, in convert_run_iconv()
1015 if (iconv(datap->pd_iconv, &instrptr, &inleft, &outstrptr, in convert_run_iconv()
1049 convert_str(pargs_data_t *datap, const char *str, int *unprintable) in convert_str() argument
1053 if (datap->pd_conv_flags & CONV_STRICT_ASCII) { in convert_str()
1058 if ((datap->pd_conv_flags & CONV_USE_ICONV) == 0) { in convert_str()
1091 (void) setlocale(LC_ALL, datap->pd_locale); in convert_str()
1096 if ((retstr = convert_run_iconv(datap, retstr)) == NULL) { in convert_str()
1119 convert_array(pargs_data_t *datap, char **arr, size_t count, int *unprintable) in convert_array() argument
1130 arr[i] = convert_str(datap, arr[i], unprintable); in convert_array()
1139 free_data(pargs_data_t *datap) in free_data() argument
1143 for (i = 0; i < datap->pd_argc; i++) in free_data()
1144 free(datap->pd_argv_strs[i]); in free_data()
1145 free(datap->pd_argv); in free_data()
1146 free(datap->pd_argv_strs); in free_data()
1148 for (i = 0; i < datap->pd_envc; i++) in free_data()
1149 free(datap->pd_envp_strs[i]); in free_data()
1150 free(datap->pd_envp); in free_data()
1151 free(datap->pd_envp_strs); in free_data()
1153 for (i = 0; i < datap->pd_auxc; i++) in free_data()
1154 free(datap->pd_auxv_strs[i]); in free_data()
1155 free(datap->pd_auxv); in free_data()
1156 free(datap->pd_auxv_strs); in free_data()
1160 print_args(pargs_data_t *datap) in print_args() argument
1164 if (datap->pd_argv == NULL) { in print_args()
1169 for (i = 0; i < datap->pd_argc; i++) { in print_args()
1171 if (datap->pd_argv[i] == NULL) { in print_args()
1173 } else if (datap->pd_argv_strs[i] == NULL) { in print_args()
1176 (long)datap->pd_argv[i]); in print_args()
1178 (void) printf("%s\n", datap->pd_argv_strs[i]); in print_args()
1184 print_env(pargs_data_t *datap) in print_env() argument
1188 if (datap->pd_envp == NULL) { in print_env()
1193 for (i = 0; i < datap->pd_envc; i++) { in print_env()
1195 if (datap->pd_envp[i] == 0) { in print_env()
1197 } else if (datap->pd_envp_strs[i] == NULL) { in print_env()
1200 (long)datap->pd_envp[i]); in print_env()
1202 (void) printf("%s\n", datap->pd_envp_strs[i]); in print_env()
1208 print_cmdline(pargs_data_t *datap) in print_cmdline() argument
1216 for (i = 0; i < datap->pd_argc; i++) { in print_cmdline()
1217 if (datap->pd_argv == NULL || datap->pd_argv[i] == NULL || in print_cmdline()
1218 datap->pd_argv_strs[i] == NULL) { in print_cmdline()
1224 datap->pd_argv_strs[i] = in print_cmdline()
1225 quote_string(datap, datap->pd_argv_strs[i]); in print_cmdline()
1228 if (datap->pd_execname == NULL) { in print_cmdline()
1234 (void) printf("%s ", datap->pd_execname); in print_cmdline()
1236 for (i = 1; i < datap->pd_argc; i++) in print_cmdline()
1237 (void) printf("%s ", datap->pd_argv_strs[i]); in print_cmdline()
1245 print_auxv(pargs_data_t *datap) in print_auxv() argument
1253 for (i = 0; i < datap->pd_auxc; i++) { in print_auxv()
1258 pa = &datap->pd_auxv[i]; in print_auxv()
1269 aux->aux_decode(v, datap->pd_auxv_strs[i], in print_auxv()
1365 pargs_data_t datap; in main() local
1453 bzero(&datap, sizeof (datap)); in main()
1455 datap.pd_proc = Pr; in main()
1456 datap.pd_psinfo = &psinfo; in main()
1459 datap.pd_conv_flags |= CONV_STRICT_ASCII; in main()
1478 get_env(&datap); in main()
1480 get_args(&datap); in main()
1482 get_auxv(&datap); in main()
1502 datap.pd_execname = Pexecname(Pr, execname, in main()
1511 lookup_locale(&datap); in main()
1513 setup_conversions(&datap, &diflocale); in main()
1517 convert_array(&datap, datap.pd_argv_strs, in main()
1518 datap.pd_argc, &unprintable); in main()
1528 retc += print_cmdline(&datap); in main()
1530 psargs_conv = convert_str(&datap, psinfo.pr_psargs, in main()
1547 convert_array(&datap, datap.pd_argv_strs, in main()
1548 datap.pd_argc, &unprintable); in main()
1549 print_args(&datap); in main()
1555 convert_array(&datap, datap.pd_envp_strs, in main()
1556 datap.pd_envc, &unprintable); in main()
1557 print_env(&datap); in main()
1563 convert_array(&datap, datap.pd_auxv_strs, in main()
1564 datap.pd_auxc, &unprintable); in main()
1565 print_auxv(&datap); in main()
1569 cleanup_conversions(&datap); in main()
1570 free_data(&datap); in main()