Lines Matching refs:data

81 static int get_child_rdvl(struct vec_data *data)  in get_child_rdvl()  argument
119 ret = execl(data->rdvl_binary, data->rdvl_binary, NULL); in get_child_rdvl()
121 data->rdvl_binary, errno, strerror(errno)); in get_child_rdvl()
210 static void proc_read_default(struct vec_data *data) in proc_read_default() argument
214 ret = file_read_integer(data->default_vl_file, &default_vl); in proc_read_default()
219 child_vl = get_child_rdvl(data); in proc_read_default()
222 data->default_vl_file, in proc_read_default()
227 ksft_test_result_pass("%s default vector length %d\n", data->name, in proc_read_default()
229 data->default_vl = default_vl; in proc_read_default()
233 static void proc_write_min(struct vec_data *data) in proc_write_min() argument
242 ret = file_write_integer(data->default_vl_file, ARCH_MIN_VL); in proc_write_min()
247 ret = file_read_integer(data->default_vl_file, &new_default); in proc_write_min()
252 child_vl = get_child_rdvl(data); in proc_write_min()
255 data->default_vl_file, in proc_write_min()
260 ksft_test_result_pass("%s minimum vector length %d\n", data->name, in proc_write_min()
262 data->min_vl = new_default; in proc_write_min()
264 file_write_integer(data->default_vl_file, data->default_vl); in proc_write_min()
268 static void proc_write_max(struct vec_data *data) in proc_write_max() argument
278 ret = file_write_integer(data->default_vl_file, -1); in proc_write_max()
283 ret = file_read_integer(data->default_vl_file, &new_default); in proc_write_max()
288 child_vl = get_child_rdvl(data); in proc_write_max()
291 data->default_vl_file, in proc_write_max()
296 ksft_test_result_pass("%s maximum vector length %d\n", data->name, in proc_write_max()
298 data->max_vl = new_default; in proc_write_max()
300 file_write_integer(data->default_vl_file, data->default_vl); in proc_write_max()
304 static void prctl_get(struct vec_data *data) in prctl_get() argument
308 ret = prctl(data->prctl_get); in prctl_get()
311 data->name, errno, strerror(errno)); in prctl_get()
319 if (ret == data->rdvl()) in prctl_get()
321 data->name, ret); in prctl_get()
324 data->name, ret, data->rdvl()); in prctl_get()
328 static void prctl_set_same(struct vec_data *data) in prctl_set_same() argument
330 int cur_vl = data->rdvl(); in prctl_set_same()
333 ret = prctl(data->prctl_set, cur_vl); in prctl_set_same()
336 data->name, errno, strerror(errno)); in prctl_set_same()
340 ksft_test_result(cur_vl == data->rdvl(), in prctl_set_same()
342 data->name, cur_vl, data->rdvl()); in prctl_set_same()
346 static void prctl_set(struct vec_data *data) in prctl_set() argument
350 if (data->min_vl == data->max_vl) { in prctl_set()
352 data->name); in prctl_set()
357 ret = prctl(data->prctl_set, data->min_vl); in prctl_set()
360 data->name, data->min_vl, in prctl_set()
365 if ((ret & PR_SVE_VL_LEN_MASK) != data->min_vl) { in prctl_set()
367 data->name, data->min_vl, data->rdvl()); in prctl_set()
371 if (data->rdvl() != data->min_vl) { in prctl_set()
373 data->name, data->min_vl, data->rdvl()); in prctl_set()
378 ret = prctl(data->prctl_set, data->max_vl); in prctl_set()
381 data->name, data->max_vl, in prctl_set()
386 if ((ret & PR_SVE_VL_LEN_MASK) != data->max_vl) { in prctl_set()
388 data->name, data->max_vl, data->rdvl()); in prctl_set()
393 ret = prctl(data->prctl_get); in prctl_set()
396 data->name, errno, strerror(errno)); in prctl_set()
402 data->name); in prctl_set()
406 ksft_test_result_pass("%s prctl() set min/max\n", data->name); in prctl_set()
410 static void prctl_set_no_child(struct vec_data *data) in prctl_set_no_child() argument
414 if (data->min_vl == data->max_vl) { in prctl_set_no_child()
416 data->name); in prctl_set_no_child()
420 ret = prctl(data->prctl_set, data->min_vl); in prctl_set_no_child()
423 data->name, data->min_vl, in prctl_set_no_child()
429 ret = file_write_integer(data->default_vl_file, data->max_vl); in prctl_set_no_child()
434 child_vl = get_child_rdvl(data); in prctl_set_no_child()
435 if (child_vl != data->max_vl) { in prctl_set_no_child()
437 data->default_vl_file, in prctl_set_no_child()
438 data->max_vl, child_vl); in prctl_set_no_child()
442 ksft_test_result_pass("%s vector length used default\n", data->name); in prctl_set_no_child()
444 file_write_integer(data->default_vl_file, data->default_vl); in prctl_set_no_child()
448 static void prctl_set_for_child(struct vec_data *data) in prctl_set_for_child() argument
452 if (data->min_vl == data->max_vl) { in prctl_set_for_child()
454 data->name); in prctl_set_for_child()
458 ret = prctl(data->prctl_set, data->min_vl | PR_SVE_VL_INHERIT); in prctl_set_for_child()
461 data->name, data->min_vl, in prctl_set_for_child()
467 ret = prctl(data->prctl_get); in prctl_set_for_child()
470 data->name, errno, strerror(errno)); in prctl_set_for_child()
475 data->name); in prctl_set_for_child()
480 ret = file_write_integer(data->default_vl_file, data->max_vl); in prctl_set_for_child()
485 child_vl = get_child_rdvl(data); in prctl_set_for_child()
486 if (child_vl != data->min_vl) { in prctl_set_for_child()
488 data->default_vl_file, in prctl_set_for_child()
489 data->min_vl, child_vl); in prctl_set_for_child()
493 ksft_test_result_pass("%s vector length was inherited\n", data->name); in prctl_set_for_child()
495 file_write_integer(data->default_vl_file, data->default_vl); in prctl_set_for_child()
499 static void prctl_set_onexec(struct vec_data *data) in prctl_set_onexec() argument
503 if (data->min_vl == data->max_vl) { in prctl_set_onexec()
505 data->name); in prctl_set_onexec()
510 ret = file_write_integer(data->default_vl_file, data->max_vl); in prctl_set_onexec()
514 ret = prctl(data->prctl_set, data->max_vl); in prctl_set_onexec()
517 data->name, data->min_vl, in prctl_set_onexec()
523 ret = prctl(data->prctl_set, data->min_vl | PR_SVE_SET_VL_ONEXEC); in prctl_set_onexec()
526 data->name, data->min_vl, in prctl_set_onexec()
532 if (data->rdvl() != data->max_vl) { in prctl_set_onexec()
534 data->name); in prctl_set_onexec()
539 child_vl = get_child_rdvl(data); in prctl_set_onexec()
540 if (child_vl != data->min_vl) { in prctl_set_onexec()
542 data->min_vl, child_vl); in prctl_set_onexec()
546 ksft_test_result_pass("%s vector length set on exec\n", data->name); in prctl_set_onexec()
548 file_write_integer(data->default_vl_file, data->default_vl); in prctl_set_onexec()
552 static void prctl_set_all_vqs(struct vec_data *data) in prctl_set_all_vqs() argument
557 if (!data->min_vl || !data->max_vl) { in prctl_set_all_vqs()
559 data->name); in prctl_set_all_vqs()
567 ret = prctl(data->prctl_set, vl); in prctl_set_all_vqs()
571 data->name, vl, in prctl_set_all_vqs()
579 if (data->rdvl() != new_vl) { in prctl_set_all_vqs()
581 data->name, new_vl, data->rdvl()); in prctl_set_all_vqs()
590 if (vl < data->min_vl) { in prctl_set_all_vqs()
591 if (new_vl != data->min_vl) { in prctl_set_all_vqs()
593 data->name, vl, new_vl, in prctl_set_all_vqs()
594 data->min_vl); in prctl_set_all_vqs()
602 if (vl > data->max_vl) { in prctl_set_all_vqs()
603 if (new_vl != data->max_vl) { in prctl_set_all_vqs()
605 data->name, vl, new_vl, in prctl_set_all_vqs()
606 data->max_vl); in prctl_set_all_vqs()
616 data->name, vl, new_vl); in prctl_set_all_vqs()
624 data->name, errors); in prctl_set_all_vqs()
655 struct vec_data *data = &vec_data[i]; in main() local
658 supported = getauxval(data->hwcap_type) & data->hwcap; in main()
662 tests[j](data); in main()
665 data->name); in main()