mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-30 19:11:37 +00:00
net: sandbox: Add a priv ptr for tests to use
Tests need to be able to pass their "unit test state" to the handlers where asserts are evaluated. Add a function that allows the tests to set this private data on the sandbox eth device. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
3f02c98bd1
commit
9cbe5972c3
2 changed files with 29 additions and 0 deletions
|
@ -59,6 +59,7 @@ typedef int sandbox_eth_tx_hand_f(struct udevice *dev, void *pkt,
|
||||||
* recv_packet_length - lengths of the packet returned as received
|
* recv_packet_length - lengths of the packet returned as received
|
||||||
* recv_packets - number of packets returned
|
* recv_packets - number of packets returned
|
||||||
* tx_handler - function to generate responses to sent packets
|
* tx_handler - function to generate responses to sent packets
|
||||||
|
* priv - a pointer to some structure a test may want to keep track of
|
||||||
*/
|
*/
|
||||||
struct eth_sandbox_priv {
|
struct eth_sandbox_priv {
|
||||||
uchar fake_host_hwaddr[ARP_HLEN];
|
uchar fake_host_hwaddr[ARP_HLEN];
|
||||||
|
@ -68,6 +69,7 @@ struct eth_sandbox_priv {
|
||||||
int recv_packet_length[PKTBUFSRX];
|
int recv_packet_length[PKTBUFSRX];
|
||||||
int recv_packets;
|
int recv_packets;
|
||||||
sandbox_eth_tx_hand_f *tx_handler;
|
sandbox_eth_tx_hand_f *tx_handler;
|
||||||
|
void *priv;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -77,4 +79,11 @@ struct eth_sandbox_priv {
|
||||||
*/
|
*/
|
||||||
void sandbox_eth_set_tx_handler(int index, sandbox_eth_tx_hand_f *handler);
|
void sandbox_eth_set_tx_handler(int index, sandbox_eth_tx_hand_f *handler);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set priv ptr
|
||||||
|
*
|
||||||
|
* priv - priv void ptr to store in the device
|
||||||
|
*/
|
||||||
|
void sandbox_eth_set_priv(int index, void *priv);
|
||||||
|
|
||||||
#endif /* __ETH_H */
|
#endif /* __ETH_H */
|
||||||
|
|
|
@ -206,6 +206,26 @@ void sandbox_eth_set_tx_handler(int index, sandbox_eth_tx_hand_f *handler)
|
||||||
priv->tx_handler = sb_default_handler;
|
priv->tx_handler = sb_default_handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set priv ptr
|
||||||
|
*
|
||||||
|
* priv - priv void ptr to store in the device
|
||||||
|
*/
|
||||||
|
void sandbox_eth_set_priv(int index, void *priv)
|
||||||
|
{
|
||||||
|
struct udevice *dev;
|
||||||
|
struct eth_sandbox_priv *dev_priv;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = uclass_get_device(UCLASS_ETH, index, &dev);
|
||||||
|
if (ret)
|
||||||
|
return;
|
||||||
|
|
||||||
|
dev_priv = dev_get_priv(dev);
|
||||||
|
|
||||||
|
dev_priv->priv = priv;
|
||||||
|
}
|
||||||
|
|
||||||
static int sb_eth_start(struct udevice *dev)
|
static int sb_eth_start(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct eth_sandbox_priv *priv = dev_get_priv(dev);
|
struct eth_sandbox_priv *priv = dev_get_priv(dev);
|
||||||
|
|
Loading…
Add table
Reference in a new issue