Lines Matching refs:data

73 static int get_child_rdvl(struct vec_data *data)  in get_child_rdvl()  argument
111 ret = execl(data->rdvl_binary, data->rdvl_binary, NULL); in get_child_rdvl()
113 data->rdvl_binary, errno, strerror(errno)); in get_child_rdvl()
208 static void proc_read_default(struct vec_data *data) in proc_read_default() argument
212 ret = file_read_integer(data->default_vl_file, &default_vl); in proc_read_default()
217 child_vl = get_child_rdvl(data); in proc_read_default()
220 data->default_vl_file, in proc_read_default()
225 ksft_test_result_pass("%s default vector length %d\n", data->name, in proc_read_default()
227 data->default_vl = default_vl; in proc_read_default()
231 static void proc_write_min(struct vec_data *data) in proc_write_min() argument
240 ret = file_write_integer(data->default_vl_file, ARCH_MIN_VL); in proc_write_min()
245 ret = file_read_integer(data->default_vl_file, &new_default); in proc_write_min()
250 child_vl = get_child_rdvl(data); in proc_write_min()
253 data->default_vl_file, in proc_write_min()
258 ksft_test_result_pass("%s minimum vector length %d\n", data->name, in proc_write_min()
260 data->min_vl = new_default; in proc_write_min()
262 file_write_integer(data->default_vl_file, data->default_vl); in proc_write_min()
266 static void proc_write_max(struct vec_data *data) in proc_write_max() argument
276 ret = file_write_integer(data->default_vl_file, -1); in proc_write_max()
281 ret = file_read_integer(data->default_vl_file, &new_default); in proc_write_max()
286 child_vl = get_child_rdvl(data); in proc_write_max()
289 data->default_vl_file, in proc_write_max()
294 ksft_test_result_pass("%s maximum vector length %d\n", data->name, in proc_write_max()
296 data->max_vl = new_default; in proc_write_max()
298 file_write_integer(data->default_vl_file, data->default_vl); in proc_write_max()
302 static void prctl_get(struct vec_data *data) in prctl_get() argument
306 ret = prctl(data->prctl_get); in prctl_get()
309 data->name, errno, strerror(errno)); in prctl_get()
317 if (ret == data->rdvl()) in prctl_get()
319 data->name, ret); in prctl_get()
322 data->name, ret, data->rdvl()); in prctl_get()
326 static void prctl_set_same(struct vec_data *data) in prctl_set_same() argument
328 int cur_vl = data->rdvl(); in prctl_set_same()
331 ret = prctl(data->prctl_set, cur_vl); in prctl_set_same()
334 data->name, errno, strerror(errno)); in prctl_set_same()
338 if (cur_vl != data->rdvl()) in prctl_set_same()
340 data->name, ret); in prctl_set_same()
343 data->name, ret, data->rdvl()); in prctl_set_same()
347 static void prctl_set(struct vec_data *data) in prctl_set() argument
351 if (data->min_vl == data->max_vl) { in prctl_set()
353 data->name); in prctl_set()
358 ret = prctl(data->prctl_set, data->min_vl); in prctl_set()
361 data->name, data->min_vl, in prctl_set()
366 if ((ret & PR_SVE_VL_LEN_MASK) != data->min_vl) { in prctl_set()
368 data->name, data->min_vl, data->rdvl()); in prctl_set()
372 if (data->rdvl() != data->min_vl) { in prctl_set()
374 data->name, data->min_vl, data->rdvl()); in prctl_set()
379 ret = prctl(data->prctl_set, data->max_vl); in prctl_set()
382 data->name, data->max_vl, in prctl_set()
387 if ((ret & PR_SVE_VL_LEN_MASK) != data->max_vl) { in prctl_set()
389 data->name, data->max_vl, data->rdvl()); in prctl_set()
394 ret = prctl(data->prctl_get); in prctl_set()
397 data->name, errno, strerror(errno)); in prctl_set()
403 data->name); in prctl_set()
407 ksft_test_result_pass("%s prctl() set min/max\n", data->name); in prctl_set()
411 static void prctl_set_no_child(struct vec_data *data) in prctl_set_no_child() argument
415 if (data->min_vl == data->max_vl) { in prctl_set_no_child()
417 data->name); in prctl_set_no_child()
421 ret = prctl(data->prctl_set, data->min_vl); in prctl_set_no_child()
424 data->name, data->min_vl, in prctl_set_no_child()
430 ret = file_write_integer(data->default_vl_file, data->max_vl); in prctl_set_no_child()
435 child_vl = get_child_rdvl(data); in prctl_set_no_child()
436 if (child_vl != data->max_vl) { in prctl_set_no_child()
438 data->default_vl_file, in prctl_set_no_child()
439 data->max_vl, child_vl); in prctl_set_no_child()
443 ksft_test_result_pass("%s vector length used default\n", data->name); in prctl_set_no_child()
445 file_write_integer(data->default_vl_file, data->default_vl); in prctl_set_no_child()
449 static void prctl_set_for_child(struct vec_data *data) in prctl_set_for_child() argument
453 if (data->min_vl == data->max_vl) { in prctl_set_for_child()
455 data->name); in prctl_set_for_child()
459 ret = prctl(data->prctl_set, data->min_vl | PR_SVE_VL_INHERIT); in prctl_set_for_child()
462 data->name, data->min_vl, in prctl_set_for_child()
468 ret = prctl(data->prctl_get); in prctl_set_for_child()
471 data->name, errno, strerror(errno)); in prctl_set_for_child()
476 data->name); in prctl_set_for_child()
481 ret = file_write_integer(data->default_vl_file, data->max_vl); in prctl_set_for_child()
486 child_vl = get_child_rdvl(data); in prctl_set_for_child()
487 if (child_vl != data->min_vl) { in prctl_set_for_child()
489 data->default_vl_file, in prctl_set_for_child()
490 data->min_vl, child_vl); in prctl_set_for_child()
494 ksft_test_result_pass("%s vector length was inherited\n", data->name); in prctl_set_for_child()
496 file_write_integer(data->default_vl_file, data->default_vl); in prctl_set_for_child()
500 static void prctl_set_onexec(struct vec_data *data) in prctl_set_onexec() argument
504 if (data->min_vl == data->max_vl) { in prctl_set_onexec()
506 data->name); in prctl_set_onexec()
511 ret = file_write_integer(data->default_vl_file, data->max_vl); in prctl_set_onexec()
515 ret = prctl(data->prctl_set, data->max_vl); in prctl_set_onexec()
518 data->name, data->min_vl, in prctl_set_onexec()
524 ret = prctl(data->prctl_set, data->min_vl | PR_SVE_SET_VL_ONEXEC); in prctl_set_onexec()
527 data->name, data->min_vl, in prctl_set_onexec()
533 if (data->rdvl() != data->max_vl) { in prctl_set_onexec()
535 data->name); in prctl_set_onexec()
540 child_vl = get_child_rdvl(data); in prctl_set_onexec()
541 if (child_vl != data->min_vl) { in prctl_set_onexec()
543 data->min_vl, child_vl); in prctl_set_onexec()
547 ksft_test_result_pass("%s vector length set on exec\n", data->name); in prctl_set_onexec()
549 file_write_integer(data->default_vl_file, data->default_vl); in prctl_set_onexec()
578 struct vec_data *data = &vec_data[i]; in main() local
581 supported = getauxval(data->hwcap_type) & data->hwcap; in main()
585 tests[j](data); in main()
588 data->name); in main()