Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 1 | /* -*- mode: c; c-basic-offset: 8 -*- */ |
2 | |||
3 | /* This is the function prototypes for the old legacy MCA interface |
||
4 | * |
||
5 | * Please move your driver to the new sysfs based one instead */ |
||
6 | |||
7 | #ifndef _LINUX_MCA_LEGACY_H |
||
8 | #define _LINUX_MCA_LEGACY_H |
||
9 | |||
10 | #include <linux/mca.h> |
||
11 | |||
12 | #warning "MCA legacy - please move your driver to the new sysfs api" |
||
13 | |||
14 | /* MCA_NOTFOUND is an error condition. The other two indicate |
||
15 | * motherboard POS registers contain the adapter. They might be |
||
16 | * returned by the mca_find_adapter() function, and can be used as |
||
17 | * arguments to mca_read_stored_pos(). I'm not going to allow direct |
||
18 | * access to the motherboard registers until we run across an adapter |
||
19 | * that requires it. We don't know enough about them to know if it's |
||
20 | * safe. |
||
21 | * |
||
22 | * See Documentation/mca.txt or one of the existing drivers for |
||
23 | * more information. |
||
24 | */ |
||
25 | #define MCA_NOTFOUND (-1) |
||
26 | |||
27 | |||
28 | |||
29 | /* Returns the slot of the first enabled adapter matching id. User can |
||
30 | * specify a starting slot beyond zero, to deal with detecting multiple |
||
31 | * devices. Returns MCA_NOTFOUND if id not found. Also checks the |
||
32 | * integrated adapters. |
||
33 | */ |
||
34 | extern int mca_find_adapter(int id, int start); |
||
35 | extern int mca_find_unused_adapter(int id, int start); |
||
36 | |||
37 | /* adapter state info - returns 0 if no */ |
||
38 | extern int mca_isadapter(int slot); |
||
39 | extern int mca_isenabled(int slot); |
||
40 | |||
41 | extern int mca_is_adapter_used(int slot); |
||
42 | extern int mca_mark_as_used(int slot); |
||
43 | extern void mca_mark_as_unused(int slot); |
||
44 | |||
45 | /* gets a byte out of POS register (stored in memory) */ |
||
46 | extern unsigned char mca_read_stored_pos(int slot, int reg); |
||
47 | |||
48 | /* This can be expanded later. Right now, it gives us a way of |
||
49 | * getting meaningful information into the MCA_info structure, |
||
50 | * so we can have a more interesting /proc/mca. |
||
51 | */ |
||
52 | extern void mca_set_adapter_name(int slot, char* name); |
||
53 | extern char* mca_get_adapter_name(int slot); |
||
54 | |||
55 | /* These routines actually mess with the hardware POS registers. They |
||
56 | * temporarily disable the device (and interrupts), so make sure you know |
||
57 | * what you're doing if you use them. Furthermore, writing to a POS may |
||
58 | * result in two devices trying to share a resource, which in turn can |
||
59 | * result in multiple devices sharing memory spaces, IRQs, or even trashing |
||
60 | * hardware. YOU HAVE BEEN WARNED. |
||
61 | * |
||
62 | * You can only access slots with this. Motherboard registers are off |
||
63 | * limits. |
||
64 | */ |
||
65 | |||
66 | /* read a byte from the specified POS register. */ |
||
67 | extern unsigned char mca_read_pos(int slot, int reg); |
||
68 | |||
69 | /* write a byte to the specified POS register. */ |
||
70 | extern void mca_write_pos(int slot, int reg, unsigned char byte); |
||
71 | |||
72 | #endif |