virt_lx_emul: adjust dummies for usb_hid/net

issue #4958
This commit is contained in:
Sebastian Sumpf 2023-06-14 15:34:33 +02:00 committed by Christian Helmuth
parent 71c32f2923
commit 22231c0604
6 changed files with 182 additions and 46 deletions

View File

@ -25,6 +25,7 @@ endif
-include $(call select_from_repositories,lib/import/import-lx_emul_common.inc)
SRC_C += lx_emul/shadow/drivers/char/random.c
SRC_C += lx_emul/shadow/kernel/rcu/srcutree.c
SRC_C += lx_emul/virt/common_dummies.c
SRC_CC += lx_emul/virt/irq.cc
SRC_CC += lx_kit/memory_non_dma.cc
@ -40,3 +41,6 @@ endif
ifeq ($(filter-out $(SPECS),arm_64),)
SRC_C += lx_emul/virt/spec/arm_64/dummies_arch.c
endif
ifeq ($(filter-out $(SPECS),arm),)
SRC_C += lx_emul/virt/spec/arm/dummies_arch.c
endif

View File

@ -15,6 +15,46 @@
#include <lx_emul.h>
extern int __init buses_init(void);
int __init buses_init(void)
{
lx_emul_trace(__func__);
return 0;
}
extern int __init classes_init(void);
int __init classes_init(void)
{
lx_emul_trace(__func__);
return 0;
}
extern int __init devices_init(void);
int __init devices_init(void)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/rcutree.h>
void kvfree(const void * addr)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/timekeeper_internal.h>
void update_vsyscall(struct timekeeper * tk)
{
lx_emul_trace(__func__);
}
#include <net/ipv6_stubs.h>
const struct ipv6_stub *ipv6_stub = NULL;
@ -151,6 +191,14 @@ void __init net_ns_init(void)
}
unsigned long __must_check __arch_copy_to_user(void __user *to, const void *from, unsigned long n);
unsigned long __must_check __arch_copy_to_user(void __user *to, const void *from, unsigned long n)
{
lx_emul_trace_and_stop(__func__);
}
#ifdef CONFIG_ARM64
extern void flush_dcache_page(struct page * page);
void flush_dcache_page(struct page * page)

View File

@ -13,6 +13,10 @@
#include <lx_emul.h>
#include <asm-generic/sections.h>
char __start_rodata[] = {};
char __end_rodata[] = {};
extern int __init platform_bus_init(void);
int __init platform_bus_init(void)
@ -39,31 +43,6 @@ int add_random_ready_callback(struct random_ready_callback * rdy)
return 0;
}
extern int __init buses_init(void);
int __init buses_init(void)
{
lx_emul_trace(__func__);
return 0;
}
extern int __init classes_init(void);
int __init classes_init(void)
{
lx_emul_trace(__func__);
return 0;
}
extern int __init devices_init(void);
int __init devices_init(void)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/interrupt.h>
int __init early_irq_init(void)
@ -138,25 +117,17 @@ void rcu_sched_clock_irq(int user)
}
#include <linux/rcutree.h>
void kvfree(const void * addr)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/timekeeper_internal.h>
void update_vsyscall(struct timekeeper * tk)
{
lx_emul_trace(__func__);
}
#include <linux/sched/signal.h>
void ignore_signals(struct task_struct * t)
{
lx_emul_trace(__func__);
}
#include <linux/srcu.h>
void synchronize_srcu(struct srcu_struct * ssp)
{
lx_emul_trace_and_stop(__func__);
}

View File

@ -0,0 +1,71 @@
/**
* \brief Architecture-specific dummy definitions of Linux Kernel functions
* \author Sebastian Sumpf
* \date 2023-07-01
*/
/*
* Copyright (C) 2023 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#include <lx_emul.h>
#include <linux/of_fdt.h>
bool __init early_init_dt_scan(void * params)
{
lx_emul_trace(__func__);
return false;
}
#include <linux/of_fdt.h>
void __init unflatten_device_tree(void)
{
lx_emul_trace(__func__);
}
#include <linux/of_clk.h>
void __init of_clk_init(const struct of_device_id * matches)
{
lx_emul_trace(__func__);
}
#include <linux/of.h>
void __init of_core_init(void)
{
lx_emul_trace(__func__);
}
#include <linux/irqchip.h>
void __init irqchip_init(void)
{
lx_emul_trace(__func__);
}
#include <linux/sched_clock.h>
void __init sched_clock_register(u64 (* read)(void),int bits,unsigned long rate)
{
lx_emul_trace(__func__);
}
#include <linux/sched_clock.h>
void __init generic_sched_clock_init(void)
{
lx_emul_trace(__func__);
}

View File

@ -29,11 +29,6 @@ bool cpu_have_feature(unsigned int num)
u64 vabits_actual;
unsigned long __must_check __arch_copy_to_user(void __user *to, const void *from, unsigned long n)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/of_fdt.h>

View File

@ -41,3 +41,50 @@ void skb_init()
{
lx_emul_trace(__func__);
}
extern int __init buses_init(void);
int __init buses_init(void)
{
lx_emul_trace(__func__);
return 0;
}
extern int __init classes_init(void);
int __init classes_init(void)
{
lx_emul_trace(__func__);
return 0;
}
extern int __init devices_init(void);
int __init devices_init(void)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/rcutree.h>
void kvfree(const void * addr)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/timekeeper_internal.h>
void update_vsyscall(struct timekeeper * tk)
{
lx_emul_trace(__func__);
}
extern unsigned long __must_check __arch_copy_to_user(void __user *to, const void *from, unsigned long n);
unsigned long __must_check __arch_copy_to_user(void __user *to, const void *from, unsigned long n)
{
lx_emul_trace_and_stop(__func__);
}