国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2024年11月09日(星期六)

正在發(fā)生

2021年11月09日 | Mini2440 DM9000 驅(qū)動分析

發(fā)布者:CelestialGarden 來源: eefocus關(guān)鍵字:Mini2440  DM9000  驅(qū)動分析 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

net_device_ops中方法的相應(yīng)說明

/*

 * This structure defines the management hooks for network devices.

 * The following hooks can be defined; unless noted otherwise, they are

 * optional and can be filled with a null pointer.

 *

 * int (*ndo_init)(struct net_device *dev);

 *     This function is called once when network device is registered.

 *     The network device can use this to any late stage initializaton

 *     or semantic validattion. It can fail with an error code which will

 *     be propogated back to register_netdev

 *

 * void (*ndo_uninit)(struct net_device *dev);

 *     This function is called when device is unregistered or when registration

 *     fails. It is not called if init fails.

 *

 * int (*ndo_open)(struct net_device *dev);

 *     This function is called when network device transistions to the up

 *     state.

 *

 * int (*ndo_stop)(struct net_device *dev);

 *     This function is called when network device transistions to the down

 *     state.

 *

 * netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb,

 *                               struct net_device *dev);

 * Called when a packet needs to be transmitted.

 * Must return NETDEV_TX_OK , NETDEV_TX_BUSY.

 *        (can also return NETDEV_TX_LOCKED iff NETIF_F_LLTX)

 * Required can not be NULL.

 *

 * u16 (*ndo_select_queue)(struct net_device *dev, struct sk_buff *skb);

 * Called to decide which queue to when device supports multiple

 * transmit queues.

 *

 * void (*ndo_change_rx_flags)(struct net_device *dev, int flags);

 * This function is called to allow device receiver to make

 * changes to configuration when multicast or promiscious is enabled.

 *

 * void (*ndo_set_rx_mode)(struct net_device *dev);

 * This function is called device changes address list filtering.

 *

 * void (*ndo_set_multicast_list)(struct net_device *dev);

 * This function is called when the multicast address list changes.

 *

 * int (*ndo_set_mac_address)(struct net_device *dev, void *addr);

 * This function  is called when the Media Access Control address

 * needs to be changed. If this interface is not defined, the

 * mac address can not be changed.

 *

 * int (*ndo_validate_addr)(struct net_device *dev);

 * Test if Media Access Control address is valid for the device.

 *

 * int (*ndo_do_ioctl)(struct net_device *dev, struct ifreq *ifr, int cmd);

 * Called when a user request an ioctl which can't be handled by

 * the generic interface code. If not defined ioctl's return

 * not supported error code.

 *

 * int (*ndo_set_config)(struct net_device *dev, struct ifmap *map);

 * Used to set network devices bus interface parameters. This interface

 * is retained for legacy reason, new devices should use the bus

 * interface (PCI) for low level management.

 *

 * int (*ndo_change_mtu)(struct net_device *dev, int new_mtu);

 * Called when a user wants to change the Maximum Transfer Unit

 * of a device. If not defined, any request to change MTU will

 * will return an error.

 *

 * void (*ndo_tx_timeout)(struct net_device *dev);

 * Callback uses when the transmitter has not made any progress

 * for dev->watchdog ticks.

 *

 * struct net_device_stats* (*ndo_get_stats)(struct net_device *dev);

 * Called when a user wants to get the network device usage

 * statistics. If not defined, the counters in dev->stats will

 * be used.

 *

 * void (*ndo_vlan_rx_register)(struct net_device *dev, struct vlan_group *grp);

 * If device support VLAN receive accleration

 * (ie. dev->features & NETIF_F_HW_VLAN_RX), then this function is called

 * when vlan groups for the device changes.  Note: grp is NULL

 * if no vlan's groups are being used.

 *

 * void (*ndo_vlan_rx_add_vid)(struct net_device *dev, unsigned short vid);

 * If device support VLAN filtering (dev->features & NETIF_F_HW_VLAN_FILTER)

 * this function is called when a VLAN id is registered.

 *

 * void (*ndo_vlan_rx_kill_vid)(struct net_device *dev, unsigned short vid);

 * If device support VLAN filtering (dev->features & NETIF_F_HW_VLAN_FILTER)

 * this function is called when a VLAN id is unregistered.

 *

 * void (*ndo_poll_controller)(struct net_device *dev);

 */

#define HAVE_NET_DEVICE_OPS

struct net_device_ops {

int (*ndo_init)(struct net_device *dev);

void (*ndo_uninit)(struct net_device *dev);

int (*ndo_open)(struct net_device *dev);

int (*ndo_stop)(struct net_device *dev);

netdev_tx_t (*ndo_start_xmit) (struct sk_buff *skb,

   struct net_device *dev);

u16 (*ndo_select_queue)(struct net_device *dev,

    struct sk_buff *skb);

#define HAVE_CHANGE_RX_FLAGS

void (*ndo_change_rx_flags)(struct net_device *dev,

       int flags);

#define HAVE_SET_RX_MODE

void (*ndo_set_rx_mode)(struct net_device *dev);

#define HAVE_MULTICAST

void (*ndo_set_multicast_list)(struct net_device *dev);

#define HAVE_SET_MAC_ADDR

int (*ndo_set_mac_address)(struct net_device *dev,

       void *addr);

#define HAVE_VALIDATE_ADDR

int (*ndo_validate_addr)(struct net_device *dev);

#define HAVE_PRIVATE_IOCTL

int (*ndo_do_ioctl)(struct net_device *dev,

        struct ifreq *ifr, int cmd);

#define HAVE_SET_CONFIG

int (*ndo_set_config)(struct net_device *dev,

          struct ifmap *map);

#define HAVE_CHANGE_MTU

int (*ndo_change_mtu)(struct net_device *dev,

  int new_mtu);

int (*ndo_neigh_setup)(struct net_device *dev,

   struct neigh_parms *);

#define HAVE_TX_TIMEOUT

void (*ndo_tx_timeout) (struct net_device *dev);

 

struct net_device_stats* (*ndo_get_stats)(struct net_device *dev);

 

void (*ndo_vlan_rx_register)(struct net_device *dev,

        struct vlan_group *grp);

void (*ndo_vlan_rx_add_vid)(struct net_device *dev,

       unsigned short vid);

void (*ndo_vlan_rx_kill_vid)(struct net_device *dev,

        unsigned short vid);

#ifdef CONFIG_NET_POLL_CONTROLLER

#define HAVE_NETDEV_POLL

void                    (*ndo_poll_controller)(struct net_device *dev);

#endif

#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)

int (*ndo_fcoe_enable)(struct net_device *dev);

int (*ndo_fcoe_disable)(struct net_device *dev);

int (*ndo_fcoe_ddp_setup)(struct net_device *dev,

      u16 xid,

      struct scatterlist *sgl,

      unsigned int sgc);

int (*ndo_fcoe_ddp_done)(struct net_device *dev,

     u16 xid);

#endif

};

ethtool_ops 中方法的相應(yīng)說明

/**

 * etool_ops - Alter and report network device settings

 * get_settings: Get device-specific settings

 * set_settings: Set device-specific settings

 * get_drvinfo: Report driver information

 * get_regs: Get device registers

 * get_wol: Report whether Wake-on-Lan is enabled

 * set_wol: Turn Wake-on-Lan on or off

 * get_msglevel: Report driver message level

 * set_msglevel: Set driver message level

 * nway_reset: Restart autonegotiation

 * get_link: Get link status

 * get_eeprom: Read data from the device EEPROM

 * set_eeprom: Write data to the device EEPROM

 * get_coalesce: Get interrupt coalescing parameters

 * set_coalesce: Set interrupt coalescing parameters

 * get_ringparam: Report ring sizes

 * set_ringparam: Set ring sizes

 * get_pauseparam: Report pause parameters

 * set_pauseparam: Set pause parameters

 * get_rx_csum: Report whether receive checksums are turned on or off

 * set_rx_csum: Turn receive checksum on or off

 * get_tx_csum: Report whether transmit checksums are turned on or off

 * set_tx_csum: Turn transmit checksums on or off

 * get_sg: Report whether scatter-gather is enabled

 * set_sg: Turn scatter-gather on or off

 * get_tso: Report whether TCP segmentation offload is enabled

 * set_tso: Turn TCP segmentation offload on or off

 * get_ufo: Report whether UDP fragmentation offload is enabled

 * set_ufo: Turn UDP fragmentation offload on or off

 * self_test: Run specified self-tests

 * get_strings: Return a set of strings that describe the requested objects 

 * phys_id: Identify the device

 * get_stats: Return statistics about the device

 * get_flags: get 32-bit flags bitmap

 * set_flags: set 32-bit flags bitmap

 * 

 * Description:

 *

 * get_settings:

 * @get_settings is passed an etool_cmd to fill in.  It returns

 * an negative errno or zero.

 *

 * set_settings:

 * @set_settings is passed an etool_cmd and should attempt to set

 * all the settings this device supports.  It may return an error value

 * if something goes wrong (otherwise 0).

 *

 * get_eeprom:

 * Should fill in the magic field.  Don't need to check len for zero

 * or wraparound.  Fill in the data argument with the eeprom values

 * from offset to offset + len.  Update len to the amount read.

 * Returns an error or zero.

 *

 * set_eeprom:

 * Should validate the magic field.  Don't need to check len for zero

 * or wraparound.  Update len to the amount written.  Returns an error

 * or zero.

 */

struct ethtool_ops {

int (*get_settings)(struct net_device *, struct ethtool_cmd *);

[1] [2]
關(guān)鍵字:Mini2440  DM9000  驅(qū)動分析 引用地址:Mini2440 DM9000 驅(qū)動分析

上一篇:mini2440一線總線移植tslib1.4
下一篇:Mini2440 DM9000 驅(qū)動分析(三)

推薦閱讀

Ammon Shashua:Mobileye現(xiàn)在是英特爾的一部分,英特爾比之前單槍匹馬的Mobileye要實(shí)力雄厚得多。英特爾有自己的硅光子生產(chǎn)線,可以生產(chǎn)雷達(dá)所需的芯片。該生產(chǎn)線還有一個(gè)負(fù)責(zé)雷達(dá)通訊的部門,可以調(diào)整來做汽車視覺雷達(dá)。所以展望未來,我們有能力自己生產(chǎn)傳感器。文丨Mobileye CEO Ammon Shashua教授為了贏得汽車市場份額,Mobileye將開放架構(gòu)。在以...
1。DS18B20定時(shí)采集溫度2。溫度采集時(shí)間間隔用T1定時(shí)器控制3。采集到的溫度通過CAN總線送另一主機(jī)處理#include <p30f6014.h> //dsPIC30F6014標(biāo)準(zhǔn)頭文件 _FOSC(0x0ffe5); //4倍頻晶振,F(xiàn)ailsafe 時(shí)鐘關(guān)閉 _FWDT(WDT_OFF); //關(guān)閉看門狗定時(shí)器 _FBORPOR(PBOR_OFF & MCLR_EN...
日本機(jī)器人訂單額再度呈現(xiàn)增長,不過受新冠肺炎(COVID-19)疫情及美中貿(mào)易戰(zhàn)影響,日本機(jī)器人產(chǎn)值和出貨量大大降低。其中,對中國的機(jī)器人出口額連續(xù)3季呈現(xiàn)增長,對歐洲的出口額則劇減30%。日本機(jī)器人工業(yè)會(Japan Robot Association;JARA)最新公布統(tǒng)計(jì)數(shù)據(jù)(統(tǒng)計(jì)對象包含F(xiàn)anuc、KUKA、ABB、安川電機(jī)等JARA會員企業(yè),不含服務(wù)型機(jī)器人)指出,上...
在真正的開始分析dm9000 driver的probe之前,首先來看看dm9000 驅(qū)動中幾個(gè)十分重要的結(jié)構(gòu)1、dm9000_driverstatic struct platform_driver dm9000_driver = { .driver = { .name = "dm9000", .owner = THIS_MODULE, .pm = &dm9000_drv_pm_ops, }, .probe = dm9000_probe, .remove = __devexit_p(dm9000_drv_remove),};dm9000...

史海拾趣

問答坊 | AI 解惑

高速電子設(shè)備硬件設(shè)計(jì)及電路板的故障分析

高速電子設(shè)備硬件設(shè)計(jì)及電路板的故障分析 主辦單位:北京昂訊科技有限公司 培訓(xùn)時(shí)間: 2007年9月7—8日 培訓(xùn)地點(diǎn):北京-------北郵科技大廈 聯(lián)系電話:010-62247628 010-62254817 聯(lián)系人: 王先生 培訓(xùn)費(fèi)用:2200元/人(包括:授課費(fèi)、 ...…

查看全部問答∨

教你如何逛論壇

成為單片機(jī)高手秘訣 1.不要看到別人的回復(fù)第一句話就說:給個(gè)代碼吧!你應(yīng)該想想為什么。當(dāng)你自己想出來再參考別人的提示,你就知道自己和別人思路的差異。 2.別小家子氣,買本書幾十塊都舍不得,你還學(xué)個(gè)p。為了省錢看電子書,浪費(fèi)的時(shí)間絕對 ...…

查看全部問答∨

原理圖開發(fā)流程

各位同仁大家好:        首先感謝電子工程世界給我這么好的一個(gè)學(xué)習(xí)和交流的平臺,衷心表示感謝!        我也是學(xué)電子出身的,畢業(yè)后做過兩年P(guān)CBLAYOUT工程師,對PCB方面了解比較多一些,對EDA工具比 ...…

查看全部問答∨

EP2C5T144 最小系統(tǒng)PCB

本人設(shè)計(jì)的EP2C5T144 最小系統(tǒng)PCB,雙面板,6cmx6cm,80個(gè)左右外接引腳,十個(gè)發(fā)光二極管。AS和JTAG成功加載??梢杂糜趥€(gè)人學(xué)習(xí)或者電子設(shè)計(jì)大賽。10元一塊,十塊以上出貨,需要者可以和本人聯(lián)系!qq:403002924…

查看全部問答∨

(三)偶遇一好東東,不忘與大家分享: 分析筆記本電池及節(jié)能技術(shù)

■ 新型電池   圖5   ■ Intel SpeedStep技術(shù)   自PIII級別的CPU起,Intel采用了一種名為Speedstep的技術(shù)(部分早期的PIII CPU不支持該技術(shù)),SpeedStep技術(shù)發(fā)展到現(xiàn)在已有三代:   采用第一代SpeedStep技術(shù)的筆記本電腦使用交流 ...…

查看全部問答∨

為什么我的arm芯片無故被燒?

我用LPC2131設(shè)計(jì)一個(gè)機(jī)器人,驅(qū)動系統(tǒng)采用l298n驅(qū)動直流電機(jī)??墒窃谡{(diào)試的時(shí)候,在使用我的JTAG在線調(diào)試時(shí),機(jī)器人已經(jīng)按照黑色的引導(dǎo)線前進(jìn),能夠完成指定的功能; 但是,我在使用周立功的開發(fā)板把程序用ISP寫入芯片后(我的ISP有點(diǎn)問題,暫時(shí)不 ...…

查看全部問答∨

220V市電輸入

圖片地址為:http://hi.eeworld.net/attachment/201002/27/4187366_1267276358omMb.jpg 幫我分析下,那兩個(gè)保險(xiǎn)絲為什么加在那?還有用RV1這一個(gè)壓敏電阻就夠了,另外那兩個(gè)壓敏電阻是何用途?…

查看全部問答∨

初學(xué)edk,有點(diǎn)問題請教。

初學(xué)edk,做了edk官方的六個(gè)實(shí)驗(yàn),絕的這個(gè)東東很有意思,能簡化fpga的設(shè)計(jì)并且易于修改。 尤其是最近組里想要做一個(gè)pci板,如果能夠調(diào)用edk中的pci接口,那豈不是簡化許多? 但是有個(gè)問題一直困擾著我:各種IP核該怎么用? edk官方的六個(gè)實(shí)驗(yàn)只 ...…

查看全部問答∨

關(guān)于芯片STM32F103B6

看了下ST出的產(chǎn)品目錄,發(fā)現(xiàn)并沒有他,但是在STM32 PRIMER里面采用的主芯片就是這個(gè),是怎么回事呢?…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved