fp@39: /****************************************************************************** fp@0: * fp@54: * d e v i c e . h fp@0: * fp@195: * EtherCAT device structure. fp@0: * fp@39: * $Id$ fp@0: * fp@39: *****************************************************************************/ fp@0: fp@0: #ifndef _EC_DEVICE_H_ fp@0: #define _EC_DEVICE_H_ fp@0: fp@25: #include fp@25: fp@104: #include "../include/ecrt.h" fp@104: #include "../devices/ecdev.h" fp@54: #include "globals.h" fp@0: fp@39: /*****************************************************************************/ fp@0: fp@0: /** fp@195: EtherCAT device. fp@0: fp@195: An EtherCAT device is a network interface card, that is owned by an fp@195: EtherCAT master to send and receive EtherCAT frames with. fp@0: */ fp@0: fp@54: struct ec_device fp@0: { fp@195: ec_master_t *master; /**< EtherCAT master */ fp@195: struct net_device *dev; /**< pointer to the assigned net_device */ fp@195: uint8_t open; /**< true, if the net_device has been opened */ fp@195: struct sk_buff *tx_skb; /**< transmit socket buffer */ fp@195: ec_isr_t isr; /**< pointer to the device's interrupt service routine */ fp@195: struct module *module; /**< pointer to the device's owning module */ fp@195: uint8_t link_state; /**< device link state */ fp@54: }; fp@0: fp@39: /*****************************************************************************/ fp@0: fp@98: int ec_device_init(ec_device_t *, ec_master_t *, struct net_device *, fp@98: ec_isr_t, struct module *); fp@54: void ec_device_clear(ec_device_t *); fp@78: fp@54: int ec_device_open(ec_device_t *); fp@54: int ec_device_close(ec_device_t *); fp@78: fp@54: void ec_device_call_isr(ec_device_t *); fp@98: uint8_t *ec_device_tx_data(ec_device_t *); fp@78: void ec_device_send(ec_device_t *, size_t); fp@78: fp@39: /*****************************************************************************/ fp@0: fp@0: #endif