master/device.h
changeset 73 9f4ea66d89a3
parent 54 7506e67dd122
child 78 3d74183d6c6b
equal deleted inserted replaced
72:7c986b717411 73:9f4ea66d89a3
    26    und zu empfangen.
    26    und zu empfangen.
    27 */
    27 */
    28 
    28 
    29 struct ec_device
    29 struct ec_device
    30 {
    30 {
    31   struct net_device *dev;    /**< Zeiger auf das reservierte net_device */
    31     struct net_device *dev; /**< Zeiger auf das reservierte net_device */
    32   unsigned int open;         /**< Das net_device ist geoeffnet. */
    32     unsigned int open;      /**< Das net_device ist geoeffnet. */
    33   struct sk_buff *tx_skb;    /**< Zeiger auf Transmit-Socketbuffer */
    33     struct sk_buff *tx_skb; /**< Zeiger auf Transmit-Socketbuffer */
    34   struct sk_buff *rx_skb;    /**< Zeiger auf Receive-Socketbuffer */
    34     unsigned long tx_time;  /**< Zeit des letzten Sendens */
    35   unsigned long tx_time;     /**< Zeit des letzten Sendens */
    35     unsigned long rx_time;  /**< Zeit des letzten Empfangs */
    36   unsigned long rx_time;     /**< Zeit des letzten Empfangs */
    36     volatile ec_device_state_t state; /**< Zustand des Gerätes */
    37   unsigned long tx_intr_cnt; /**< Anzahl Tx-Interrupts */
    37     uint8_t rx_data[EC_MAX_FRAME_SIZE]; /**< Speicher für empfangene Rahmen */
    38   unsigned long rx_intr_cnt; /**< Anzahl Rx-Interrupts */
    38     volatile unsigned int rx_data_length; /**< Länge des empfangenen Rahmens */
    39   unsigned long intr_cnt;    /**< Anzahl Interrupts */
    39     irqreturn_t (*isr)(int, void *, struct pt_regs *); /**< Adresse der ISR */
    40   volatile ec_device_state_t state; /**< Gesendet, Empfangen,
    40     struct module *module; /**< Zeiger auf das Modul, das das Gerät zur
    41                                        Timeout, etc. */
    41                               Verfügung stellt. */
    42   unsigned char rx_data[EC_FRAME_SIZE]; /**< Puffer für
    42     int error_reported; /**< Zeigt an, ob ein Fehler im zyklischen Code
    43                                            empfangene Rahmen */
    43                            bereits gemeldet wurde. */
    44   volatile unsigned int rx_data_length; /**< Länge des zuletzt
       
    45                                            empfangenen Rahmens */
       
    46   irqreturn_t (*isr)(int, void *, struct pt_regs *); /**< Adresse der ISR */
       
    47   struct module *module; /**< Zeiger auf das Modul, das das Gerät zur
       
    48                             Verfügung stellt. */
       
    49   int error_reported; /**< Zeigt an, ob ein Fehler im zyklischen Code
       
    50                          bereits gemeldet wurde. */
       
    51 };
    44 };
    52 
    45 
    53 /*****************************************************************************/
    46 /*****************************************************************************/
    54 
    47 
    55 int ec_device_init(ec_device_t *);
    48 int ec_device_init(ec_device_t *);
    56 void ec_device_clear(ec_device_t *);
    49 void ec_device_clear(ec_device_t *);
    57 int ec_device_open(ec_device_t *);
    50 int ec_device_open(ec_device_t *);
    58 int ec_device_close(ec_device_t *);
    51 int ec_device_close(ec_device_t *);
    59 void ec_device_call_isr(ec_device_t *);
    52 void ec_device_call_isr(ec_device_t *);
    60 int ec_device_send(ec_device_t *, unsigned char *, unsigned int);
    53 uint8_t *ec_device_prepare(ec_device_t *);
    61 int ec_device_receive(ec_device_t *, unsigned char *);
    54 void ec_device_send(ec_device_t *, unsigned int);
       
    55 unsigned int ec_device_received(const ec_device_t *);
       
    56 uint8_t *ec_device_data(ec_device_t *);
    62 
    57 
    63 /*****************************************************************************/
    58 /*****************************************************************************/
    64 
    59 
    65 #endif
    60 #endif
       
    61 
       
    62 /* Emacs-Konfiguration
       
    63 ;;; Local Variables: ***
       
    64 ;;; c-basic-offset:4 ***
       
    65 ;;; End: ***
       
    66 */