Lines Matching refs:datap

333 quote_string_ascii(pargs_data_t *datap, char *src)  in quote_string_ascii()  argument
390 quote_string(pargs_data_t *datap, char *src) in quote_string() argument
402 if (datap->pd_conv_flags & CONV_STRICT_ASCII) in quote_string()
403 return (quote_string_ascii(datap, src)); in quote_string()
409 return (quote_string_ascii(datap, src)); in quote_string()
476 lookup_locale(pargs_data_t *datap) in lookup_locale() argument
488 for (i = 0; i < datap->pd_envc; i++) { in lookup_locale()
489 char *s = datap->pd_envp_strs[i]; in lookup_locale()
542 datap->pd_locale = pd_locale; in lookup_locale()
550 extract_string(pargs_data_t *datap, uintptr_t addr) in extract_string() argument
558 if (Pread_string(datap->pd_proc, result, size, addr) < 0) { in extract_string()
577 read_ptr_array(pargs_data_t *datap, uintptr_t offset, uintptr_t *buf, in read_ptr_array() argument
583 res = Pread(datap->pd_proc, buf, nelems * sizeof (uintptr_t), in read_ptr_array()
589 res = Pread(datap->pd_proc, arr32, nelems * sizeof (uint32_t), in read_ptr_array()
605 get_args(pargs_data_t *datap) in get_args() argument
607 size_t argc = datap->pd_psinfo->pr_argc; in get_args()
608 uintptr_t argvoff = datap->pd_psinfo->pr_argv; in get_args()
611 datap->pd_argc = argc; in get_args()
612 datap->pd_argv = safe_zalloc(argc * sizeof (uintptr_t)); in get_args()
614 if (read_ptr_array(datap, argvoff, datap->pd_argv, argc) <= 0) { in get_args()
615 free(datap->pd_argv); in get_args()
616 datap->pd_argv = NULL; in get_args()
620 datap->pd_argv_strs = safe_zalloc(argc * sizeof (char *)); in get_args()
622 if (datap->pd_argv[i] == 0) in get_args()
624 datap->pd_argv_strs[i] = extract_string(datap, in get_args()
625 datap->pd_argv[i]); in get_args()
633 pargs_data_t *datap = data; in build_env() local
635 if (datap->pd_envp != NULL) { in build_env()
636 datap->pd_envp[datap->pd_envc] = addr; in build_env()
638 datap->pd_envp_strs[datap->pd_envc] = NULL; in build_env()
640 datap->pd_envp_strs[datap->pd_envc] = strdup(str); in build_env()
643 datap->pd_envc++; in build_env()
649 get_env(pargs_data_t *datap) in get_env() argument
651 struct ps_prochandle *pr = datap->pd_proc; in get_env()
653 datap->pd_envc = 0; in get_env()
654 (void) Penv_iter(pr, build_env, datap); in get_env()
656 datap->pd_envp = safe_zalloc(sizeof (uintptr_t) * datap->pd_envc); in get_env()
657 datap->pd_envp_strs = safe_zalloc(sizeof (char *) * datap->pd_envc); in get_env()
659 datap->pd_envc = 0; in get_env()
660 (void) Penv_iter(pr, build_env, datap); in get_env()
818 get_auxv(pargs_data_t *datap) in get_auxv() argument
826 if (ps_pauxv(datap->pd_proc, &auxvp) != PS_OK) in get_auxv()
832 datap->pd_auxc = i; in get_auxv()
833 datap->pd_auxv = safe_zalloc(i * sizeof (auxv_t)); in get_auxv()
834 bcopy(auxvp, datap->pd_auxv, i * sizeof (auxv_t)); in get_auxv()
836 datap->pd_auxv_strs = safe_zalloc(datap->pd_auxc * sizeof (char *)); in get_auxv()
837 for (i = 0; i < datap->pd_auxc; i++) { in get_auxv()
838 struct aux_id *aux = aux_find(datap->pd_auxv[i].a_type); in get_auxv()
844 datap->pd_auxv_strs[i] = in get_auxv()
845 extract_string(datap, datap->pd_auxv[i].a_un.a_val); in get_auxv()
855 setup_conversions(pargs_data_t *datap, int *diflocale) in setup_conversions() argument
867 if (datap->pd_conv_flags & CONV_STRICT_ASCII) in setup_conversions()
873 if ((strcmp(datap->pd_locale, "C") == 0) || in setup_conversions()
874 (strcmp(datap->pd_locale, "POSIX") == 0)) { in setup_conversions()
875 datap->pd_conv_flags |= CONV_STRICT_ASCII; in setup_conversions()
882 if (setlocale(LC_ALL, datap->pd_locale) == NULL) { in setup_conversions()
919 if ((datap->pd_iconv = iconv_open(mycharset, targetcharset)) in setup_conversions()
931 datap->pd_conv_flags |= CONV_STRICT_ASCII; in setup_conversions()
933 datap->pd_conv_flags |= CONV_USE_ICONV; in setup_conversions()
943 cleanup_conversions(pargs_data_t *datap) in cleanup_conversions() argument
945 if (datap->pd_conv_flags & CONV_USE_ICONV) { in cleanup_conversions()
946 (void) iconv_close(datap->pd_iconv); in cleanup_conversions()
951 convert_run_iconv(pargs_data_t *datap, const char *str) in convert_run_iconv() argument
966 (void) iconv(datap->pd_iconv, NULL, &inleft, in convert_run_iconv()
971 if (iconv(datap->pd_iconv, &instrptr, &inleft, &outstrptr, in convert_run_iconv()
1005 convert_str(pargs_data_t *datap, const char *str, int *unprintable) in convert_str() argument
1009 if (datap->pd_conv_flags & CONV_STRICT_ASCII) { in convert_str()
1014 if ((datap->pd_conv_flags & CONV_USE_ICONV) == 0) { in convert_str()
1047 (void) setlocale(LC_ALL, datap->pd_locale); in convert_str()
1052 if ((retstr = convert_run_iconv(datap, retstr)) == NULL) { in convert_str()
1075 convert_array(pargs_data_t *datap, char **arr, size_t count, int *unprintable) in convert_array() argument
1086 arr[i] = convert_str(datap, arr[i], unprintable); in convert_array()
1095 free_data(pargs_data_t *datap) in free_data() argument
1099 if (datap->pd_argv) { in free_data()
1100 for (i = 0; i < datap->pd_argc; i++) { in free_data()
1101 if (datap->pd_argv_strs[i] != NULL) in free_data()
1102 free(datap->pd_argv_strs[i]); in free_data()
1104 free(datap->pd_argv); in free_data()
1105 free(datap->pd_argv_strs); in free_data()
1108 if (datap->pd_envp) { in free_data()
1109 for (i = 0; i < datap->pd_envc; i++) { in free_data()
1110 if (datap->pd_envp_strs[i] != NULL) in free_data()
1111 free(datap->pd_envp_strs[i]); in free_data()
1113 free(datap->pd_envp); in free_data()
1114 free(datap->pd_envp_strs); in free_data()
1117 if (datap->pd_auxv) { in free_data()
1118 for (i = 0; i < datap->pd_auxc; i++) { in free_data()
1119 if (datap->pd_auxv_strs[i] != NULL) in free_data()
1120 free(datap->pd_auxv_strs[i]); in free_data()
1122 free(datap->pd_auxv); in free_data()
1123 free(datap->pd_auxv_strs); in free_data()
1128 print_args(pargs_data_t *datap) in print_args() argument
1132 if (datap->pd_argv == NULL) { in print_args()
1137 for (i = 0; i < datap->pd_argc; i++) { in print_args()
1139 if (datap->pd_argv[i] == NULL) { in print_args()
1141 } else if (datap->pd_argv_strs[i] == NULL) { in print_args()
1144 (long)datap->pd_argv[i]); in print_args()
1146 (void) printf("%s\n", datap->pd_argv_strs[i]); in print_args()
1152 print_env(pargs_data_t *datap) in print_env() argument
1156 if (datap->pd_envp == NULL) { in print_env()
1161 for (i = 0; i < datap->pd_envc; i++) { in print_env()
1163 if (datap->pd_envp[i] == 0) { in print_env()
1165 } else if (datap->pd_envp_strs[i] == NULL) { in print_env()
1168 (long)datap->pd_envp[i]); in print_env()
1170 (void) printf("%s\n", datap->pd_envp_strs[i]); in print_env()
1176 print_cmdline(pargs_data_t *datap) in print_cmdline() argument
1184 for (i = 0; i < datap->pd_argc; i++) { in print_cmdline()
1185 if (datap->pd_argv[i] == NULL || in print_cmdline()
1186 datap->pd_argv_strs[i] == NULL) { in print_cmdline()
1192 datap->pd_argv_strs[i] = in print_cmdline()
1193 quote_string(datap, datap->pd_argv_strs[i]); in print_cmdline()
1196 if (datap->pd_execname == NULL) { in print_cmdline()
1202 (void) printf("%s ", datap->pd_execname); in print_cmdline()
1204 for (i = 1; i < datap->pd_argc; i++) in print_cmdline()
1205 (void) printf("%s ", datap->pd_argv_strs[i]); in print_cmdline()
1213 print_auxv(pargs_data_t *datap) in print_auxv() argument
1221 for (i = 0; i < datap->pd_auxc; i++) { in print_auxv()
1226 pa = &datap->pd_auxv[i]; in print_auxv()
1237 aux->aux_decode(v, datap->pd_auxv_strs[i], in print_auxv()
1333 pargs_data_t datap; in main() local
1421 bzero(&datap, sizeof (datap)); in main()
1423 datap.pd_proc = Pr; in main()
1424 datap.pd_psinfo = &psinfo; in main()
1427 datap.pd_conv_flags |= CONV_STRICT_ASCII; in main()
1446 get_env(&datap); in main()
1448 get_args(&datap); in main()
1450 get_auxv(&datap); in main()
1470 datap.pd_execname = Pexecname(Pr, execname, in main()
1479 lookup_locale(&datap); in main()
1481 setup_conversions(&datap, &diflocale); in main()
1485 convert_array(&datap, datap.pd_argv_strs, in main()
1486 datap.pd_argc, &unprintable); in main()
1496 retc += print_cmdline(&datap); in main()
1498 psargs_conv = convert_str(&datap, psinfo.pr_psargs, in main()
1515 convert_array(&datap, datap.pd_argv_strs, in main()
1516 datap.pd_argc, &unprintable); in main()
1517 print_args(&datap); in main()
1523 convert_array(&datap, datap.pd_envp_strs, in main()
1524 datap.pd_envc, &unprintable); in main()
1525 print_env(&datap); in main()
1531 convert_array(&datap, datap.pd_auxv_strs, in main()
1532 datap.pd_auxc, &unprintable); in main()
1533 print_auxv(&datap); in main()
1537 cleanup_conversions(&datap); in main()
1538 free_data(&datap); in main()