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()
202 static void proc_read_default(struct vec_data *data) in proc_read_default() argument
206 ret = file_read_integer(data->default_vl_file, &default_vl); in proc_read_default()
211 child_vl = get_child_rdvl(data); in proc_read_default()
214 data->default_vl_file, in proc_read_default()
219 ksft_test_result_pass("%s default vector length %d\n", data->name, in proc_read_default()
221 data->default_vl = default_vl; in proc_read_default()
225 static void proc_write_min(struct vec_data *data) in proc_write_min() argument
234 ret = file_write_integer(data->default_vl_file, ARCH_MIN_VL); in proc_write_min()
239 ret = file_read_integer(data->default_vl_file, &new_default); in proc_write_min()
244 child_vl = get_child_rdvl(data); in proc_write_min()
247 data->default_vl_file, in proc_write_min()
252 ksft_test_result_pass("%s minimum vector length %d\n", data->name, in proc_write_min()
254 data->min_vl = new_default; in proc_write_min()
256 file_write_integer(data->default_vl_file, data->default_vl); in proc_write_min()
260 static void proc_write_max(struct vec_data *data) in proc_write_max() argument
270 ret = file_write_integer(data->default_vl_file, -1); in proc_write_max()
275 ret = file_read_integer(data->default_vl_file, &new_default); in proc_write_max()
280 child_vl = get_child_rdvl(data); in proc_write_max()
283 data->default_vl_file, in proc_write_max()
288 ksft_test_result_pass("%s maximum vector length %d\n", data->name, in proc_write_max()
290 data->max_vl = new_default; in proc_write_max()
292 file_write_integer(data->default_vl_file, data->default_vl); in proc_write_max()
296 static void prctl_get(struct vec_data *data) in prctl_get() argument
300 ret = prctl(data->prctl_get); in prctl_get()
303 data->name, errno, strerror(errno)); in prctl_get()
311 if (ret == data->rdvl()) in prctl_get()
313 data->name, ret); in prctl_get()
316 data->name, ret, data->rdvl()); in prctl_get()
320 static void prctl_set_same(struct vec_data *data) in prctl_set_same() argument
322 int cur_vl = data->rdvl(); in prctl_set_same()
325 ret = prctl(data->prctl_set, cur_vl); in prctl_set_same()
328 data->name, errno, strerror(errno)); in prctl_set_same()
332 ksft_test_result(cur_vl == data->rdvl(), in prctl_set_same()
334 data->name, cur_vl, data->rdvl()); in prctl_set_same()
338 static void prctl_set(struct vec_data *data) in prctl_set() argument
342 if (data->min_vl == data->max_vl) { in prctl_set()
344 data->name); in prctl_set()
349 ret = prctl(data->prctl_set, data->min_vl); in prctl_set()
352 data->name, data->min_vl, in prctl_set()
357 if ((ret & PR_SVE_VL_LEN_MASK) != data->min_vl) { in prctl_set()
359 data->name, data->min_vl, data->rdvl()); in prctl_set()
363 if (data->rdvl() != data->min_vl) { in prctl_set()
365 data->name, data->min_vl, data->rdvl()); in prctl_set()
370 ret = prctl(data->prctl_set, data->max_vl); in prctl_set()
373 data->name, data->max_vl, in prctl_set()
378 if ((ret & PR_SVE_VL_LEN_MASK) != data->max_vl) { in prctl_set()
380 data->name, data->max_vl, data->rdvl()); in prctl_set()
385 ret = prctl(data->prctl_get); in prctl_set()
388 data->name, errno, strerror(errno)); in prctl_set()
394 data->name); in prctl_set()
398 ksft_test_result_pass("%s prctl() set min/max\n", data->name); in prctl_set()
402 static void prctl_set_no_child(struct vec_data *data) in prctl_set_no_child() argument
406 if (data->min_vl == data->max_vl) { in prctl_set_no_child()
408 data->name); in prctl_set_no_child()
412 ret = prctl(data->prctl_set, data->min_vl); in prctl_set_no_child()
415 data->name, data->min_vl, in prctl_set_no_child()
421 ret = file_write_integer(data->default_vl_file, data->max_vl); in prctl_set_no_child()
426 child_vl = get_child_rdvl(data); in prctl_set_no_child()
427 if (child_vl != data->max_vl) { in prctl_set_no_child()
429 data->default_vl_file, in prctl_set_no_child()
430 data->max_vl, child_vl); in prctl_set_no_child()
434 ksft_test_result_pass("%s vector length used default\n", data->name); in prctl_set_no_child()
436 file_write_integer(data->default_vl_file, data->default_vl); in prctl_set_no_child()
440 static void prctl_set_for_child(struct vec_data *data) in prctl_set_for_child() argument
444 if (data->min_vl == data->max_vl) { in prctl_set_for_child()
446 data->name); in prctl_set_for_child()
450 ret = prctl(data->prctl_set, data->min_vl | PR_SVE_VL_INHERIT); in prctl_set_for_child()
453 data->name, data->min_vl, in prctl_set_for_child()
459 ret = prctl(data->prctl_get); in prctl_set_for_child()
462 data->name, errno, strerror(errno)); in prctl_set_for_child()
467 data->name); in prctl_set_for_child()
472 ret = file_write_integer(data->default_vl_file, data->max_vl); in prctl_set_for_child()
477 child_vl = get_child_rdvl(data); in prctl_set_for_child()
478 if (child_vl != data->min_vl) { in prctl_set_for_child()
480 data->default_vl_file, in prctl_set_for_child()
481 data->min_vl, child_vl); in prctl_set_for_child()
485 ksft_test_result_pass("%s vector length was inherited\n", data->name); in prctl_set_for_child()
487 file_write_integer(data->default_vl_file, data->default_vl); in prctl_set_for_child()
491 static void prctl_set_onexec(struct vec_data *data) in prctl_set_onexec() argument
495 if (data->min_vl == data->max_vl) { in prctl_set_onexec()
497 data->name); in prctl_set_onexec()
502 ret = file_write_integer(data->default_vl_file, data->max_vl); in prctl_set_onexec()
506 ret = prctl(data->prctl_set, data->max_vl); in prctl_set_onexec()
509 data->name, data->min_vl, in prctl_set_onexec()
515 ret = prctl(data->prctl_set, data->min_vl | PR_SVE_SET_VL_ONEXEC); in prctl_set_onexec()
518 data->name, data->min_vl, in prctl_set_onexec()
524 if (data->rdvl() != data->max_vl) { in prctl_set_onexec()
526 data->name); in prctl_set_onexec()
531 child_vl = get_child_rdvl(data); in prctl_set_onexec()
532 if (child_vl != data->min_vl) { in prctl_set_onexec()
534 data->min_vl, child_vl); in prctl_set_onexec()
538 ksft_test_result_pass("%s vector length set on exec\n", data->name); in prctl_set_onexec()
540 file_write_integer(data->default_vl_file, data->default_vl); in prctl_set_onexec()
544 static void prctl_set_all_vqs(struct vec_data *data) in prctl_set_all_vqs() argument
549 if (!data->min_vl || !data->max_vl) { in prctl_set_all_vqs()
551 data->name); in prctl_set_all_vqs()
559 ret = prctl(data->prctl_set, vl); in prctl_set_all_vqs()
563 data->name, vl, in prctl_set_all_vqs()
571 if (data->rdvl() != new_vl) { in prctl_set_all_vqs()
573 data->name, new_vl, data->rdvl()); in prctl_set_all_vqs()
582 if (vl < data->min_vl) { in prctl_set_all_vqs()
583 if (new_vl != data->min_vl) { in prctl_set_all_vqs()
585 data->name, vl, new_vl, in prctl_set_all_vqs()
586 data->min_vl); in prctl_set_all_vqs()
594 if (vl > data->max_vl) { in prctl_set_all_vqs()
595 if (new_vl != data->max_vl) { in prctl_set_all_vqs()
597 data->name, vl, new_vl, in prctl_set_all_vqs()
598 data->max_vl); in prctl_set_all_vqs()
608 data->name, vl, new_vl); in prctl_set_all_vqs()
616 data->name, errors); in prctl_set_all_vqs()
647 struct vec_data *data = &vec_data[i]; in main() local
650 supported = getauxval(data->hwcap_type) & data->hwcap; in main()
654 tests[j](data); in main()
657 data->name); in main()