drivers/scsi/aic7xxx/aic7xxx_inline.h

Source file repositories/reference/linux-study-clean/drivers/scsi/aic7xxx/aic7xxx_inline.h

File Facts

System
Linux kernel
Corpus path
drivers/scsi/aic7xxx/aic7xxx_inline.h
Extension
.h
Size
3774 bytes
Lines
98
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.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef _AIC7XXX_INLINE_H_
#define _AIC7XXX_INLINE_H_

/************************* Sequencer Execution Control ************************/
int  ahc_is_paused(struct ahc_softc *ahc);
void ahc_pause(struct ahc_softc *ahc);
void ahc_unpause(struct ahc_softc *ahc);

/************************** Memory mapping routines ***************************/
void	ahc_sync_sglist(struct ahc_softc *ahc,
			struct scb *scb, int op);

/******************************** Debugging ***********************************/
static inline char *ahc_name(struct ahc_softc *ahc);

static inline char *ahc_name(struct ahc_softc *ahc)
{
	return (ahc->name);
}

/*********************** Miscellaneous Support Functions ***********************/

struct ahc_initiator_tinfo *
	ahc_fetch_transinfo(struct ahc_softc *ahc,
			    char channel, u_int our_id,
			    u_int remote_id,
			    struct ahc_tmode_tstate **tstate);
uint16_t
	ahc_inw(struct ahc_softc *ahc, u_int port);
void	ahc_outw(struct ahc_softc *ahc, u_int port,
		 u_int value);
uint32_t
	ahc_inl(struct ahc_softc *ahc, u_int port);
void	ahc_outl(struct ahc_softc *ahc, u_int port,
		 uint32_t value);
uint64_t
	ahc_inq(struct ahc_softc *ahc, u_int port);
void	ahc_outq(struct ahc_softc *ahc, u_int port,
		 uint64_t value);
struct scb*
	ahc_get_scb(struct ahc_softc *ahc);
void	ahc_free_scb(struct ahc_softc *ahc, struct scb *scb);
struct scb *
	ahc_lookup_scb(struct ahc_softc *ahc, u_int tag);
void	ahc_queue_scb(struct ahc_softc *ahc, struct scb *scb);
struct scsi_sense_data *
	ahc_get_sense_buf(struct ahc_softc *ahc,
			  struct scb *scb);

/************************** Interrupt Processing ******************************/
int	ahc_intr(struct ahc_softc *ahc);

#endif  /* _AIC7XXX_INLINE_H_ */

Annotation

Implementation Notes