tools/testing/selftests/arm64/signal/testcases/za_regs.c

Source file repositories/reference/linux-study-clean/tools/testing/selftests/arm64/signal/testcases/za_regs.c

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/arm64/signal/testcases/za_regs.c
Extension
.c
Size
2533 bytes
Lines
124
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: implementation source
Status
source implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

ZA_SIG_REGS_SIZE(sve_vq_from_vl(za->vl))) != 0) {
		fprintf(stderr, "ZA data invalid\n");
		return 1;
	}

	if (get_svcr() != 0) {
		fprintf(stderr, "Unexpected SVCR %lx\n", get_svcr());
		return 1;
	}

	return 0;
}

static int sme_regs(struct tdescr *td, siginfo_t *si, ucontext_t *uc)
{
	int i;

	for (i = 0; i < nvls; i++) {
		if (do_one_sme_vl(td, si, uc, vls[i]))
			return 1;
	}

	td->pass = 1;

	return 0;
}

struct tdescr tde = {
	.name = "ZA register",
	.descr = "Check that we get the right ZA registers reported",
	.feats_required = FEAT_SME,
	.timeout = 3,
	.init = sme_get_vls,
	.run = sme_regs,
};

Annotation

Implementation Notes