arch/arm64/include/asm/dcc.h

Source file repositories/reference/linux-study-clean/arch/arm64/include/asm/dcc.h

File Facts

System
Linux kernel
Corpus path
arch/arm64/include/asm/dcc.h
Extension
.h
Size
981 bytes
Lines
42
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

#ifndef __ASM_DCC_H
#define __ASM_DCC_H

#include <asm/barrier.h>
#include <asm/sysreg.h>

static inline u32 __dcc_getstatus(void)
{
	return read_sysreg(mdccsr_el0);
}

static inline char __dcc_getchar(void)
{
	char c = read_sysreg(dbgdtrrx_el0);
	isb();

	return c;
}

static inline void __dcc_putchar(char c)
{
	/*
	 * The typecast is to make absolutely certain that 'c' is
	 * zero-extended.
	 */
	write_sysreg((unsigned char)c, dbgdtrtx_el0);
	isb();
}

#endif

Annotation

Implementation Notes