1 /*
2 * include/asm-mips/vector.h
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * Copyright (C) 1995 by Ralf Baechle
9 */
10 #ifndef __ASM_MIPS_VECTOR_H
11 #define __ASM_MIPS_VECTOR_H
12
13 /*
14 * This structure defines how to access various features of
15 * different machine types and how to access them.
16 *
17 * FIXME: More things need to be accessed via this vector.
18 */
19 struct feature {
20 void (*handle_int)(void);
21 /*
22 * How to access the floppy controller's ports.
23 */
24 unsigned char (*fd_inb)(unsigned int port);
25 void (*fd_outb)(unsigned char value, unsigned int port);
26 /*
27 * How to access the floppy DMA functions.
28 */
29 void (*fd_enable_dma)(void);
30 void (*fd_disable_dma)(void);
31 int (*fd_request_dma)(void);
32 void (*fd_free_dma)(void);
33 void (*fd_clear_dma_ff)(void);
34 void (*fd_set_dma_mode)(char mode);
35 void (*fd_set_dma_addr)(unsigned int a);
36 void (*fd_set_dma_count)(unsigned int count);
37 int (*fd_get_dma_residue)(void);
38 void (*fd_enable_irq)(void);
39 void (*fd_disable_irq)(void);
40 void (*fd_cacheflush)(unsigned char *addr, unsigned int size);
41 /*
42 * How to access the RTC register of DS1287
43 */
44 unsigned char (*rtc_read_data)(void);
45 void (*rtc_write_data)(unsigned char);
46 };
47
48 /*
49 * Similar to the above this is a structure that describes various
50 * CPU dependend features.
51 *
52 * FIXME: This vector isn't being used yet
53 */
54 struct cpu {
55 int dummy; /* keep GCC from complaining */
56 };
57
58 extern struct feature *feature;
59 extern struct cpu *cpu;
60
61 #endif /* __ASM_MIPS_VECTOR_H */