lx_emul: enable SLUB allocator (pc, virt)

The use of the Linux-internal SLUB allocator is supported by lx_emul and
drivers may now decide between the Linux implementation or our emulation
of kmem_cache. Drivers for pc and virt already use SLUB, while other
drivers still use the emulation and may be adapted step-by-step incl.
the testing on the devices.

Fixes #5236
This commit is contained in:
Christian Helmuth 2024-05-31 15:46:21 +02:00
parent a798f70284
commit a441bdf59a
79 changed files with 895 additions and 897 deletions

View File

@ -35,8 +35,6 @@ SRC_C += lx_emul/shadow/kernel/smp.c
SRC_C += lx_emul/shadow/kernel/stop_machine.c
SRC_C += lx_emul/shadow/lib/delay.c
SRC_C += lx_emul/shadow/mm/percpu.c
SRC_C += lx_emul/shadow/mm/slab_common.c
SRC_C += lx_emul/shadow/mm/slub.c
SRC_C += lx_emul/shadow/mm/vmstat.c
SRC_C += lx_emul/start.c
SRC_C += lx_emul/time_initial.c

View File

@ -28,7 +28,7 @@ ifeq ($(filter-out $(SPECS),arm_v8),)
INC_DIR += $(VIRT_LINUX_INCLUDE_DIR)/spec/arm_v8
endif
-include $(call select_from_repositories,lib/import/import-lx_emul_common.inc)
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/mm/page_alloc.c

View File

@ -386,6 +386,10 @@ include/crypto/poly1305.h
include/crypto/scatterwalk.h
include/crypto/sha1.h
include/crypto/skcipher.h
include/kunit/assert.h
include/kunit/resource.h
include/kunit/test.h
include/kunit/try-catch.h
include/linux/acpi.h
include/linux/alarmtimer.h
include/linux/align.h
@ -436,6 +440,7 @@ include/linux/clk.h
include/linux/clockchips.h
include/linux/clocksource.h
include/linux/clocksource_ids.h
include/linux/compaction.h
include/linux/compat.h
include/linux/compiler-gcc.h
include/linux/compiler-version.h
@ -588,6 +593,7 @@ include/linux/kernel_read_file.h
include/linux/kernel_stat.h
include/linux/kernfs.h
include/linux/key.h
include/linux/kfence.h
include/linux/kgdb.h
include/linux/klist.h
include/linux/kmemleak.h
@ -631,6 +637,7 @@ include/linux/math64.h
include/linux/mdio.h
include/linux/mem_encrypt.h
include/linux/memcontrol.h
include/linux/memory.h
include/linux/memory_hotplug.h
include/linux/mempolicy.h
include/linux/memremap.h
@ -760,6 +767,7 @@ include/linux/rcupdate_trace.h
include/linux/rcutree.h
include/linux/rcuwait.h
include/linux/reboot.h
include/linux/reciprocal_div.h
include/linux/ref_tracker.h
include/linux/refcount.h
include/linux/resource.h
@ -832,12 +840,14 @@ include/linux/sizes.h
include/linux/skb_array.h
include/linux/skbuff.h
include/linux/slab.h
include/linux/slub_def.h
include/linux/smp.h
include/linux/smp_types.h
include/linux/smpboot.h
include/linux/socket.h
include/linux/sockptr.h
include/linux/softirq.h
include/linux/sort.h
include/linux/spinlock.h
include/linux/spinlock_api.h
include/linux/spinlock_api_smp.h
@ -1020,7 +1030,9 @@ include/net/xfrm.h
include/scsi/fc/fc_fcoe.h
include/trace/define_trace.h
include/trace/events/irq.h
include/trace/events/kmem.h
include/trace/events/lock.h
include/trace/events/mmflags.h
include/trace/events/power.h
include/trace/events/sched.h
include/trace/events/skb.h

View File

@ -42,14 +42,6 @@ int __init devices_init(void)
}
#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)
@ -209,3 +201,20 @@ void flush_dcache_page(struct page * page)
lx_emul_trace(__func__);
}
#endif
pteval_t __default_kernel_pte_mask __read_mostly = ~0;
#include <linux/kernel.h>
bool parse_option_str(const char * str,const char * option)
{
lx_emul_trace(__func__);
return false;
}
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}

View File

@ -47,14 +47,6 @@ u8 get_random_u8(void)
}
#include <linux/mm.h>
void * kvmalloc_node(size_t size,gfp_t flags,int node)
{
return kmalloc(size, flags);
}
#include <net/rtnetlink.h>
extern void genode_wg_rtnl_link_ops(struct rtnl_link_ops * ops);
@ -134,18 +126,12 @@ void udp_tunnel_xmit_skb(
* for in the following. Furthermore, I assume that they should not be
* relevant for the port anyway.
*/
if (xnet != false) {
pr_info("Error: XNET != false is not expected\n");
while (1) { }
}
if (nocheck != false) {
pr_info("Error: NOCHECK != false is not expected\n");
while (1) { }
}
if (df != 0) {
pr_info("Error: DF != 0 is not expected\n");
while (1) { }
}
if (xnet != false)
lx_emul_trace_and_stop("Error: XNET != false is not expected");
if (nocheck != false)
lx_emul_trace_and_stop("Error: NOCHECK != false is not expected");
if (df != 0)
lx_emul_trace_and_stop("Error: DF != 0 is not expected");
/*
* FIXME
*
@ -154,10 +140,8 @@ void udp_tunnel_xmit_skb(
* to be incorporated in order to make Wireguard provide a correct TTL
* argument. However, it is simpler to set it manually.
*/
if (ttl != 0) {
pr_info("Error: TTL != 0 is not expected\n");
while (1) { }
}
if (ttl != 0)
lx_emul_trace_and_stop("Error: TTL != 0 is not expected");
ttl = 64;
/*
@ -191,20 +175,6 @@ DEFINE_STATIC_KEY_FALSE(memalloc_socks_key);
EXPORT_SYMBOL_GPL(memalloc_socks_key);
#include <linux/slab.h>
struct kmem_cache * kmem_cache_create_usercopy(const char * name,
unsigned int size,
unsigned int align,
slab_flags_t flags,
unsigned int useroffset,
unsigned int usersize,
void (* ctor)(void *))
{
return kmem_cache_create(name, size, align, flags, ctor);
}
#include <net/ip_tunnels.h>
/* Returns either the correct skb->protocol value, or 0 if invalid. */
@ -240,14 +210,6 @@ struct rtable * ip_route_output_flow(struct net * net,struct flowi4 * flp4,const
}
#include <linux/slab.h>
void kfree_sensitive(const void * p)
{
kfree(p);
}
#include <linux/netdevice.h>
gro_result_t napi_gro_receive(struct napi_struct * napi,struct sk_buff * skb)

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-01-26
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -367,22 +367,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kstrtox.h>
noinline int kstrtoint(const char * s,unsigned int base,int * res)
@ -618,3 +602,10 @@ void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task)
lx_emul_trace_and_stop(__func__);
}
#include <linux/panic.h>
void panic(const char *fmt, ...)
{
lx_emul_trace_and_stop(__func__);
}

View File

@ -64,6 +64,7 @@ lib/ctype.c
lib/find_bit.c
lib/hweight.c
lib/idr.c
lib/math/reciprocal_div.c
lib/nlattr.c
lib/radix-tree.c
lib/refcount.c
@ -72,6 +73,10 @@ lib/siphash.c
lib/string.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/dst.c
net/core/dst_cache.c
net/core/flow_dissector.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-01-26
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -321,22 +321,6 @@ void kernel_fpu_end(void)
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kstrtox.h>
noinline int kstrtoint(const char * s,unsigned int base,int * res)
@ -514,3 +498,10 @@ void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task)
lx_emul_trace_and_stop(__func__);
}
#include <linux/panic.h>
void panic(const char *fmt, ...)
{
lx_emul_trace_and_stop(__func__);
}

View File

@ -66,6 +66,7 @@ lib/ctype.c
lib/find_bit.c
lib/hexdump.c
lib/idr.c
lib/math/reciprocal_div.c
lib/nlattr.c
lib/radix-tree.c
lib/refcount.c
@ -75,6 +76,10 @@ lib/string.c
lib/string_helpers.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/dst.c
net/core/dst_cache.c
net/core/flow_dissector.c

View File

@ -458,6 +458,10 @@ include/asm-generic/unaligned.h
include/asm-generic/user.h
include/clocksource/arm_arch_timer.h
include/dt-bindings/leds/common.h
include/kunit/assert.h
include/kunit/resource.h
include/kunit/test.h
include/kunit/try-catch.h
include/linux/acpi.h
include/linux/alarmtimer.h
include/linux/align.h
@ -504,6 +508,7 @@ include/linux/clk.h
include/linux/clockchips.h
include/linux/clocksource.h
include/linux/clocksource_ids.h
include/linux/compaction.h
include/linux/compat.h
include/linux/compiler-gcc.h
include/linux/compiler-version.h
@ -686,6 +691,7 @@ include/linux/math64.h
include/linux/mdio.h
include/linux/mem_encrypt.h
include/linux/memcontrol.h
include/linux/memory.h
include/linux/memory_hotplug.h
include/linux/mempolicy.h
include/linux/mempool.h
@ -810,6 +816,7 @@ include/linux/rcupdate.h
include/linux/rcutree.h
include/linux/rcuwait.h
include/linux/reboot.h
include/linux/reciprocal_div.h
include/linux/ref_tracker.h
include/linux/refcount.h
include/linux/regulator/consumer.h
@ -881,12 +888,14 @@ include/linux/siphash.h
include/linux/sizes.h
include/linux/skbuff.h
include/linux/slab.h
include/linux/slub_def.h
include/linux/smp.h
include/linux/smp_types.h
include/linux/smpboot.h
include/linux/socket.h
include/linux/sockptr.h
include/linux/softirq.h
include/linux/sort.h
include/linux/spinlock.h
include/linux/spinlock_api.h
include/linux/spinlock_api_smp.h
@ -1036,7 +1045,9 @@ include/net/timewait_sock.h
include/net/xdp.h
include/trace/define_trace.h
include/trace/events/irq.h
include/trace/events/kmem.h
include/trace/events/lock.h
include/trace/events/mmflags.h
include/trace/events/power.h
include/trace/events/sched.h
include/trace/events/timer.h

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-22
* \date 2024-07-17
*/
#include <lx_emul.h>
@ -222,6 +222,22 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 guid_index[16] = {};
@ -381,14 +397,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -463,6 +471,14 @@ int of_property_read_string(const struct device_node * np,const char * propname,
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/power_supply.h>
void power_supply_changed(struct power_supply * psy)

View File

@ -73,10 +73,14 @@ lib/kfifo.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/siphash.c
lib/string.c
lib/string_helpers.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-22
* \date 2024-07-17
*/
#include <lx_emul.h>
@ -180,6 +180,22 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 guid_index[16] = {};
@ -283,14 +299,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -360,6 +368,14 @@ int of_property_read_string(const struct device_node * np,const char * propname,
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/power_supply.h>
void power_supply_changed(struct power_supply * psy)
@ -494,6 +510,11 @@ const char * usb_speed_string(enum usb_device_speed speed)
const u8 uuid_index[16] = {};
#include <linux/vmstat.h>
atomic_long_t vm_node_stat[NR_VM_NODE_STAT_ITEMS] = {};
#include <linux/sched/wake_q.h>
void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task)

View File

@ -71,10 +71,14 @@ lib/kfifo.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/siphash.c
lib/string.c
lib/string_helpers.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-22
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -182,6 +182,22 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 guid_index[16] = {};
@ -346,14 +362,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -428,6 +436,14 @@ int of_property_read_string(const struct device_node * np,const char * propname,
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/power_supply.h>
void power_supply_changed(struct power_supply * psy)

View File

@ -71,10 +71,14 @@ lib/kfifo.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/siphash.c
lib/string.c
lib/string_helpers.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-05
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -179,6 +179,22 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 guid_index[16] = {};
@ -295,14 +311,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -327,6 +335,14 @@ void led_trigger_event(struct led_trigger * trig,enum led_brightness brightness)
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/moduleparam.h>
int param_set_copystring(const char * val,const struct kernel_param * kp)

View File

@ -64,10 +64,14 @@ lib/kfifo.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/siphash.c
lib/string.c
lib/string_helpers.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-05
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -147,6 +147,22 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 guid_index[16] = {};
@ -263,14 +279,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -295,6 +303,14 @@ void led_trigger_event(struct led_trigger * trig,enum led_brightness brightness)
}
#include <linux/panic.h>
void panic(const char *fmt, ...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/moduleparam.h>
int param_set_copystring(const char * val,const struct kernel_param * kp)

View File

@ -64,10 +64,14 @@ lib/kfifo.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/siphash.c
lib/string.c
lib/string_helpers.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -374,6 +374,10 @@ include/asm-generic/unaligned.h
include/asm-generic/user.h
include/clocksource/arm_arch_timer.h
include/crypto/sha1.h
include/kunit/assert.h
include/kunit/resource.h
include/kunit/test.h
include/kunit/try-catch.h
include/linux/acpi.h
include/linux/alarmtimer.h
include/linux/align.h
@ -426,6 +430,7 @@ include/linux/clk.h
include/linux/clockchips.h
include/linux/clocksource.h
include/linux/clocksource_ids.h
include/linux/compaction.h
include/linux/compat.h
include/linux/compiler-gcc.h
include/linux/compiler-version.h
@ -623,6 +628,7 @@ include/linux/math64.h
include/linux/mdio.h
include/linux/mem_encrypt.h
include/linux/memcontrol.h
include/linux/memory.h
include/linux/memory_hotplug.h
include/linux/mempolicy.h
include/linux/mempool.h
@ -768,6 +774,7 @@ include/linux/rcupdate_trace.h
include/linux/rcutree.h
include/linux/rcuwait.h
include/linux/reboot.h
include/linux/reciprocal_div.h
include/linux/ref_tracker.h
include/linux/refcount.h
include/linux/regulator/consumer.h
@ -844,12 +851,14 @@ include/linux/sizes.h
include/linux/skb_array.h
include/linux/skbuff.h
include/linux/slab.h
include/linux/slub_def.h
include/linux/smp.h
include/linux/smp_types.h
include/linux/smpboot.h
include/linux/socket.h
include/linux/sockptr.h
include/linux/softirq.h
include/linux/sort.h
include/linux/spinlock.h
include/linux/spinlock_api.h
include/linux/spinlock_api_smp.h
@ -1060,7 +1069,9 @@ include/net/xfrm.h
include/net/xsk_buff_pool.h
include/trace/define_trace.h
include/trace/events/irq.h
include/trace/events/kmem.h
include/trace/events/lock.h
include/trace/events/mmflags.h
include/trace/events/napi.h
include/trace/events/net.h
include/trace/events/power.h

View File

@ -24,20 +24,6 @@ struct usb_driver usbfs_driver = {
const struct attribute_group *usb_device_groups[] = { };
#include <linux/slab.h>
struct kmem_cache * kmem_cache_create_usercopy(const char * name,
unsigned int size,
unsigned int align,
slab_flags_t flags,
unsigned int useroffset,
unsigned int usersize,
void (* ctor)(void *))
{
return kmem_cache_create(name, size, align, flags, ctor);
}
#include <net/netfilter/nf_conntrack.h>
struct net init_net;

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-22
* \date 2024-07-17
*/
#include <lx_emul.h>
@ -89,14 +89,6 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -312,6 +304,14 @@ int genphy_resume(struct phy_device * phydev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
@ -500,30 +500,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -696,6 +672,14 @@ int of_property_read_string(const struct device_node * np,const char * propname,
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phy.h>
struct phy_device * phy_connect(struct net_device * dev,const char * bus_id,void (* handler)(struct net_device *),phy_interface_t interface)

View File

@ -70,6 +70,7 @@ lib/kasprintf.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rbtree.c
lib/rhashtable.c
@ -80,6 +81,9 @@ lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/dev.c
net/core/dev_addr_lists.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-22
* \date 2024-07-17
*/
#include <lx_emul.h>
@ -79,14 +79,6 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -244,6 +236,14 @@ int genphy_resume(struct phy_device * phydev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
@ -339,30 +339,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -514,6 +490,14 @@ int of_property_read_string(const struct device_node * np,const char * propname,
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phy.h>
struct phy_device * phy_connect(struct net_device * dev,const char * bus_id,void (* handler)(struct net_device *),phy_interface_t interface)
@ -805,6 +789,11 @@ const char * usb_speed_string(enum usb_device_speed speed)
const u8 uuid_index[16] = {};
#include <linux/vmstat.h>
atomic_long_t vm_node_stat[NR_VM_NODE_STAT_ITEMS] = {};
#include <linux/sched/wake_q.h>
void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task)

View File

@ -6,16 +6,16 @@ arch/arm/lib/strchr.S
arch/arm/lib/testclearbit.S
arch/arm/lib/testsetbit.S
drivers/base/bus.c
drivers/base/core.c
drivers/base/class.c
drivers/base/core.c
drivers/base/dd.c
drivers/base/devres.c
drivers/base/driver.c
drivers/base/dd.c
drivers/base/property.c
drivers/net/mii.c
drivers/net/usb/asix.h
drivers/net/usb/asix_common.c
drivers/net/usb/asix_devices.c
drivers/net/usb/asix.h
drivers/net/usb/ax88172a.c
drivers/net/usb/ax88179_178a.c
drivers/net/usb/cdc_ether.c
@ -67,16 +67,20 @@ lib/kasprintf.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rhashtable.c
lib/rbtree.c
lib/xarray.c
lib/rhashtable.c
lib/scatterlist.c
lib/siphash.c
lib/string.c
lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/dev.c
net/core/dev_addr_lists.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-22
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -89,14 +89,6 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -262,6 +254,14 @@ int genphy_resume(struct phy_device * phydev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
@ -418,30 +418,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -614,6 +590,14 @@ int of_property_read_string(const struct device_node * np,const char * propname,
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/phy.h>
struct phy_device * phy_connect(struct net_device * dev,const char * bus_id,void (* handler)(struct net_device *),phy_interface_t interface)

View File

@ -5,16 +5,16 @@ arch/arm64/lib/strlen.S
arch/arm64/lib/strncmp.S
arch/arm64/lib/strnlen.S
drivers/base/bus.c
drivers/base/core.c
drivers/base/class.c
drivers/base/core.c
drivers/base/dd.c
drivers/base/devres.c
drivers/base/driver.c
drivers/base/dd.c
drivers/base/property.c
drivers/net/mii.c
drivers/net/usb/asix.h
drivers/net/usb/asix_common.c
drivers/net/usb/asix_devices.c
drivers/net/usb/asix.h
drivers/net/usb/ax88172a.c
drivers/net/usb/ax88179_178a.c
drivers/net/usb/cdc_ether.c
@ -68,16 +68,20 @@ lib/kasprintf.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rhashtable.c
lib/rbtree.c
lib/xarray.c
lib/rhashtable.c
lib/scatterlist.c
lib/siphash.c
lib/string.c
lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/dev.c
net/core/dev_addr_lists.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-01-23
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -68,14 +68,6 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -264,6 +256,14 @@ int genphy_resume(struct phy_device * phydev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
@ -377,30 +377,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -523,6 +499,14 @@ loff_t noop_llseek(struct file * file,loff_t offset,int whence)
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/moduleparam.h>
int param_set_copystring(const char * val,const struct kernel_param * kp)

View File

@ -1,15 +1,15 @@
arch/x86/lib/hweight.S
drivers/base/bus.c
drivers/base/core.c
drivers/base/class.c
drivers/base/core.c
drivers/base/dd.c
drivers/base/devres.c
drivers/base/driver.c
drivers/base/dd.c
drivers/base/property.c
drivers/net/mii.c
drivers/net/usb/asix.h
drivers/net/usb/asix_common.c
drivers/net/usb/asix_devices.c
drivers/net/usb/asix.h
drivers/net/usb/ax88172a.c
drivers/net/usb/ax88179_178a.c
drivers/net/usb/cdc_ether.c
@ -61,16 +61,20 @@ lib/kasprintf.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rhashtable.c
lib/rbtree.c
lib/xarray.c
lib/rhashtable.c
lib/scatterlist.c
lib/siphash.c
lib/string.c
lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/dev.c
net/core/dev_addr_lists.c

View File

@ -1,14 +1,12 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-01-22
* \date 2024-07-10
*/
#include <lx_emul.h>
#include <linux/gfp.h>
#include <linux/cpumask.h>
struct cpumask __cpu_active_mask;
@ -70,14 +68,6 @@ void __skb_get_hash(struct sk_buff * skb)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -242,6 +232,14 @@ int genphy_resume(struct phy_device * phydev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
@ -350,30 +348,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_synth_uevent(struct kobject * kobj,const char * buf,size_t count)
@ -496,6 +470,14 @@ loff_t noop_llseek(struct file * file,loff_t offset,int whence)
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/moduleparam.h>
int param_set_copystring(const char * val,const struct kernel_param * kp)

View File

@ -1,15 +1,15 @@
arch/x86/lib/hweight.S
drivers/base/bus.c
drivers/base/core.c
drivers/base/class.c
drivers/base/core.c
drivers/base/dd.c
drivers/base/devres.c
drivers/base/driver.c
drivers/base/dd.c
drivers/base/property.c
drivers/net/mii.c
drivers/net/usb/asix.h
drivers/net/usb/asix_common.c
drivers/net/usb/asix_devices.c
drivers/net/usb/asix.h
drivers/net/usb/ax88172a.c
drivers/net/usb/ax88179_178a.c
drivers/net/usb/cdc_ether.c
@ -61,16 +61,20 @@ lib/kasprintf.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rhashtable.c
lib/rbtree.c
lib/xarray.c
lib/rhashtable.c
lib/scatterlist.c
lib/siphash.c
lib/string.c
lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/dev.c
net/core/dev_addr_lists.c

View File

@ -26,6 +26,11 @@ static inline unsigned long __dummy_cpu_offset(void)
#undef __my_cpu_offset
#define __my_cpu_offset __dummy_cpu_offset()
#ifdef this_cpu_cmpxchg_double
#undef this_cpu_cmpxchg_double
#define this_cpu_cmpxchg_double this_cpu_generic_cmpxchg_double
#endif
#endif /* __ASSEMBLY__ */
#endif /* _LX_EMUL__SHADOW__ASM__PERCPU_H_ */

View File

@ -19,6 +19,16 @@
#include <lx_emul/debug.h>
#include <lx_emul/page_virt.h>
/* The GFP flags allowed during early boot (mm/internal.h) */
#define GFP_BOOT_MASK (__GFP_BITS_MASK & ~(__GFP_RECLAIM|__GFP_IO|__GFP_FS))
gfp_t gfp_allowed_mask __read_mostly = GFP_BOOT_MASK;
DEFINE_STATIC_KEY_MAYBE(CONFIG_INIT_ON_ALLOC_DEFAULT_ON, init_on_alloc);
EXPORT_SYMBOL(init_on_alloc);
DEFINE_STATIC_KEY_MAYBE(CONFIG_INIT_ON_FREE_DEFAULT_ON, init_on_free);
EXPORT_SYMBOL(init_on_free);
static void prepare_compound_page(struct page *page, unsigned int order, gfp_t gfp)

View File

@ -76,3 +76,36 @@ void * kmalloc_large(size_t size,gfp_t flags)
return __kmalloc(size, flags);
}
#endif
struct kmem_cache * kmem_cache_create(const char * name,
unsigned int size,
unsigned int align,
slab_flags_t flags,
void (* ctor)(void *))
{
struct kmem_cache * cache =
__kmalloc(sizeof(struct kmem_cache), GFP_KERNEL);
cache->size = size;
cache->align = align;
cache->refcount = 1;
return cache;
}
void kmem_cache_destroy(struct kmem_cache *cache)
{
if (!cache)
return;
if (!cache->refcount) {
printk("%s unexpected case - potential memory leak\n", __func__);
return;
}
if (cache->refcount > 0)
cache->refcount --;
if (!cache->refcount)
kfree(cache);
}

View File

@ -53,39 +53,6 @@ void * __kmalloc(size_t size, gfp_t flags)
}
struct kmem_cache * kmem_cache_create(const char * name,
unsigned int size,
unsigned int align,
slab_flags_t flags,
void (* ctor)(void *))
{
struct kmem_cache * cache =
__kmalloc(sizeof(struct kmem_cache), GFP_KERNEL);
cache->size = size;
cache->align = align;
cache->refcount = 1;
return cache;
}
void kmem_cache_destroy(struct kmem_cache *cache)
{
if (!cache)
return;
if (!cache->refcount) {
printk("%s unexpected case - potential memory leak\n", __func__);
return;
}
if (cache->refcount > 0)
cache->refcount --;
if (!cache->refcount)
lx_emul_mem_free(cache);
}
void kmem_cache_free(struct kmem_cache * s, void * x)
{
lx_emul_mem_free(x);

View File

@ -37,3 +37,12 @@ bool is_vmalloc_addr(const void * x)
{
return false;
}
void *__vmalloc_node_range(unsigned long size, unsigned long align,
unsigned long start, unsigned long end, gfp_t gfp_mask,
pgprot_t prot, unsigned long vm_flags, int node,
const void *caller)
{
lx_emul_trace_and_stop(__func__);
}

View File

@ -17,4 +17,9 @@
#ifdef CONFIG_SMP
void quiet_vmstat(void) { }
void mod_node_page_state(struct pglist_data *pgdat, enum node_stat_item item, long delta)
{
lx_emul_trace(__func__);
}
#endif

View File

@ -37,8 +37,6 @@ int __init buses_init(void)
#include <linux/jump_label.h>
#include <asm/processor.h>
struct static_key_false init_on_alloc;
unsigned long sysctl_net_busy_read;
DEFINE_STATIC_KEY_FALSE(force_irqthreads_key);

View File

@ -133,20 +133,6 @@ __wsum csum_partial_copy_from_user(const void __user *src, void *dst, int len)
}
#include <linux/slab.h>
struct kmem_cache * kmem_cache_create_usercopy(const char * name,
unsigned int size,
unsigned int align,
slab_flags_t flags,
unsigned int useroffset,
unsigned int usersize,
void (* ctor)(void *))
{
return kmem_cache_create(name, size, align, flags, ctor);
}
#include <linux/stringhash.h>
unsigned int full_name_hash(const void *salt, const char *name, unsigned int len)
@ -364,3 +350,7 @@ static int sock_init(void)
core_initcall(sock_init);
/* mm/internal.h */
bool mirrored_kernelcore = false;

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-05
* \date 2024-07-26
*/
#include <lx_emul.h>
@ -189,14 +189,6 @@ void * __vmalloc(unsigned long size,gfp_t gfp_mask)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -526,6 +518,14 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/mmzone.h>
struct pglist_data * first_online_pgdat(void)
{
lx_emul_trace_and_stop(__func__);
}
extern void flush_dcache_page(struct page * page);
void flush_dcache_page(struct page * page)
{
@ -613,6 +613,14 @@ struct device * get_device(struct device * dev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/rcutree.h>
unsigned long get_state_synchronize_rcu(void)
@ -830,54 +838,6 @@ int kernel_sock_shutdown(struct socket * sock,enum sock_shutdown_cmd how)
}
#include <linux/slab.h>
void kfree_sensitive(const void * p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_dump_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
bool kmem_valid_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * envp_ext[])
@ -899,6 +859,18 @@ bool llist_add_batch(struct llist_node * new_first,struct llist_node * new_last,
unsigned long lpj_fine;
#include <linux/mmzone.h>
struct page *mem_map;
extern void __init memblock_free_pages(struct page * page,unsigned long pfn,unsigned int order);
void __init memblock_free_pages(struct page * page,unsigned long pfn,unsigned int order)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/string.h>
ssize_t memory_read_from_buffer(void * to,size_t count,loff_t * ppos,const void * from,size_t available)
@ -961,6 +933,14 @@ void netdev_unregister_kobject(struct net_device * ndev)
}
#include <linux/mmzone.h>
struct pglist_data * next_online_pgdat(struct pglist_data * pgdat)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/pipe_fs_i.h>
const struct pipe_buf_operations nosteal_pipe_buf_ops;
@ -1123,6 +1103,14 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
}
#include <linux/mm.h>
void __meminit reserve_bootmem_region(phys_addr_t start,phys_addr_t end)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/fs.h>
int send_sigurg(struct fown_struct * fown)

View File

@ -49,6 +49,7 @@ lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/div64.c
lib/math/reciprocal_div.c
lib/nlattr.c
lib/once.c
lib/percpu_counter.c
@ -62,6 +63,9 @@ lib/timerqueue.c
lib/vsprintf.c
lib/win_minmax.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/datagram.c
net/core/dev.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-05
* \date 2024-07-26
*/
#include <lx_emul.h>
@ -179,14 +179,6 @@ void * __vmalloc(unsigned long size,gfp_t gfp_mask)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -479,6 +471,14 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/mmzone.h>
struct pglist_data * first_online_pgdat(void)
{
lx_emul_trace_and_stop(__func__);
}
extern void flush_dcache_page(struct page * page);
void flush_dcache_page(struct page * page)
{
@ -558,6 +558,14 @@ struct device * get_device(struct device * dev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/sched/mm.h>
struct mm_struct * get_task_mm(struct task_struct * task)
@ -711,54 +719,6 @@ int kernel_sock_shutdown(struct socket * sock,enum sock_shutdown_cmd how)
}
#include <linux/slab.h>
void kfree_sensitive(const void * p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_dump_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
bool kmem_valid_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * envp_ext[])
@ -780,6 +740,18 @@ bool llist_add_batch(struct llist_node * new_first,struct llist_node * new_last,
unsigned long lpj_fine;
#include <linux/mmzone.h>
struct page *mem_map;
extern void __init memblock_free_pages(struct page * page,unsigned long pfn,unsigned int order);
void __init memblock_free_pages(struct page * page,unsigned long pfn,unsigned int order)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/string.h>
ssize_t memory_read_from_buffer(void * to,size_t count,loff_t * ppos,const void * from,size_t available)
@ -818,6 +790,14 @@ void netdev_unregister_kobject(struct net_device * ndev)
}
#include <linux/mmzone.h>
struct pglist_data * next_online_pgdat(struct pglist_data * pgdat)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/pipe_fs_i.h>
const struct pipe_buf_operations nosteal_pipe_buf_ops;
@ -953,6 +933,14 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
}
#include <linux/mm.h>
void __meminit reserve_bootmem_region(phys_addr_t start,phys_addr_t end)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/fs.h>
int send_sigurg(struct fown_struct * fown)
@ -971,7 +959,7 @@ void sg_init_one(struct scatterlist * sg,const void * buf,unsigned int buflen)
#include <linux/smp.h>
int smp_call_function_single(int cpu,void (* func)(void * info),void * info,int wait)
int smp_call_function_single(int cpu,smp_call_func_t func,void * info,int wait)
{
lx_emul_trace_and_stop(__func__);
}
@ -1045,6 +1033,11 @@ int vm_insert_pages(struct vm_area_struct * vma,unsigned long addr,struct page *
}
#include <linux/vmstat.h>
atomic_long_t vm_node_stat[NR_VM_NODE_STAT_ITEMS] = {};
#include <linux/vmalloc.h>
bool vmalloc_dump_obj(void * object)

View File

@ -47,6 +47,7 @@ lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/div64.c
lib/math/reciprocal_div.c
lib/nlattr.c
lib/once.c
lib/radix-tree.c
@ -59,6 +60,9 @@ lib/timerqueue.c
lib/vsprintf.c
lib/win_minmax.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/datagram.c
net/core/dev.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-01-24
* \date 2024-07-26
*/
#include <lx_emul.h>
@ -182,14 +182,6 @@ void * __vmalloc(unsigned long size,gfp_t gfp_mask)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -520,6 +512,14 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/mmzone.h>
struct pglist_data * first_online_pgdat(void)
{
lx_emul_trace_and_stop(__func__);
}
extern void flush_dcache_page(struct page * page);
void flush_dcache_page(struct page * page)
{
@ -607,6 +607,14 @@ struct device * get_device(struct device * dev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/rcutree.h>
unsigned long get_state_synchronize_rcu(void)
@ -824,54 +832,6 @@ int kernel_sock_shutdown(struct socket * sock,enum sock_shutdown_cmd how)
}
#include <linux/slab.h>
void kfree_sensitive(const void * p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_dump_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
bool kmem_valid_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * envp_ext[])
@ -955,6 +915,14 @@ void netdev_unregister_kobject(struct net_device * ndev)
}
#include <linux/mmzone.h>
struct pglist_data * next_online_pgdat(struct pglist_data * pgdat)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/pipe_fs_i.h>
const struct pipe_buf_operations nosteal_pipe_buf_ops;
@ -1117,6 +1085,14 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
}
#include <linux/mm.h>
void __meminit reserve_bootmem_region(phys_addr_t start,phys_addr_t end)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/fs.h>
int send_sigurg(struct fown_struct * fown)

View File

@ -46,6 +46,7 @@ lib/kasprintf.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/nlattr.c
lib/once.c
lib/percpu_counter.c
@ -59,6 +60,9 @@ lib/timerqueue.c
lib/vsprintf.c
lib/win_minmax.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/datagram.c
net/core/dev.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-02-05
* \date 2024-07-26
*/
#include <lx_emul.h>
@ -153,14 +153,6 @@ void * __vmalloc(unsigned long size,gfp_t gfp_mask)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -468,6 +460,14 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/mmzone.h>
struct pglist_data * first_online_pgdat(void)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/sched/task.h>
struct task_struct * __init fork_idle(int cpu)
@ -548,6 +548,14 @@ struct device * get_device(struct device * dev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/rcutree.h>
unsigned long get_state_synchronize_rcu(void)
@ -722,54 +730,6 @@ int kernel_sock_shutdown(struct socket * sock,enum sock_shutdown_cmd how)
}
#include <linux/slab.h>
void kfree_sensitive(const void * p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_dump_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
bool kmem_valid_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * envp_ext[])
@ -786,6 +746,13 @@ bool llist_add_batch(struct llist_node * new_first,struct llist_node * new_last,
}
extern void __init memblock_free_pages(struct page * page,unsigned long pfn,unsigned int order);
void __init memblock_free_pages(struct page * page,unsigned long pfn,unsigned int order)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/string.h>
ssize_t memory_read_from_buffer(void * to,size_t count,loff_t * ppos,const void * from,size_t available)
@ -848,6 +815,14 @@ void netdev_unregister_kobject(struct net_device * ndev)
}
#include <linux/mmzone.h>
struct pglist_data * next_online_pgdat(struct pglist_data * pgdat)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/pipe_fs_i.h>
const struct pipe_buf_operations nosteal_pipe_buf_ops;
@ -973,6 +948,14 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
}
#include <linux/mm.h>
void __meminit reserve_bootmem_region(phys_addr_t start,phys_addr_t end)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/fs.h>
int send_sigurg(struct fown_struct * fown)

View File

@ -38,6 +38,7 @@ lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/div64.c
lib/math/reciprocal_div.c
lib/nlattr.c
lib/once.c
lib/percpu_counter.c
@ -51,6 +52,9 @@ lib/timerqueue.c
lib/vsprintf.c
lib/win_minmax.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/datagram.c
net/core/dev.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-01-24
* \date 2024-07-26
*/
#include <lx_emul.h>
@ -167,14 +167,6 @@ void * __vmalloc(unsigned long size,gfp_t gfp_mask)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -497,6 +489,14 @@ void finish_rcuwait(struct rcuwait * w)
}
#include <linux/mmzone.h>
struct pglist_data * first_online_pgdat(void)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/sched/task.h>
struct task_struct * __init fork_idle(int cpu)
@ -577,6 +577,14 @@ struct device * get_device(struct device * dev)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/rcutree.h>
unsigned long get_state_synchronize_rcu(void)
@ -741,54 +749,6 @@ int kernel_sock_shutdown(struct socket * sock,enum sock_shutdown_cmd how)
}
#include <linux/slab.h>
void kfree_sensitive(const void * p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_cache_free_bulk(struct kmem_cache * s,size_t nr,void ** p)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
void kmem_dump_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/slab.h>
bool kmem_valid_obj(void * object)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kobject.h>
int kobject_uevent_env(struct kobject * kobj,enum kobject_action action,char * envp_ext[])
@ -805,6 +765,13 @@ bool llist_add_batch(struct llist_node * new_first,struct llist_node * new_last,
}
extern void __init memblock_free_pages(struct page * page,unsigned long pfn,unsigned int order);
void __init memblock_free_pages(struct page * page,unsigned long pfn,unsigned int order)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/string.h>
ssize_t memory_read_from_buffer(void * to,size_t count,loff_t * ppos,const void * from,size_t available)
@ -867,6 +834,14 @@ void netdev_unregister_kobject(struct net_device * ndev)
}
#include <linux/mmzone.h>
struct pglist_data * next_online_pgdat(struct pglist_data * pgdat)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/pipe_fs_i.h>
const struct pipe_buf_operations nosteal_pipe_buf_ops;
@ -992,6 +967,14 @@ void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
}
#include <linux/mm.h>
void __meminit reserve_bootmem_region(phys_addr_t start,phys_addr_t end)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/fs.h>
int send_sigurg(struct fown_struct * fown)

View File

@ -39,6 +39,7 @@ lib/kasprintf.c
lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/math/reciprocal_div.c
lib/nlattr.c
lib/once.c
lib/percpu_counter.c
@ -52,6 +53,9 @@ lib/timerqueue.c
lib/vsprintf.c
lib/win_minmax.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/datagram.c
net/core/dev.c

View File

@ -18,30 +18,6 @@
#include <lx_emul/alloc.h>
#include <lx_emul/io_mem.h>
#include <linux/slab.h>
struct kmem_cache * kmem_cache_create_usercopy(const char * name,
unsigned int size,
unsigned int align,
slab_flags_t flags,
unsigned int useroffset,
unsigned int usersize,
void (* ctor)(void *))
{
return kmem_cache_create(name, size, align, flags, ctor);
}
void kmem_cache_free_bulk(struct kmem_cache *s, size_t size, void **p)
{
size_t i;
for (i = 0; i < size; i++) {
kmem_cache_free(s, p[i]);
}
}
#include <linux/fs.h>
int register_filesystem(struct file_system_type * fs)
@ -257,21 +233,6 @@ int task_work_add(struct task_struct * task,struct callback_head * work,enum tas
#endif
#include <linux/slab.h>
void kfree_sensitive(const void *p)
{
size_t ks;
void *mem = (void *)p;
ks = ksize(mem);
if (ks)
memset(mem, 0, ks);
kfree(mem);
}
#include <linux/gfp.h>
#include <linux/slab.h>
@ -523,22 +484,4 @@ void *dmam_alloc_attrs(struct device *dev, size_t size, dma_addr_t *dma_handle,
}
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags,size_t nr,void ** p)
{
size_t i;
for (i = 0; i < nr; i++)
p[i] = kmem_cache_alloc(s, flags);
return nr;
}
#include <../mm/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
return kmalloc(cachep->size, flags);
}
unsigned long __FIXADDR_TOP = 0xfffff000;

View File

@ -72,14 +72,6 @@ int __init devices_init(void)
}
#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)

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2023-03-27
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -169,6 +169,22 @@ void fwnode_handle_put(struct fwnode_handle * fwnode)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 guid_index[16] = {};
@ -278,14 +294,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kstrtox.h>
noinline int kstrtoint(const char * s,unsigned int base,int * res)
@ -344,6 +352,14 @@ int of_property_read_string(const struct device_node * np,const char * propname,
}
#include <linux/panic.h>
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/siphash.h>
u64 siphash_1u64(const u64 first,const siphash_key_t * key)
@ -365,14 +381,6 @@ void smp_call_function_many(const struct cpumask * mask,smp_call_func_t func,voi
bool static_key_initialized;
#include <linux/string_helpers.h>
int string_escape_mem(const char * src,size_t isz,char * dst,size_t osz,unsigned int flags,const char * only)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/clockchips.h>
void tick_broadcast(const struct cpumask * mask)

View File

@ -34,10 +34,16 @@ lib/find_bit.c
lib/hexdump.c
lib/hweight.c
lib/idr.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rbtree.c
lib/refcount.c
lib/string.c
lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2024-01-25
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -160,6 +160,22 @@ void fwnode_handle_put(struct fwnode_handle * fwnode)
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 guid_index[16] = {};
@ -221,14 +237,6 @@ void irq_work_tick(void)
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kstrtox.h>
noinline int kstrtoint(const char * s,unsigned int base,int * res)
@ -253,17 +261,17 @@ char * kvasprintf(gfp_t gfp,const char * fmt,va_list ap)
}
#include <linux/siphash.h>
#include <linux/panic.h>
u64 siphash_1u64(const u64 first,const siphash_key_t * key)
void panic(const char * fmt,...)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/string.h>
#include <linux/siphash.h>
char * skip_spaces(const char * str)
u64 siphash_1u64(const u64 first,const siphash_key_t * key)
{
lx_emul_trace_and_stop(__func__);
}
@ -290,14 +298,6 @@ int smp_call_function_single(int cpu,smp_call_func_t func,void * info,int wait)
bool static_key_initialized;
#include <linux/string_helpers.h>
int string_escape_mem(const char * src,size_t isz,char * dst,size_t osz,unsigned int flags,const char * only)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 uuid_index[16] = {};

View File

@ -28,10 +28,16 @@ lib/ctype.c
lib/find_bit.c
lib/hexdump.c
lib/idr.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rbtree.c
lib/refcount.c
lib/string.c
lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -11,6 +11,10 @@ LX_ENABLE += NO_HZ_IDLE
# initrd support
LX_ENABLE += BINFMT_ELF BLK_DEV_INITRD
# kmem_cache allocator
LX_DISABLE += SLOB SLUB_DEBUG
LX_ENABLE += SLUB
# network infrastructure
LX_ENABLE += NET NETDEVICES

View File

@ -30,7 +30,6 @@ SRC_C += lx_emul/shadow/kernel/irq/spurious.c
SRC_C += lx_emul/shadow/lib/devres.c
SRC_C += lx_emul/shadow/lib/smp_processor_id.c
SRC_C += lx_emul/shadow/mm/dmapool.c
SRC_C += lx_emul/shadow/mm/memblock.c
SRC_C += lx_emul/shadow/mm/page_alloc.c
SRC_C += lx_emul/shadow/mm/vmalloc.c
SRC_C += lx_emul/shadow/drivers/char/random.c

View File

@ -697,14 +697,6 @@ void iomap_free(resource_size_t base, unsigned long size)
}
#include <linux/slab.h>
void *kmalloc_large_node(size_t size, gfp_t flags, int node)
{
lx_emul_trace_and_stop(__func__);
}
void * high_memory;

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2023-11-02
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -91,14 +91,6 @@ void __unregister_chrdev(unsigned int major,unsigned int baseminor,unsigned int
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -516,6 +508,14 @@ void gen6_rps_irq_handler(struct intel_rps * rps,u32 pm_iir)
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/gpio/machine.h>
void gpiod_add_lookup_table(struct gpiod_lookup_table * table)

View File

@ -228,15 +228,6 @@ size_t dma_max_mapping_size(struct device * dev)
}
#include <linux/slab.h>
#include <../mm/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
return kmalloc(cachep->size, flags);
}
unsigned long __FIXADDR_TOP = 0xfffff000;

View File

@ -280,6 +280,7 @@ lib/kstrtox.c
lib/list_sort.c
lib/llist.c
lib/math/div64.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rbtree.c
lib/refcount.c
@ -292,5 +293,8 @@ lib/timerqueue.c
lib/uuid.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/mempool.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -282,6 +282,7 @@ lib/kobject_uevent.c
lib/kstrtox.c
lib/list_sort.c
lib/llist.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rbtree.c
lib/refcount.c
@ -294,5 +295,8 @@ lib/timerqueue.c
lib/uuid.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/mempool.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -73,38 +73,6 @@ void page_frag_free(void * addr)
}
#include <linux/slab.h>
struct kmem_cache * kmem_cache_create_usercopy(const char * name,
unsigned int size,
unsigned int align,
slab_flags_t flags,
unsigned int useroffset,
unsigned int usersize,
void (* ctor)(void *))
{
return kmem_cache_create(name, size, align, flags, ctor);
}
int kmem_cache_alloc_bulk(struct kmem_cache * s,gfp_t flags, size_t nr,void ** p)
{
size_t i;
for (i = 0; i < nr; i++)
p[i] = kmem_cache_alloc(s, flags);
return nr;
}
void kmem_cache_free_bulk(struct kmem_cache * s, size_t size, void ** p)
{
size_t i;
for (i = 0; i < size; i++)
kmem_cache_free(s, p[i]);
}
#include <asm/hardirq.h>
void ack_bad_irq(unsigned int irq)

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2023-10-10
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -92,14 +92,6 @@ void __srcu_read_unlock(struct srcu_struct * ssp,int idx)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -484,14 +476,6 @@ void kill_anon_super(struct super_block * sb)
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kmsg_dump.h>
void kmsg_dump(enum kmsg_dump_reason reason)

View File

@ -93,6 +93,7 @@ lib/kstrtox.c
lib/list_sort.c
lib/llist.c
lib/math/div64.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rbtree.c
lib/refcount.c
@ -105,7 +106,11 @@ lib/timerqueue.c
lib/uuid.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/mempool.c
mm/slab_common.c
mm/slub.c
mm/util.c
mm/util.c
net/core/datagram.c
net/core/dev.c

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2023-11-21
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -92,14 +92,6 @@ void __srcu_read_unlock(struct srcu_struct * ssp,int idx)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int _printk_deferred(const char * fmt,...)
@ -487,14 +479,6 @@ void kill_anon_super(struct super_block * sb)
}
#include <linux/slab.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kmsg_dump.h>
void kmsg_dump(enum kmsg_dump_reason reason)

View File

@ -94,6 +94,7 @@ lib/kobject.c
lib/kstrtox.c
lib/list_sort.c
lib/llist.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rbtree.c
lib/refcount.c
@ -106,7 +107,11 @@ lib/timerqueue.c
lib/uuid.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/mempool.c
mm/slab_common.c
mm/slub.c
mm/util.c
mm/util.c
net/core/datagram.c
net/core/dev.c

View File

@ -16,6 +16,13 @@
const struct attribute_group pci_dev_acpi_attr_group;
#include <asm/preempt.h>
#include <asm/smp.h>
struct smp_ops smp_ops = { };
EXPORT_SYMBOL_GPL(smp_ops);
#include <linux/syscore_ops.h>
void register_syscore_ops(struct syscore_ops * ops)

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2023-11-06
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -44,6 +44,14 @@ void __put_task_struct(struct task_struct * tsk)
}
#include <linux/mm.h>
void __show_mem(unsigned int filter,nodemask_t * nodemask,int max_zone_idx)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/srcu.h>
void __srcu_read_unlock(struct srcu_struct * ssp,int idx)
@ -83,6 +91,13 @@ int add_uevent_var(struct kobj_uevent_env * env,const char * format,...)
}
extern void arch_trigger_cpumask_backtrace(const cpumask_t * mask,bool exclude_self);
void arch_trigger_cpumask_backtrace(const cpumask_t * mask,bool exclude_self)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/async.h>
async_cookie_t async_schedule_node(async_func_t func,void * data,int node)
@ -99,6 +114,38 @@ void async_synchronize_full(void)
}
#include <linux/kernel.h>
void bust_spinlocks(int yes)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/console.h>
void console_flush_on_panic(enum con_flush_mode mode)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/console.h>
void console_unblank(void)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
void console_verbose(void)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/arch_topology.h>
const struct cpumask * cpu_clustergroup_mask(int cpu)
@ -131,6 +178,14 @@ asmlinkage __visible void dump_stack(void)
}
#include <linux/reboot.h>
void emergency_restart(void)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/capability.h>
bool file_ns_capable(const struct file * file,struct user_namespace * ns,int cap)
@ -179,6 +234,14 @@ void gen_pool_free_owner(struct gen_pool * pool,unsigned long addr,size_t size,v
}
#include <linux/gfp.h>
bool gfp_pfmemalloc_allowed(gfp_t gfp_mask)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uuid.h>
const u8 guid_index[16] = {};
@ -271,9 +334,9 @@ int kill_pid_usb_asyncio(int sig,int errno,sigval_t addr,struct pid * pid,const
}
#include <linux/slab.h>
#include <linux/kmsg_dump.h>
void * kmem_cache_alloc_lru(struct kmem_cache * cachep,struct list_lru * lru,gfp_t flags)
void kmsg_dump(enum kmsg_dump_reason reason)
{
lx_emul_trace_and_stop(__func__);
}
@ -316,6 +379,11 @@ void note_interrupt(struct irq_desc * desc,irqreturn_t action_ret)
}
#include <linux/reboot.h>
enum reboot_mode panic_reboot_mode;
#include <linux/moduleparam.h>
int param_set_copystring(const char * val,const struct kernel_param * kp)
@ -372,6 +440,11 @@ int proc_douintvec(struct ctl_table * table,int write,void * buffer,size_t * len
}
#include <linux/reboot.h>
enum reboot_mode reboot_mode;
#include <linux/refcount.h>
void refcount_warn_saturate(refcount_t * r,enum refcount_saturation_type t)
@ -396,6 +469,14 @@ void seq_printf(struct seq_file * m,const char * f,...)
}
#include <linux/sched/debug.h>
void show_state_filter(unsigned int state_filter)
{
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)
@ -417,6 +498,11 @@ int smp_call_function_single(int cpu,smp_call_func_t func,void * info,int wait)
bool static_key_initialized;
#include <linux/printk.h>
int suppress_printk;
#include <linux/sysctl.h>
const int sysctl_vals[] = {};

View File

@ -92,6 +92,7 @@ lib/kobject.c
lib/kstrtox.c
lib/list_sort.c
lib/math/div64.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rbtree.c
lib/scatterlist.c
@ -102,5 +103,8 @@ lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/mempool.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -91,6 +91,7 @@ lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/list_sort.c
lib/math/reciprocal_div.c
lib/radix-tree.c
lib/rbtree.c
lib/scatterlist.c
@ -101,5 +102,8 @@ lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/mempool.c
mm/slab_common.c
mm/slub.c
mm/util.c

View File

@ -198,6 +198,7 @@ static const char * lx_emul_initcall_order[] = {
"__initcall_mm_compute_batch_init6",
"__initcall_workingset_init6",
"__initcall_proc_vmalloc_init6",
"__initcall_slab_sysfs_init6",
"__initcall_fcntl_init6",
"__initcall_proc_filesystems_init6",
"__initcall_start_dirtytime_writeback6",

View File

@ -217,6 +217,10 @@ include/asm-generic/rwonce.h
include/asm-generic/sections.h
include/asm-generic/topology.h
include/asm-generic/unaligned.h
include/kunit/assert.h
include/kunit/resource.h
include/kunit/test.h
include/kunit/try-catch.h
include/linux/acpi.h
include/linux/alarmtimer.h
include/linux/align.h
@ -264,6 +268,7 @@ include/linux/clk/clk-conf.h
include/linux/clockchips.h
include/linux/clocksource.h
include/linux/clocksource_ids.h
include/linux/compaction.h
include/linux/compat.h
include/linux/compiler-gcc.h
include/linux/compiler-version.h
@ -406,6 +411,7 @@ include/linux/kernel_stat.h
include/linux/kernfs.h
include/linux/kexec.h
include/linux/key.h
include/linux/kfence.h
include/linux/kfifo.h
include/linux/kgdb.h
include/linux/klist.h
@ -452,6 +458,7 @@ include/linux/mdio.h
include/linux/mem_encrypt.h
include/linux/memblock.h
include/linux/memcontrol.h
include/linux/memory.h
include/linux/memory_hotplug.h
include/linux/mempolicy.h
include/linux/mempool.h
@ -579,6 +586,7 @@ include/linux/rcupdate.h
include/linux/rcutree.h
include/linux/rcuwait.h
include/linux/reboot.h
include/linux/reciprocal_div.h
include/linux/ref_tracker.h
include/linux/refcount.h
include/linux/resource.h
@ -648,6 +656,7 @@ include/linux/siphash.h
include/linux/sizes.h
include/linux/skbuff.h
include/linux/slab.h
include/linux/slub_def.h
include/linux/smp.h
include/linux/smp_types.h
include/linux/smpboot.h
@ -805,7 +814,9 @@ include/net/xdp.h
include/trace/define_trace.h
include/trace/events/error_report.h
include/trace/events/irq.h
include/trace/events/kmem.h
include/trace/events/lock.h
include/trace/events/mmflags.h
include/trace/events/power.h
include/trace/events/sched.h
include/trace/events/timer.h

View File

@ -50,9 +50,6 @@ asmlinkage __wsum csum_partial(const void * buff,int len,__wsum sum)
#endif /* CONFIG_X86_32 */
struct static_key_false init_on_alloc;
#include <linux/proc_ns.h>
int proc_alloc_inum(unsigned int * inum)
@ -80,6 +77,14 @@ unsigned int get_next_ino(void)
}
#include <linux/fs.h>
void inode_init_once(struct inode * inode)
{
lx_emul_trace(__func__);
}
#include <linux/netdevice.h>
int __init dev_proc_init(void)

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2023-11-02
* \date 2024-07-16
*/
#include <lx_emul.h>
@ -116,14 +116,6 @@ void __srcu_read_unlock(struct srcu_struct * ssp,int idx)
}
#include <linux/vmalloc.h>
void * __vmalloc_node_range(unsigned long size,unsigned long align,unsigned long start,unsigned long end,gfp_t gfp_mask,pgprot_t prot,unsigned long vm_flags,int node,const void * caller)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/uaccess.h>
unsigned long _copy_to_user(void __user * to,const void * from,unsigned long n)
@ -568,14 +560,6 @@ int import_single_range(int rw,void __user * buf,size_t len,struct iovec * iov,s
bool initcall_debug;
#include <linux/fs.h>
void inode_init_once(struct inode * inode)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/sched.h>
void __sched io_schedule(void)

View File

@ -201,6 +201,7 @@ lib/kobject.c
lib/kstrtox.c
lib/list_sort.c
lib/math/div64.c
lib/math/reciprocal_div.c
lib/nlattr.c
lib/radix-tree.c
lib/rbtree.c
@ -214,7 +215,10 @@ lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/mempool.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/datagram.c
net/core/dev.c

View File

@ -39,12 +39,6 @@ drivers/base/driver.c
drivers/base/platform.c
drivers/base/property.c
drivers/net/loopback.c
drivers/net/wireless/ath/dfs_pattern_detector.c
drivers/net/wireless/ath/dfs_pri_detector.c
drivers/net/wireless/ath/hw.c
drivers/net/wireless/ath/key.c
drivers/net/wireless/ath/main.c
drivers/net/wireless/ath/regd.c
drivers/net/wireless/ath/ath9k/ani.c
drivers/net/wireless/ath/ath9k/antenna.c
drivers/net/wireless/ath/ath9k/ar5008_phy.c
@ -83,6 +77,12 @@ drivers/net/wireless/ath/ath9k/pci.c
drivers/net/wireless/ath/ath9k/recv.c
drivers/net/wireless/ath/ath9k/wmi.c
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/dfs_pattern_detector.c
drivers/net/wireless/ath/dfs_pri_detector.c
drivers/net/wireless/ath/hw.c
drivers/net/wireless/ath/key.c
drivers/net/wireless/ath/main.c
drivers/net/wireless/ath/regd.c
drivers/net/wireless/intel/iwlwifi/cfg/1000.c
drivers/net/wireless/intel/iwlwifi/cfg/2000.c
drivers/net/wireless/intel/iwlwifi/cfg/22000.c
@ -245,6 +245,7 @@ lib/klist.c
lib/kobject.c
lib/kstrtox.c
lib/list_sort.c
lib/math/reciprocal_div.c
lib/nlattr.c
lib/radix-tree.c
lib/rbtree.c
@ -258,7 +259,10 @@ lib/string_helpers.c
lib/timerqueue.c
lib/vsprintf.c
lib/xarray.c
mm/memblock.c
mm/mempool.c
mm/slab_common.c
mm/slub.c
mm/util.c
net/core/datagram.c
net/core/dev.c

View File

@ -11,6 +11,10 @@ LX_ENABLE += NO_HZ_IDLE HIGH_RES_TIMERS
# initrd support
LX_ENABLE += BINFMT_ELF BINFMT_SCRIPT BLK_DEV_INITRD
# kmem_cache allocator
LX_DISABLE += SLOB SLUB_DEBUG
LX_ENABLE += SLUB
# UART device
LX_ENABLE += SERIAL_8250 SERIAL_8250_CONSOLE