drivers: net: Fix build errors in skeleton.c
Summary: - This commit fixes build errors in skeleton.c - Also, add CONFIG_NET_SKELETON to Kconfig and Make.defs Impact: - None Testing: - Build with sabre-6quad:netnsh (will be updated later) Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
This commit is contained in:
parent
a875e13105
commit
9930ad3279
@ -342,6 +342,23 @@ menuconfig NET_LAN91C111
|
|||||||
if NET_LAN91C111
|
if NET_LAN91C111
|
||||||
endif # NET_LAN91C111
|
endif # NET_LAN91C111
|
||||||
|
|
||||||
|
menuconfig NET_SKELETON
|
||||||
|
bool "Skeleton network support"
|
||||||
|
default n
|
||||||
|
select ARCH_HAVE_NETDEV_STATISTICS
|
||||||
|
---help---
|
||||||
|
NuttX skeleton network driver
|
||||||
|
|
||||||
|
if NET_SKELETON
|
||||||
|
config NET_SKELETON_IRQ
|
||||||
|
int "Skeleton IRQ number"
|
||||||
|
default 0
|
||||||
|
|
||||||
|
config NET_SKELETON_NINTERFACES
|
||||||
|
int "Number of physical skeleton devices"
|
||||||
|
default 1
|
||||||
|
endif
|
||||||
|
|
||||||
menuconfig NET_W5500
|
menuconfig NET_W5500
|
||||||
bool "WIZnet W5500 Support"
|
bool "WIZnet W5500 Support"
|
||||||
default n
|
default n
|
||||||
|
@ -64,6 +64,10 @@ ifeq ($(CONFIG_NET_LAN91C111),y)
|
|||||||
CSRCS += lan91c111.c
|
CSRCS += lan91c111.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_NET_SKELETON),y)
|
||||||
|
CSRCS += skeleton.c
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_NET_W5500),y)
|
ifeq ($(CONFIG_NET_W5500),y)
|
||||||
CSRCS += w5500.c
|
CSRCS += w5500.c
|
||||||
endif
|
endif
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
# include <nuttx/net/pkt.h>
|
# include <nuttx/net/pkt.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_NET_skeleton
|
#ifdef CONFIG_NET_SKELETON
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
@ -68,12 +68,12 @@
|
|||||||
|
|
||||||
#define ETHWORK LPWORK
|
#define ETHWORK LPWORK
|
||||||
|
|
||||||
/* CONFIG_SKELETON_NINTERFACES determines the number of physical interfaces
|
/* CONFIG_NET_SKELETON_NINTERFACES determines the number of
|
||||||
* that will be supported.
|
* physical interfaces that will be supported.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_SKELETON_NINTERFACES
|
#ifndef CONFIG_NET_SKELETON_NINTERFACES
|
||||||
# define CONFIG_SKELETON_NINTERFACES 1
|
# define CONFIG_NET_SKELETON_NINTERFACES 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* TX timeout = 1 minute */
|
/* TX timeout = 1 minute */
|
||||||
@ -123,16 +123,18 @@ struct skel_driver_s
|
|||||||
* descriptors in rings to implement such a pipeline. This example assumes
|
* descriptors in rings to implement such a pipeline. This example assumes
|
||||||
* much simpler hardware that simply handles one packet at a time.
|
* much simpler hardware that simply handles one packet at a time.
|
||||||
*
|
*
|
||||||
* NOTE that if CONFIG_SKELETON_NINTERFACES were greater than 1, you would
|
* NOTE that if CONFIG_NET_SKELETON_NINTERFACES were greater than 1,
|
||||||
* need a minimum on one packet buffer per instance. Much better to be
|
* you would need a minimum on one packet buffer per instance.
|
||||||
* allocated dynamically in cases where more than one are needed.
|
* Much better to be allocated dynamically in cases where more than
|
||||||
|
* one are needed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static uint16_t g_pktbuf[CONFIG_SKELETON_NINTERFACES][(PKTBUF_SIZE + 1) / 2];
|
static uint16_t
|
||||||
|
g_pktbuf[CONFIG_NET_SKELETON_NINTERFACES][(PKTBUF_SIZE + 1) / 2];
|
||||||
|
|
||||||
/* Driver state structure */
|
/* Driver state structure */
|
||||||
|
|
||||||
static struct skel_driver_s g_skel[CONFIG_SKELETON_NINTERFACES];
|
static struct skel_driver_s g_skel[CONFIG_NET_SKELETON_NINTERFACES];
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Private Function Prototypes
|
* Private Function Prototypes
|
||||||
@ -145,7 +147,7 @@ static int skel_txpoll(FAR struct net_driver_s *dev);
|
|||||||
|
|
||||||
/* Interrupt handling */
|
/* Interrupt handling */
|
||||||
|
|
||||||
static void skel_reply(struct skel_driver_s *priv)
|
static void skel_reply(struct skel_driver_s *priv);
|
||||||
static void skel_receive(FAR struct skel_driver_s *priv);
|
static void skel_receive(FAR struct skel_driver_s *priv);
|
||||||
static void skel_txdone(FAR struct skel_driver_s *priv);
|
static void skel_txdone(FAR struct skel_driver_s *priv);
|
||||||
|
|
||||||
@ -352,7 +354,7 @@ static void skel_reply(struct skel_driver_s *priv)
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
neighbor_out(&skel->sk_dev);
|
neighbor_out(&priv->sk_dev);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -464,7 +466,7 @@ static void skel_receive(FAR struct skel_driver_s *priv)
|
|||||||
NETDEV_RXDROPPED(&priv->sk_dev);
|
NETDEV_RXDROPPED(&priv->sk_dev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (); /* While there are more packets to be processed */
|
while (true); /* While there are more packets to be processed */
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -486,8 +488,6 @@ static void skel_receive(FAR struct skel_driver_s *priv)
|
|||||||
|
|
||||||
static void skel_txdone(FAR struct skel_driver_s *priv)
|
static void skel_txdone(FAR struct skel_driver_s *priv)
|
||||||
{
|
{
|
||||||
int delay;
|
|
||||||
|
|
||||||
/* Check for errors and update statistics */
|
/* Check for errors and update statistics */
|
||||||
|
|
||||||
NETDEV_TXDONE(priv->sk_dev);
|
NETDEV_TXDONE(priv->sk_dev);
|
||||||
@ -556,7 +556,7 @@ static void skel_interrupt_work(FAR void *arg)
|
|||||||
|
|
||||||
/* Re-enable Ethernet interrupts */
|
/* Re-enable Ethernet interrupts */
|
||||||
|
|
||||||
up_enable_irq(CONFIG_SKELETON_IRQ);
|
up_enable_irq(CONFIG_NET_SKELETON_IRQ);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -589,7 +589,7 @@ static int skel_interrupt(int irq, FAR void *context, FAR void *arg)
|
|||||||
* condition here.
|
* condition here.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
up_disable_irq(CONFIG_SKELETON_IRQ);
|
up_disable_irq(CONFIG_NET_SKELETON_IRQ);
|
||||||
|
|
||||||
/* TODO: Determine if a TX transfer just completed */
|
/* TODO: Determine if a TX transfer just completed */
|
||||||
|
|
||||||
@ -674,7 +674,7 @@ static void skel_txtimeout_expiry(wdparm_t arg)
|
|||||||
* condition with interrupt work that is already queued and in progress.
|
* condition with interrupt work that is already queued and in progress.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
up_disable_irq(CONFIG_SKELETON_IRQ);
|
up_disable_irq(CONFIG_NET_SKELETON_IRQ);
|
||||||
|
|
||||||
/* Schedule to perform the TX timeout processing on the worker thread. */
|
/* Schedule to perform the TX timeout processing on the worker thread. */
|
||||||
|
|
||||||
@ -706,8 +706,10 @@ static int skel_ifup(FAR struct net_driver_s *dev)
|
|||||||
|
|
||||||
#ifdef CONFIG_NET_IPv4
|
#ifdef CONFIG_NET_IPv4
|
||||||
ninfo("Bringing up: %d.%d.%d.%d\n",
|
ninfo("Bringing up: %d.%d.%d.%d\n",
|
||||||
dev->d_ipaddr & 0xff, (dev->d_ipaddr >> 8) & 0xff,
|
(int)dev->d_ipaddr & 0xff,
|
||||||
(dev->d_ipaddr >> 16) & 0xff, dev->d_ipaddr >> 24);
|
(int)(dev->d_ipaddr >> 8) & 0xff,
|
||||||
|
(int)(dev->d_ipaddr >> 16) & 0xff,
|
||||||
|
(int)dev->d_ipaddr >> 24);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_NET_IPv6
|
#ifdef CONFIG_NET_IPv6
|
||||||
ninfo("Bringing up: %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
|
ninfo("Bringing up: %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
|
||||||
@ -729,7 +731,7 @@ static int skel_ifup(FAR struct net_driver_s *dev)
|
|||||||
/* Enable the Ethernet interrupt */
|
/* Enable the Ethernet interrupt */
|
||||||
|
|
||||||
priv->sk_bifup = true;
|
priv->sk_bifup = true;
|
||||||
up_enable_irq(CONFIG_SKELETON_IRQ);
|
up_enable_irq(CONFIG_NET_SKELETON_IRQ);
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -759,7 +761,7 @@ static int skel_ifdown(FAR struct net_driver_s *dev)
|
|||||||
/* Disable the Ethernet interrupt */
|
/* Disable the Ethernet interrupt */
|
||||||
|
|
||||||
flags = enter_critical_section();
|
flags = enter_critical_section();
|
||||||
up_disable_irq(CONFIG_SKELETON_IRQ);
|
up_disable_irq(CONFIG_NET_SKELETON_IRQ);
|
||||||
|
|
||||||
/* Cancel the TX timeout timers */
|
/* Cancel the TX timeout timers */
|
||||||
|
|
||||||
@ -883,6 +885,7 @@ static int skel_addmac(FAR struct net_driver_s *dev, FAR const uint8_t *mac)
|
|||||||
|
|
||||||
/* Add the MAC address to the hardware multicast routing table */
|
/* Add the MAC address to the hardware multicast routing table */
|
||||||
|
|
||||||
|
UNUSED(priv);
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -911,6 +914,7 @@ static int skel_rmmac(FAR struct net_driver_s *dev, FAR const uint8_t *mac)
|
|||||||
|
|
||||||
/* Add the MAC address to the hardware multicast routing table */
|
/* Add the MAC address to the hardware multicast routing table */
|
||||||
|
|
||||||
|
UNUSED(priv);
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -951,7 +955,7 @@ static void skel_ipv6multicast(FAR struct skel_driver_s *priv)
|
|||||||
mac[0] = 0x33;
|
mac[0] = 0x33;
|
||||||
mac[1] = 0x33;
|
mac[1] = 0x33;
|
||||||
|
|
||||||
dev = &priv->dev;
|
dev = &priv->sk_dev;
|
||||||
tmp16 = dev->d_ipv6addr[6];
|
tmp16 = dev->d_ipv6addr[6];
|
||||||
mac[2] = 0xff;
|
mac[2] = 0xff;
|
||||||
mac[3] = tmp16 >> 8;
|
mac[3] = tmp16 >> 8;
|
||||||
@ -1057,14 +1061,14 @@ int skel_initialize(int intf)
|
|||||||
|
|
||||||
/* Get the interface structure associated with this interface number. */
|
/* Get the interface structure associated with this interface number. */
|
||||||
|
|
||||||
DEBUGASSERT(intf < CONFIG_SKELETON_NINTERFACES);
|
DEBUGASSERT(intf < CONFIG_NET_SKELETON_NINTERFACES);
|
||||||
priv = &g_skel[intf];
|
priv = &g_skel[intf];
|
||||||
|
|
||||||
/* Check if a Ethernet chip is recognized at its I/O base */
|
/* Check if a Ethernet chip is recognized at its I/O base */
|
||||||
|
|
||||||
/* Attach the IRQ to the driver */
|
/* Attach the IRQ to the driver */
|
||||||
|
|
||||||
if (irq_attach(CONFIG_SKELETON_IRQ, skel_interrupt, priv))
|
if (irq_attach(CONFIG_NET_SKELETON_IRQ, skel_interrupt, priv))
|
||||||
{
|
{
|
||||||
/* We could not attach the ISR to the interrupt */
|
/* We could not attach the ISR to the interrupt */
|
||||||
|
|
||||||
@ -1102,4 +1106,6 @@ int skel_initialize(int intf)
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_NET_skeleton */
|
#endif /* !defined(CONFIG_SCHED_WORKQUEUE) */
|
||||||
|
|
||||||
|
#endif /* CONFIG_NET_SKELETON */
|
||||||
|
Loading…
Reference in New Issue
Block a user