1 1.1 pk #define FDC_BSIZE 512 2 1.1 pk #define FDC_MAXIOSIZE NBPG /* XXX should be MAXBSIZE */ 3 1.1 pk 4 1.1 pk #define FDC_NSTATUS 10 5 1.1 pk 6 1.1 pk #if !defined(LOCORE) 7 1.1 pk struct fdcio { 8 1.1 pk /* 9 1.1 pk * 82072 (sun4c) and 82077 (sun4m) controllers have different 10 1.1 pk * register layout; so we cache some here. 11 1.1 pk */ 12 1.1 pk volatile u_int8_t *fdcio_reg_msr; 13 1.1 pk volatile u_int8_t *fdcio_reg_fifo; 14 1.1 pk volatile u_int8_t *fdcio_reg_dor; /* 82077 only */ 15 1.1 pk 16 1.1 pk /* 17 1.1 pk * Interrupt state. 18 1.1 pk */ 19 1.1 pk int fdcio_istate; 20 1.1 pk 21 1.1 pk /* 22 1.1 pk * IO state. 23 1.1 pk */ 24 1.1 pk char *fdcio_data; /* pseudo-dma data */ 25 1.1 pk int fdcio_tc; /* pseudo-dma Terminal Count */ 26 1.1 pk u_char fdcio_status[FDC_NSTATUS]; /* copy of registers */ 27 1.1 pk int fdcio_nstat; /* # of valid status bytes */ 28 1.1 pk }; 29 1.1 pk #endif /* LOCORE */ 30 1.1 pk 31 1.1 pk /* istate values */ 32 1.1 pk #define ISTATE_IDLE 0 /* No HW interrupt expected */ 33 1.1 pk #define ISTATE_SPURIOUS 1 /* Spurious HW interrupt detected */ 34 1.1 pk #define ISTATE_SENSEI 2 /* Do SENSEI on next HW interrupt */ 35 1.1 pk #define ISTATE_DMA 3 /* Pseudo-DMA in progress */ 36 1.1 pk 37 1.1 pk #define FDIOCEJECT _IO('f', 24) 38 1.1 pk 39