author | Florian Pose <fp@igh-essen.com> |
Thu, 20 Apr 2006 14:38:41 +0000 | |
branch | stable-1.0 |
changeset 1617 | 9f83a343ae75 |
parent 195 | 674071846ee3 |
child 1618 | 5cff10efb927 |
permissions | -rw-r--r-- |
39
6965c23a6826
likely/unlikely, Fehlermeldungen in zyklischem Code begrenzt und Kommentare ge??ndert.
Florian Pose <fp@igh-essen.com>
parents:
19
diff
changeset
|
1 |
/****************************************************************************** |
0 | 2 |
* |
54
7506e67dd122
Vereinheitlichte Schnittstellen, Include-Verzeichnis und Module getrennt.
Florian Pose <fp@igh-essen.com>
parents:
42
diff
changeset
|
3 |
* g l o b a l s . h |
0 | 4 |
* |
195
674071846ee3
Translated all comments and documentation to english language.
Florian Pose <fp@igh-essen.com>
parents:
184
diff
changeset
|
5 |
* Global definitions and macros. |
0 | 6 |
* |
39
6965c23a6826
likely/unlikely, Fehlermeldungen in zyklischem Code begrenzt und Kommentare ge??ndert.
Florian Pose <fp@igh-essen.com>
parents:
19
diff
changeset
|
7 |
* $Id$ |
0 | 8 |
* |
39
6965c23a6826
likely/unlikely, Fehlermeldungen in zyklischem Code begrenzt und Kommentare ge??ndert.
Florian Pose <fp@igh-essen.com>
parents:
19
diff
changeset
|
9 |
*****************************************************************************/ |
0 | 10 |
|
11 |
#ifndef _EC_GLOBALS_ |
|
12 |
#define _EC_GLOBALS_ |
|
13 |
||
152
9654f3cf588d
Plugfest: Globale Debug-Funktionen f?r Frame-Daten.
Florian Pose <fp@igh-essen.com>
parents:
141
diff
changeset
|
14 |
#include <linux/types.h> |
9654f3cf588d
Plugfest: Globale Debug-Funktionen f?r Frame-Daten.
Florian Pose <fp@igh-essen.com>
parents:
141
diff
changeset
|
15 |
|
1617
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
16 |
/****************************************************************************** |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
17 |
* EtherCAT master |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
18 |
*****************************************************************************/ |
41 | 19 |
|
1617
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
20 |
#define EC_MASTER_VERSION_MAIN 1 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
21 |
#define EC_MASTER_VERSION_SUB 0 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
22 |
#define EC_MASTER_VERSION_EXTRA "stable" |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
23 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
24 |
/** maximum number of FMMUs per slave */ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
25 |
#define EC_MAX_FMMUS 16 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
26 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
27 |
/****************************************************************************** |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
28 |
* EtherCAT protocol |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
29 |
*****************************************************************************/ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
30 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
31 |
/** maximum size of an EtherCAT frame (without header and CRC) */ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
32 |
#define EC_MAX_FRAME_SIZE 1500 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
33 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
34 |
/** ... minimum size */ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
35 |
#define EC_MIN_FRAME_SIZE 46 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
36 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
37 |
/** size of an EtherCAT frame header */ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
38 |
#define EC_FRAME_HEADER_SIZE 2 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
39 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
40 |
/** size of an EtherCAT command header */ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
41 |
#define EC_COMMAND_HEADER_SIZE 10 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
42 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
43 |
/** size of an EtherCAT command footer */ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
44 |
#define EC_COMMAND_FOOTER_SIZE 2 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
45 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
46 |
/** size of a sync manager configuration page */ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
47 |
#define EC_SYNC_SIZE 8 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
48 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
49 |
/** size of an FMMU configuration page */ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
50 |
#define EC_FMMU_SIZE 16 |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
51 |
|
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
52 |
/** resulting maximum data size of a single command in a frame */ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
53 |
#define EC_MAX_DATA_SIZE (EC_MAX_FRAME_SIZE - EC_FRAME_HEADER_SIZE \ |
9f83a343ae75
MERGE trunk -r354:355 -> branches/stable-1.0 (version numbers)
Florian Pose <fp@igh-essen.com>
parents:
195
diff
changeset
|
54 |
- EC_COMMAND_HEADER_SIZE - EC_COMMAND_FOOTER_SIZE) |
0 | 55 |
|
152
9654f3cf588d
Plugfest: Globale Debug-Funktionen f?r Frame-Daten.
Florian Pose <fp@igh-essen.com>
parents:
141
diff
changeset
|
56 |
/*****************************************************************************/ |
9654f3cf588d
Plugfest: Globale Debug-Funktionen f?r Frame-Daten.
Florian Pose <fp@igh-essen.com>
parents:
141
diff
changeset
|
57 |
|
84
b4ae98855cea
printk durch Makros ersetzt.
Florian Pose <fp@igh-essen.com>
parents:
73
diff
changeset
|
58 |
#define EC_INFO(fmt, args...) \ |
b4ae98855cea
printk durch Makros ersetzt.
Florian Pose <fp@igh-essen.com>
parents:
73
diff
changeset
|
59 |
printk(KERN_INFO "EtherCAT: " fmt, ##args) |
b4ae98855cea
printk durch Makros ersetzt.
Florian Pose <fp@igh-essen.com>
parents:
73
diff
changeset
|
60 |
#define EC_ERR(fmt, args...) \ |
b4ae98855cea
printk durch Makros ersetzt.
Florian Pose <fp@igh-essen.com>
parents:
73
diff
changeset
|
61 |
printk(KERN_ERR "EtherCAT ERROR: " fmt, ##args) |
b4ae98855cea
printk durch Makros ersetzt.
Florian Pose <fp@igh-essen.com>
parents:
73
diff
changeset
|
62 |
#define EC_WARN(fmt, args...) \ |
b4ae98855cea
printk durch Makros ersetzt.
Florian Pose <fp@igh-essen.com>
parents:
73
diff
changeset
|
63 |
printk(KERN_WARNING "EtherCAT WARNING: " fmt, ##args) |
b4ae98855cea
printk durch Makros ersetzt.
Florian Pose <fp@igh-essen.com>
parents:
73
diff
changeset
|
64 |
#define EC_DBG(fmt, args...) \ |
b4ae98855cea
printk durch Makros ersetzt.
Florian Pose <fp@igh-essen.com>
parents:
73
diff
changeset
|
65 |
printk(KERN_DEBUG "EtherCAT DEBUG: " fmt, ##args) |
b4ae98855cea
printk durch Makros ersetzt.
Florian Pose <fp@igh-essen.com>
parents:
73
diff
changeset
|
66 |
|
184
2fc86cec12df
Macro for SysFS attribute definition
Florian Pose <fp@igh-essen.com>
parents:
164
diff
changeset
|
67 |
#define EC_LIT(X) #X |
2fc86cec12df
Macro for SysFS attribute definition
Florian Pose <fp@igh-essen.com>
parents:
164
diff
changeset
|
68 |
#define EC_STR(X) EC_LIT(X) |
2fc86cec12df
Macro for SysFS attribute definition
Florian Pose <fp@igh-essen.com>
parents:
164
diff
changeset
|
69 |
|
2fc86cec12df
Macro for SysFS attribute definition
Florian Pose <fp@igh-essen.com>
parents:
164
diff
changeset
|
70 |
#define EC_SYSFS_READ_ATTR(NAME) \ |
2fc86cec12df
Macro for SysFS attribute definition
Florian Pose <fp@igh-essen.com>
parents:
164
diff
changeset
|
71 |
static struct attribute attr_##NAME = { \ |
2fc86cec12df
Macro for SysFS attribute definition
Florian Pose <fp@igh-essen.com>
parents:
164
diff
changeset
|
72 |
.name = EC_STR(NAME), .owner = THIS_MODULE, .mode = S_IRUGO \ |
2fc86cec12df
Macro for SysFS attribute definition
Florian Pose <fp@igh-essen.com>
parents:
164
diff
changeset
|
73 |
} |
2fc86cec12df
Macro for SysFS attribute definition
Florian Pose <fp@igh-essen.com>
parents:
164
diff
changeset
|
74 |
|
41 | 75 |
/*****************************************************************************/ |
76 |
||
152
9654f3cf588d
Plugfest: Globale Debug-Funktionen f?r Frame-Daten.
Florian Pose <fp@igh-essen.com>
parents:
141
diff
changeset
|
77 |
extern void ec_print_data(const uint8_t *, size_t); |
9654f3cf588d
Plugfest: Globale Debug-Funktionen f?r Frame-Daten.
Florian Pose <fp@igh-essen.com>
parents:
141
diff
changeset
|
78 |
extern void ec_print_data_diff(const uint8_t *, const uint8_t *, size_t); |
9654f3cf588d
Plugfest: Globale Debug-Funktionen f?r Frame-Daten.
Florian Pose <fp@igh-essen.com>
parents:
141
diff
changeset
|
79 |
|
9654f3cf588d
Plugfest: Globale Debug-Funktionen f?r Frame-Daten.
Florian Pose <fp@igh-essen.com>
parents:
141
diff
changeset
|
80 |
/*****************************************************************************/ |
9654f3cf588d
Plugfest: Globale Debug-Funktionen f?r Frame-Daten.
Florian Pose <fp@igh-essen.com>
parents:
141
diff
changeset
|
81 |
|
164
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
82 |
/** |
195
674071846ee3
Translated all comments and documentation to english language.
Florian Pose <fp@igh-essen.com>
parents:
184
diff
changeset
|
83 |
Code - Message pair. |
164
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
84 |
Some EtherCAT commands support reading a status code to display a certain |
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
85 |
message. This type allows to map a code to a message string. |
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
86 |
*/ |
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
87 |
|
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
88 |
typedef struct |
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
89 |
{ |
195
674071846ee3
Translated all comments and documentation to english language.
Florian Pose <fp@igh-essen.com>
parents:
184
diff
changeset
|
90 |
uint32_t code; /**< code */ |
674071846ee3
Translated all comments and documentation to english language.
Florian Pose <fp@igh-essen.com>
parents:
184
diff
changeset
|
91 |
const char *message; /**< message belonging to \a code */ |
164
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
92 |
} |
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
93 |
ec_code_msg_t; |
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
94 |
|
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
95 |
/*****************************************************************************/ |
ed85368b2b2e
AL status code reading after failed state transition.
Florian Pose <fp@igh-essen.com>
parents:
152
diff
changeset
|
96 |
|
0 | 97 |
#endif |
73
9f4ea66d89a3
Dynamische FMMU-Konfiguration, zwei Kopieroperationen eingespart, Einr?ckungen angepasst.
Florian Pose <fp@igh-essen.com>
parents:
54
diff
changeset
|
98 |