Don't clobber original library symbols

It appears that we can get a fun circle dependency on a shared object on
some system configurations causing issues with our 'fake' function
pointer names. This can lead to a crash.

The new wrapper generator renames all the symbols so this can't happen
anymore. See https://github.com/hpvb/dynload-wrapper/commit/704135e

This closes #46140
This commit is contained in:
Hein-Pieter van Braam-Stewart 2021-02-18 00:21:10 +01:00
parent f91c4c0899
commit 8d36b17343
7 changed files with 10410 additions and 8674 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -38,7 +38,7 @@
#include "core/os/thread.h"
#include "core/templates/vector.h"
#include <alsa/asoundlib.h>
#include "../alsa/asound-so_wrap.h"
#include <stdio.h>
class MIDIDriverALSAMidi : public MIDIDriver {

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,100 +1,100 @@
#ifndef DYLIBLOAD_WRAPPER_LIBUDEV
#define DYLIBLOAD_WRAPPER_LIBUDEV
// This file is generated. Do not edit!
// see https://github.com/hpvb/dynload-wrapper for details
// generated by ./generate-wrapper.py 0.1 on 2021-02-17 13:14:24
// flags: ./generate-wrapper.py --include /usr/include/libudev.h --sys-include <libudev.h> --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c
// generated by /home/hp/Projects/godot/pulse/generate-wrapper.py 0.2 on 2021-02-18 00:18:56
// flags: /home/hp/Projects/godot/pulse/generate-wrapper.py --include /usr/include/libudev.h --sys-include <libudev.h> --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c
//
#include <dlfcn.h>
#include <stdio.h>
#define udev_ref udev_ref_orig
#define udev_unref udev_unref_orig
#define udev_new udev_new_orig
#define udev_set_log_fn udev_set_log_fn_orig
#define udev_get_log_priority udev_get_log_priority_orig
#define udev_set_log_priority udev_set_log_priority_orig
#define udev_get_userdata udev_get_userdata_orig
#define udev_set_userdata udev_set_userdata_orig
#define udev_list_entry_get_next udev_list_entry_get_next_orig
#define udev_list_entry_get_by_name udev_list_entry_get_by_name_orig
#define udev_list_entry_get_name udev_list_entry_get_name_orig
#define udev_list_entry_get_value udev_list_entry_get_value_orig
#define udev_device_ref udev_device_ref_orig
#define udev_device_unref udev_device_unref_orig
#define udev_device_get_udev udev_device_get_udev_orig
#define udev_device_new_from_syspath udev_device_new_from_syspath_orig
#define udev_device_new_from_devnum udev_device_new_from_devnum_orig
#define udev_device_new_from_subsystem_sysname udev_device_new_from_subsystem_sysname_orig
#define udev_device_new_from_device_id udev_device_new_from_device_id_orig
#define udev_device_new_from_environment udev_device_new_from_environment_orig
#define udev_device_get_parent udev_device_get_parent_orig
#define udev_device_get_parent_with_subsystem_devtype udev_device_get_parent_with_subsystem_devtype_orig
#define udev_device_get_devpath udev_device_get_devpath_orig
#define udev_device_get_subsystem udev_device_get_subsystem_orig
#define udev_device_get_devtype udev_device_get_devtype_orig
#define udev_device_get_syspath udev_device_get_syspath_orig
#define udev_device_get_sysname udev_device_get_sysname_orig
#define udev_device_get_sysnum udev_device_get_sysnum_orig
#define udev_device_get_devnode udev_device_get_devnode_orig
#define udev_device_get_is_initialized udev_device_get_is_initialized_orig
#define udev_device_get_devlinks_list_entry udev_device_get_devlinks_list_entry_orig
#define udev_device_get_properties_list_entry udev_device_get_properties_list_entry_orig
#define udev_device_get_tags_list_entry udev_device_get_tags_list_entry_orig
#define udev_device_get_sysattr_list_entry udev_device_get_sysattr_list_entry_orig
#define udev_device_get_property_value udev_device_get_property_value_orig
#define udev_device_get_driver udev_device_get_driver_orig
#define udev_device_get_devnum udev_device_get_devnum_orig
#define udev_device_get_action udev_device_get_action_orig
#define udev_device_get_seqnum udev_device_get_seqnum_orig
#define udev_device_get_usec_since_initialized udev_device_get_usec_since_initialized_orig
#define udev_device_get_sysattr_value udev_device_get_sysattr_value_orig
#define udev_device_set_sysattr_value udev_device_set_sysattr_value_orig
#define udev_device_has_tag udev_device_has_tag_orig
#define udev_monitor_ref udev_monitor_ref_orig
#define udev_monitor_unref udev_monitor_unref_orig
#define udev_monitor_get_udev udev_monitor_get_udev_orig
#define udev_monitor_new_from_netlink udev_monitor_new_from_netlink_orig
#define udev_monitor_enable_receiving udev_monitor_enable_receiving_orig
#define udev_monitor_set_receive_buffer_size udev_monitor_set_receive_buffer_size_orig
#define udev_monitor_get_fd udev_monitor_get_fd_orig
#define udev_monitor_receive_device udev_monitor_receive_device_orig
#define udev_monitor_filter_add_match_subsystem_devtype udev_monitor_filter_add_match_subsystem_devtype_orig
#define udev_monitor_filter_add_match_tag udev_monitor_filter_add_match_tag_orig
#define udev_monitor_filter_update udev_monitor_filter_update_orig
#define udev_monitor_filter_remove udev_monitor_filter_remove_orig
#define udev_enumerate_ref udev_enumerate_ref_orig
#define udev_enumerate_unref udev_enumerate_unref_orig
#define udev_enumerate_get_udev udev_enumerate_get_udev_orig
#define udev_enumerate_new udev_enumerate_new_orig
#define udev_enumerate_add_match_subsystem udev_enumerate_add_match_subsystem_orig
#define udev_enumerate_add_nomatch_subsystem udev_enumerate_add_nomatch_subsystem_orig
#define udev_enumerate_add_match_sysattr udev_enumerate_add_match_sysattr_orig
#define udev_enumerate_add_nomatch_sysattr udev_enumerate_add_nomatch_sysattr_orig
#define udev_enumerate_add_match_property udev_enumerate_add_match_property_orig
#define udev_enumerate_add_match_sysname udev_enumerate_add_match_sysname_orig
#define udev_enumerate_add_match_tag udev_enumerate_add_match_tag_orig
#define udev_enumerate_add_match_parent udev_enumerate_add_match_parent_orig
#define udev_enumerate_add_match_is_initialized udev_enumerate_add_match_is_initialized_orig
#define udev_enumerate_add_syspath udev_enumerate_add_syspath_orig
#define udev_enumerate_scan_devices udev_enumerate_scan_devices_orig
#define udev_enumerate_scan_subsystems udev_enumerate_scan_subsystems_orig
#define udev_enumerate_get_list_entry udev_enumerate_get_list_entry_orig
#define udev_queue_ref udev_queue_ref_orig
#define udev_queue_unref udev_queue_unref_orig
#define udev_queue_get_udev udev_queue_get_udev_orig
#define udev_queue_new udev_queue_new_orig
#define udev_queue_get_kernel_seqnum udev_queue_get_kernel_seqnum_orig
#define udev_queue_get_udev_seqnum udev_queue_get_udev_seqnum_orig
#define udev_queue_get_udev_is_active udev_queue_get_udev_is_active_orig
#define udev_queue_get_queue_is_empty udev_queue_get_queue_is_empty_orig
#define udev_queue_get_seqnum_is_finished udev_queue_get_seqnum_is_finished_orig
#define udev_queue_get_seqnum_sequence_is_finished udev_queue_get_seqnum_sequence_is_finished_orig
#define udev_queue_get_fd udev_queue_get_fd_orig
#define udev_queue_flush udev_queue_flush_orig
#define udev_queue_get_queued_list_entry udev_queue_get_queued_list_entry_orig
#define udev_hwdb_new udev_hwdb_new_orig
#define udev_hwdb_ref udev_hwdb_ref_orig
#define udev_hwdb_unref udev_hwdb_unref_orig
#define udev_hwdb_get_properties_list_entry udev_hwdb_get_properties_list_entry_orig
#define udev_util_encode_string udev_util_encode_string_orig
#define udev_ref udev_ref_dylibloader_orig_libudev
#define udev_unref udev_unref_dylibloader_orig_libudev
#define udev_new udev_new_dylibloader_orig_libudev
#define udev_set_log_fn udev_set_log_fn_dylibloader_orig_libudev
#define udev_get_log_priority udev_get_log_priority_dylibloader_orig_libudev
#define udev_set_log_priority udev_set_log_priority_dylibloader_orig_libudev
#define udev_get_userdata udev_get_userdata_dylibloader_orig_libudev
#define udev_set_userdata udev_set_userdata_dylibloader_orig_libudev
#define udev_list_entry_get_next udev_list_entry_get_next_dylibloader_orig_libudev
#define udev_list_entry_get_by_name udev_list_entry_get_by_name_dylibloader_orig_libudev
#define udev_list_entry_get_name udev_list_entry_get_name_dylibloader_orig_libudev
#define udev_list_entry_get_value udev_list_entry_get_value_dylibloader_orig_libudev
#define udev_device_ref udev_device_ref_dylibloader_orig_libudev
#define udev_device_unref udev_device_unref_dylibloader_orig_libudev
#define udev_device_get_udev udev_device_get_udev_dylibloader_orig_libudev
#define udev_device_new_from_syspath udev_device_new_from_syspath_dylibloader_orig_libudev
#define udev_device_new_from_devnum udev_device_new_from_devnum_dylibloader_orig_libudev
#define udev_device_new_from_subsystem_sysname udev_device_new_from_subsystem_sysname_dylibloader_orig_libudev
#define udev_device_new_from_device_id udev_device_new_from_device_id_dylibloader_orig_libudev
#define udev_device_new_from_environment udev_device_new_from_environment_dylibloader_orig_libudev
#define udev_device_get_parent udev_device_get_parent_dylibloader_orig_libudev
#define udev_device_get_parent_with_subsystem_devtype udev_device_get_parent_with_subsystem_devtype_dylibloader_orig_libudev
#define udev_device_get_devpath udev_device_get_devpath_dylibloader_orig_libudev
#define udev_device_get_subsystem udev_device_get_subsystem_dylibloader_orig_libudev
#define udev_device_get_devtype udev_device_get_devtype_dylibloader_orig_libudev
#define udev_device_get_syspath udev_device_get_syspath_dylibloader_orig_libudev
#define udev_device_get_sysname udev_device_get_sysname_dylibloader_orig_libudev
#define udev_device_get_sysnum udev_device_get_sysnum_dylibloader_orig_libudev
#define udev_device_get_devnode udev_device_get_devnode_dylibloader_orig_libudev
#define udev_device_get_is_initialized udev_device_get_is_initialized_dylibloader_orig_libudev
#define udev_device_get_devlinks_list_entry udev_device_get_devlinks_list_entry_dylibloader_orig_libudev
#define udev_device_get_properties_list_entry udev_device_get_properties_list_entry_dylibloader_orig_libudev
#define udev_device_get_tags_list_entry udev_device_get_tags_list_entry_dylibloader_orig_libudev
#define udev_device_get_sysattr_list_entry udev_device_get_sysattr_list_entry_dylibloader_orig_libudev
#define udev_device_get_property_value udev_device_get_property_value_dylibloader_orig_libudev
#define udev_device_get_driver udev_device_get_driver_dylibloader_orig_libudev
#define udev_device_get_devnum udev_device_get_devnum_dylibloader_orig_libudev
#define udev_device_get_action udev_device_get_action_dylibloader_orig_libudev
#define udev_device_get_seqnum udev_device_get_seqnum_dylibloader_orig_libudev
#define udev_device_get_usec_since_initialized udev_device_get_usec_since_initialized_dylibloader_orig_libudev
#define udev_device_get_sysattr_value udev_device_get_sysattr_value_dylibloader_orig_libudev
#define udev_device_set_sysattr_value udev_device_set_sysattr_value_dylibloader_orig_libudev
#define udev_device_has_tag udev_device_has_tag_dylibloader_orig_libudev
#define udev_monitor_ref udev_monitor_ref_dylibloader_orig_libudev
#define udev_monitor_unref udev_monitor_unref_dylibloader_orig_libudev
#define udev_monitor_get_udev udev_monitor_get_udev_dylibloader_orig_libudev
#define udev_monitor_new_from_netlink udev_monitor_new_from_netlink_dylibloader_orig_libudev
#define udev_monitor_enable_receiving udev_monitor_enable_receiving_dylibloader_orig_libudev
#define udev_monitor_set_receive_buffer_size udev_monitor_set_receive_buffer_size_dylibloader_orig_libudev
#define udev_monitor_get_fd udev_monitor_get_fd_dylibloader_orig_libudev
#define udev_monitor_receive_device udev_monitor_receive_device_dylibloader_orig_libudev
#define udev_monitor_filter_add_match_subsystem_devtype udev_monitor_filter_add_match_subsystem_devtype_dylibloader_orig_libudev
#define udev_monitor_filter_add_match_tag udev_monitor_filter_add_match_tag_dylibloader_orig_libudev
#define udev_monitor_filter_update udev_monitor_filter_update_dylibloader_orig_libudev
#define udev_monitor_filter_remove udev_monitor_filter_remove_dylibloader_orig_libudev
#define udev_enumerate_ref udev_enumerate_ref_dylibloader_orig_libudev
#define udev_enumerate_unref udev_enumerate_unref_dylibloader_orig_libudev
#define udev_enumerate_get_udev udev_enumerate_get_udev_dylibloader_orig_libudev
#define udev_enumerate_new udev_enumerate_new_dylibloader_orig_libudev
#define udev_enumerate_add_match_subsystem udev_enumerate_add_match_subsystem_dylibloader_orig_libudev
#define udev_enumerate_add_nomatch_subsystem udev_enumerate_add_nomatch_subsystem_dylibloader_orig_libudev
#define udev_enumerate_add_match_sysattr udev_enumerate_add_match_sysattr_dylibloader_orig_libudev
#define udev_enumerate_add_nomatch_sysattr udev_enumerate_add_nomatch_sysattr_dylibloader_orig_libudev
#define udev_enumerate_add_match_property udev_enumerate_add_match_property_dylibloader_orig_libudev
#define udev_enumerate_add_match_sysname udev_enumerate_add_match_sysname_dylibloader_orig_libudev
#define udev_enumerate_add_match_tag udev_enumerate_add_match_tag_dylibloader_orig_libudev
#define udev_enumerate_add_match_parent udev_enumerate_add_match_parent_dylibloader_orig_libudev
#define udev_enumerate_add_match_is_initialized udev_enumerate_add_match_is_initialized_dylibloader_orig_libudev
#define udev_enumerate_add_syspath udev_enumerate_add_syspath_dylibloader_orig_libudev
#define udev_enumerate_scan_devices udev_enumerate_scan_devices_dylibloader_orig_libudev
#define udev_enumerate_scan_subsystems udev_enumerate_scan_subsystems_dylibloader_orig_libudev
#define udev_enumerate_get_list_entry udev_enumerate_get_list_entry_dylibloader_orig_libudev
#define udev_queue_ref udev_queue_ref_dylibloader_orig_libudev
#define udev_queue_unref udev_queue_unref_dylibloader_orig_libudev
#define udev_queue_get_udev udev_queue_get_udev_dylibloader_orig_libudev
#define udev_queue_new udev_queue_new_dylibloader_orig_libudev
#define udev_queue_get_kernel_seqnum udev_queue_get_kernel_seqnum_dylibloader_orig_libudev
#define udev_queue_get_udev_seqnum udev_queue_get_udev_seqnum_dylibloader_orig_libudev
#define udev_queue_get_udev_is_active udev_queue_get_udev_is_active_dylibloader_orig_libudev
#define udev_queue_get_queue_is_empty udev_queue_get_queue_is_empty_dylibloader_orig_libudev
#define udev_queue_get_seqnum_is_finished udev_queue_get_seqnum_is_finished_dylibloader_orig_libudev
#define udev_queue_get_seqnum_sequence_is_finished udev_queue_get_seqnum_sequence_is_finished_dylibloader_orig_libudev
#define udev_queue_get_fd udev_queue_get_fd_dylibloader_orig_libudev
#define udev_queue_flush udev_queue_flush_dylibloader_orig_libudev
#define udev_queue_get_queued_list_entry udev_queue_get_queued_list_entry_dylibloader_orig_libudev
#define udev_hwdb_new udev_hwdb_new_dylibloader_orig_libudev
#define udev_hwdb_ref udev_hwdb_ref_dylibloader_orig_libudev
#define udev_hwdb_unref udev_hwdb_unref_dylibloader_orig_libudev
#define udev_hwdb_get_properties_list_entry udev_hwdb_get_properties_list_entry_dylibloader_orig_libudev
#define udev_util_encode_string udev_util_encode_string_dylibloader_orig_libudev
#include <libudev.h>
#undef udev_ref
#undef udev_unref
@ -189,97 +189,188 @@
#ifdef __cplusplus
extern "C" {
#endif
extern struct udev* (*udev_ref)(struct udev*);
extern struct udev* (*udev_unref)(struct udev*);
extern struct udev* (*udev_new)( void);
extern void (*udev_set_log_fn)(struct udev*, void*);
extern int (*udev_get_log_priority)(struct udev*);
extern void (*udev_set_log_priority)(struct udev*, int);
extern void* (*udev_get_userdata)(struct udev*);
extern void (*udev_set_userdata)(struct udev*, void*);
extern struct udev_list_entry* (*udev_list_entry_get_next)(struct udev_list_entry*);
extern struct udev_list_entry* (*udev_list_entry_get_by_name)(struct udev_list_entry*,const char*);
extern const char* (*udev_list_entry_get_name)(struct udev_list_entry*);
extern const char* (*udev_list_entry_get_value)(struct udev_list_entry*);
extern struct udev_device* (*udev_device_ref)(struct udev_device*);
extern struct udev_device* (*udev_device_unref)(struct udev_device*);
extern struct udev* (*udev_device_get_udev)(struct udev_device*);
extern struct udev_device* (*udev_device_new_from_syspath)(struct udev*,const char*);
extern struct udev_device* (*udev_device_new_from_devnum)(struct udev*, char, dev_t);
extern struct udev_device* (*udev_device_new_from_subsystem_sysname)(struct udev*,const char*,const char*);
extern struct udev_device* (*udev_device_new_from_device_id)(struct udev*,const char*);
extern struct udev_device* (*udev_device_new_from_environment)(struct udev*);
extern struct udev_device* (*udev_device_get_parent)(struct udev_device*);
extern struct udev_device* (*udev_device_get_parent_with_subsystem_devtype)(struct udev_device*,const char*,const char*);
extern const char* (*udev_device_get_devpath)(struct udev_device*);
extern const char* (*udev_device_get_subsystem)(struct udev_device*);
extern const char* (*udev_device_get_devtype)(struct udev_device*);
extern const char* (*udev_device_get_syspath)(struct udev_device*);
extern const char* (*udev_device_get_sysname)(struct udev_device*);
extern const char* (*udev_device_get_sysnum)(struct udev_device*);
extern const char* (*udev_device_get_devnode)(struct udev_device*);
extern int (*udev_device_get_is_initialized)(struct udev_device*);
extern struct udev_list_entry* (*udev_device_get_devlinks_list_entry)(struct udev_device*);
extern struct udev_list_entry* (*udev_device_get_properties_list_entry)(struct udev_device*);
extern struct udev_list_entry* (*udev_device_get_tags_list_entry)(struct udev_device*);
extern struct udev_list_entry* (*udev_device_get_sysattr_list_entry)(struct udev_device*);
extern const char* (*udev_device_get_property_value)(struct udev_device*,const char*);
extern const char* (*udev_device_get_driver)(struct udev_device*);
extern dev_t (*udev_device_get_devnum)(struct udev_device*);
extern const char* (*udev_device_get_action)(struct udev_device*);
extern unsigned long long int (*udev_device_get_seqnum)(struct udev_device*);
extern unsigned long long int (*udev_device_get_usec_since_initialized)(struct udev_device*);
extern const char* (*udev_device_get_sysattr_value)(struct udev_device*,const char*);
extern int (*udev_device_set_sysattr_value)(struct udev_device*,const char*,const char*);
extern int (*udev_device_has_tag)(struct udev_device*,const char*);
extern struct udev_monitor* (*udev_monitor_ref)(struct udev_monitor*);
extern struct udev_monitor* (*udev_monitor_unref)(struct udev_monitor*);
extern struct udev* (*udev_monitor_get_udev)(struct udev_monitor*);
extern struct udev_monitor* (*udev_monitor_new_from_netlink)(struct udev*,const char*);
extern int (*udev_monitor_enable_receiving)(struct udev_monitor*);
extern int (*udev_monitor_set_receive_buffer_size)(struct udev_monitor*, int);
extern int (*udev_monitor_get_fd)(struct udev_monitor*);
extern struct udev_device* (*udev_monitor_receive_device)(struct udev_monitor*);
extern int (*udev_monitor_filter_add_match_subsystem_devtype)(struct udev_monitor*,const char*,const char*);
extern int (*udev_monitor_filter_add_match_tag)(struct udev_monitor*,const char*);
extern int (*udev_monitor_filter_update)(struct udev_monitor*);
extern int (*udev_monitor_filter_remove)(struct udev_monitor*);
extern struct udev_enumerate* (*udev_enumerate_ref)(struct udev_enumerate*);
extern struct udev_enumerate* (*udev_enumerate_unref)(struct udev_enumerate*);
extern struct udev* (*udev_enumerate_get_udev)(struct udev_enumerate*);
extern struct udev_enumerate* (*udev_enumerate_new)(struct udev*);
extern int (*udev_enumerate_add_match_subsystem)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_add_nomatch_subsystem)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_add_match_sysattr)(struct udev_enumerate*,const char*,const char*);
extern int (*udev_enumerate_add_nomatch_sysattr)(struct udev_enumerate*,const char*,const char*);
extern int (*udev_enumerate_add_match_property)(struct udev_enumerate*,const char*,const char*);
extern int (*udev_enumerate_add_match_sysname)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_add_match_tag)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_add_match_parent)(struct udev_enumerate*,struct udev_device*);
extern int (*udev_enumerate_add_match_is_initialized)(struct udev_enumerate*);
extern int (*udev_enumerate_add_syspath)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_scan_devices)(struct udev_enumerate*);
extern int (*udev_enumerate_scan_subsystems)(struct udev_enumerate*);
extern struct udev_list_entry* (*udev_enumerate_get_list_entry)(struct udev_enumerate*);
extern struct udev_queue* (*udev_queue_ref)(struct udev_queue*);
extern struct udev_queue* (*udev_queue_unref)(struct udev_queue*);
extern struct udev* (*udev_queue_get_udev)(struct udev_queue*);
extern struct udev_queue* (*udev_queue_new)(struct udev*);
extern unsigned long long int (*udev_queue_get_kernel_seqnum)(struct udev_queue*);
extern unsigned long long int (*udev_queue_get_udev_seqnum)(struct udev_queue*);
extern int (*udev_queue_get_udev_is_active)(struct udev_queue*);
extern int (*udev_queue_get_queue_is_empty)(struct udev_queue*);
extern int (*udev_queue_get_seqnum_is_finished)(struct udev_queue*, unsigned long long int);
extern int (*udev_queue_get_seqnum_sequence_is_finished)(struct udev_queue*, unsigned long long int, unsigned long long int);
extern int (*udev_queue_get_fd)(struct udev_queue*);
extern int (*udev_queue_flush)(struct udev_queue*);
extern struct udev_list_entry* (*udev_queue_get_queued_list_entry)(struct udev_queue*);
extern struct udev_hwdb* (*udev_hwdb_new)(struct udev*);
extern struct udev_hwdb* (*udev_hwdb_ref)(struct udev_hwdb*);
extern struct udev_hwdb* (*udev_hwdb_unref)(struct udev_hwdb*);
extern struct udev_list_entry* (*udev_hwdb_get_properties_list_entry)(struct udev_hwdb*,const char*, unsigned);
extern int (*udev_util_encode_string)(const char*, char*, size_t);
#define udev_ref udev_ref_dylibloader_wrapper_libudev
#define udev_unref udev_unref_dylibloader_wrapper_libudev
#define udev_new udev_new_dylibloader_wrapper_libudev
#define udev_set_log_fn udev_set_log_fn_dylibloader_wrapper_libudev
#define udev_get_log_priority udev_get_log_priority_dylibloader_wrapper_libudev
#define udev_set_log_priority udev_set_log_priority_dylibloader_wrapper_libudev
#define udev_get_userdata udev_get_userdata_dylibloader_wrapper_libudev
#define udev_set_userdata udev_set_userdata_dylibloader_wrapper_libudev
#define udev_list_entry_get_next udev_list_entry_get_next_dylibloader_wrapper_libudev
#define udev_list_entry_get_by_name udev_list_entry_get_by_name_dylibloader_wrapper_libudev
#define udev_list_entry_get_name udev_list_entry_get_name_dylibloader_wrapper_libudev
#define udev_list_entry_get_value udev_list_entry_get_value_dylibloader_wrapper_libudev
#define udev_device_ref udev_device_ref_dylibloader_wrapper_libudev
#define udev_device_unref udev_device_unref_dylibloader_wrapper_libudev
#define udev_device_get_udev udev_device_get_udev_dylibloader_wrapper_libudev
#define udev_device_new_from_syspath udev_device_new_from_syspath_dylibloader_wrapper_libudev
#define udev_device_new_from_devnum udev_device_new_from_devnum_dylibloader_wrapper_libudev
#define udev_device_new_from_subsystem_sysname udev_device_new_from_subsystem_sysname_dylibloader_wrapper_libudev
#define udev_device_new_from_device_id udev_device_new_from_device_id_dylibloader_wrapper_libudev
#define udev_device_new_from_environment udev_device_new_from_environment_dylibloader_wrapper_libudev
#define udev_device_get_parent udev_device_get_parent_dylibloader_wrapper_libudev
#define udev_device_get_parent_with_subsystem_devtype udev_device_get_parent_with_subsystem_devtype_dylibloader_wrapper_libudev
#define udev_device_get_devpath udev_device_get_devpath_dylibloader_wrapper_libudev
#define udev_device_get_subsystem udev_device_get_subsystem_dylibloader_wrapper_libudev
#define udev_device_get_devtype udev_device_get_devtype_dylibloader_wrapper_libudev
#define udev_device_get_syspath udev_device_get_syspath_dylibloader_wrapper_libudev
#define udev_device_get_sysname udev_device_get_sysname_dylibloader_wrapper_libudev
#define udev_device_get_sysnum udev_device_get_sysnum_dylibloader_wrapper_libudev
#define udev_device_get_devnode udev_device_get_devnode_dylibloader_wrapper_libudev
#define udev_device_get_is_initialized udev_device_get_is_initialized_dylibloader_wrapper_libudev
#define udev_device_get_devlinks_list_entry udev_device_get_devlinks_list_entry_dylibloader_wrapper_libudev
#define udev_device_get_properties_list_entry udev_device_get_properties_list_entry_dylibloader_wrapper_libudev
#define udev_device_get_tags_list_entry udev_device_get_tags_list_entry_dylibloader_wrapper_libudev
#define udev_device_get_sysattr_list_entry udev_device_get_sysattr_list_entry_dylibloader_wrapper_libudev
#define udev_device_get_property_value udev_device_get_property_value_dylibloader_wrapper_libudev
#define udev_device_get_driver udev_device_get_driver_dylibloader_wrapper_libudev
#define udev_device_get_devnum udev_device_get_devnum_dylibloader_wrapper_libudev
#define udev_device_get_action udev_device_get_action_dylibloader_wrapper_libudev
#define udev_device_get_seqnum udev_device_get_seqnum_dylibloader_wrapper_libudev
#define udev_device_get_usec_since_initialized udev_device_get_usec_since_initialized_dylibloader_wrapper_libudev
#define udev_device_get_sysattr_value udev_device_get_sysattr_value_dylibloader_wrapper_libudev
#define udev_device_set_sysattr_value udev_device_set_sysattr_value_dylibloader_wrapper_libudev
#define udev_device_has_tag udev_device_has_tag_dylibloader_wrapper_libudev
#define udev_monitor_ref udev_monitor_ref_dylibloader_wrapper_libudev
#define udev_monitor_unref udev_monitor_unref_dylibloader_wrapper_libudev
#define udev_monitor_get_udev udev_monitor_get_udev_dylibloader_wrapper_libudev
#define udev_monitor_new_from_netlink udev_monitor_new_from_netlink_dylibloader_wrapper_libudev
#define udev_monitor_enable_receiving udev_monitor_enable_receiving_dylibloader_wrapper_libudev
#define udev_monitor_set_receive_buffer_size udev_monitor_set_receive_buffer_size_dylibloader_wrapper_libudev
#define udev_monitor_get_fd udev_monitor_get_fd_dylibloader_wrapper_libudev
#define udev_monitor_receive_device udev_monitor_receive_device_dylibloader_wrapper_libudev
#define udev_monitor_filter_add_match_subsystem_devtype udev_monitor_filter_add_match_subsystem_devtype_dylibloader_wrapper_libudev
#define udev_monitor_filter_add_match_tag udev_monitor_filter_add_match_tag_dylibloader_wrapper_libudev
#define udev_monitor_filter_update udev_monitor_filter_update_dylibloader_wrapper_libudev
#define udev_monitor_filter_remove udev_monitor_filter_remove_dylibloader_wrapper_libudev
#define udev_enumerate_ref udev_enumerate_ref_dylibloader_wrapper_libudev
#define udev_enumerate_unref udev_enumerate_unref_dylibloader_wrapper_libudev
#define udev_enumerate_get_udev udev_enumerate_get_udev_dylibloader_wrapper_libudev
#define udev_enumerate_new udev_enumerate_new_dylibloader_wrapper_libudev
#define udev_enumerate_add_match_subsystem udev_enumerate_add_match_subsystem_dylibloader_wrapper_libudev
#define udev_enumerate_add_nomatch_subsystem udev_enumerate_add_nomatch_subsystem_dylibloader_wrapper_libudev
#define udev_enumerate_add_match_sysattr udev_enumerate_add_match_sysattr_dylibloader_wrapper_libudev
#define udev_enumerate_add_nomatch_sysattr udev_enumerate_add_nomatch_sysattr_dylibloader_wrapper_libudev
#define udev_enumerate_add_match_property udev_enumerate_add_match_property_dylibloader_wrapper_libudev
#define udev_enumerate_add_match_sysname udev_enumerate_add_match_sysname_dylibloader_wrapper_libudev
#define udev_enumerate_add_match_tag udev_enumerate_add_match_tag_dylibloader_wrapper_libudev
#define udev_enumerate_add_match_parent udev_enumerate_add_match_parent_dylibloader_wrapper_libudev
#define udev_enumerate_add_match_is_initialized udev_enumerate_add_match_is_initialized_dylibloader_wrapper_libudev
#define udev_enumerate_add_syspath udev_enumerate_add_syspath_dylibloader_wrapper_libudev
#define udev_enumerate_scan_devices udev_enumerate_scan_devices_dylibloader_wrapper_libudev
#define udev_enumerate_scan_subsystems udev_enumerate_scan_subsystems_dylibloader_wrapper_libudev
#define udev_enumerate_get_list_entry udev_enumerate_get_list_entry_dylibloader_wrapper_libudev
#define udev_queue_ref udev_queue_ref_dylibloader_wrapper_libudev
#define udev_queue_unref udev_queue_unref_dylibloader_wrapper_libudev
#define udev_queue_get_udev udev_queue_get_udev_dylibloader_wrapper_libudev
#define udev_queue_new udev_queue_new_dylibloader_wrapper_libudev
#define udev_queue_get_kernel_seqnum udev_queue_get_kernel_seqnum_dylibloader_wrapper_libudev
#define udev_queue_get_udev_seqnum udev_queue_get_udev_seqnum_dylibloader_wrapper_libudev
#define udev_queue_get_udev_is_active udev_queue_get_udev_is_active_dylibloader_wrapper_libudev
#define udev_queue_get_queue_is_empty udev_queue_get_queue_is_empty_dylibloader_wrapper_libudev
#define udev_queue_get_seqnum_is_finished udev_queue_get_seqnum_is_finished_dylibloader_wrapper_libudev
#define udev_queue_get_seqnum_sequence_is_finished udev_queue_get_seqnum_sequence_is_finished_dylibloader_wrapper_libudev
#define udev_queue_get_fd udev_queue_get_fd_dylibloader_wrapper_libudev
#define udev_queue_flush udev_queue_flush_dylibloader_wrapper_libudev
#define udev_queue_get_queued_list_entry udev_queue_get_queued_list_entry_dylibloader_wrapper_libudev
#define udev_hwdb_new udev_hwdb_new_dylibloader_wrapper_libudev
#define udev_hwdb_ref udev_hwdb_ref_dylibloader_wrapper_libudev
#define udev_hwdb_unref udev_hwdb_unref_dylibloader_wrapper_libudev
#define udev_hwdb_get_properties_list_entry udev_hwdb_get_properties_list_entry_dylibloader_wrapper_libudev
#define udev_util_encode_string udev_util_encode_string_dylibloader_wrapper_libudev
extern struct udev* (*udev_ref_dylibloader_wrapper_libudev)(struct udev*);
extern struct udev* (*udev_unref_dylibloader_wrapper_libudev)(struct udev*);
extern struct udev* (*udev_new_dylibloader_wrapper_libudev)( void);
extern void (*udev_set_log_fn_dylibloader_wrapper_libudev)(struct udev*, void*);
extern int (*udev_get_log_priority_dylibloader_wrapper_libudev)(struct udev*);
extern void (*udev_set_log_priority_dylibloader_wrapper_libudev)(struct udev*, int);
extern void* (*udev_get_userdata_dylibloader_wrapper_libudev)(struct udev*);
extern void (*udev_set_userdata_dylibloader_wrapper_libudev)(struct udev*, void*);
extern struct udev_list_entry* (*udev_list_entry_get_next_dylibloader_wrapper_libudev)(struct udev_list_entry*);
extern struct udev_list_entry* (*udev_list_entry_get_by_name_dylibloader_wrapper_libudev)(struct udev_list_entry*,const char*);
extern const char* (*udev_list_entry_get_name_dylibloader_wrapper_libudev)(struct udev_list_entry*);
extern const char* (*udev_list_entry_get_value_dylibloader_wrapper_libudev)(struct udev_list_entry*);
extern struct udev_device* (*udev_device_ref_dylibloader_wrapper_libudev)(struct udev_device*);
extern struct udev_device* (*udev_device_unref_dylibloader_wrapper_libudev)(struct udev_device*);
extern struct udev* (*udev_device_get_udev_dylibloader_wrapper_libudev)(struct udev_device*);
extern struct udev_device* (*udev_device_new_from_syspath_dylibloader_wrapper_libudev)(struct udev*,const char*);
extern struct udev_device* (*udev_device_new_from_devnum_dylibloader_wrapper_libudev)(struct udev*, char, dev_t);
extern struct udev_device* (*udev_device_new_from_subsystem_sysname_dylibloader_wrapper_libudev)(struct udev*,const char*,const char*);
extern struct udev_device* (*udev_device_new_from_device_id_dylibloader_wrapper_libudev)(struct udev*,const char*);
extern struct udev_device* (*udev_device_new_from_environment_dylibloader_wrapper_libudev)(struct udev*);
extern struct udev_device* (*udev_device_get_parent_dylibloader_wrapper_libudev)(struct udev_device*);
extern struct udev_device* (*udev_device_get_parent_with_subsystem_devtype_dylibloader_wrapper_libudev)(struct udev_device*,const char*,const char*);
extern const char* (*udev_device_get_devpath_dylibloader_wrapper_libudev)(struct udev_device*);
extern const char* (*udev_device_get_subsystem_dylibloader_wrapper_libudev)(struct udev_device*);
extern const char* (*udev_device_get_devtype_dylibloader_wrapper_libudev)(struct udev_device*);
extern const char* (*udev_device_get_syspath_dylibloader_wrapper_libudev)(struct udev_device*);
extern const char* (*udev_device_get_sysname_dylibloader_wrapper_libudev)(struct udev_device*);
extern const char* (*udev_device_get_sysnum_dylibloader_wrapper_libudev)(struct udev_device*);
extern const char* (*udev_device_get_devnode_dylibloader_wrapper_libudev)(struct udev_device*);
extern int (*udev_device_get_is_initialized_dylibloader_wrapper_libudev)(struct udev_device*);
extern struct udev_list_entry* (*udev_device_get_devlinks_list_entry_dylibloader_wrapper_libudev)(struct udev_device*);
extern struct udev_list_entry* (*udev_device_get_properties_list_entry_dylibloader_wrapper_libudev)(struct udev_device*);
extern struct udev_list_entry* (*udev_device_get_tags_list_entry_dylibloader_wrapper_libudev)(struct udev_device*);
extern struct udev_list_entry* (*udev_device_get_sysattr_list_entry_dylibloader_wrapper_libudev)(struct udev_device*);
extern const char* (*udev_device_get_property_value_dylibloader_wrapper_libudev)(struct udev_device*,const char*);
extern const char* (*udev_device_get_driver_dylibloader_wrapper_libudev)(struct udev_device*);
extern dev_t (*udev_device_get_devnum_dylibloader_wrapper_libudev)(struct udev_device*);
extern const char* (*udev_device_get_action_dylibloader_wrapper_libudev)(struct udev_device*);
extern unsigned long long int (*udev_device_get_seqnum_dylibloader_wrapper_libudev)(struct udev_device*);
extern unsigned long long int (*udev_device_get_usec_since_initialized_dylibloader_wrapper_libudev)(struct udev_device*);
extern const char* (*udev_device_get_sysattr_value_dylibloader_wrapper_libudev)(struct udev_device*,const char*);
extern int (*udev_device_set_sysattr_value_dylibloader_wrapper_libudev)(struct udev_device*,const char*,const char*);
extern int (*udev_device_has_tag_dylibloader_wrapper_libudev)(struct udev_device*,const char*);
extern struct udev_monitor* (*udev_monitor_ref_dylibloader_wrapper_libudev)(struct udev_monitor*);
extern struct udev_monitor* (*udev_monitor_unref_dylibloader_wrapper_libudev)(struct udev_monitor*);
extern struct udev* (*udev_monitor_get_udev_dylibloader_wrapper_libudev)(struct udev_monitor*);
extern struct udev_monitor* (*udev_monitor_new_from_netlink_dylibloader_wrapper_libudev)(struct udev*,const char*);
extern int (*udev_monitor_enable_receiving_dylibloader_wrapper_libudev)(struct udev_monitor*);
extern int (*udev_monitor_set_receive_buffer_size_dylibloader_wrapper_libudev)(struct udev_monitor*, int);
extern int (*udev_monitor_get_fd_dylibloader_wrapper_libudev)(struct udev_monitor*);
extern struct udev_device* (*udev_monitor_receive_device_dylibloader_wrapper_libudev)(struct udev_monitor*);
extern int (*udev_monitor_filter_add_match_subsystem_devtype_dylibloader_wrapper_libudev)(struct udev_monitor*,const char*,const char*);
extern int (*udev_monitor_filter_add_match_tag_dylibloader_wrapper_libudev)(struct udev_monitor*,const char*);
extern int (*udev_monitor_filter_update_dylibloader_wrapper_libudev)(struct udev_monitor*);
extern int (*udev_monitor_filter_remove_dylibloader_wrapper_libudev)(struct udev_monitor*);
extern struct udev_enumerate* (*udev_enumerate_ref_dylibloader_wrapper_libudev)(struct udev_enumerate*);
extern struct udev_enumerate* (*udev_enumerate_unref_dylibloader_wrapper_libudev)(struct udev_enumerate*);
extern struct udev* (*udev_enumerate_get_udev_dylibloader_wrapper_libudev)(struct udev_enumerate*);
extern struct udev_enumerate* (*udev_enumerate_new_dylibloader_wrapper_libudev)(struct udev*);
extern int (*udev_enumerate_add_match_subsystem_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_add_nomatch_subsystem_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_add_match_sysattr_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*,const char*);
extern int (*udev_enumerate_add_nomatch_sysattr_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*,const char*);
extern int (*udev_enumerate_add_match_property_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*,const char*);
extern int (*udev_enumerate_add_match_sysname_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_add_match_tag_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_add_match_parent_dylibloader_wrapper_libudev)(struct udev_enumerate*,struct udev_device*);
extern int (*udev_enumerate_add_match_is_initialized_dylibloader_wrapper_libudev)(struct udev_enumerate*);
extern int (*udev_enumerate_add_syspath_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*);
extern int (*udev_enumerate_scan_devices_dylibloader_wrapper_libudev)(struct udev_enumerate*);
extern int (*udev_enumerate_scan_subsystems_dylibloader_wrapper_libudev)(struct udev_enumerate*);
extern struct udev_list_entry* (*udev_enumerate_get_list_entry_dylibloader_wrapper_libudev)(struct udev_enumerate*);
extern struct udev_queue* (*udev_queue_ref_dylibloader_wrapper_libudev)(struct udev_queue*);
extern struct udev_queue* (*udev_queue_unref_dylibloader_wrapper_libudev)(struct udev_queue*);
extern struct udev* (*udev_queue_get_udev_dylibloader_wrapper_libudev)(struct udev_queue*);
extern struct udev_queue* (*udev_queue_new_dylibloader_wrapper_libudev)(struct udev*);
extern unsigned long long int (*udev_queue_get_kernel_seqnum_dylibloader_wrapper_libudev)(struct udev_queue*);
extern unsigned long long int (*udev_queue_get_udev_seqnum_dylibloader_wrapper_libudev)(struct udev_queue*);
extern int (*udev_queue_get_udev_is_active_dylibloader_wrapper_libudev)(struct udev_queue*);
extern int (*udev_queue_get_queue_is_empty_dylibloader_wrapper_libudev)(struct udev_queue*);
extern int (*udev_queue_get_seqnum_is_finished_dylibloader_wrapper_libudev)(struct udev_queue*, unsigned long long int);
extern int (*udev_queue_get_seqnum_sequence_is_finished_dylibloader_wrapper_libudev)(struct udev_queue*, unsigned long long int, unsigned long long int);
extern int (*udev_queue_get_fd_dylibloader_wrapper_libudev)(struct udev_queue*);
extern int (*udev_queue_flush_dylibloader_wrapper_libudev)(struct udev_queue*);
extern struct udev_list_entry* (*udev_queue_get_queued_list_entry_dylibloader_wrapper_libudev)(struct udev_queue*);
extern struct udev_hwdb* (*udev_hwdb_new_dylibloader_wrapper_libudev)(struct udev*);
extern struct udev_hwdb* (*udev_hwdb_ref_dylibloader_wrapper_libudev)(struct udev_hwdb*);
extern struct udev_hwdb* (*udev_hwdb_unref_dylibloader_wrapper_libudev)(struct udev_hwdb*);
extern struct udev_list_entry* (*udev_hwdb_get_properties_list_entry_dylibloader_wrapper_libudev)(struct udev_hwdb*,const char*, unsigned);
extern int (*udev_util_encode_string_dylibloader_wrapper_libudev)(const char*, char*, size_t);
int initialize_libudev();
#ifdef __cplusplus
}
#endif
#endif