应用程序网络编程是基于socket接口的,好像完全屏蔽了底层,不能像字符设备那样应用程序可以调用open、read、write等
驱动函数,请问系统是在哪里调用了驱动程序里的函数,什么时候调用?比如dm9000_open,dm9000_ioctl,
dm9000_phy_read,dm9000_phy_write等函数我想用它,怎么调用?
请高手指点
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
驱动属于设备层的,与块和字符设备属于同级别,但的确没有这些设备的这样上层函数,这是个主要区别。
如果能使网卡,系统会自动调用这些函数,包括事件的处理。 至于socket网络层函数属于上层函数,可以认为没有直接的控制关系,只有是在查找路由等时候,才要查找相应的设备接口和调用收发函数。
------解决方案--------------------
socket发送数据,会查找相应的interface,并调用发送函数,当然不是socket直接调,要用过tcp/ip协议栈去调。
接收函数是自动发送给tcp/ip栈,然后socket可以读。 至于初始化和配置函数,是网卡自动加载时候进行的,属于设备自身的管理,跟socket没关