diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-10-03 12:26:38 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-10-03 12:26:38 +0200 |
| commit | e2492a142613caeda4e85b9d9762e0697aacc9de (patch) | |
| tree | dbe8d2c41a57afcf9a5a847ee9a537f52ee16229 /src | |
| parent | f750391c2eec3e22a38714057333c1ba9830babc (diff) | |
| download | box64-e2492a142613caeda4e85b9d9762e0697aacc9de.tar.gz box64-e2492a142613caeda4e85b9d9762e0697aacc9de.zip | |
[BOX32][WRAPPER] Added full wrapped support for 32bits libudev0 and libudev1
Diffstat (limited to 'src')
| -rwxr-xr-x | src/include/myalign32.h | 2 | ||||
| -rw-r--r-- | src/library_list_32.h | 4 | ||||
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 7 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedudev0defs32.h | 8 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedudev0types32.h | 17 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedudev0undefs32.h | 8 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedudev1defs32.h | 8 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedudev1types32.h | 19 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedudev1undefs32.h | 8 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.c | 6 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.h | 3 | ||||
| -rw-r--r-- | src/wrapped32/wrappedudev0.c | 41 | ||||
| -rw-r--r-- | src/wrapped32/wrappedudev0_private.h | 9 | ||||
| -rw-r--r-- | src/wrapped32/wrappedudev1.c | 69 | ||||
| -rw-r--r-- | src/wrapped32/wrappedudev1_private.h | 96 |
15 files changed, 304 insertions, 1 deletions
diff --git a/src/include/myalign32.h b/src/include/myalign32.h index 93844ad7..bf382c65 100755 --- a/src/include/myalign32.h +++ b/src/include/myalign32.h @@ -56,7 +56,7 @@ typedef struct va_list { #define CONVERT_VALIST_32(A) \ va_list sysv_varargs; \ sysv_varargs.__gr_offs=(8*8); \ - sysv_varargs.__vr_offs=(8*16)); \ + sysv_varargs.__vr_offs=(8*16); \ sysv_varargs.__stack=(A); diff --git a/src/library_list_32.h b/src/library_list_32.h index f7aa542f..300fac33 100644 --- a/src/library_list_32.h +++ b/src/library_list_32.h @@ -44,6 +44,10 @@ GO("openal.so", openal) GO("libexpat.so.1", expat) GO("libexpat.so", expat) +GO("libudev.so.0", udev0) +GO("libudev.so.1", udev1) +GO("libudev.so", udev1) + GO("crashhandler.so", crashhandler) GO("libtcmalloc_minimal.so.0", tcmallocminimal) GO("libtcmalloc_minimal.so.4", tcmallocminimal) diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt index 5ded8f65..e2c60905 100644 --- a/src/wrapped32/generated/functions_list.txt +++ b/src/wrapped32/generated/functions_list.txt @@ -142,6 +142,7 @@ #() iFua -> iFua #() iFpi -> iFpi #() iFpu -> iFpu +#() iFpU -> iFpU #() iFpl -> iFpl #() iFpL -> iFpL #() iFpp -> iFpp @@ -347,6 +348,7 @@ #() iFpuC -> iFpuC #() iFpuu -> iFpuu #() iFpuU -> iFpuU +#() iFpUU -> iFpUU #() iFpfu -> iFpfu #() iFpLi -> iFpLi #() iFpLp -> iFpLp @@ -415,6 +417,7 @@ #() pFupi -> pFupi #() pFupp -> pFupp #() pFLpi -> pFLpi +#() pFpcU -> pFpcU #() pFpii -> pFpii #() pFpiu -> pFpiu #() pFpiL -> pFpiL @@ -1804,3 +1807,7 @@ wrappedtcmallocminimal: - mmap - pFpLiiiI: - mmap64 +wrappedudev0: +wrappedudev1: +- vFpp: + - udev_set_log_fn diff --git a/src/wrapped32/generated/wrappedudev0defs32.h b/src/wrapped32/generated/wrappedudev0defs32.h new file mode 100644 index 00000000..da982e11 --- /dev/null +++ b/src/wrapped32/generated/wrappedudev0defs32.h @@ -0,0 +1,8 @@ +/********************************************************************* + * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) * + *********************************************************************/ +#ifndef __wrappedudev0DEFS32_H_ +#define __wrappedudev0DEFS32_H_ + + +#endif // __wrappedudev0DEFS32_H_ diff --git a/src/wrapped32/generated/wrappedudev0types32.h b/src/wrapped32/generated/wrappedudev0types32.h new file mode 100644 index 00000000..e5c033bb --- /dev/null +++ b/src/wrapped32/generated/wrappedudev0types32.h @@ -0,0 +1,17 @@ +/********************************************************************* + * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) * + *********************************************************************/ +#ifndef __wrappedudev0TYPES32_H_ +#define __wrappedudev0TYPES32_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedudev0TYPES32_H_ diff --git a/src/wrapped32/generated/wrappedudev0undefs32.h b/src/wrapped32/generated/wrappedudev0undefs32.h new file mode 100644 index 00000000..b14de87d --- /dev/null +++ b/src/wrapped32/generated/wrappedudev0undefs32.h @@ -0,0 +1,8 @@ +/********************************************************************* + * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) * + *********************************************************************/ +#ifndef __wrappedudev0UNDEFS32_H_ +#define __wrappedudev0UNDEFS32_H_ + + +#endif // __wrappedudev0UNDEFS32_H_ diff --git a/src/wrapped32/generated/wrappedudev1defs32.h b/src/wrapped32/generated/wrappedudev1defs32.h new file mode 100644 index 00000000..065f83e3 --- /dev/null +++ b/src/wrapped32/generated/wrappedudev1defs32.h @@ -0,0 +1,8 @@ +/********************************************************************* + * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) * + *********************************************************************/ +#ifndef __wrappedudev1DEFS32_H_ +#define __wrappedudev1DEFS32_H_ + + +#endif // __wrappedudev1DEFS32_H_ diff --git a/src/wrapped32/generated/wrappedudev1types32.h b/src/wrapped32/generated/wrappedudev1types32.h new file mode 100644 index 00000000..774e668a --- /dev/null +++ b/src/wrapped32/generated/wrappedudev1types32.h @@ -0,0 +1,19 @@ +/********************************************************************* + * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) * + *********************************************************************/ +#ifndef __wrappedudev1TYPES32_H_ +#define __wrappedudev1TYPES32_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + +typedef void (*vFpp_t)(void*, void*); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(udev_set_log_fn, vFpp_t) + +#endif // __wrappedudev1TYPES32_H_ diff --git a/src/wrapped32/generated/wrappedudev1undefs32.h b/src/wrapped32/generated/wrappedudev1undefs32.h new file mode 100644 index 00000000..7e3d7433 --- /dev/null +++ b/src/wrapped32/generated/wrappedudev1undefs32.h @@ -0,0 +1,8 @@ +/********************************************************************* + * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) * + *********************************************************************/ +#ifndef __wrappedudev1UNDEFS32_H_ +#define __wrappedudev1UNDEFS32_H_ + + +#endif // __wrappedudev1UNDEFS32_H_ diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c index 462c6319..8d84f2cd 100644 --- a/src/wrapped32/generated/wrapper32.c +++ b/src/wrapped32/generated/wrapper32.c @@ -232,6 +232,7 @@ typedef int32_t (*iFup_t)(uint32_t, void*); typedef int32_t (*iFua_t)(uint32_t, void*); typedef int32_t (*iFpi_t)(void*, int32_t); typedef int32_t (*iFpu_t)(void*, uint32_t); +typedef int32_t (*iFpU_t)(void*, uint64_t); typedef int32_t (*iFpl_t)(void*, intptr_t); typedef int32_t (*iFpL_t)(void*, uintptr_t); typedef int32_t (*iFpp_t)(void*, void*); @@ -437,6 +438,7 @@ typedef int32_t (*iFpip_t)(void*, int32_t, void*); typedef int32_t (*iFpuC_t)(void*, uint32_t, uint8_t); typedef int32_t (*iFpuu_t)(void*, uint32_t, uint32_t); typedef int32_t (*iFpuU_t)(void*, uint32_t, uint64_t); +typedef int32_t (*iFpUU_t)(void*, uint64_t, uint64_t); typedef int32_t (*iFpfu_t)(void*, float, uint32_t); typedef int32_t (*iFpLi_t)(void*, uintptr_t, int32_t); typedef int32_t (*iFpLp_t)(void*, uintptr_t, void*); @@ -505,6 +507,7 @@ typedef void* (*pFulu_t)(uint32_t, intptr_t, uint32_t); typedef void* (*pFupi_t)(uint32_t, void*, int32_t); typedef void* (*pFupp_t)(uint32_t, void*, void*); typedef void* (*pFLpi_t)(uintptr_t, void*, int32_t); +typedef void* (*pFpcU_t)(void*, int8_t, uint64_t); typedef void* (*pFpii_t)(void*, int32_t, int32_t); typedef void* (*pFpiu_t)(void*, int32_t, uint32_t); typedef void* (*pFpiL_t)(void*, int32_t, uintptr_t); @@ -1338,6 +1341,7 @@ void iFup_32(x64emu_t *emu, uintptr_t fcn) { iFup_t fn = (iFup_t)fcn; R_EAX = fn void iFua_32(x64emu_t *emu, uintptr_t fcn) { iFua_t fn = (iFua_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_locale(from_ptri(ptr_t, R_ESP + 8))); } void iFpi_32(x64emu_t *emu, uintptr_t fcn) { iFpi_t fn = (iFpi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8)); } void iFpu_32(x64emu_t *emu, uintptr_t fcn) { iFpu_t fn = (iFpu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8)); } +void iFpU_32(x64emu_t *emu, uintptr_t fcn) { iFpU_t fn = (iFpU_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint64_t, R_ESP + 8)); } void iFpl_32(x64emu_t *emu, uintptr_t fcn) { iFpl_t fn = (iFpl_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), to_long(from_ptri(long_t, R_ESP + 8))); } void iFpL_32(x64emu_t *emu, uintptr_t fcn) { iFpL_t fn = (iFpL_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8))); } void iFpp_32(x64emu_t *emu, uintptr_t fcn) { iFpp_t fn = (iFpp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8)); } @@ -1543,6 +1547,7 @@ void iFpip_32(x64emu_t *emu, uintptr_t fcn) { iFpip_t fn = (iFpip_t)fcn; R_EAX = void iFpuC_32(x64emu_t *emu, uintptr_t fcn) { iFpuC_t fn = (iFpuC_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12)); } void iFpuu_32(x64emu_t *emu, uintptr_t fcn) { iFpuu_t fn = (iFpuu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); } void iFpuU_32(x64emu_t *emu, uintptr_t fcn) { iFpuU_t fn = (iFpuU_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint64_t, R_ESP + 12)); } +void iFpUU_32(x64emu_t *emu, uintptr_t fcn) { iFpUU_t fn = (iFpUU_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint64_t, R_ESP + 8), from_ptri(uint64_t, R_ESP + 16)); } void iFpfu_32(x64emu_t *emu, uintptr_t fcn) { iFpfu_t fn = (iFpfu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); } void iFpLi_32(x64emu_t *emu, uintptr_t fcn) { iFpLi_t fn = (iFpLi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12)); } void iFpLp_32(x64emu_t *emu, uintptr_t fcn) { iFpLp_t fn = (iFpLp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12)); } @@ -1611,6 +1616,7 @@ void pFulu_32(x64emu_t *emu, uintptr_t fcn) { pFulu_t fn = (pFulu_t)fcn; R_EAX = void pFupi_32(x64emu_t *emu, uintptr_t fcn) { pFupi_t fn = (pFupi_t)fcn; R_EAX = to_ptrv(fn(from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); } void pFupp_32(x64emu_t *emu, uintptr_t fcn) { pFupp_t fn = (pFupp_t)fcn; R_EAX = to_ptrv(fn(from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12))); } void pFLpi_32(x64emu_t *emu, uintptr_t fcn) { pFLpi_t fn = (pFLpi_t)fcn; R_EAX = to_ptrv(fn(to_ulong(from_ptri(ulong_t, R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); } +void pFpcU_32(x64emu_t *emu, uintptr_t fcn) { pFpcU_t fn = (pFpcU_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int8_t, R_ESP + 8), from_ptri(uint64_t, R_ESP + 12))); } void pFpii_32(x64emu_t *emu, uintptr_t fcn) { pFpii_t fn = (pFpii_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); } void pFpiu_32(x64emu_t *emu, uintptr_t fcn) { pFpiu_t fn = (pFpiu_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12))); } void pFpiL_32(x64emu_t *emu, uintptr_t fcn) { pFpiL_t fn = (pFpiL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)))); } diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h index a74460da..07e5e0f0 100644 --- a/src/wrapped32/generated/wrapper32.h +++ b/src/wrapped32/generated/wrapper32.h @@ -183,6 +183,7 @@ void iFup_32(x64emu_t *emu, uintptr_t fnc); void iFua_32(x64emu_t *emu, uintptr_t fnc); void iFpi_32(x64emu_t *emu, uintptr_t fnc); void iFpu_32(x64emu_t *emu, uintptr_t fnc); +void iFpU_32(x64emu_t *emu, uintptr_t fnc); void iFpl_32(x64emu_t *emu, uintptr_t fnc); void iFpL_32(x64emu_t *emu, uintptr_t fnc); void iFpp_32(x64emu_t *emu, uintptr_t fnc); @@ -388,6 +389,7 @@ void iFpip_32(x64emu_t *emu, uintptr_t fnc); void iFpuC_32(x64emu_t *emu, uintptr_t fnc); void iFpuu_32(x64emu_t *emu, uintptr_t fnc); void iFpuU_32(x64emu_t *emu, uintptr_t fnc); +void iFpUU_32(x64emu_t *emu, uintptr_t fnc); void iFpfu_32(x64emu_t *emu, uintptr_t fnc); void iFpLi_32(x64emu_t *emu, uintptr_t fnc); void iFpLp_32(x64emu_t *emu, uintptr_t fnc); @@ -456,6 +458,7 @@ void pFulu_32(x64emu_t *emu, uintptr_t fnc); void pFupi_32(x64emu_t *emu, uintptr_t fnc); void pFupp_32(x64emu_t *emu, uintptr_t fnc); void pFLpi_32(x64emu_t *emu, uintptr_t fnc); +void pFpcU_32(x64emu_t *emu, uintptr_t fnc); void pFpii_32(x64emu_t *emu, uintptr_t fnc); void pFpiu_32(x64emu_t *emu, uintptr_t fnc); void pFpiL_32(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped32/wrappedudev0.c b/src/wrapped32/wrappedudev0.c new file mode 100644 index 00000000..b9d4f6d7 --- /dev/null +++ b/src/wrapped32/wrappedudev0.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> +#include <stdarg.h> + +#include "wrappedlibs.h" + +#include "wrapper32.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "debug.h" +#include "myalign32.h" +#include "callback.h" +#include "emu/x64emu_private.h" + +static const char* udev0Name = "libudev.so.0"; +#define LIBNAME udev0 + +#define ADDED_FUNCTIONS() \ + +//#include "generated/wrappedudev0types.h" + +//#include "wrappercallback.h" + +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) \ +GO(4) + +#undef SUPER + +#define ALTMY my0_ + +#define NEEDED_LIBS "libudev.so.1" + +#include "wrappedlib_init32.h" diff --git a/src/wrapped32/wrappedudev0_private.h b/src/wrapped32/wrappedudev0_private.h new file mode 100644 index 00000000..fa89c34d --- /dev/null +++ b/src/wrapped32/wrappedudev0_private.h @@ -0,0 +1,9 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +GO(udev_get_dev_path, pFp) +GO(udev_get_run_path, pFp) +GO(udev_get_sys_path, pFp) +GO(udev_monitor_new_from_socket, pFpp) +GO(udev_queue_get_failed_list_entry, pFp) diff --git a/src/wrapped32/wrappedudev1.c b/src/wrapped32/wrappedudev1.c new file mode 100644 index 00000000..00cc23ec --- /dev/null +++ b/src/wrapped32/wrappedudev1.c @@ -0,0 +1,69 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> +#include <stdarg.h> + +#include "wrappedlibs.h" + +#include "wrapper32.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "debug.h" +#include "myalign32.h" +#include "callback.h" +#include "emu/x64emu_private.h" + +static const char* udev1Name = "libudev.so.1"; +#define LIBNAME udev1 +// fallback to 0 version... Not sure if really correct (probably not) +#define ALTNAME "libudev.so.0" + +#define ADDED_FUNCTIONS() \ + +#include "generated/wrappedudev1types32.h" + +#include "wrappercallback32.h" + +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) \ +GO(4) + +// log_fn ... +#define GO(A) \ +static uintptr_t my_log_fn_fct_##A = 0; \ +static void my_log_fn_##A(void* udev, int p, void *f, int l, void* fn, void* fmt, va_list args) \ +{ \ + static char buff[1024]; \ + vsnprintf(buff, 1023, fmt, args); \ + buff[1023]=0; \ + RunFunction(my_log_fn_fct_##A, 7, udev, p, f, l, fn, "%s", buff); \ +} +SUPER() +#undef GO +static void* find_log_fn_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_log_fn_fct_##A == (uintptr_t)fct) return my_log_fn_##A; + SUPER() + #undef GO + #define GO(A) if(my_log_fn_fct_##A == 0) {my_log_fn_fct_##A = (uintptr_t)fct; return my_log_fn_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for udev1 log_fn callback\n"); + return NULL; +} +#undef SUPER + +EXPORT void my32_udev_set_log_fn(x64emu_t* emu, void* udev, void* f) +{ + my->udev_set_log_fn(udev, find_log_fn_Fct(f)); +} + +#include "wrappedlib_init32.h" diff --git a/src/wrapped32/wrappedudev1_private.h b/src/wrapped32/wrappedudev1_private.h new file mode 100644 index 00000000..0eb88ce3 --- /dev/null +++ b/src/wrapped32/wrappedudev1_private.h @@ -0,0 +1,96 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh... +#endif + +GO(udev_device_ref, pFp) +GO(udev_device_unref, pFp) +GO(udev_device_get_udev, pFp) +GO(udev_device_new_from_syspath, pFpp) +GO(udev_device_new_from_devnum, pFpcU) +GO(udev_device_new_from_subsystem_sysname, pFppp) +GO(udev_device_new_from_environment, pFp) +GO(udev_device_get_parent, pFp) +GO(udev_device_get_parent_with_subsystem_devtype, pFppp) +GO(udev_device_get_devpath, pFp) +GO(udev_device_get_subsystem, pFp) +GO(udev_device_get_devtype, pFp) +GO(udev_device_get_syspath, pFp) +GO(udev_device_get_sysname, pFp) +GO(udev_device_get_sysnum, pFp) +GO(udev_device_get_devnode, pFp) +GO(udev_device_get_is_initialized, iFp) +GO(udev_device_get_devlinks_list_entry, pFp) +GO(udev_device_get_properties_list_entry, pFp) +GO(udev_device_get_tags_list_entry, pFp) +GO(udev_device_get_property_value, pFpp) +GO(udev_device_get_driver, pFp) +GO(udev_device_get_devnum, UFp) +GO(udev_device_get_action, pFp) +GO(udev_device_get_sysattr_value, pFpp) +GO(udev_device_get_sysattr_list_entry, pFp) +GO(udev_device_get_seqnum, UFp) +GO(udev_device_get_usec_since_initialized, UFp) +GO(udev_device_has_tag, iFpp) +GO(udev_enumerate_ref, pFp) +GO(udev_enumerate_unref, pFp) +GO(udev_enumerate_get_udev, pFp) +GO(udev_enumerate_new, pFp) +GO(udev_enumerate_add_match_subsystem, iFpp) +GO(udev_enumerate_add_nomatch_subsystem, iFpp) +GO(udev_enumerate_add_match_sysattr, iFppp) +GO(udev_enumerate_add_nomatch_sysattr, iFppp) +GO(udev_enumerate_add_match_property, iFppp) +GO(udev_enumerate_add_match_tag, iFpp) +GO(udev_enumerate_add_match_parent, iFpp) +GO(udev_enumerate_add_match_is_initialized, iFp) +GO(udev_enumerate_add_match_sysname, iFpp) +GO(udev_enumerate_add_syspath, iFpp) +GO(udev_enumerate_scan_devices, iFp) +GO(udev_enumerate_scan_subsystems, iFp) +GO(udev_enumerate_get_list_entry, pFp) +GO(udev_list_entry_get_next, pFp) +GO(udev_list_entry_get_by_name, pFpp) +GO(udev_list_entry_get_name, pFp) +GO(udev_list_entry_get_value, pFp) +GO(udev_monitor_ref, pFp) +GO(udev_monitor_unref, pFp) +GO(udev_monitor_get_udev, pFp) +GO(udev_monitor_new_from_netlink, pFpp) +GO(udev_monitor_new_from_socket, pFpp) +GO(udev_monitor_enable_receiving, iFp) +GO(udev_monitor_set_receive_buffer_size, iFpi) +GO(udev_monitor_get_fd, iFp) +GO(udev_monitor_receive_device, pFp) +GO(udev_monitor_filter_add_match_subsystem_devtype, iFppp) +GO(udev_monitor_filter_add_match_tag, iFpp) +GO(udev_monitor_filter_update, iFp) +GO(udev_monitor_filter_remove, iFp) +GO(udev_new, pFv) +GO(udev_ref, pFp) +GO(udev_unref, pFp) +GO(udev_queue_ref, pFp) +GO(udev_queue_unref, pFp) +GO(udev_queue_get_udev, pFp) +GO(udev_queue_new, pFp) +GO(udev_queue_get_kernel_seqnum, UFp) +GO(udev_queue_get_udev_seqnum, UFp) +GO(udev_queue_get_udev_is_active, iFp) +GO(udev_queue_get_queue_is_empty, iFp) +GO(udev_queue_get_seqnum_is_finished, iFpU) +GO(udev_queue_get_seqnum_sequence_is_finished, iFpUU) +GO(udev_queue_get_queued_list_entry, pFp) +GO(udev_queue_get_failed_list_entry, pFp) +GOM(udev_set_log_fn, vFEpp) +GO(udev_get_log_priority, iFp) +GO(udev_set_log_priority, vFpi) +GO(udev_get_userdata, pFp) +GO(udev_set_userdata, vFpp) +GO(udev_device_new_from_device_id, pFpp) +GO(udev_device_set_sysattr_value, iFppp) +GO(udev_queue_get_fd, iFp) +GO(udev_queue_flush, iFp) +GO(udev_hwdb_ref, pFp) +GO(udev_hwdb_unref, pFp) +GO(udev_hwdb_new, pFp) +GO(udev_hwdb_get_properties_list_entry, pFppu) +GO(udev_util_encode_string, iFppL) |