usb_net: update to 6.6.47

Issue #5264
This commit is contained in:
Sebastian Sumpf 2024-07-01 12:45:15 +02:00 committed by Christian Helmuth
parent dbb51786fc
commit 056c755708
11 changed files with 611 additions and 241 deletions

View File

@ -152,6 +152,7 @@ arch/x86/include/asm/fpu/api.h
arch/x86/include/asm/fpu/types.h
arch/x86/include/asm/fsgsbase.h
arch/x86/include/asm/ftrace.h
arch/x86/include/asm/gsseg.h
arch/x86/include/asm/hardirq.h
arch/x86/include/asm/hw_breakpoint.h
arch/x86/include/asm/hw_irq.h
@ -408,8 +409,10 @@ include/linux/bottom_half.h
include/linux/bpf-cgroup-defs.h
include/linux/bpf-cgroup.h
include/linux/bpf.h
include/linux/bpf_mprog.h
include/linux/bpf_trace.h
include/linux/bpfptr.h
include/linux/bsearch.h
include/linux/btf.h
include/linux/bug.h
include/linux/build_bug.h
@ -546,7 +549,6 @@ include/linux/instrumentation.h
include/linux/instrumented.h
include/linux/interrupt.h
include/linux/io.h
include/linux/ioasid.h
include/linux/iocontext.h
include/linux/iopoll.h
include/linux/ioport.h
@ -560,6 +562,7 @@ include/linux/irq_work.h
include/linux/irqchip.h
include/linux/irqdesc.h
include/linux/irqdomain.h
include/linux/irqdomain_defs.h
include/linux/irqflags.h
include/linux/irqhandler.h
include/linux/irqnr.h
@ -586,6 +589,7 @@ include/linux/kernel_stat.h
include/linux/kernfs.h
include/linux/kexec.h
include/linux/key.h
include/linux/kfence.h
include/linux/kgdb.h
include/linux/klist.h
include/linux/kmemleak.h
@ -651,6 +655,7 @@ include/linux/module.h
include/linux/moduleparam.h
include/linux/mount.h
include/linux/mpls.h
include/linux/msi_api.h
include/linux/mutex.h
include/linux/mutex_api.h
include/linux/net.h
@ -969,6 +974,7 @@ include/net/arp.h
include/net/busy_poll.h
include/net/checksum.h
include/net/devlink.h
include/net/dropreason-core.h
include/net/dropreason.h
include/net/dsa.h
include/net/dsfield.h
@ -985,6 +991,7 @@ include/net/gen_stats.h
include/net/gre.h
include/net/gro.h
include/net/gro_cells.h
include/net/gso.h
include/net/if_inet6.h
include/net/inet_connection_sock.h
include/net/inet_dscp.h
@ -1014,6 +1021,7 @@ include/net/neighbour.h
include/net/net_debug.h
include/net/net_namespace.h
include/net/net_trackers.h
include/net/netdev_rx_queue.h
include/net/netfilter/ipv4/nf_conntrack_ipv4.h
include/net/netfilter/ipv6/nf_conntrack_ipv6.h
include/net/netfilter/nf_conntrack.h
@ -1041,7 +1049,8 @@ include/net/netns/xdp.h
include/net/netns/xfrm.h
include/net/netprio_cgroup.h
include/net/nexthop.h
include/net/page_pool.h
include/net/page_pool/helpers.h
include/net/page_pool/types.h
include/net/pkt_cls.h
include/net/pkt_sched.h
include/net/pptp.h
@ -1058,6 +1067,7 @@ include/net/sock_reuseport.h
include/net/switchdev.h
include/net/tcp.h
include/net/tcp_states.h
include/net/tcx.h
include/net/timewait_sock.h
include/net/udp.h
include/net/udp_tunnel.h
@ -1074,6 +1084,7 @@ include/trace/events/lock.h
include/trace/events/mmflags.h
include/trace/events/napi.h
include/trace/events/net.h
include/trace/events/notifier.h
include/trace/events/power.h
include/trace/events/qdisc.h
include/trace/events/sched.h
@ -1134,6 +1145,7 @@ include/uapi/linux/errqueue.h
include/uapi/linux/ethtool.h
include/uapi/linux/ethtool_netlink.h
include/uapi/linux/eventpoll.h
include/uapi/linux/fanotify.h
include/uapi/linux/fcntl.h
include/uapi/linux/fib_rules.h
include/uapi/linux/filter.h
@ -1183,6 +1195,7 @@ include/uapi/linux/neighbour.h
include/uapi/linux/net.h
include/uapi/linux/net_namespace.h
include/uapi/linux/net_tstamp.h
include/uapi/linux/netdev.h
include/uapi/linux/netdevice.h
include/uapi/linux/netfilter.h
include/uapi/linux/netfilter/nf_conntrack_common.h

View File

@ -18,6 +18,7 @@ DEFINE_STATIC_KEY_FALSE(force_irqthreads_key);
DEFINE_STATIC_KEY_FALSE(bpf_stats_enabled_key);
DEFINE_STATIC_KEY_FALSE(bpf_master_redirect_enabled_key);
DEFINE_STATIC_KEY_FALSE(memalloc_socks_key);
DEFINE_PER_CPU(unsigned long, cpu_scale);
DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_map);
EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
@ -27,6 +28,18 @@ unsigned long __FIXADDR_TOP = 0xfffff000;
const struct ipv6_stub *ipv6_stub;
/* driver/usb/core/usb.h */
const struct class usbmisc_class = {
.name = "usbmisc",
};
/* mm/debug.c */
const struct trace_print_flags pagetype_names[] = {
{0, NULL}
};
#ifdef __i386__
asmlinkage __wsum csum_partial(const void * buff,int len,__wsum sum)
#else
@ -233,7 +246,11 @@ int rtnl_is_locked(void)
#include <linux/rtnetlink.h>
struct sk_buff * rtmsg_ifinfo_build_skb(int type,struct net_device * dev,unsigned int change,u32 event,gfp_t flags,int * new_nsid,int new_ifindex)
struct sk_buff * rtmsg_ifinfo_build_skb(int type, struct net_device *dev,
unsigned int change, u32 event,
gfp_t flags, int * new_nsid,
int new_ifindex, u32 portid,
const struct nlmsghdr *nlh)
{
lx_emul_trace(__func__);
return NULL;
@ -374,6 +391,47 @@ void phy_start(struct phy_device * phydev)
}
/* kernel/sched/cpudeadline.h */
struct cpudl;
int cpudl_init(struct cpudl *cp)
{
lx_emul_trace_and_stop(__func__);
return -1;
}
void cpudl_cleanup(struct cpudl *cp)
{
lx_emul_trace_and_stop(__func__);
}
/* kernel/sched/sched.h */
bool sched_smp_initialized = true;
struct dl_bw;
void init_dl_bw(struct dl_bw *dl_b)
{
lx_emul_trace_and_stop(__func__);
}
struct irq_work;
extern void rto_push_irq_work_func(struct irq_work *work);
void rto_push_irq_work_func(struct irq_work *work)
{
lx_emul_trace_and_stop(__func__);
}
/* include/linux/sched/topology.h */
int arch_asym_cpu_priority(int cpu)
{
lx_emul_trace_and_stop(__func__);
return 0;
}
extern void software_node_notify(struct device * dev);
void software_node_notify(struct device * dev)
{
@ -494,3 +552,20 @@ bool usb_of_has_combined_node(struct usb_device * udev)
return true;
}
#endif
#ifdef CONFIG_SWIOTLB
#include <linux/swiotlb.h>
void swiotlb_dev_init(struct device * dev)
{
lx_emul_trace(__func__);
}
bool is_swiotlb_allocated(void)
{
lx_emul_trace(__func__);
return false;
}
#endif

View File

@ -12,7 +12,7 @@
*/
#include <lx_emul.h>
#include <linux/net.h>
pteval_t __default_kernel_pte_mask __read_mostly = ~0;
@ -116,15 +116,7 @@ unsigned long arm_copy_from_user(void *to, const void *from, unsigned long n)
/*
* custom MAC address
*/
bool use_mac_address;
unsigned char mac_address[6];
int netdev_register_kobject(struct net_device * ndev)
{
if (use_mac_address) eth_hw_addr_set(ndev, mac_address);
return 0;
}

View File

@ -22,9 +22,10 @@
#include <usb_net.h>
struct task_struct *lx_user_new_usb_task(int (*func)(void*), void *args)
struct task_struct *lx_user_new_usb_task(int (*func)(void*), void *args,
char const *name)
{
int pid = kernel_thread(func, args, CLONE_FS | CLONE_FILES);
int pid = kernel_thread(func, args, name, CLONE_FS | CLONE_FILES);
return find_task_by_pid_ns(pid, NULL);
}
@ -165,6 +166,37 @@ static genode_uplink_rx_result_t uplink_rx_one_packet(struct genode_uplink_rx_co
}
/*
* custom MAC address
*/
bool use_mac_address;
unsigned char mac_address[6];
static bool mac_address_configured = false;
static void handle_mac_address(struct net_device *dev)
{
int err;
struct sockaddr addr;
struct genode_mac_address dev_addr;
if (mac_address_configured || !netif_device_present(dev)) return;
if (use_mac_address) {
memcpy(&addr.sa_data, mac_address, ETH_ALEN);
addr.sa_family = dev->type;
err = dev_set_mac_address(dev, &addr, NULL);
if (err < 0)
printk("Warning: Could not set configured MAC address: %pM (err=%d)\n",
mac_address, err);
}
memcpy(dev_addr.addr, dev->dev_addr, sizeof(dev_addr));
genode_mac_address_register(dev->name, dev_addr);
mac_address_configured =true;
}
static int network_loop(void *arg)
{
for (;;) {
@ -172,14 +204,12 @@ static int network_loop(void *arg)
struct net_device *dev;
for_each_netdev(&init_net, dev) {
struct genode_mac_address dev_addr;
handle_mac_address(dev);
/* enable link sensing, repeated calls are handled by testing IFF_UP */
dev_open(dev, 0);
memcpy(dev_addr.addr, dev->dev_addr, sizeof(dev_addr));
genode_mac_address_register(dev->name, dev_addr);
/* install rx handler once */
if (!netdev_is_rx_handler_busy(dev))
netdev_rx_handler_register(dev, handle_rx, NULL);
@ -214,7 +244,8 @@ void lx_user_init(void)
lx_emul_usb_client_init();
pid = kernel_thread(network_loop, NULL, CLONE_FS | CLONE_FILES);
pid = kernel_thread(network_loop, NULL, "network_loop",
CLONE_FS | CLONE_FILES);
net_task = find_task_by_pid_ns(pid, NULL);
}
@ -232,9 +263,11 @@ void lx_user_handle_io(void)
* Called whenever the link state changes
*/
bool force_uplink_destroy = false;
static bool force_uplink_destroy = false;
void rtmsg_ifinfo(int type, struct net_device * dev, unsigned int change, gfp_t flags)
void rtmsg_ifinfo(int type, struct net_device * dev,
unsigned int change, gfp_t flags,
u32 portid, const struct nlmsghdr *nlh)
{
/* trigger handle_create_uplink / handle_destroy_uplink */
if (net_task) lx_emul_task_unblock(net_task);
@ -243,10 +276,18 @@ void rtmsg_ifinfo(int type, struct net_device * dev, unsigned int change, gfp_t
struct genode_uplink *uplink = dev_genode_uplink(dev);
printk("force destroy uplink for net device %s\n", &dev->name[0]);
genode_uplink_destroy(uplink);
force_uplink_destroy = false;
}
}
void lx_emul_usb_client_device_unregister_callback(struct usb_device *)
{
force_uplink_destroy = true;
mac_address_configured = false;
}
/*
* Handle WDM device class for MBIM-modems
*/

View File

@ -1,12 +1,20 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-07-17
* \date 2024-07-30
*/
#include <lx_emul.h>
#include <linux/ratelimit_types.h>
int ___ratelimit(struct ratelimit_state * rs,const char * func)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/clk-provider.h>
const char * __clk_get_name(const struct clk * clk)
@ -20,14 +28,6 @@ const char * __clk_get_name(const struct clk * clk)
struct cpumask __cpu_active_mask;
#include <linux/phy.h>
int __devm_mdiobus_register(struct device * dev,struct mii_bus * bus,struct module * owner)
{
lx_emul_trace_and_stop(__func__);
}
#include <net/ipv6.h>
int __ipv6_addr_type(const struct in6_addr * addr)
@ -89,6 +89,14 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <net/gso.h>
struct sk_buff * __skb_gso_segment(struct sk_buff * skb,netdev_features_t features,bool tx_path)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -134,6 +142,22 @@ void bpf_warn_invalid_xdp_action(struct net_device * dev,struct bpf_prog * prog,
u8 const byte_rev_table[256] = {};
#include <linux/cpumask.h>
unsigned int cpumask_any_and_distribute(const struct cpumask * src1p,const struct cpumask * src2p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/sched/topology.h>
bool cpus_share_cache(int this_cpu,int that_cpu)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/context_tracking_irq.h>
noinstr void ct_irq_enter(void)
@ -142,14 +166,6 @@ noinstr void ct_irq_enter(void)
}
#include <linux/context_tracking_irq.h>
void ct_irq_enter_irqson(void)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/context_tracking_irq.h>
noinstr void ct_irq_exit(void)
@ -158,22 +174,6 @@ noinstr void ct_irq_exit(void)
}
#include <linux/context_tracking_irq.h>
void ct_irq_exit_irqson(void)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phy.h>
struct mii_bus * devm_mdiobus_alloc_size(struct device * dev,int sizeof_priv)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/math64.h>
u64 div64_u64(u64 dividend,u64 divisor)
@ -232,6 +232,14 @@ asmlinkage __visible void dump_stack(void)
}
#include <linux/printk.h>
asmlinkage __visible void dump_stack_lvl(const char * log_lvl)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/ethtool.h>
void ethtool_convert_legacy_u32_to_link_mode(unsigned long * dst,u32 legacy_u32)
@ -521,6 +529,11 @@ int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * e
struct pernet_operations __net_initdata loopback_net_ops;
#include <linux/delay.h>
unsigned long loops_per_jiffy;
#include <linux/delay.h>
unsigned long lpj_fine;
@ -637,7 +650,7 @@ bool of_device_is_available(const struct device_node * device)
#include <linux/of_device.h>
void of_device_uevent(struct device * dev,struct kobj_uevent_env * env)
void of_device_uevent(const struct device * dev,struct kobj_uevent_env * env)
{
lx_emul_trace_and_stop(__func__);
}
@ -786,7 +799,7 @@ int phylink_connect_phy(struct phylink * pl,struct phy_device * phy)
#include <linux/phylink.h>
struct phylink * phylink_create(struct phylink_config * config,struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
struct phylink * phylink_create(struct phylink_config * config,const struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
{
lx_emul_trace_and_stop(__func__);
}
@ -824,14 +837,6 @@ int phylink_ethtool_set_pauseparam(struct phylink * pl,struct ethtool_pauseparam
}
#include <linux/phylink.h>
void phylink_generic_validate(struct phylink_config * config,unsigned long * supported,struct phylink_link_state * state)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phylink.h>
void phylink_resume(struct phylink * pl)
@ -864,6 +869,28 @@ void phylink_suspend(struct phylink * pl,bool mac_wol)
}
extern void raw_spin_rq_lock_nested(struct rq * rq,int subclass);
void raw_spin_rq_lock_nested(struct rq * rq,int subclass)
{
lx_emul_trace_and_stop(__func__);
}
extern void raw_spin_rq_unlock(struct rq * rq);
void raw_spin_rq_unlock(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/rcuref.h>
bool rcuref_get_slowpath(rcuref_t * ref)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/refcount.h>
void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
@ -874,12 +901,31 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
#include <linux/rtnetlink.h>
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags)
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags,u32 portid,const struct nlmsghdr * nlh)
{
lx_emul_trace_and_stop(__func__);
}
extern void set_rq_offline(struct rq * rq);
void set_rq_offline(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
extern void set_rq_online(struct rq * rq);
void set_rq_online(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/smp.h>
unsigned int setup_max_cpus;
#include <net/sock.h>
void sk_error_report(struct sock * sk)
@ -888,14 +934,6 @@ void sk_error_report(struct sock * sk)
}
#include <linux/netdevice.h>
struct sk_buff * skb_mac_gso_segment(struct sk_buff * skb,netdev_features_t features)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/smp.h>
void smp_call_function_many(const struct cpumask * mask,smp_call_func_t func,void * info,bool wait)
@ -938,6 +976,13 @@ void tick_broadcast(const struct cpumask * mask)
}
extern void update_group_capacity(struct sched_domain * sd,int cpu);
void update_group_capacity(struct sched_domain * sd,int cpu)
{
lx_emul_trace_and_stop(__func__);
}
extern void usb_devio_cleanup(void);
void usb_devio_cleanup(void)
{
@ -1006,6 +1051,13 @@ const char * usb_speed_string(enum usb_device_speed speed)
}
extern int usb_update_wireless_status_attr(struct usb_interface * intf);
int usb_update_wireless_status_attr(struct usb_interface * intf)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 uuid_index[16] = {};

View File

@ -1,12 +1,20 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-07-17
* \date 2024-07-30
*/
#include <lx_emul.h>
#include <linux/ratelimit_types.h>
int ___ratelimit(struct ratelimit_state * rs,const char * func)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/clk-provider.h>
const char * __clk_get_name(const struct clk * clk)
@ -15,12 +23,9 @@ const char * __clk_get_name(const struct clk * clk)
}
#include <linux/phy.h>
#include <linux/cpumask.h>
int __devm_mdiobus_register(struct device * dev,struct mii_bus * bus,struct module * owner)
{
lx_emul_trace_and_stop(__func__);
}
struct cpumask __cpu_active_mask;
#include <net/ipv6.h>
@ -79,6 +84,14 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <net/gso.h>
struct sk_buff * __skb_gso_segment(struct sk_buff * skb,netdev_features_t features,bool tx_path)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -119,14 +132,6 @@ void bpf_warn_invalid_xdp_action(struct net_device * dev,struct bpf_prog * prog,
}
#include <linux/phy.h>
struct mii_bus * devm_mdiobus_alloc_size(struct device * dev,int sizeof_priv)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/math64.h>
u64 div64_u64(u64 dividend,u64 divisor)
@ -180,6 +185,14 @@ asmlinkage __visible void dump_stack(void)
}
#include <linux/printk.h>
asmlinkage __visible void dump_stack_lvl(const char * log_lvl)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/ethtool.h>
void ethtool_convert_legacy_u32_to_link_mode(unsigned long * dst,u32 legacy_u32)
@ -360,6 +373,11 @@ int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * e
struct pernet_operations __net_initdata loopback_net_ops;
#include <linux/delay.h>
unsigned long loops_per_jiffy;
#include <linux/delay.h>
unsigned long lpj_fine;
@ -460,7 +478,7 @@ bool of_device_is_available(const struct device_node * device)
#include <linux/of_device.h>
void of_device_uevent(struct device * dev,struct kobj_uevent_env * env)
void of_device_uevent(const struct device * dev,struct kobj_uevent_env * env)
{
lx_emul_trace_and_stop(__func__);
}
@ -580,7 +598,7 @@ int phylink_connect_phy(struct phylink * pl,struct phy_device * phy)
#include <linux/phylink.h>
struct phylink * phylink_create(struct phylink_config * config,struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
struct phylink * phylink_create(struct phylink_config * config,const struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
{
lx_emul_trace_and_stop(__func__);
}
@ -618,14 +636,6 @@ int phylink_ethtool_set_pauseparam(struct phylink * pl,struct ethtool_pauseparam
}
#include <linux/phylink.h>
void phylink_generic_validate(struct phylink_config * config,unsigned long * supported,struct phylink_link_state * state)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phylink.h>
void phylink_resume(struct phylink * pl)
@ -658,6 +668,14 @@ void phylink_suspend(struct phylink * pl,bool mac_wol)
}
#include <linux/rcuref.h>
bool rcuref_get_slowpath(rcuref_t * ref)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/refcount.h>
void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
@ -668,7 +686,7 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
#include <linux/rtnetlink.h>
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags)
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags,u32 portid,const struct nlmsghdr * nlh)
{
lx_emul_trace_and_stop(__func__);
}
@ -682,14 +700,6 @@ void sk_error_report(struct sock * sk)
}
#include <linux/netdevice.h>
struct sk_buff * skb_mac_gso_segment(struct sk_buff * skb,netdev_features_t features)
{
lx_emul_trace_and_stop(__func__);
}
#include <net/sock.h>
void sock_edemux(struct sk_buff * skb)
@ -784,6 +794,13 @@ const char * usb_speed_string(enum usb_device_speed speed)
}
extern int usb_update_wireless_status_attr(struct usb_interface * intf);
int usb_update_wireless_status_attr(struct usb_interface * intf)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 uuid_index[16] = {};

View File

@ -1,12 +1,20 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-07-16
* \date 2024-07-30
*/
#include <lx_emul.h>
#include <linux/ratelimit_types.h>
int ___ratelimit(struct ratelimit_state * rs,const char * func)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/clk-provider.h>
const char * __clk_get_name(const struct clk * clk)
@ -20,14 +28,6 @@ const char * __clk_get_name(const struct clk * clk)
struct cpumask __cpu_active_mask;
#include <linux/phy.h>
int __devm_mdiobus_register(struct device * dev,struct mii_bus * bus,struct module * owner)
{
lx_emul_trace_and_stop(__func__);
}
#include <net/ipv6.h>
int __ipv6_addr_type(const struct in6_addr * addr)
@ -89,6 +89,14 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <net/gso.h>
struct sk_buff * __skb_gso_segment(struct sk_buff * skb,netdev_features_t features,bool tx_path)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -129,6 +137,22 @@ void bpf_warn_invalid_xdp_action(struct net_device * dev,struct bpf_prog * prog,
}
#include <linux/cpumask.h>
unsigned int cpumask_any_and_distribute(const struct cpumask * src1p,const struct cpumask * src2p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/sched/topology.h>
bool cpus_share_cache(int this_cpu,int that_cpu)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/context_tracking_irq.h>
noinstr void ct_irq_enter(void)
@ -137,14 +161,6 @@ noinstr void ct_irq_enter(void)
}
#include <linux/context_tracking_irq.h>
void ct_irq_enter_irqson(void)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/context_tracking_irq.h>
noinstr void ct_irq_exit(void)
@ -153,22 +169,6 @@ noinstr void ct_irq_exit(void)
}
#include <linux/context_tracking_irq.h>
void ct_irq_exit_irqson(void)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phy.h>
struct mii_bus * devm_mdiobus_alloc_size(struct device * dev,int sizeof_priv)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/dma-map-ops.h>
bool dma_default_coherent;
@ -198,6 +198,14 @@ asmlinkage __visible void dump_stack(void)
}
#include <linux/printk.h>
asmlinkage __visible void dump_stack_lvl(const char * log_lvl)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/ethtool.h>
void ethtool_convert_legacy_u32_to_link_mode(unsigned long * dst,u32 legacy_u32)
@ -349,11 +357,6 @@ long __sched io_schedule_timeout(long timeout)
}
#include <linux/swiotlb.h>
struct io_tlb_mem io_tlb_default_mem;
#include <linux/interrupt.h>
int irq_can_set_affinity(unsigned int irq)
@ -439,6 +442,11 @@ int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * e
struct pernet_operations __net_initdata loopback_net_ops;
#include <linux/delay.h>
unsigned long loops_per_jiffy;
#include <linux/delay.h>
unsigned long lpj_fine;
@ -555,7 +563,7 @@ bool of_device_is_available(const struct device_node * device)
#include <linux/of_device.h>
void of_device_uevent(struct device * dev,struct kobj_uevent_env * env)
void of_device_uevent(const struct device * dev,struct kobj_uevent_env * env)
{
lx_emul_trace_and_stop(__func__);
}
@ -680,7 +688,7 @@ int phylink_connect_phy(struct phylink * pl,struct phy_device * phy)
#include <linux/phylink.h>
struct phylink * phylink_create(struct phylink_config * config,struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
struct phylink * phylink_create(struct phylink_config * config,const struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
{
lx_emul_trace_and_stop(__func__);
}
@ -718,14 +726,6 @@ int phylink_ethtool_set_pauseparam(struct phylink * pl,struct ethtool_pauseparam
}
#include <linux/phylink.h>
void phylink_generic_validate(struct phylink_config * config,unsigned long * supported,struct phylink_link_state * state)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phylink.h>
void phylink_resume(struct phylink * pl)
@ -758,6 +758,28 @@ void phylink_suspend(struct phylink * pl,bool mac_wol)
}
extern void raw_spin_rq_lock_nested(struct rq * rq,int subclass);
void raw_spin_rq_lock_nested(struct rq * rq,int subclass)
{
lx_emul_trace_and_stop(__func__);
}
extern void raw_spin_rq_unlock(struct rq * rq);
void raw_spin_rq_unlock(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/rcuref.h>
bool rcuref_get_slowpath(rcuref_t * ref)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/refcount.h>
void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
@ -768,7 +790,21 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
#include <linux/rtnetlink.h>
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags)
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags,u32 portid,const struct nlmsghdr * nlh)
{
lx_emul_trace_and_stop(__func__);
}
extern void set_rq_offline(struct rq * rq);
void set_rq_offline(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
extern void set_rq_online(struct rq * rq);
void set_rq_online(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
@ -782,14 +818,6 @@ void sk_error_report(struct sock * sk)
}
#include <linux/netdevice.h>
struct sk_buff * skb_mac_gso_segment(struct sk_buff * skb,netdev_features_t features)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/smp.h>
void smp_call_function_many(const struct cpumask * mask,smp_call_func_t func,void * info,bool wait)
@ -832,6 +860,13 @@ void tick_broadcast(const struct cpumask * mask)
}
extern void update_group_capacity(struct sched_domain * sd,int cpu);
void update_group_capacity(struct sched_domain * sd,int cpu)
{
lx_emul_trace_and_stop(__func__);
}
extern void usb_devio_cleanup(void);
void usb_devio_cleanup(void)
{
@ -900,6 +935,13 @@ const char * usb_speed_string(enum usb_device_speed speed)
}
extern int usb_update_wireless_status_attr(struct usb_interface * intf);
int usb_update_wireless_status_attr(struct usb_interface * intf)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 uuid_index[16] = {};

View File

@ -1,25 +1,25 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-07-16
* \date 2024-07-30
*/
#include <lx_emul.h>
#include <linux/cpumask.h>
#include <linux/ratelimit_types.h>
struct cpumask __cpu_active_mask;
#include <linux/phy.h>
int __devm_mdiobus_register(struct device * dev,struct mii_bus * bus,struct module * owner)
int ___ratelimit(struct ratelimit_state * rs,const char * func)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/cpumask.h>
struct cpumask __cpu_active_mask;
#include <net/ipv6.h>
int __ipv6_addr_type(const struct in6_addr * addr)
@ -68,6 +68,14 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <net/gso.h>
struct sk_buff * __skb_gso_segment(struct sk_buff * skb,netdev_features_t features,bool tx_path)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -128,6 +136,22 @@ const struct cpumask * cpu_clustergroup_mask(int cpu)
}
#include <linux/cpumask.h>
unsigned int cpumask_any_and_distribute(const struct cpumask * src1p,const struct cpumask * src2p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/sched/topology.h>
bool cpus_share_cache(int this_cpu,int that_cpu)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/context_tracking_irq.h>
noinstr void ct_irq_enter(void)
@ -144,14 +168,6 @@ noinstr void ct_irq_exit(void)
}
#include <linux/phy.h>
struct mii_bus * devm_mdiobus_alloc_size(struct device * dev,int sizeof_priv)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/math64.h>
u64 div64_u64(u64 dividend,u64 divisor)
@ -200,6 +216,14 @@ asmlinkage __visible void dump_stack(void)
}
#include <linux/printk.h>
asmlinkage __visible void dump_stack_lvl(const char * log_lvl)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/ethtool.h>
void ethtool_convert_legacy_u32_to_link_mode(unsigned long * dst,u32 legacy_u32)
@ -398,6 +422,11 @@ int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * e
struct pernet_operations __net_initdata loopback_net_ops;
#include <linux/delay.h>
unsigned long loops_per_jiffy;
#include <linux/phy.h>
void mdiobus_free(struct mii_bus * bus)
@ -597,7 +626,7 @@ int phylink_connect_phy(struct phylink * pl,struct phy_device * phy)
#include <linux/phylink.h>
struct phylink * phylink_create(struct phylink_config * config,struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
struct phylink * phylink_create(struct phylink_config * config,const struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
{
lx_emul_trace_and_stop(__func__);
}
@ -635,14 +664,6 @@ int phylink_ethtool_set_pauseparam(struct phylink * pl,struct ethtool_pauseparam
}
#include <linux/phylink.h>
void phylink_generic_validate(struct phylink_config * config,unsigned long * supported,struct phylink_link_state * state)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phylink.h>
void phylink_resume(struct phylink * pl)
@ -675,6 +696,28 @@ void phylink_suspend(struct phylink * pl,bool mac_wol)
}
extern void raw_spin_rq_lock_nested(struct rq * rq,int subclass);
void raw_spin_rq_lock_nested(struct rq * rq,int subclass)
{
lx_emul_trace_and_stop(__func__);
}
extern void raw_spin_rq_unlock(struct rq * rq);
void raw_spin_rq_unlock(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/rcuref.h>
bool rcuref_get_slowpath(rcuref_t * ref)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/refcount.h>
void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
@ -685,12 +728,31 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
#include <linux/rtnetlink.h>
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags)
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags,u32 portid,const struct nlmsghdr * nlh)
{
lx_emul_trace_and_stop(__func__);
}
extern void set_rq_offline(struct rq * rq);
void set_rq_offline(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
extern void set_rq_online(struct rq * rq);
void set_rq_online(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/smp.h>
unsigned int setup_max_cpus;
#include <net/sock.h>
void sk_error_report(struct sock * sk)
@ -699,14 +761,6 @@ void sk_error_report(struct sock * sk)
}
#include <linux/netdevice.h>
struct sk_buff * skb_mac_gso_segment(struct sk_buff * skb,netdev_features_t features)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/smp.h>
void smp_call_function_many(const struct cpumask * mask,smp_call_func_t func,void * info,bool wait)
@ -749,6 +803,13 @@ struct sk_buff * tcp_get_timestamping_opt_stats(const struct sock * sk,const str
}
extern void update_group_capacity(struct sched_domain * sd,int cpu);
void update_group_capacity(struct sched_domain * sd,int cpu)
{
lx_emul_trace_and_stop(__func__);
}
extern void usb_devio_cleanup(void);
void usb_devio_cleanup(void)
{
@ -801,6 +862,13 @@ const char * usb_speed_string(enum usb_device_speed speed)
}
extern int usb_update_wireless_status_attr(struct usb_interface * intf);
int usb_update_wireless_status_attr(struct usb_interface * intf)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 uuid_index[16] = {};

View File

@ -1,25 +1,25 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-07-10
* \date 2024-07-30
*/
#include <lx_emul.h>
#include <linux/cpumask.h>
#include <linux/ratelimit_types.h>
struct cpumask __cpu_active_mask;
#include <linux/phy.h>
int __devm_mdiobus_register(struct device * dev,struct mii_bus * bus,struct module * owner)
int ___ratelimit(struct ratelimit_state * rs,const char * func)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/cpumask.h>
struct cpumask __cpu_active_mask;
#include <net/ipv6.h>
int __ipv6_addr_type(const struct in6_addr * addr)
@ -68,6 +68,14 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <net/gso.h>
struct sk_buff * __skb_gso_segment(struct sk_buff * skb,netdev_features_t features,bool tx_path)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -128,6 +136,22 @@ const struct cpumask * cpu_clustergroup_mask(int cpu)
}
#include <linux/cpumask.h>
unsigned int cpumask_any_and_distribute(const struct cpumask * src1p,const struct cpumask * src2p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/sched/topology.h>
bool cpus_share_cache(int this_cpu,int that_cpu)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/context_tracking_irq.h>
noinstr void ct_irq_enter(void)
@ -144,14 +168,6 @@ noinstr void ct_irq_exit(void)
}
#include <linux/phy.h>
struct mii_bus * devm_mdiobus_alloc_size(struct device * dev,int sizeof_priv)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/netlink.h>
void do_trace_netlink_extack(const char * msg)
@ -176,6 +192,14 @@ asmlinkage __visible void dump_stack(void)
}
#include <linux/printk.h>
asmlinkage __visible void dump_stack_lvl(const char * log_lvl)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/ethtool.h>
void ethtool_convert_legacy_u32_to_link_mode(unsigned long * dst,u32 legacy_u32)
@ -319,11 +343,6 @@ long __sched io_schedule_timeout(long timeout)
}
#include <linux/swiotlb.h>
struct io_tlb_mem io_tlb_default_mem;
#include <linux/interrupt.h>
int irq_can_set_affinity(unsigned int irq)
@ -369,6 +388,11 @@ int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * e
struct pernet_operations __net_initdata loopback_net_ops;
#include <linux/delay.h>
unsigned long loops_per_jiffy;
#include <linux/phy.h>
void mdiobus_free(struct mii_bus * bus)
@ -568,7 +592,7 @@ int phylink_connect_phy(struct phylink * pl,struct phy_device * phy)
#include <linux/phylink.h>
struct phylink * phylink_create(struct phylink_config * config,struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
struct phylink * phylink_create(struct phylink_config * config,const struct fwnode_handle * fwnode,phy_interface_t iface,const struct phylink_mac_ops * mac_ops)
{
lx_emul_trace_and_stop(__func__);
}
@ -606,14 +630,6 @@ int phylink_ethtool_set_pauseparam(struct phylink * pl,struct ethtool_pauseparam
}
#include <linux/phylink.h>
void phylink_generic_validate(struct phylink_config * config,unsigned long * supported,struct phylink_link_state * state)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phylink.h>
void phylink_resume(struct phylink * pl)
@ -646,6 +662,28 @@ void phylink_suspend(struct phylink * pl,bool mac_wol)
}
extern void raw_spin_rq_lock_nested(struct rq * rq,int subclass);
void raw_spin_rq_lock_nested(struct rq * rq,int subclass)
{
lx_emul_trace_and_stop(__func__);
}
extern void raw_spin_rq_unlock(struct rq * rq);
void raw_spin_rq_unlock(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/rcuref.h>
bool rcuref_get_slowpath(rcuref_t * ref)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/refcount.h>
void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
@ -656,12 +694,31 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
#include <linux/rtnetlink.h>
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags)
void rtmsg_ifinfo_send(struct sk_buff * skb,struct net_device * dev,gfp_t flags,u32 portid,const struct nlmsghdr * nlh)
{
lx_emul_trace_and_stop(__func__);
}
extern void set_rq_offline(struct rq * rq);
void set_rq_offline(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
extern void set_rq_online(struct rq * rq);
void set_rq_online(struct rq * rq)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/smp.h>
unsigned int setup_max_cpus;
#include <net/sock.h>
void sk_error_report(struct sock * sk)
@ -670,14 +727,6 @@ void sk_error_report(struct sock * sk)
}
#include <linux/netdevice.h>
struct sk_buff * skb_mac_gso_segment(struct sk_buff * skb,netdev_features_t features)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/smp.h>
void smp_call_function_many(const struct cpumask * mask,smp_call_func_t func,void * info,bool wait)
@ -720,6 +769,13 @@ struct sk_buff * tcp_get_timestamping_opt_stats(const struct sock * sk,const str
}
extern void update_group_capacity(struct sched_domain * sd,int cpu);
void update_group_capacity(struct sched_domain * sd,int cpu)
{
lx_emul_trace_and_stop(__func__);
}
extern void usb_devio_cleanup(void);
void usb_devio_cleanup(void)
{
@ -772,6 +828,13 @@ const char * usb_speed_string(enum usb_device_speed speed)
}
extern int usb_update_wireless_status_attr(struct usb_interface * intf);
int usb_update_wireless_status_attr(struct usb_interface * intf)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 uuid_index[16] = {};

View File

@ -20,7 +20,8 @@ extern "C" {
struct task_struct;
int lx_user_main_task(void *);
struct task_struct *lx_user_new_usb_task(int (*func)(void*), void *args);
struct task_struct *lx_user_new_usb_task(int (*func)(void*), void *args,
char const *name);
struct lx_wdm
{

View File

@ -43,9 +43,14 @@ class Terminal::Session_component : public Genode::Rpc_object<Session, Session_c
struct lx_wdm _wdm_data { &_data_avail, buffer(), this, 1 };
task_struct *_write_task { lx_user_new_usb_task(lx_wdm_write, &_wdm_data) };
task_struct *_read_task { lx_user_new_usb_task(lx_wdm_read, &_wdm_data) };
task_struct *_device_task { lx_user_new_usb_task(lx_wdm_device, nullptr) };
task_struct *_write_task {
lx_user_new_usb_task(lx_wdm_write, &_wdm_data, "wdm_write")};
task_struct *_read_task {
lx_user_new_usb_task(lx_wdm_read, &_wdm_data, "wdm_read")};
task_struct *_device_task {
lx_user_new_usb_task(lx_wdm_device, nullptr, "device_task")};
/* non-copyable */
Session_component(const Session_component&) = delete;
@ -148,7 +153,8 @@ class Terminal::Root : public Genode::Root_component<Session_component, Genode::
Genode::Env &_env;
task_struct *_create_task { lx_user_new_usb_task(_create_session, this) };
task_struct *_create_task {
lx_user_new_usb_task(_create_session, this, "terminal_session")};
Genode::Constructible<Session_component> _session { };