drivers/scsi/pcmcia/nsp_io.h
Source file repositories/reference/linux-study-clean/drivers/scsi/pcmcia/nsp_io.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/pcmcia/nsp_io.h- Extension
.h- Size
- 7099 bytes
- Lines
- 275
- Domain
- Driver Families
- Bucket
- drivers/scsi
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
function nsp_writefunction nsp_readfunction nsp_index_readfunction nsp_index_writefunction nsp_multi_read_1function nsp_fifo8_readfunction nsp_multi_read_2function nsp_fifo16_readfunction nsp_multi_read_4function nsp_fifo32_readfunction nsp_multi_write_1function nsp_fifo8_writefunction nsp_multi_write_2function nsp_fifo16_writefunction nsp_multi_write_4function nsp_fifo32_writefunction nsp_mmio_writefunction nsp_mmio_readfunction nsp_mmio_index_readfunction nsp_mmio_index_writefunction nsp_mmio_multi_read_4function nsp_mmio_fifo32_readfunction nsp_mmio_multi_write_4function nsp_mmio_fifo32_write
Annotated Snippet
NinjaSCSI I/O funtions
By: YOKOTA Hiroshi <yokota@netlab.is.tsukuba.ac.jp>
This software may be used and distributed according to the terms of
the GNU General Public License.
*/
/* $Id: nsp_io.h,v 1.3 2003/08/04 21:15:26 elca Exp $ */
#ifndef __NSP_IO_H__
#define __NSP_IO_H__
static inline void nsp_write(unsigned int base,
unsigned int index,
unsigned char val);
static inline unsigned char nsp_read(unsigned int base,
unsigned int index);
static inline void nsp_index_write(unsigned int BaseAddr,
unsigned int Register,
unsigned char Value);
static inline unsigned char nsp_index_read(unsigned int BaseAddr,
unsigned int Register);
/*******************************************************************
* Basic IO
*/
static inline void nsp_write(unsigned int base,
unsigned int index,
unsigned char val)
{
outb(val, (base + index));
}
static inline unsigned char nsp_read(unsigned int base,
unsigned int index)
{
return inb(base + index);
}
/**********************************************************************
* Indexed IO
*/
static inline unsigned char nsp_index_read(unsigned int BaseAddr,
unsigned int Register)
{
outb(Register, BaseAddr + INDEXREG);
return inb(BaseAddr + DATAREG);
}
static inline void nsp_index_write(unsigned int BaseAddr,
unsigned int Register,
unsigned char Value)
{
outb(Register, BaseAddr + INDEXREG);
outb(Value, BaseAddr + DATAREG);
}
/*********************************************************************
* fifo func
*/
/* read 8 bit FIFO */
static inline void nsp_multi_read_1(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
insb(BaseAddr + Register, buf, count);
}
static inline void nsp_fifo8_read(unsigned int base,
void *buf,
unsigned long count)
{
/*nsp_dbg(NSP_DEBUG_DATA_IO, "buf=0x%p, count=0x%lx", buf, count);*/
nsp_multi_read_1(base, FIFODATA, buf, count);
}
/*--------------------------------------------------------------*/
/* read 16 bit FIFO */
static inline void nsp_multi_read_2(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
insw(BaseAddr + Register, buf, count);
Annotation
- Detected declarations: `function nsp_write`, `function nsp_read`, `function nsp_index_read`, `function nsp_index_write`, `function nsp_multi_read_1`, `function nsp_fifo8_read`, `function nsp_multi_read_2`, `function nsp_fifo16_read`, `function nsp_multi_read_4`, `function nsp_fifo32_read`.
- Atlas domain: Driver Families / drivers/scsi.
- 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.