tools/perf/arch/arm64/tests/cpuid-match.c

Source file repositories/reference/linux-study-clean/tools/perf/arch/arm64/tests/cpuid-match.c

File Facts

System
Linux kernel
Corpus path
tools/perf/arch/arm64/tests/cpuid-match.c
Extension
.c
Size
1130 bytes
Lines
38
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

// SPDX-License-Identifier: GPL-2.0
#include <linux/compiler.h>

#include "arch-tests.h"
#include "tests/tests.h"
#include "util/header.h"

int test__cpuid_match(struct test_suite *test __maybe_unused,
			     int subtest __maybe_unused)
{
	/* midr with no leading zeros matches */
	if (strcmp_cpuid_str("0x410fd0c0", "0x00000000410fd0c0"))
		return -1;
	/* Upper case matches */
	if (strcmp_cpuid_str("0x410fd0c0", "0x00000000410FD0C0"))
		return -1;
	/* r0p0 = r0p0 matches */
	if (strcmp_cpuid_str("0x00000000410fd480", "0x00000000410fd480"))
		return -1;
	/* r0p1 > r0p0 matches */
	if (strcmp_cpuid_str("0x00000000410fd480", "0x00000000410fd481"))
		return -1;
	/* r1p0 > r0p0 matches*/
	if (strcmp_cpuid_str("0x00000000410fd480", "0x00000000411fd480"))
		return -1;
	/* r0p0 < r0p1 doesn't match */
	if (!strcmp_cpuid_str("0x00000000410fd481", "0x00000000410fd480"))
		return -1;
	/* r0p0 < r1p0 doesn't match */
	if (!strcmp_cpuid_str("0x00000000411fd480", "0x00000000410fd480"))
		return -1;
	/* Different CPU doesn't match */
	if (!strcmp_cpuid_str("0x00000000410fd4c0", "0x00000000430f0af0"))
		return -1;

	return 0;
}

Annotation

Implementation Notes