module.c File Reference

EtherCAT master driver module. More...

Go to the source code of this file.

Defines

#define MAX_MASTERS   32
 Maximum number of masters.
#define EC_MAX_MAC_STRING_SIZE   (3 * ETH_ALEN)
 Maximum MAC string size.

Functions

int __init ec_init_module (void)
 Module initialization.
void __exit ec_cleanup_module (void)
 Module cleanup.
static int ec_mac_parse (uint8_t *mac, const char *src, int allow_empty)
 Parse a MAC address from a string.
unsigned int ec_master_count (void)
 Get the number of masters.
int ec_mac_equal (const uint8_t *mac1, const uint8_t *mac2)
ssize_t ec_mac_print (const uint8_t *mac, char *buffer)
 Print a MAC address to a buffer.
int ec_mac_is_zero (const uint8_t *mac)
int ec_mac_is_broadcast (const uint8_t *mac)
void ec_print_data (const uint8_t *data, size_t size)
 Outputs frame contents for debugging purposes.
void ec_print_data_diff (const uint8_t *d1, const uint8_t *d2, size_t size)
 Outputs frame contents and differences for debugging purposes.
size_t ec_state_string (uint8_t states, char *buffer, uint8_t multi)
 Prints slave states in clear text.
ec_device_tecdev_offer (struct net_device *net_dev, ec_pollfunc_t poll, struct module *module)
 Offers an EtherCAT device to a certain master.
ec_master_tecrt_request_master_err (unsigned int master_index)
 Request a master.
ec_master_tecrt_request_master (unsigned int master_index)
 Requests an EtherCAT master for realtime operation.
void ecrt_release_master (ec_master_t *master)
 Releases a requested EtherCAT master.
unsigned int ecrt_version_magic (void)
 Returns the version magic of the realtime interface.

Variables

static char * main_devices [MAX_MASTERS]
 Main devices parameter.
static unsigned int master_count
 Number of masters.
static char * backup_devices [MAX_MASTERS]
 Backup devices parameter.
static unsigned int backup_count
 Number of backup devices.
static unsigned int debug_level
 Debug level parameter.
static ec_master_tmasters
 Array of masters.
static struct semaphore master_sem
 Master semaphore.
dev_t device_number
 Device number for master cdevs.
struct classclass
 Device class.
static uint8_t macs [MAX_MASTERS][2][ETH_ALEN]
 MAC addresses.
char * ec_master_version_str = EC_MASTER_VERSION
 Version string.
const char * ec_device_names [2]
 Device names.
const ec_request_state_t ec_request_state_translation_table []
 Global request state type translation table.


Detailed Description

EtherCAT master driver module.

Definition in file module.c.


Define Documentation

#define MAX_MASTERS   32

Maximum number of masters.

Definition at line 46 of file module.c.


Function Documentation

int __init ec_init_module ( void   ) 

Module initialization.

Initializes master_count masters.

Returns:
0 on success, else < 0

Definition at line 98 of file module.c.

void __exit ec_cleanup_module ( void   ) 

Module cleanup.

Clears all master instances.

Definition at line 181 of file module.c.

static int ec_mac_parse ( uint8_t *  mac,
const char *  src,
int  allow_empty 
) [static]

Parse a MAC address from a string.

The MAC address must match the regular expression "([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}".

Returns:
0 on success, else < 0

Definition at line 303 of file module.c.

int ec_mac_equal ( const uint8_t *  mac1,
const uint8_t *  mac2 
)

Returns:
true, if two MAC addresses are equal.
Parameters:
mac1  First MAC address.
mac2  Second MAC address.

Definition at line 216 of file module.c.

ssize_t ec_mac_print ( const uint8_t *  mac,
char *  buffer 
)

Print a MAC address to a buffer.

The buffer size must be at least EC_MAX_MAC_STRING_SIZE.

Returns:
number of bytes written.
Parameters:
mac  MAC address
buffer  Target buffer.

Definition at line 242 of file module.c.

int ec_mac_is_zero ( const uint8_t *  mac  ) 

Returns:
true, if the MAC address is all-zero.
Parameters:
mac  MAC address.

Definition at line 263 of file module.c.

int ec_mac_is_broadcast ( const uint8_t *  mac  ) 

Returns:
true, if the given MAC address is the broadcast address.
Parameters:
mac  MAC address.

Definition at line 281 of file module.c.

void ec_print_data ( const uint8_t *  data,
size_t  size 
)

Outputs frame contents for debugging purposes.

If the data block is larger than 256 bytes, only the first 128 and the last 128 bytes will be shown

Parameters:
data  pointer to data
size  number of bytes to output

Definition at line 341 of file module.c.

void ec_print_data_diff ( const uint8_t *  d1,
const uint8_t *  d2,
size_t  size 
)

Outputs frame contents and differences for debugging purposes.

Parameters:
d1  first data
d2  second data
size  number of bytes to output

Definition at line 369 of file module.c.

size_t ec_state_string ( uint8_t  states,
char *  buffer,
uint8_t  multi 
)

Prints slave states in clear text.

Returns:
Size of the created string.
Parameters:
states  slave states
buffer  target buffer (min. EC_STATE_STRING_SIZE bytes)
multi  Show multi-state mask.

Definition at line 394 of file module.c.

ec_master_t* ecrt_request_master_err ( unsigned int  master_index  ) 

Request a master.

Same as ecrt_request_master(), but with ERR_PTR() return value.

Returns:
Requested master.
Parameters:
master_index  Master index.

Definition at line 530 of file module.c.


Variable Documentation

char* main_devices[MAX_MASTERS] [static]

Main devices parameter.

Definition at line 57 of file module.c.

unsigned int master_count [static]

Number of masters.

Definition at line 58 of file module.c.

char* backup_devices[MAX_MASTERS] [static]

Backup devices parameter.

Definition at line 59 of file module.c.

unsigned int backup_count [static]

Number of backup devices.

Definition at line 60 of file module.c.

unsigned int debug_level [static]

Debug level parameter.

Definition at line 61 of file module.c.

ec_master_t* masters [static]

Array of masters.

Definition at line 63 of file module.c.

struct semaphore master_sem [static]

Master semaphore.

Definition at line 64 of file module.c.

Device number for master cdevs.

Definition at line 66 of file module.c.

struct class* class

Device class.

Definition at line 67 of file module.c.

uint8_t macs[MAX_MASTERS][2][ETH_ALEN] [static]

MAC addresses.

Definition at line 69 of file module.c.

char* ec_master_version_str = EC_MASTER_VERSION

Version string.

Definition at line 71 of file module.c.

const char* ec_device_names[2]

Initial value:

 {
    "main",
    "backup"
}
Device names.

Definition at line 458 of file module.c.

Initial value:

Global request state type translation table.

Translates an internal request state to an external one.

Definition at line 651 of file module.c.


Generated on Mon Jun 20 09:31:31 2016 for IgH EtherCAT Master by  doxygen 1.5.6