Lines Matching defs:hwif_s
663 typedef struct hwif_s { struct
664 struct hwif_s *mate; /* other hwif from same PCI chip */ argument
665 struct proc_dir_entry *proc; /* /proc/ide/ directory entry */
667 struct ide_host *host;
669 char name[6]; /* name of interface, eg. "ide0" */
671 struct ide_io_ports io_ports;
673 unsigned long sata_scr[SATA_NR_PORTS];
675 ide_drive_t *devices[MAX_DRIVES + 1];
677 unsigned long port_flags;
679 u8 major; /* our major number */
680 u8 index; /* 0 for ide0; 1 for ide1; ... */
681 u8 channel; /* for dual-port chips: 0=primary, 1=secondary */
683 u32 host_flags;
685 u8 pio_mask;
687 u8 ultra_mask;
688 u8 mwdma_mask;
689 u8 swdma_mask;
691 u8 cbl; /* cable type */
693 hwif_chipset_t chipset; /* sub-module for tuning.. */
695 struct device *dev;
697 void (*rw_disk)(ide_drive_t *, struct request *);
699 const struct ide_tp_ops *tp_ops;
700 const struct ide_port_ops *port_ops;
701 const struct ide_dma_ops *dma_ops;
704 unsigned int *dmatable_cpu;
706 dma_addr_t dmatable_dma;
709 int prd_max_nents;
711 int prd_ent_size;
714 struct scatterlist *sg_table;
715 int sg_max_nents; /* Maximum number of entries in it */
717 struct ide_cmd cmd; /* current command */
719 int rqsize; /* max sectors per request */
720 int irq; /* our irq number */
722 unsigned long dma_base; /* base addr for dma ports */
724 unsigned long config_data; /* for use by chipset-specific code */
725 unsigned long select_data; /* for use by chipset-specific code */
727 unsigned long extra_base; /* extra addr for dma ports */
728 unsigned extra_ports; /* number of extra dma ports */
730 unsigned present : 1; /* this interface exists */
731 unsigned busy : 1; /* serializes devices on a port */
733 struct device gendev;
734 struct device *portdev;
736 struct completion gendev_rel_comp; /* To deal with device release() */
738 void *hwif_data; /* extra hwif data */
741 struct ide_acpi_hwif_link *acpidata;
745 ide_startstop_t (*handler)(ide_drive_t *);
748 unsigned int polling : 1;
751 ide_drive_t *cur_dev;
754 struct request *rq;
757 struct timer_list timer;
759 unsigned long poll_timeout;
761 int (*expiry)(ide_drive_t *);
763 int req_gen;
764 int req_gen_timer;
766 spinlock_t lock;