lib/raid/xor/sparc/xor_arch.h

Source file repositories/reference/linux-study-clean/lib/raid/xor/sparc/xor_arch.h

File Facts

System
Linux kernel
Corpus path
lib/raid/xor/sparc/xor_arch.h
Extension
.h
Size
1041 bytes
Lines
36
Domain
Kernel Services
Bucket
lib
Inferred role
Kernel Services: implementation source
Status
source implementation candidate

Why This File Exists

Shared kernel service surface used by multiple subsystems, including helpers, cryptography, virtualization support, and async I/O infrastructure.

Dependency Surface

Detected Declarations

Annotated Snippet

#if defined(__sparc__) && defined(__arch64__)
#include <asm/spitfire.h>

extern struct xor_block_template xor_block_VIS;
extern struct xor_block_template xor_block_niagara;

static __always_inline void __init arch_xor_init(void)
{
	/* Force VIS for everything except Niagara.  */
	if (tlb_type == hypervisor &&
	    (sun4v_chip_type == SUN4V_CHIP_NIAGARA1 ||
	     sun4v_chip_type == SUN4V_CHIP_NIAGARA2 ||
	     sun4v_chip_type == SUN4V_CHIP_NIAGARA3 ||
	     sun4v_chip_type == SUN4V_CHIP_NIAGARA4 ||
	     sun4v_chip_type == SUN4V_CHIP_NIAGARA5))
		xor_force(&xor_block_niagara);
	else
		xor_force(&xor_block_VIS);
}
#else /* sparc64 */

extern struct xor_block_template xor_block_SPARC;

static __always_inline void __init arch_xor_init(void)
{
	xor_register(&xor_block_8regs);
	xor_register(&xor_block_32regs);
	xor_register(&xor_block_SPARC);
}
#endif /* !sparc64 */

Annotation

Implementation Notes