[637] | 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"};
|
---|