pc_nic_drv: basic rtnetlink for lock/unlock and netdev_run_todo()

This commit is contained in:
Christian Helmuth 2024-03-26 16:17:11 +01:00
parent 38d2b8d46a
commit e691af4e97
3 changed files with 59 additions and 37 deletions

View File

@ -128,43 +128,6 @@ EXPORT_SYMBOL_GPL(bpf_master_redirect_enabled_key);
DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_map);
EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
#include <net/rtnetlink.h>
void rtnl_register(int protocol,int msgtype,rtnl_doit_func doit,rtnl_dumpit_func dumpit,unsigned int flags)
{
lx_emul_trace(__func__);
}
#include <linux/rtnetlink.h>
int rtnl_lock_killable(void)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/rtnetlink.h>
int rtnl_is_locked(void)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/rtnetlink.h>
void rtnl_lock(void)
{
lx_emul_trace(__func__);
}
#include <linux/rtnetlink.h>
void rtnl_unlock(void)
{
lx_emul_trace(__func__);
}
#include <linux/netdevice.h>
int __init dev_proc_init(void)

View File

@ -0,0 +1,58 @@
/*
* \brief Basic RTNETLINK implementation with lock/unlock and netdev_run_todo()
* \author Christian Helmuth
* \date 2024-03-26
*/
/*
* Copyright (C) 2024 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#include <lx_emul.h>
#include <net/rtnetlink.h>
#include <linux/mutex.h>
#include <../net/core/dev.h>
static DEFINE_MUTEX(rtnl_mutex);
void rtnl_register(int protocol,int msgtype,rtnl_doit_func doit,rtnl_dumpit_func dumpit,unsigned int flags)
{
}
int rtnl_lock_killable(void)
{
return mutex_lock_killable(&rtnl_mutex);
}
int rtnl_is_locked(void)
{
return mutex_is_locked(&rtnl_mutex);
}
void rtnl_lock(void)
{
mutex_lock(&rtnl_mutex);
}
void __rtnl_unlock(void)
{
WARN_ON(!list_empty(&net_todo_list));
mutex_unlock(&rtnl_mutex);
}
void rtnl_unlock(void)
{
netdev_run_todo();
}

View File

@ -7,6 +7,7 @@ SRC_C += dummies.c
SRC_C += lx_emul.c
SRC_C += lx_emul/common_dummies.c
SRC_C += lx_user.c
SRC_C += rtnetlink.c
vpath %.c $(REP_DIR)/src/lib/pc
vpath %.cc $(REP_DIR)/src/lib/pc