master/device.c
changeset 195 674071846ee3
parent 191 ca805255a935
child 197 b9a6e2c22745
child 1618 5cff10efb927
--- a/master/device.c	Thu Apr 20 13:19:36 2006 +0000
+++ b/master/device.c	Thu Apr 20 13:31:31 2006 +0000
@@ -2,7 +2,7 @@
  *
  *  d e v i c e . c
  *
- *  Methoden für ein EtherCAT-Gerät.
+ *  EtherCAT device methods.
  *
  *  $Id$
  *
@@ -20,16 +20,15 @@
 /*****************************************************************************/
 
 /**
-   EtherCAT-Geräte-Konstuktor.
-
-   \return 0 wenn alles ok, < 0 bei Fehler (zu wenig Speicher)
-*/
-
-int ec_device_init(ec_device_t *device, /**< EtherCAT-Gerät */
-                   ec_master_t *master, /**< Zugehöriger Master */
-                   struct net_device *net_dev, /**< Net-Device */
-                   ec_isr_t isr, /**< Adresse der ISR */
-                   struct module *module /**< Modul-Adresse */
+   Device constructor.
+   \return 0 in case of success, else < 0
+*/
+
+int ec_device_init(ec_device_t *device, /**< EtherCAT device */
+                   ec_master_t *master, /**< master owning the device */
+                   struct net_device *net_dev, /**< net_device structure */
+                   ec_isr_t isr, /**< pointer to device's ISR */
+                   struct module *module /**< pointer to the owning module */
                    )
 {
     struct ethhdr *eth;
@@ -49,7 +48,7 @@
 
     device->tx_skb->dev = net_dev;
 
-    // Ethernet-II-Header hinzufuegen
+    // add Ethernet-II-header
     skb_reserve(device->tx_skb, ETH_HLEN);
     eth = (struct ethhdr *) skb_push(device->tx_skb, ETH_HLEN);
     eth->h_proto = htons(0x88A4);
@@ -62,13 +61,10 @@
 /*****************************************************************************/
 
 /**
-   EtherCAT-Geräte-Destuktor.
-
-   Gibt den dynamisch allozierten Speicher des
-   EtherCAT-Gerätes (den Sende-Socket-Buffer) wieder frei.
-*/
-
-void ec_device_clear(ec_device_t *device /**< EtherCAT-Gerät */)
+   EtherCAT device destuctor.
+*/
+
+void ec_device_clear(ec_device_t *device /**< EtherCAT device */)
 {
     if (device->open) ec_device_close(device);
     if (device->tx_skb) dev_kfree_skb(device->tx_skb);
@@ -77,17 +73,11 @@
 /*****************************************************************************/
 
 /**
-   Führt die open()-Funktion des Netzwerktreibers aus.
-
-   Dies entspricht einem "ifconfig up". Vorher wird der Zeiger
-   auf das EtherCAT-Gerät auf Gültigkeit geprüft und der
-   Gerätezustand zurückgesetzt.
-
-   \return 0 bei Erfolg, < 0: Ungültiger Zeiger, oder open()
-           fehlgeschlagen
-*/
-
-int ec_device_open(ec_device_t *device /**< EtherCAT-Gerät */)
+   Opens the EtherCAT device.
+   \return 0 in case of success, else < 0
+*/
+
+int ec_device_open(ec_device_t *device /**< EtherCAT device */)
 {
     unsigned int i;
 
@@ -101,7 +91,7 @@
         return 0;
     }
 
-    // Device could have received frames before
+    // device could have received frames before
     for (i = 0; i < 4; i++) ec_device_call_isr(device);
 
     device->link_state = 0;
@@ -114,13 +104,11 @@
 /*****************************************************************************/
 
 /**
-   Führt die stop()-Funktion des net_devices aus.
-
-   \return 0 bei Erfolg, < 0: Kein Gerät zum Schließen oder
-           Schließen fehlgeschlagen.
-*/
-
-int ec_device_close(ec_device_t *device /**< EtherCAT-Gerät */)
+   Stops the EtherCAT device.
+   \return 0 in case of success, else < 0
+*/
+
+int ec_device_close(ec_device_t *device /**< EtherCAT device */)
 {
     if (!device->dev) {
         EC_ERR("No device to close!\n");
@@ -140,12 +128,11 @@
 /*****************************************************************************/
 
 /**
-   Liefert einen Zeiger auf den Sende-Speicher.
-
-   \return Zeiger auf den Speicher, in den die Frame-Daten sollen.
-*/
-
-uint8_t *ec_device_tx_data(ec_device_t *device /**< EtherCAT-Gerät */)
+   Returns a pointer to the device's transmit memory.
+   \return pointer to the TX socket buffer
+*/
+
+uint8_t *ec_device_tx_data(ec_device_t *device /**< EtherCAT device */)
 {
     return device->tx_skb->data + ETH_HLEN;
 }
@@ -153,21 +140,19 @@
 /*****************************************************************************/
 
 /**
-   Sendet den Inhalt des Socket-Buffers.
-
-   Schneidet den Inhalt des Socket-Buffers auf die (nun bekannte) Größe zu,
-   fügt den Ethernet-II-Header an und ruft die start_xmit()-Funktion der
-   Netzwerkkarte auf.
-*/
-
-void ec_device_send(ec_device_t *device, /**< EtherCAT-Gerät */
-                    size_t size /**< Größe der zu sendenden Daten */
+   Sends the content of the transmit socket buffer.
+   Cuts the socket buffer content to the (now known) size, and calls the
+   start_xmit() function of the assigned net_device.
+*/
+
+void ec_device_send(ec_device_t *device, /**< EtherCAT device */
+                    size_t size /**< number of bytes to send */
                     )
 {
     if (unlikely(!device->link_state)) // Link down
         return;
 
-    // Framegröße auf (jetzt bekannte) Länge abschneiden
+    // set the right length for the data
     device->tx_skb->len = ETH_HLEN + size;
 
     if (unlikely(device->master->debug_level > 1)) {
@@ -175,36 +160,33 @@
         ec_print_data(device->tx_skb->data + ETH_HLEN, size);
     }
 
-    // Senden einleiten
+    // start sending
     device->dev->hard_start_xmit(device->tx_skb, device->dev);
 }
 
 /*****************************************************************************/
 
 /**
-   Ruft die Interrupt-Routine der Netzwerkkarte auf.
-*/
-
-void ec_device_call_isr(ec_device_t *device /**< EtherCAT-Gerät */)
+   Calls the interrupt service routine of the assigned net_device.
+*/
+
+void ec_device_call_isr(ec_device_t *device /**< EtherCAT device */)
 {
     if (likely(device->isr)) device->isr(0, device->dev, NULL);
 }
 
 /******************************************************************************
- *
- * Treiberschnittstelle
- *
+ *  Device interface
  *****************************************************************************/
 
 /**
-   Nimmt einen Empfangenen Rahmen entgegen.
-
-   Kopiert die empfangenen Daten in den Receive-Buffer.
-*/
-
-void ecdev_receive(ec_device_t *device, /**< EtherCAT-Gerät */
-                   const void *data, /**< Zeiger auf empfangene Daten */
-                   size_t size /**< Größe der empfangenen Daten */
+   Accepts a received frame.
+   Forwards the received data to the master.
+*/
+
+void ecdev_receive(ec_device_t *device, /**< EtherCAT device */
+                   const void *data, /**< pointer to receibed data */
+                   size_t size /**< number of bytes received */
                    )
 {
     if (unlikely(device->master->debug_level > 1)) {
@@ -218,11 +200,11 @@
 /*****************************************************************************/
 
 /**
-   Setzt einen neuen Verbindungszustand.
-*/
-
-void ecdev_link_state(ec_device_t *device, /**< EtherCAT-Gerät */
-                      uint8_t state /**< Verbindungszustand */
+   Sets a new link state.
+*/
+
+void ecdev_link_state(ec_device_t *device, /**< EtherCAT device */
+                      uint8_t state /**< new link state */
                       )
 {
     if (unlikely(!device)) {
@@ -242,9 +224,3 @@
 EXPORT_SYMBOL(ecdev_link_state);
 
 /*****************************************************************************/
-
-/* Emacs-Konfiguration
-;;; Local Variables: ***
-;;; c-basic-offset:4 ***
-;;; End: ***
-*/