Forum Linux.noyau pilote réseau

Posté par  .
Étiquettes : aucune
0
9
mai
2006
Bonjour ,
voici les fonctions utilisées dans un pilote linux pour la carte reseau Fast Ethernet SIS900:

static int sis900_open(struct net_device *net_dev);

static int sis900_mii_probe (struct net_device * net_dev);

static void sis900_init_rxfilter (struct net_device * net_dev);

static u16 read_eeprom(long ioaddr, int location);

static u16 mdio_read(struct net_device *net_dev, int phy_id, int location);

static void mdio_write(struct net_device *net_dev, int phy_id, int location, int val);

static void sis900_timer(unsigned long data);

static void sis900_check_mode (struct net_device *net_dev,

struct mii_phy *mii_phy);

static void sis900_tx_timeout(struct net_device *net_dev);

static void sis900_init_tx_ring(struct net_device *net_dev);

static void sis900_init_rx_ring(struct net_device *net_dev);

static int sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev);

static int sis900_rx(struct net_device *net_dev);

static void sis900_finish_xmit (struct net_device *net_dev);

static void sis900_interrupt(int irq, void *dev_instance, struct pt_regs *regs);

static int sis900_close(struct net_device *net_dev);

static int mii_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd);

static struct net_device_stats *sis900_get_stats(struct net_device *net_dev);

static u16 sis900_compute_hashtable_index(u8 *addr, u8 revision);

static void set_rx_mode(struct net_device *net_dev);

static void sis900_reset(struct net_device *net_dev);

static void sis630_set_eq(struct net_device *net_dev, u8 revision);

static int sis900_set_config(struct net_device *dev, struct ifmap *map);

static u16 sis900_default_phy(struct net_device * net_dev);

static void sis900_set_capability( struct net_device *net_dev ,struct mii_phy *phy);

static u16 sis900_reset_phy(struct net_device *net_dev, int phy_addr);

static void sis900_auto_negotiate(struct net_device *net_dev, int phy_addr);

static void sis900_set_mode (long ioaddr, int speed, int duplex);


je veux savoir comment classer ces fonctions selon les déferentes couches du modèle OSI (par exemple quelle est la fonction qui appartient à la couche physique ou liaison ).

merci.
  • # plusieurs techniques

    Posté par  . Évalué à 1.

    par deduction
    static int sis900_open

    le nom doit dependre de ce que la fonction fait.

    ou par analyse du code source.

    je ne vois pas d'autres techniques
  • # Ben Heu

    Posté par  (site web personnel) . Évalué à 3.

    Un pilote réseau ne s'occupe que de la couche liaison (si mes souvenirs de la pile sont bons). La pile n'est pas dupliquée dans chaque pilote...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.