Lines Matching refs:data

84 static int get_child_rdvl(struct vec_data *data)
122 ret = execl(data->rdvl_binary, data->rdvl_binary, NULL);
124 data->rdvl_binary, errno, strerror(errno));
213 static void proc_read_default(struct vec_data *data)
217 ret = file_read_integer(data->default_vl_file, &default_vl);
222 child_vl = get_child_rdvl(data);
225 data->default_vl_file,
230 ksft_test_result_pass("%s default vector length %d\n", data->name,
232 data->default_vl = default_vl;
236 static void proc_write_min(struct vec_data *data)
245 ret = file_write_integer(data->default_vl_file, ARCH_MIN_VL);
250 ret = file_read_integer(data->default_vl_file, &new_default);
255 child_vl = get_child_rdvl(data);
258 data->default_vl_file,
263 ksft_test_result_pass("%s minimum vector length %d\n", data->name,
265 data->min_vl = new_default;
267 file_write_integer(data->default_vl_file, data->default_vl);
271 static void proc_write_max(struct vec_data *data)
281 ret = file_write_integer(data->default_vl_file, -1);
286 ret = file_read_integer(data->default_vl_file, &new_default);
291 child_vl = get_child_rdvl(data);
294 data->default_vl_file,
299 ksft_test_result_pass("%s maximum vector length %d\n", data->name,
301 data->max_vl = new_default;
303 file_write_integer(data->default_vl_file, data->default_vl);
307 static void prctl_get(struct vec_data *data)
311 ret = prctl(data->prctl_get);
314 data->name, errno, strerror(errno));
322 if (ret == data->rdvl())
324 data->name, ret);
327 data->name, ret, data->rdvl());
331 static void prctl_set_same(struct vec_data *data)
333 int cur_vl = data->rdvl();
336 ret = prctl(data->prctl_set, cur_vl);
339 data->name, errno, strerror(errno));
343 ksft_test_result(cur_vl == data->rdvl(),
345 data->name, cur_vl, data->rdvl());
349 static void prctl_set(struct vec_data *data)
353 if (data->min_vl == data->max_vl) {
355 data->name);
360 ret = prctl(data->prctl_set, data->min_vl);
363 data->name, data->min_vl,
368 if ((ret & PR_SVE_VL_LEN_MASK) != data->min_vl) {
370 data->name, data->min_vl, data->rdvl());
374 if (data->rdvl() != data->min_vl) {
376 data->name, data->min_vl, data->rdvl());
381 ret = prctl(data->prctl_set, data->max_vl);
384 data->name, data->max_vl,
389 if ((ret & PR_SVE_VL_LEN_MASK) != data->max_vl) {
391 data->name, data->max_vl, data->rdvl());
396 ret = prctl(data->prctl_get);
399 data->name, errno, strerror(errno));
405 data->name);
409 ksft_test_result_pass("%s prctl() set min/max\n", data->name);
413 static void prctl_set_no_child(struct vec_data *data)
417 if (data->min_vl == data->max_vl) {
419 data->name);
423 ret = prctl(data->prctl_set, data->min_vl);
426 data->name, data->min_vl,
432 ret = file_write_integer(data->default_vl_file, data->max_vl);
437 child_vl = get_child_rdvl(data);
438 if (child_vl != data->max_vl) {
440 data->default_vl_file,
441 data->max_vl, child_vl);
445 ksft_test_result_pass("%s vector length used default\n", data->name);
447 file_write_integer(data->default_vl_file, data->default_vl);
451 static void prctl_set_for_child(struct vec_data *data)
455 if (data->min_vl == data->max_vl) {
457 data->name);
461 ret = prctl(data->prctl_set, data->min_vl | PR_SVE_VL_INHERIT);
464 data->name, data->min_vl,
470 ret = prctl(data->prctl_get);
473 data->name, errno, strerror(errno));
478 data->name);
483 ret = file_write_integer(data->default_vl_file, data->max_vl);
488 child_vl = get_child_rdvl(data);
489 if (child_vl != data->min_vl) {
491 data->default_vl_file,
492 data->min_vl, child_vl);
496 ksft_test_result_pass("%s vector length was inherited\n", data->name);
498 file_write_integer(data->default_vl_file, data->default_vl);
502 static void prctl_set_onexec(struct vec_data *data)
506 if (data->min_vl == data->max_vl) {
508 data->name);
513 ret = file_write_integer(data->default_vl_file, data->max_vl);
517 ret = prctl(data->prctl_set, data->max_vl);
520 data->name, data->min_vl,
526 ret = prctl(data->prctl_set, data->min_vl | PR_SVE_SET_VL_ONEXEC);
529 data->name, data->min_vl,
535 if (data->rdvl() != data->max_vl) {
537 data->name);
542 child_vl = get_child_rdvl(data);
543 if (child_vl != data->min_vl) {
545 data->min_vl, child_vl);
549 ksft_test_result_pass("%s vector length set on exec\n", data->name);
551 file_write_integer(data->default_vl_file, data->default_vl);
555 static void prctl_set_all_vqs(struct vec_data *data)
561 if (!data->min_vl || !data->max_vl) {
563 data->name);
574 ret = prctl(data->prctl_set, vl);
578 data->name, vl,
586 if (data->rdvl() != new_vl) {
588 data->name, new_vl, data->rdvl());
594 if (&vec_data[i] == data)
613 if (vl < data->min_vl) {
614 if (new_vl != data->min_vl) {
616 data->name, vl, new_vl,
617 data->min_vl);
625 if (vl > data->max_vl) {
626 if (new_vl != data->max_vl) {
628 data->name, vl, new_vl,
629 data->max_vl);
639 data->name, vl, new_vl);
647 data->name, errors);
655 * to provide data for other tests.
765 struct vec_data *data = &vec_data[i];
768 supported = getauxval(data->hwcap_type) & data->hwcap;
774 tests[j](data);
777 data->name);