arch/arm64/kernel/vdso/vgetrandom.c

Source file repositories/reference/linux-study-clean/arch/arm64/kernel/vdso/vgetrandom.c

File Facts

System
Linux kernel
Corpus path
arch/arm64/kernel/vdso/vgetrandom.c
Extension
.c
Size
492 bytes
Lines
16
Domain
Architecture Layer
Bucket
arch/arm64
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: GPL-2.0

#include <uapi/asm-generic/errno.h>

typeof(__cvdso_getrandom) __kernel_getrandom;

ssize_t __kernel_getrandom(void *buffer, size_t len, unsigned int flags, void *opaque_state, size_t opaque_len)
{
	if (alternative_has_cap_likely(ARM64_HAS_FPSIMD))
		return __cvdso_getrandom(buffer, len, flags, opaque_state, opaque_len);

	if (unlikely(opaque_len == ~0UL && !buffer && !len && !flags))
		return -ENOSYS;
	return getrandom_syscall(buffer, len, flags);
}

Annotation

Implementation Notes