include/EtherCAT_dev.h
author Florian Pose <fp@igh-essen.com>
Thu, 02 Mar 2006 11:19:27 +0000
changeset 96 080b46eb6e2d
parent 78 3d74183d6c6b
child 98 f564d0929292
permissions -rw-r--r--
Link-State im Device.
/******************************************************************************
 *
 * Oeffentliche EtherCAT-Schnittstellen fuer EtherCAT-Geraetetreiber.
 *
 * $Id$
 *
 *****************************************************************************/

#ifndef _ETHERCAT_DEVICE_H_
#define _ETHERCAT_DEVICE_H_

#include <linux/netdevice.h>

/*****************************************************************************/

struct ec_device;

typedef struct ec_device ec_device_t;

/*****************************************************************************/

typedef enum
{
  EC_DEVICE_STATE_READY = 0,
  EC_DEVICE_STATE_SENT,
  EC_DEVICE_STATE_RECEIVED,
  EC_DEVICE_STATE_TIMEOUT,
  EC_DEVICE_STATE_ERROR
}
ec_device_state_t;

/*****************************************************************************/

ec_device_t *EtherCAT_dev_register(unsigned int, struct net_device *,
                                   irqreturn_t (*)(int, void *,
                                                   struct pt_regs *),
                                   struct module *);
void EtherCAT_dev_unregister(unsigned int, ec_device_t *);

int EtherCAT_dev_is_ec(const ec_device_t *, const struct net_device *);
void EtherCAT_dev_state(ec_device_t *, ec_device_state_t);
void EtherCAT_dev_receive(ec_device_t *, const void *, size_t);
void EtherCAT_dev_link_state(ec_device_t *, uint8_t);

/*****************************************************************************/

#endif