1 | /*
|
---|
2 | * Interface de contrôle de la carte PCI
|
---|
3 | */
|
---|
4 |
|
---|
5 | /* type des pointeurs pour le bus PCI */
|
---|
6 | typedef unsigned long * pointeur_PCI;
|
---|
7 |
|
---|
8 | /* adresse de base de la carte PCI, dans le fichier choix_acqui */
|
---|
9 | //#define Adresse_base_PCI 0x81000000
|
---|
10 |
|
---|
11 | /* pointeurs sur les différents ports de la carte */
|
---|
12 | static pointeur_PCI fifo_p = (pointeur_PCI) (Adresse_base_PCI + 0x00);
|
---|
13 | static pointeur_PCI util_p = (pointeur_PCI) (Adresse_base_PCI + 0x00);
|
---|
14 | static pointeur_PCI flags_p = (pointeur_PCI) (Adresse_base_PCI + 0x04);
|
---|
15 | static pointeur_PCI reset_p = (pointeur_PCI) (Adresse_base_PCI + 0x08);
|
---|
16 | static pointeur_PCI test_p = (pointeur_PCI) (Adresse_base_PCI + 0x0c);
|
---|
17 | static pointeur_PCI set_util_p = (pointeur_PCI) (Adresse_base_PCI + 0x10);
|
---|
18 |
|
---|
19 | /* pseudo-fonctions pour contrôler la carte */
|
---|
20 | #define read_fifo() (*fifo_p)
|
---|
21 | #define write_util(x) (*util_p = (x))
|
---|
22 | #define read_flags() (*flags_p)
|
---|
23 | #define write_flags(x) (*flags_p = (x))
|
---|
24 | #define reset_fifo() ((void) (*reset_p = 0))
|
---|
25 | #define read_test() (*test_p)
|
---|
26 | #define write_test(x) (*test_p = (x))
|
---|
27 | #define set_util(x) (*set_util_p = (x))
|
---|
28 | #define wait_read(p) {register unsigned long * q = (p);\
|
---|
29 | while (!(*q = read_fifo())) {}}
|
---|
30 | #define fast_read(x) {while (!((x) = read_fifo())) {}}
|
---|
31 |
|
---|
32 | /* drapeaux */
|
---|
33 | #define POS_FIRST_FLAG 19
|
---|
34 | #define NB_FLAGS 7
|
---|
35 | #define FLAG_FIFO_FULL 0x00080000
|
---|
36 | #define FLAG_NFIFOEF 0x00100000
|
---|
37 | #define FLAG_NFIFOHF 0x00200000
|
---|
38 | #define FLAG_NFIFOFF 0x00400000
|
---|
39 | #define FLAG_PLEIN0 0x00800000
|
---|
40 | #define FLAG_PLEIN1 0x01000000
|
---|
41 | #define FLAG_MULTIPLEX 0x02000000
|
---|
42 |
|
---|
43 | /* noms des drapeaux */
|
---|
44 | static char *flag_name[NB_FLAGS] = {"Fifo_full", "nFifoef", "nFifohf",
|
---|
45 | "nFifoff", "Plein0", "Plein1", "Multiplex"};
|
---|