lib/crypto/sparc/sha1.h
Source file repositories/reference/linux-study-clean/lib/crypto/sparc/sha1.h
File Facts
- System
- Linux kernel
- Corpus path
lib/crypto/sparc/sha1.h- Extension
.h- Size
- 1177 bytes
- Lines
- 44
- 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.
- Shared kernel service surface used by multiple subsystems, including helpers, cryptography, virtualization support, and async I/O infrastructure.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
asm/elf.hasm/opcodes.hasm/pstate.h
Detected Declarations
function sha1_blocksfunction sha1_mod_init_arch
Annotated Snippet
#include <asm/elf.h>
#include <asm/opcodes.h>
#include <asm/pstate.h>
static __ro_after_init DEFINE_STATIC_KEY_FALSE(have_sha1_opcodes);
asmlinkage void sha1_sparc64_transform(struct sha1_block_state *state,
const u8 *data, size_t nblocks);
static void sha1_blocks(struct sha1_block_state *state,
const u8 *data, size_t nblocks)
{
if (static_branch_likely(&have_sha1_opcodes))
sha1_sparc64_transform(state, data, nblocks);
else
sha1_blocks_generic(state, data, nblocks);
}
#define sha1_mod_init_arch sha1_mod_init_arch
static void sha1_mod_init_arch(void)
{
unsigned long cfr;
if (!(sparc64_elf_hwcap & HWCAP_SPARC_CRYPTO))
return;
__asm__ __volatile__("rd %%asr26, %0" : "=r" (cfr));
if (!(cfr & CFR_SHA1))
return;
static_branch_enable(&have_sha1_opcodes);
pr_info("Using sparc64 sha1 opcode optimized SHA-1 implementation\n");
}
Annotation
- Immediate include surface: `asm/elf.h`, `asm/opcodes.h`, `asm/pstate.h`.
- Detected declarations: `function sha1_blocks`, `function sha1_mod_init_arch`.
- Atlas domain: Kernel Services / lib.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.