hal_net_inf.c
来自「基于ARM和uC/OS-II实现的串口控制台」· C语言 代码 · 共 98 行
C
98 行
/******************************************************************
* File name : hal_net_inf.c *
* Description : Functions to register a net device to the *
* "generic" net device interface *
* Others : * *
* Function List : *
* 1. hal_net_open_dev() *
* 2. hal_net_close_dev() *
* *
* History: *
* *
* 1. Date : 2006.11.23 *
* Author : Zhijie Zeng *
* Version : 1.0 *
* Description: Created *
******************************************************************/
#include "../../inc/pub/hal_errno.h"
#include "../../inc/pub/hal_llist.h"
#include "../../inc/dev/hal_file.h"
#include "../../inc/dev/hal_net_dev.h"
//#include "hal_file.h"
/* 创建一个hal_net_dev_llist链表的头结点(定义一个头结点全局变量),
*头结点中的指针被初始化为指向头结点本身 */
HAL_LLIST_HEAD(hal_net_dev_list);
hal_net_fd* hal_net_dev_open(const char* name)
{
hal_net_dev* dev = (hal_net_dev*)hal_find_dev(name, &hal_net_dev_list);
if ((dev) && dev->open)
{
return dev->open(dev, name);
}
return dev;
}
void hal_net_dev_close(hal_net_fd* fd)
{
if (fd && fd->close)
{
fd->close(fd);
}
return;
}
int hal_net_dev_rcvfunc_reg(hal_net_fd* fd, void* rcvfunc)
{
if (fd)
{
fd->rcv_pkg = (hal_net_rcv)rcvfunc;
return 0;
}else
{
return -1;
}
}
int hal_net_set_mac_addr(hal_net_fd *fd, const hal_u8* mac_addr)
{
eth_dev_spec* eth;
eth = (eth_dev_spec*)fd->dev_spec;
if (fd && eth->set_mac_addr)
{
return eth->set_mac_addr(fd, mac_addr);
}else
{
return -1;
}
}
int hal_net_set_dlci(hal_net_fd *fd, const hal_u16* dlci)
{
fr_dev_spec* fr_dev;
fr_dev = (fr_dev_spec*)fd->dev_spec;
if (fd && fr_dev->set_dlci)
{
return fr_dev->set_dlci(fd, dlci);
}else
{
return -1;
}
}
int hal_net_send_pkg(hal_net_fd *fd, mbuf *p)
{
if (fd && fd->send_pkg)
{
return fd->send_pkg(fd, p);
}else
{
return -1;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?