|
Classes |
| struct | command |
| struct | wini |
| struct | prdte |
Defines |
| #define | ATA_DMA_SECTORS 64 |
| #define | ATA_DMA_BUF_SIZE (ATA_DMA_SECTORS*SECTOR_SIZE) |
| #define | N_PRDTE 1024 |
| #define | PRDT_BYTES (sizeof(struct prdte) * N_PRDTE) |
| #define | PRDTE_FL_EOT 0x80 |
| #define | sys_voutb(out, n) at_voutb(__LINE__, (out), (n)) |
| #define | sys_vinb(in, n) at_vinb(__LINE__, (in), (n)) |
| #define | sys_outb(p, v) at_out(__LINE__, (p), (v), "outb", _DIO_BYTE) |
| #define | sys_inb(p, v) at_in(__LINE__, (p), (v), "inb", _DIO_BYTE) |
| #define | sys_outw(p, v) at_out(__LINE__, (p), (v), "outw", _DIO_WORD) |
| #define | sys_inw(p, v) at_in(__LINE__, (p), (v), "inw", _DIO_WORD) |
| #define | sys_outl(p, v) at_out(__LINE__, (p), (v), "outl", _DIO_LONG) |
| #define | sys_inl(p, v) at_in(__LINE__, (p), (v), "inl", _DIO_LONG) |
| #define | ATA_IF_NOTCOMPAT1 (1L << 0) |
| #define | ATA_IF_NOTCOMPAT2 (1L << 2) |
| #define | id_byte(n) (&tmp_buf[2 * (n)]) |
| #define | id_word(n) |
| #define | id_longword(n) |
| #define | BUFSIZE CD_SECTOR_SIZE |
| #define | DMAERR(msg) |
| #define | STSTR(a) if (status & STATUS_ ## a) { strcat(str, #a); strcat(str, " "); } |
| #define | ERRSTR(a) if (e & ERROR_ ## a) { strcat(str, #a); strcat(str, " "); } |
Functions |
| FORWARD | _PROTOTYPE (void init_params,(void)) |
| FORWARD | _PROTOTYPE (void init_drive,(struct wini *w, int base_cmd, int base_ctl, int base_dma, int irq, int ack, int hook, int drive)) |
| FORWARD | _PROTOTYPE (void init_params_pci,(int)) |
| FORWARD | _PROTOTYPE (int w_do_open,(struct driver *dp, message *m_ptr)) |
| FORWARD | _PROTOTYPE (struct device *w_prepare,(int dev)) |
| FORWARD | _PROTOTYPE (int w_identify,(void)) |
| FORWARD | _PROTOTYPE (char *w_name,(void)) |
| FORWARD | _PROTOTYPE (int w_transfer,(int proc_nr, int opcode, u64_t position, iovec_t *iov, unsigned nr_req)) |
| FORWARD | _PROTOTYPE (int com_out,(struct command *cmd)) |
| FORWARD | _PROTOTYPE (void setup_dma,(unsigned *sizep, int proc_nr, iovec_t *iov, size_t addr_offset, int do_write, int *do_copyoutp)) |
| FORWARD | _PROTOTYPE (void ack_irqs,(unsigned int)) |
| FORWARD | _PROTOTYPE (int w_waitfor,(int mask, int value)) |
| FORWARD | _PROTOTYPE (void w_geometry,(struct partition *entry)) |
| FORWARD | _PROTOTYPE (int atapi_sendpacket,(u8_t *packet, unsigned cnt, int do_dma)) |
| FORWARD | _PROTOTYPE (int atapi_intr_wait,(int dma, size_t max)) |
| FORWARD | _PROTOTYPE (int at_voutb,(int line, pvb_pair_t *, int n)) |
| FORWARD | _PROTOTYPE (int at_out,(int line, u32_t port, u32_t value, char *typename, int type)) |
| FORWARD | _PROTOTYPE (int at_in,(int line, u32_t port, u32_t *value, char *typename, int type)) |
| FORWARD | _PROTOTYPE (int sef_cb_init_fresh,(int type, sef_init_info_t *info)) |
| EXTERN | _PROTOTYPE (void sef_cb_lu_prepare,(int state)) |
| EXTERN | _PROTOTYPE (int sef_cb_lu_state_isvalid,(int state)) |
| PUBLIC int | main (int argc, char *argv[]) |
| PRIVATE void | sef_local_startup () |
| PRIVATE int | sef_cb_init_fresh (int type, sef_init_info_t *info) |
| PRIVATE void | init_params () |
| PRIVATE void | init_drive (struct wini *w, int base_cmd, int base_ctl, int base_dma, int irq, int ack, int hook, int drive) |
| PRIVATE void | init_params_pci (int skip) |
| PRIVATE int | w_do_open (struct driver *dp, message *m_ptr) |
| PRIVATE struct device * | w_prepare (int device) |
| void | check_dma (struct wini *wn) |
| PRIVATE int | w_identify () |
| PRIVATE char * | w_name () |
| PRIVATE int | w_io_test (void) |
| PRIVATE int | w_specify () |
| PRIVATE int | do_transfer (struct wini *wn, unsigned int precomp, unsigned int count, unsigned int sector, unsigned int opcode, int do_dma) |
| void | stop_dma (struct wini *wn) |
| void | start_dma (struct wini *wn, int do_write) |
| int | error_dma (struct wini *wn) |
| PRIVATE int | w_transfer (int proc_nr, int opcode, u64_t position, iovec_t *iov, unsigned nr_req) |
| PRIVATE int | com_out (struct command *cmd) |
| PRIVATE int | com_out_ext (struct command *cmd) |
| PRIVATE void | setup_dma (unsigned *sizep, int proc_nr, iovec_t *iov, size_t addr_offset, int do_write, int *do_copyoutp) |
| PRIVATE void | w_need_reset () |
| PRIVATE int | w_do_close (struct driver *dp, message *m_ptr) |
| PRIVATE int | com_simple (struct command *cmd) |
| PRIVATE void | w_timeout (void) |
| PRIVATE int | w_reset () |
| PRIVATE void | w_intr_wait () |
| PRIVATE int | at_intr_wait () |
| PRIVATE int | w_waitfor (int mask, int value) |
| PRIVATE int | w_waitfor_dma (int mask, int value) |
| PRIVATE void | w_geometry (struct partition *entry) |
| PRIVATE int | atapi_open () |
| PRIVATE void | atapi_close () |
| void | sense_request (void) |
| PRIVATE int | atapi_transfer (int proc_nr, int opcode, u64_t position, iovec_t *iov, unsigned nr_req) |
| PRIVATE int | atapi_sendpacket (u8_t *packet, unsigned cnt, int do_dma) |
| PRIVATE int | w_other (struct driver *dr, message *m) |
| PRIVATE int | w_hw_int (struct driver *dr, message *m) |
| PRIVATE void | ack_irqs (unsigned int irqs) |
| char * | strstatus (int status) |
| char * | strerr (int e) |
| PRIVATE int | atapi_intr_wait (int do_dma, size_t max) |
| PRIVATE int | at_voutb (int line, pvb_pair_t *pvb, int n) |
| PRIVATE int | at_vinb (int line, pvb_pair_t *pvb, int n) |
| PRIVATE int | at_out (int line, u32_t port, u32_t value, char *typename, int type) |
| PRIVATE int | at_in (int line, u32_t port, u32_t *value, char *typename, int type) |
Variables |
| int | timeout_ticks = DEF_TIMEOUT_TICKS |
| int | max_errors = MAX_ERRORS |
| long | w_standard_timeouts = 0 |
| long | w_pci_debug = 0 |
| long | w_instance = 0 |
| long | disable_dma = 0 |
| long | atapi_debug = 0 |
| long | w_identify_wakeup_ticks |
| long | wakeup_ticks |
| long | w_atapi_dma |
| int | w_testing = 0 |
| int | w_silent = 0 |
| int | w_next_drive = 0 |
| u32_t | system_hz |
| PRIVATE struct wini * | w_wn [MAX_DRIVES] |
| PRIVATE int | w_device = -1 |
| PRIVATE int | w_controller = -1 |
| PRIVATE int | w_major = -1 |
| PRIVATE int | win_tasknr |
| PUBLIC int | w_command |
| PRIVATE u8_t | w_byteval |
| PRIVATE int | w_drive |
| PRIVATE struct device * | w_dv |
| PRIVATE char * | dma_buf |
| PRIVATE phys_bytes | dma_buf_phys |
| PRIVATE struct prdte * | prdt |
| PRIVATE phys_bytes | prdt_phys |
| struct { |
| u16_t vendor |
| u16_t device |
| } | raid_table [] |
| PRIVATE struct driver | w_dtab |