fp@39: /****************************************************************************** fp@0: * fp@54: * d e v i c e . h fp@0: * fp@0: * Struktur für ein EtherCAT-Gerät. 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@0: EtherCAT-Gerät. fp@0: fp@0: Ein EtherCAT-Gerät ist eine Netzwerkkarte, die vom fp@0: EtherCAT-Master dazu verwendet wird, um Frames zu senden fp@0: und zu empfangen. fp@0: */ fp@0: fp@54: struct ec_device fp@0: { fp@78: ec_master_t *master; /**< EtherCAT-Master */ fp@73: struct net_device *dev; /**< Zeiger auf das reservierte net_device */ fp@78: uint8_t open; /**< Das net_device ist geoeffnet. */ fp@73: struct sk_buff *tx_skb; /**< Zeiger auf Transmit-Socketbuffer */ fp@98: ec_isr_t isr; /**< Adresse der ISR */ fp@73: struct module *module; /**< Zeiger auf das Modul, das das Gerät zur fp@73: Verfügung stellt. */ fp@96: uint8_t link_state; /**< Verbindungszustand */ 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 fp@73: fp@73: /* Emacs-Konfiguration fp@73: ;;; Local Variables: *** fp@73: ;;; c-basic-offset:4 *** fp@73: ;;; End: *** fp@73: */