arch/m68k/amiga/pcmcia.c
Source file repositories/reference/linux-study-clean/arch/m68k/amiga/pcmcia.c
File Facts
- System
- Linux kernel
- Corpus path
arch/m68k/amiga/pcmcia.c- Extension
.c- Size
- 2550 bytes
- Lines
- 122
- Domain
- Architecture Layer
- Bucket
- arch/m68k
- Inferred role
- Architecture Layer: exported/initcall integration point
- Status
- integration 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.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
Dependency Surface
linux/types.hlinux/jiffies.hlinux/timer.hlinux/module.hasm/amigayle.hasm/amipcmcia.h
Detected Declarations
function pcmcia_resetfunction pcmcia_copy_tuplefunction pcmcia_program_voltagefunction pcmcia_access_speedfunction pcmcia_write_enablefunction pcmcia_write_disableexport pcmcia_resetexport pcmcia_copy_tupleexport pcmcia_program_voltageexport pcmcia_access_speedexport pcmcia_write_enableexport pcmcia_write_disable
Annotated Snippet
if (id == tuple_id) {
len = (len > max_len)?max_len:len;
for (cnt = 0; cnt < len; cnt++) {
*dest++ = gayle_attribute[pos+(cnt<<1)];
}
return len;
}
pos += len<<1;
id = gayle_attribute[pos];
}
return 0;
}
EXPORT_SYMBOL(pcmcia_copy_tuple);
void pcmcia_program_voltage(int voltage)
{
unsigned char v;
switch (voltage) {
case PCMCIA_0V:
v = GAYLE_CFG_0V;
break;
case PCMCIA_5V:
v = GAYLE_CFG_5V;
break;
case PCMCIA_12V:
v = GAYLE_CFG_12V;
break;
default:
v = GAYLE_CFG_0V;
}
cfg_byte = (cfg_byte & 0xfc) | v;
gayle.config = cfg_byte;
}
EXPORT_SYMBOL(pcmcia_program_voltage);
void pcmcia_access_speed(int speed)
{
unsigned char s;
if (speed <= PCMCIA_SPEED_100NS)
s = GAYLE_CFG_100NS;
else if (speed <= PCMCIA_SPEED_150NS)
s = GAYLE_CFG_150NS;
else if (speed <= PCMCIA_SPEED_250NS)
s = GAYLE_CFG_250NS;
else
s = GAYLE_CFG_720NS;
cfg_byte = (cfg_byte & 0xf3) | s;
gayle.config = cfg_byte;
}
EXPORT_SYMBOL(pcmcia_access_speed);
void pcmcia_write_enable(void)
{
gayle.cardstatus = GAYLE_CS_WR|GAYLE_CS_DA;
}
EXPORT_SYMBOL(pcmcia_write_enable);
void pcmcia_write_disable(void)
{
gayle.cardstatus = 0;
}
EXPORT_SYMBOL(pcmcia_write_disable);
Annotation
- Immediate include surface: `linux/types.h`, `linux/jiffies.h`, `linux/timer.h`, `linux/module.h`, `asm/amigayle.h`, `asm/amipcmcia.h`.
- Detected declarations: `function pcmcia_reset`, `function pcmcia_copy_tuple`, `function pcmcia_program_voltage`, `function pcmcia_access_speed`, `function pcmcia_write_enable`, `function pcmcia_write_disable`, `export pcmcia_reset`, `export pcmcia_copy_tuple`, `export pcmcia_program_voltage`, `export pcmcia_access_speed`.
- Atlas domain: Architecture Layer / arch/m68k.
- Implementation status: integration 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.