arch/sparc/include/asm/bitops_64.h
Source file repositories/reference/linux-study-clean/arch/sparc/include/asm/bitops_64.h
File Facts
- System
- Linux kernel
- Corpus path
arch/sparc/include/asm/bitops_64.h- Extension
.h- Size
- 1717 bytes
- Lines
- 64
- Domain
- Architecture Layer
- Bucket
- arch/sparc
- 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.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
Dependency Surface
linux/compiler.hasm/byteorder.hasm/barrier.hasm-generic/bitops/non-atomic.hasm-generic/bitops/fls64.hasm-generic/bitops/ffz.hasm-generic/bitops/sched.hasm-generic/bitops/const_hweight.hasm-generic/bitops/lock.hasm-generic/bitops/le.hasm-generic/bitops/ext2-atomic-setbit.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef _SPARC64_BITOPS_H
#define _SPARC64_BITOPS_H
#ifndef _LINUX_BITOPS_H
#error only <linux/bitops.h> can be included directly
#endif
#include <linux/compiler.h>
#include <asm/byteorder.h>
#include <asm/barrier.h>
int test_and_set_bit(unsigned long nr, volatile unsigned long *addr);
int test_and_clear_bit(unsigned long nr, volatile unsigned long *addr);
int test_and_change_bit(unsigned long nr, volatile unsigned long *addr);
void set_bit(unsigned long nr, volatile unsigned long *addr);
void clear_bit(unsigned long nr, volatile unsigned long *addr);
void change_bit(unsigned long nr, volatile unsigned long *addr);
int __attribute_const__ fls(unsigned int word);
int __attribute_const__ __fls(unsigned long word);
#include <asm-generic/bitops/non-atomic.h>
#include <asm-generic/bitops/fls64.h>
#ifdef __KERNEL__
int __attribute_const__ ffs(int x);
unsigned long __attribute_const__ __ffs(unsigned long);
#include <asm-generic/bitops/ffz.h>
#include <asm-generic/bitops/sched.h>
/*
* hweightN: returns the hamming weight (i.e. the number
* of bits set) of a N-bit word
*/
unsigned long __arch_hweight64(__u64 w);
unsigned int __arch_hweight32(unsigned int w);
unsigned int __arch_hweight16(unsigned int w);
unsigned int __arch_hweight8(unsigned int w);
#include <asm-generic/bitops/const_hweight.h>
#include <asm-generic/bitops/lock.h>
#endif /* __KERNEL__ */
#ifdef __KERNEL__
#include <asm-generic/bitops/le.h>
#include <asm-generic/bitops/ext2-atomic-setbit.h>
#endif /* __KERNEL__ */
#endif /* defined(_SPARC64_BITOPS_H) */
Annotation
- Immediate include surface: `linux/compiler.h`, `asm/byteorder.h`, `asm/barrier.h`, `asm-generic/bitops/non-atomic.h`, `asm-generic/bitops/fls64.h`, `asm-generic/bitops/ffz.h`, `asm-generic/bitops/sched.h`, `asm-generic/bitops/const_hweight.h`.
- Atlas domain: Architecture Layer / arch/sparc.
- 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.