atm_dev
struct atm_dev *atmdev[4];
static struct atm_vcc* find_vcc(struct atm_dev *dev, short vpi, int vci);
struct atm_dev *atmdev = container_of(dev, struct atm_dev, class_dev);
struct atm_dev *atmdev = container_of(dev, struct atm_dev, class_dev);
struct atm_dev *atmdev = container_of(dev, struct atm_dev, class_dev);
struct atm_dev *atmdev = container_of(dev, struct atm_dev, class_dev);
static struct atm_vcc *find_vcc(struct atm_dev *dev, short vpi, int vci)
if (instance == NULL || instance->usbatm->atm_dev == NULL)
return sprintf(buf, "%pM\n", instance->usbatm->atm_dev->esi);
struct atm_dev *atm_dev)
atm_dev->esi, sizeof(atm_dev->esi));
struct atm_dev *atm_dev = usbatm->atm_dev;
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_LOST);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_LOST);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_LOST);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_LOST);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_LOST);
atm_dev->link_rate = buf[CXINF_DOWNSTREAM_RATE] * 1000 / 424;
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_FOUND);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_LOST);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_LOST);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_UNKNOWN);
struct atm_dev *atm_dev = usbatm->atm_dev;
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_LOST);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_UNKNOWN);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_LOST);
atm_dev->link_rate = down_speed * 1000 / 424;
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_FOUND);
atm_dev_signal_change(atm_dev, ATM_PHY_SIG_UNKNOWN);
static int speedtch_atm_start(struct usbatm_data *usbatm, struct atm_dev *atm_dev)
memset(atm_dev->esi, 0, sizeof(atm_dev->esi));
atm_dev->esi[i] = (hex_to_bin(mac_str[i * 2]) << 4) +
static void speedtch_atm_stop(struct usbatm_data *usbatm, struct atm_dev *atm_dev)
static int uea_atm_open(struct usbatm_data *usbatm, struct atm_dev *atm_dev)
return uea_getesi(sc, atm_dev->esi);
if (sc->usbatm->atm_dev) \
sc->usbatm->atm_dev->type = val; \
if (sc->usbatm->atm_dev) \
atm_dev_signal_change(sc->usbatm->atm_dev, val); \
if (instance->atm_dev && instance->driver->atm_stop)
instance->driver->atm_stop(instance, instance->atm_dev);
if (instance->atm_dev) {
atm_dev_deregister(instance->atm_dev);
instance->atm_dev = NULL;
static void usbatm_atm_dev_close(struct atm_dev *atm_dev);
static int usbatm_atm_ioctl(struct atm_dev *atm_dev, unsigned int cmd, void __user *arg);
static int usbatm_atm_proc_read(struct atm_dev *atm_dev, loff_t *pos, char *page);
static void usbatm_atm_dev_close(struct atm_dev *atm_dev)
struct usbatm_data *instance = atm_dev->dev_data;
atm_dev->dev_data = NULL; /* catch bugs */
static int usbatm_atm_proc_read(struct atm_dev *atm_dev, loff_t *pos, char *page)
struct usbatm_data *instance = atm_dev->dev_data;
return sprintf(page, "MAC: %pM\n", atm_dev->esi);
atomic_read(&atm_dev->stats.aal5.tx),
atomic_read(&atm_dev->stats.aal5.tx_err),
atomic_read(&atm_dev->stats.aal5.rx),
atomic_read(&atm_dev->stats.aal5.rx_err),
atomic_read(&atm_dev->stats.aal5.rx_drop));
switch (atm_dev->signal) {
static int usbatm_atm_ioctl(struct atm_dev *atm_dev, unsigned int cmd,
struct usbatm_data *instance = atm_dev->dev_data;
struct atm_dev *atm_dev;
atm_dev = atm_dev_register(instance->driver_name,
if (!atm_dev) {
instance->atm_dev = atm_dev;
atm_dev->ci_range.vpi_bits = ATM_CI_MAX;
atm_dev->ci_range.vci_bits = ATM_CI_MAX;
atm_dev->signal = ATM_PHY_SIG_UNKNOWN;
atm_dev->link_rate = 128 * 1000 / 424;
if (instance->driver->atm_start && ((ret = instance->driver->atm_start(instance, atm_dev)) < 0)) {
atm_dev->dev_data = instance;
instance->atm_dev = NULL;
atm_dev_deregister(atm_dev); /* usbatm_atm_dev_close will eventually be called */
struct atm_dev *atm_dev;
(instance)->atm_dev->number , ## arg)
(instance)->atm_dev->number, ##__VA_ARGS__)
(instance)->atm_dev->number, ##__VA_ARGS__)
int (*atm_start) (struct usbatm_data *, struct atm_dev *);
void (*atm_stop) (struct usbatm_data *, struct atm_dev *);
struct atm_dev *atm_dev)
eth_random_addr(atm_dev->esi);
void (*dev_close)(struct atm_dev *dev);
int (*ioctl)(struct atm_dev *dev,unsigned int cmd,void __user *arg);
int (*compat_ioctl)(struct atm_dev *dev,unsigned int cmd,
int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
struct atm_dev *atm_dev_register(const char *type, struct device *parent,
struct atm_dev *atm_dev_lookup(int number);
void atm_dev_deregister(struct atm_dev *dev);
void atm_dev_signal_change(struct atm_dev *dev, char signal);
void atm_dev_release_vccs(struct atm_dev *dev);
static inline void atm_dev_hold(struct atm_dev *dev)
static inline void atm_dev_put(struct atm_dev *dev)
struct atm_dev *dev; /* device back pointer */
struct atm_dev *adev = to_atm_dev(cdev);
int atm_register_sysfs(struct atm_dev *adev, struct device *parent)
#define to_atm_dev(cldev) container_of(cldev, struct atm_dev, class_dev)
void atm_unregister_sysfs(struct atm_dev *adev)
struct atm_dev *adev = to_atm_dev(cdev);
struct atm_dev *adev = to_atm_dev(cdev);
struct atm_dev *adev = to_atm_dev(cdev);
struct atm_dev *adev = to_atm_dev(cdev);
struct atm_dev *adev = to_atm_dev(cdev);
const struct atm_dev *adev;
struct atm_dev *atm_dev = arg;
pr_debug("event=%ld dev=%p\n", event, atm_dev);
if (atm_vcc && brvcc->atmvcc->dev == atm_dev) {
void atm_dev_signal_change(struct atm_dev *dev, char signal)
void atm_dev_release_vccs(struct atm_dev *dev)
static int __vcc_connect(struct atm_vcc *vcc, struct atm_dev *dev, short vpi,
struct atm_dev *dev;
struct atm_dev, dev_list);
void atm_dev_release_vccs(struct atm_dev *dev);
struct atm_dev *dev = list_entry(v, struct atm_dev, dev_list);
struct atm_dev *dev;
int atm_proc_dev_register(struct atm_dev *dev)
void atm_proc_dev_deregister(struct atm_dev *dev)
static void atm_dev_info(struct seq_file *seq, const struct atm_dev *dev)
void atm_dev_deregister(struct atm_dev *dev)
static int fetch_stats(struct atm_dev *dev, struct atm_dev_stats __user *arg,
struct atm_dev *dev;
struct atm_dev *dev;
static struct atm_dev *__alloc_atm_dev(const char *type)
struct atm_dev *dev;
static struct atm_dev *__atm_dev_lookup(int number)
struct atm_dev *dev;
struct atm_dev *atm_dev_lookup(int number)
struct atm_dev *dev;
struct atm_dev *atm_dev_register(const char *type, struct device *parent,
struct atm_dev *dev, *inuse;
int atm_proc_dev_register(struct atm_dev *dev);
void atm_proc_dev_deregister(struct atm_dev *dev);
static inline int atm_proc_dev_register(struct atm_dev *dev)
static inline void atm_proc_dev_deregister(struct atm_dev *dev)
int atm_register_sysfs(struct atm_dev *adev, struct device *parent);
void atm_unregister_sysfs(struct atm_dev *adev);