From e3ae15bbe8cf6437c300bbdd12c21cd13fd45f74 Mon Sep 17 00:00:00 2001 From: Alexandre Mutel Date: Sun, 21 Jul 2024 20:44:06 +0200 Subject: [PATCH] Add missing kmod_set_log_fn to allow to set it to null (no logs) --- .../XenoAtom.Interop.CodeGen/libkmod/LibkmodGenerator.cs | 3 ++- .../XenoAtom.Interop.libkmod/generated/libkmod.generated.cs | 4 ++++ src/libkmod/readme.md | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/codegen/XenoAtom.Interop.CodeGen/libkmod/LibkmodGenerator.cs b/src/codegen/XenoAtom.Interop.CodeGen/libkmod/LibkmodGenerator.cs index 8395dfc..b9d925a 100644 --- a/src/codegen/XenoAtom.Interop.CodeGen/libkmod/LibkmodGenerator.cs +++ b/src/codegen/XenoAtom.Interop.CodeGen/libkmod/LibkmodGenerator.cs @@ -71,7 +71,8 @@ internal partial class LibkmodGenerator(LibDescriptor descriptor) : GeneratorBas e => e.Map("kmod_module_probe_insert_module::flags").Type("kmod_probe"), e => e.Map("kmod_symbol_bind").Discard(), // Not used in public API but only internally e => e.Map("_KMOD_MODULE_PAD").Discard(), - e => e.Map("kmod_set_log_fn").Discard(), + e => e.Map("kmod_set_log_fn::log_fn").Type("intptr_t"), + //e => e.Map("kmod_set_log_fn").Discard(), e => e.Map("vsyslog").Discard(), // discard as it has a va_list e => e.Map("va_list").Discard(), // discard va_list e => e.Map("__va_list_tag").Discard(), // discard __va_list_tag diff --git a/src/libkmod/XenoAtom.Interop.libkmod/generated/libkmod.generated.cs b/src/libkmod/XenoAtom.Interop.libkmod/generated/libkmod.generated.cs index ae172b4..a7ce193 100644 --- a/src/libkmod/XenoAtom.Interop.libkmod/generated/libkmod.generated.cs +++ b/src/libkmod/XenoAtom.Interop.libkmod/generated/libkmod.generated.cs @@ -227,6 +227,10 @@ public enum kmod_module_initstate : uint [UnmanagedCallConv(CallConvs = new Type[] { typeof(CallConvCdecl) })] public static partial libkmod.kmod_ctx kmod_unref(libkmod.kmod_ctx ctx); + [global::System.Runtime.InteropServices.LibraryImport(LibraryName, EntryPoint = "kmod_set_log_fn")] + [UnmanagedCallConv(CallConvs = new Type[] { typeof(CallConvCdecl) })] + public static partial void kmod_set_log_fn(libkmod.kmod_ctx ctx, nint log_fn, void* data); + [global::System.Runtime.InteropServices.LibraryImport(LibraryName, EntryPoint = "kmod_get_log_priority")] [UnmanagedCallConv(CallConvs = new Type[] { typeof(CallConvCdecl) })] public static partial int kmod_get_log_priority(libkmod.kmod_ctx ctx); diff --git a/src/libkmod/readme.md b/src/libkmod/readme.md index e3ac9c1..0877141 100644 --- a/src/libkmod/readme.md +++ b/src/libkmod/readme.md @@ -31,7 +31,7 @@ Other OS might require a different setup. The following API were automatically generated from the C/C++ code: -- libkmod.h: `kmod_config_get_aliases`, `kmod_config_get_blacklists`, `kmod_config_get_install_commands`, `kmod_config_get_options`, `kmod_config_get_remove_commands`, `kmod_config_get_softdeps`, `kmod_config_iter_free_iter`, `kmod_config_iter_get_key`, `kmod_config_iter_get_value`, `kmod_config_iter_next`, `kmod_dump_index`, `kmod_get_dirname`, `kmod_get_log_priority`, `kmod_get_userdata`, `kmod_list_last`, `kmod_list_next`, `kmod_list_prev`, `kmod_load_resources`, `kmod_module_apply_filter`, `kmod_module_dependency_symbol_get_bind`, `kmod_module_dependency_symbol_get_crc`, `kmod_module_dependency_symbol_get_symbol`, `kmod_module_dependency_symbols_free_list`, `kmod_module_get_dependencies`, `kmod_module_get_dependency_symbols`, `kmod_module_get_filtered_blacklist`, `kmod_module_get_holders`, `kmod_module_get_info`, `kmod_module_get_initstate`, `kmod_module_get_install_commands`, `kmod_module_get_module`, `kmod_module_get_name`, `kmod_module_get_options`, `kmod_module_get_path`, `kmod_module_get_refcnt`, `kmod_module_get_remove_commands`, `kmod_module_get_sections`, `kmod_module_get_size`, `kmod_module_get_softdeps`, `kmod_module_get_symbols`, `kmod_module_get_versions`, `kmod_module_info_free_list`, `kmod_module_info_get_key`, `kmod_module_info_get_value`, `kmod_module_initstate_str`, `kmod_module_insert_module`, `kmod_module_new_from_loaded`, `kmod_module_new_from_lookup`, `kmod_module_new_from_name`, `kmod_module_new_from_name_lookup`, `kmod_module_new_from_path`, `kmod_module_probe_insert_module`, `kmod_module_ref`, `kmod_module_remove_module`, `kmod_module_section_free_list`, `kmod_module_section_get_address`, `kmod_module_section_get_name`, `kmod_module_symbol_get_crc`, `kmod_module_symbol_get_symbol`, `kmod_module_symbols_free_list`, `kmod_module_unref`, `kmod_module_unref_list`, `kmod_module_version_get_crc`, `kmod_module_version_get_symbol`, `kmod_module_versions_free_list`, `kmod_new`, `kmod_ref`, `kmod_set_log_priority`, `kmod_set_userdata`, `kmod_unload_resources`, `kmod_unref`, `kmod_validate_resources` +- libkmod.h: `kmod_config_get_aliases`, `kmod_config_get_blacklists`, `kmod_config_get_install_commands`, `kmod_config_get_options`, `kmod_config_get_remove_commands`, `kmod_config_get_softdeps`, `kmod_config_iter_free_iter`, `kmod_config_iter_get_key`, `kmod_config_iter_get_value`, `kmod_config_iter_next`, `kmod_dump_index`, `kmod_get_dirname`, `kmod_get_log_priority`, `kmod_get_userdata`, `kmod_list_last`, `kmod_list_next`, `kmod_list_prev`, `kmod_load_resources`, `kmod_module_apply_filter`, `kmod_module_dependency_symbol_get_bind`, `kmod_module_dependency_symbol_get_crc`, `kmod_module_dependency_symbol_get_symbol`, `kmod_module_dependency_symbols_free_list`, `kmod_module_get_dependencies`, `kmod_module_get_dependency_symbols`, `kmod_module_get_filtered_blacklist`, `kmod_module_get_holders`, `kmod_module_get_info`, `kmod_module_get_initstate`, `kmod_module_get_install_commands`, `kmod_module_get_module`, `kmod_module_get_name`, `kmod_module_get_options`, `kmod_module_get_path`, `kmod_module_get_refcnt`, `kmod_module_get_remove_commands`, `kmod_module_get_sections`, `kmod_module_get_size`, `kmod_module_get_softdeps`, `kmod_module_get_symbols`, `kmod_module_get_versions`, `kmod_module_info_free_list`, `kmod_module_info_get_key`, `kmod_module_info_get_value`, `kmod_module_initstate_str`, `kmod_module_insert_module`, `kmod_module_new_from_loaded`, `kmod_module_new_from_lookup`, `kmod_module_new_from_name`, `kmod_module_new_from_name_lookup`, `kmod_module_new_from_path`, `kmod_module_probe_insert_module`, `kmod_module_ref`, `kmod_module_remove_module`, `kmod_module_section_free_list`, `kmod_module_section_get_address`, `kmod_module_section_get_name`, `kmod_module_symbol_get_crc`, `kmod_module_symbol_get_symbol`, `kmod_module_symbols_free_list`, `kmod_module_unref`, `kmod_module_unref_list`, `kmod_module_version_get_crc`, `kmod_module_version_get_symbol`, `kmod_module_versions_free_list`, `kmod_new`, `kmod_ref`, `kmod_set_log_fn`, `kmod_set_log_priority`, `kmod_set_userdata`, `kmod_unload_resources`, `kmod_unref`, `kmod_validate_resources` ## 🪪 License