about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/library_list_32.h2
-rw-r--r--src/wrapped32/generated/functions_list.txt11
-rw-r--r--src/wrapped32/generated/wrappedlibasounddefs32.h8
-rw-r--r--src/wrapped32/generated/wrappedlibasoundtypes32.h17
-rw-r--r--src/wrapped32/generated/wrappedlibasoundundefs32.h8
-rw-r--r--src/wrapped32/generated/wrapper32.c20
-rw-r--r--src/wrapped32/generated/wrapper32.h10
-rw-r--r--src/wrapped32/wrappedlibasound.c299
-rw-r--r--src/wrapped32/wrappedlibasound_private.h1279
9 files changed, 1654 insertions, 0 deletions
diff --git a/src/library_list_32.h b/src/library_list_32.h
index f982b84c..da9ac12e 100644
--- a/src/library_list_32.h
+++ b/src/library_list_32.h
@@ -12,5 +12,7 @@ GO("ld-linux.so.2", ldlinux)
 GO("libGL.so", libgl)
 GO("libGL.so.1", libgl)
 GO("libSDL-1.2.so.0", sdl1)
+GO("libasound.so.2", libasound)
+GO("libasound.so", libasound)
 
 GO("crashhandler.so", crashhandler)
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index a006f68b..c1ea54fd 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -153,6 +153,7 @@
 #() dFdp -> dFdp
 #() dFLL -> dFLL
 #() lFui -> lFui
+#() lFpl -> lFpl
 #() LFpL -> LFpL
 #() LFpp -> LFpp
 #() pFEv -> pFEv
@@ -171,6 +172,8 @@
 #() tFip -> tFip
 #() tFpL -> tFpL
 #() iFEbp_ -> iFEB
+#() iFiBp_ -> iFiB
+#() iFpBL_ -> iFpB
 #() iFHBp_ -> iFHB
 #() fFpBp_ -> fFpB
 #() dFpBp_ -> dFpB
@@ -304,6 +307,7 @@
 #() dFddp -> dFddp
 #() lFipL -> lFipL
 #() lFlpi -> lFlpi
+#() lFppL -> lFppL
 #() LFpip -> LFpip
 #() LFppL -> LFppL
 #() pFEip -> pFEip
@@ -325,7 +329,9 @@
 #() SFEpp -> SFEpp
 #() SFppS -> SFppS
 #() tFipu -> tFipu
+#() iFppbL_ -> iFppB
 #() iFpBp_i -> iFpBi
+#() iFpbL_p -> iFpBp
 #() iFBp_LL -> iFBLL
 #() IFpBp_i -> IFpBi
 #() UFpBp_i -> UFpBi
@@ -446,6 +452,8 @@
 #() iFppii -> iFppii
 #() iFppiU -> iFppiU
 #() iFppip -> iFppip
+#() iFppui -> iFppui
+#() iFppLi -> iFppLi
 #() iFpppi -> iFpppi
 #() iFpppp -> iFpppp
 #() iFhpiL -> iFhpiL
@@ -470,6 +478,7 @@
 #() pFppLL -> pFppLL
 #() pFpppi -> pFpppi
 #() pFpppp -> pFpppp
+#() iFBp_pui -> iFBpui
 #() IFpBp_ii -> IFpBii
 #() UFpBp_ii -> UFpBii
 #() lFiibp_L -> lFiiBL
@@ -660,6 +669,7 @@
 #() vFuppppu -> vFuppppu
 #() vFffffff -> vFffffff
 #() vFdddddd -> vFdddddd
+#() vFpipipV -> vFpipipV
 #() vFppiiii -> vFppiiii
 #() vFppupii -> vFppupii
 #() iFpiiipp -> iFpiiipp
@@ -858,6 +868,7 @@ wrappedldlinux:
   - ___tls_get_addr
 - pFp:
   - __tls_get_addr
+wrappedlibasound:
 wrappedlibc:
 - vFv:
 - vFp:
diff --git a/src/wrapped32/generated/wrappedlibasounddefs32.h b/src/wrapped32/generated/wrappedlibasounddefs32.h
new file mode 100644
index 00000000..4428c624
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibasounddefs32.h
@@ -0,0 +1,8 @@
+/******************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.1.1) *
+ ******************************************************************/
+#ifndef __wrappedlibasoundDEFS32_H_
+#define __wrappedlibasoundDEFS32_H_
+
+
+#endif // __wrappedlibasoundDEFS32_H_
diff --git a/src/wrapped32/generated/wrappedlibasoundtypes32.h b/src/wrapped32/generated/wrappedlibasoundtypes32.h
new file mode 100644
index 00000000..4dbbd14c
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibasoundtypes32.h
@@ -0,0 +1,17 @@
+/******************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.1.1) *
+ ******************************************************************/
+#ifndef __wrappedlibasoundTYPES32_H_
+#define __wrappedlibasoundTYPES32_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 // __wrappedlibasoundTYPES32_H_
diff --git a/src/wrapped32/generated/wrappedlibasoundundefs32.h b/src/wrapped32/generated/wrappedlibasoundundefs32.h
new file mode 100644
index 00000000..24ad6bac
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibasoundundefs32.h
@@ -0,0 +1,8 @@
+/******************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.1.1) *
+ ******************************************************************/
+#ifndef __wrappedlibasoundUNDEFS32_H_
+#define __wrappedlibasoundUNDEFS32_H_
+
+
+#endif // __wrappedlibasoundUNDEFS32_H_
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index f95486ba..a260e3d4 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -240,6 +240,7 @@ typedef double (*dFdD_t)(double, long double);
 typedef double (*dFdp_t)(double, void*);
 typedef double (*dFLL_t)(uintptr_t, uintptr_t);
 typedef intptr_t (*lFui_t)(uint32_t, int32_t);
+typedef intptr_t (*lFpl_t)(void*, intptr_t);
 typedef uintptr_t (*LFpL_t)(void*, uintptr_t);
 typedef uintptr_t (*LFpp_t)(void*, void*);
 typedef void* (*pFEv_t)(x64emu_t*);
@@ -258,6 +259,8 @@ typedef void* (*SFpp_t)(void*, void*);
 typedef char* (*tFip_t)(int32_t, void*);
 typedef char* (*tFpL_t)(void*, uintptr_t);
 typedef int32_t (*iFEbp__t)(x64emu_t*, struct_p_t*);
+typedef int32_t (*iFiBp__t)(int32_t, struct_p_t*);
+typedef int32_t (*iFpBL__t)(void*, struct_L_t*);
 typedef int32_t (*iFHBp__t)(uintptr_t, struct_p_t*);
 typedef float (*fFpBp__t)(void*, struct_p_t*);
 typedef double (*dFpBp__t)(void*, struct_p_t*);
@@ -391,6 +394,7 @@ typedef double (*dFddd_t)(double, double, double);
 typedef double (*dFddp_t)(double, double, void*);
 typedef intptr_t (*lFipL_t)(int32_t, void*, uintptr_t);
 typedef intptr_t (*lFlpi_t)(intptr_t, void*, int32_t);
+typedef intptr_t (*lFppL_t)(void*, void*, uintptr_t);
 typedef uintptr_t (*LFpip_t)(void*, int32_t, void*);
 typedef uintptr_t (*LFppL_t)(void*, void*, uintptr_t);
 typedef void* (*pFEip_t)(x64emu_t*, int32_t, void*);
@@ -412,7 +416,9 @@ typedef void* (*aFipa_t)(int32_t, void*, void*);
 typedef void* (*SFEpp_t)(x64emu_t*, void*, void*);
 typedef void* (*SFppS_t)(void*, void*, void*);
 typedef char* (*tFipu_t)(int32_t, void*, uint32_t);
+typedef int32_t (*iFppbL__t)(void*, void*, struct_L_t*);
 typedef int32_t (*iFpBp_i_t)(void*, struct_p_t*, int32_t);
+typedef int32_t (*iFpbL_p_t)(void*, struct_L_t*, void*);
 typedef int32_t (*iFBp_LL_t)(struct_p_t*, uintptr_t, uintptr_t);
 typedef int64_t (*IFpBp_i_t)(void*, struct_p_t*, int32_t);
 typedef uint64_t (*UFpBp_i_t)(void*, struct_p_t*, int32_t);
@@ -533,6 +539,8 @@ typedef int32_t (*iFpupp_t)(void*, uint32_t, void*, void*);
 typedef int32_t (*iFppii_t)(void*, void*, int32_t, int32_t);
 typedef int32_t (*iFppiU_t)(void*, void*, int32_t, uint64_t);
 typedef int32_t (*iFppip_t)(void*, void*, int32_t, void*);
+typedef int32_t (*iFppui_t)(void*, void*, uint32_t, int32_t);
+typedef int32_t (*iFppLi_t)(void*, void*, uintptr_t, int32_t);
 typedef int32_t (*iFpppi_t)(void*, void*, void*, int32_t);
 typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
 typedef int32_t (*iFhpiL_t)(uintptr_t, void*, int32_t, uintptr_t);
@@ -557,6 +565,7 @@ typedef void* (*pFpipp_t)(void*, int32_t, void*, void*);
 typedef void* (*pFppLL_t)(void*, void*, uintptr_t, uintptr_t);
 typedef void* (*pFpppi_t)(void*, void*, void*, int32_t);
 typedef void* (*pFpppp_t)(void*, void*, void*, void*);
+typedef int32_t (*iFBp_pui_t)(struct_p_t*, void*, uint32_t, int32_t);
 typedef int64_t (*IFpBp_ii_t)(void*, struct_p_t*, int32_t, int32_t);
 typedef uint64_t (*UFpBp_ii_t)(void*, struct_p_t*, int32_t, int32_t);
 typedef intptr_t (*lFiibp_L_t)(int32_t, int32_t, struct_p_t*, uintptr_t);
@@ -747,6 +756,7 @@ typedef void (*vFupupip_t)(uint32_t, void*, uint32_t, void*, int32_t, void*);
 typedef void (*vFuppppu_t)(uint32_t, void*, void*, void*, void*, uint32_t);
 typedef void (*vFffffff_t)(float, float, float, float, float, float);
 typedef void (*vFdddddd_t)(double, double, double, double, double, double);
+typedef void (*vFpipipV_t)(void*, int32_t, void*, int32_t, void*, void*);
 typedef void (*vFppiiii_t)(void*, void*, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFppupii_t)(void*, void*, uint32_t, void*, int32_t, int32_t);
 typedef int32_t (*iFpiiipp_t)(void*, int32_t, int32_t, int32_t, void*, void*);
@@ -1095,6 +1105,7 @@ void dFdD_32(x64emu_t *emu, uintptr_t fcn) { dFdD_t fn = (dFdD_t)fcn; double db
 void dFdp_32(x64emu_t *emu, uintptr_t fcn) { dFdp_t fn = (dFdp_t)fcn; double db = fn(from_ptri(double, R_ESP + 4), from_ptriv(R_ESP + 12)); fpu_do_push(emu); ST0val = db; }
 void dFLL_32(x64emu_t *emu, uintptr_t fcn) { dFLL_t fn = (dFLL_t)fcn; double db = fn(to_ulong(from_ptri(ulong_t, R_ESP + 4)), to_ulong(from_ptri(ulong_t, R_ESP + 8))); fpu_do_push(emu); ST0val = db; }
 void lFui_32(x64emu_t *emu, uintptr_t fcn) { lFui_t fn = (lFui_t)fcn; R_EAX = to_long(fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8))); }
+void lFpl_32(x64emu_t *emu, uintptr_t fcn) { lFpl_t fn = (lFpl_t)fcn; R_EAX = to_long(fn(from_ptriv(R_ESP + 4), to_long(from_ptri(long_t, R_ESP + 8)))); }
 void LFpL_32(x64emu_t *emu, uintptr_t fcn) { LFpL_t fn = (LFpL_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)))); }
 void LFpp_32(x64emu_t *emu, uintptr_t fcn) { LFpp_t fn = (LFpp_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8))); }
 void pFEv_32(x64emu_t *emu, uintptr_t fcn) { pFEv_t fn = (pFEv_t)fcn; R_EAX = to_ptrv(fn(emu)); }
@@ -1113,6 +1124,8 @@ void SFpp_32(x64emu_t *emu, uintptr_t fcn) { SFpp_t fn = (SFpp_t)fcn; R_EAX = to
 void tFip_32(x64emu_t *emu, uintptr_t fcn) { tFip_t fn = (tFip_t)fcn; R_EAX = to_cstring(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8))); }
 void tFpL_32(x64emu_t *emu, uintptr_t fcn) { tFpL_t fn = (tFpL_t)fcn; R_EAX = to_cstring(fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)))); }
 void iFEbp__32(x64emu_t *emu, uintptr_t fcn) { iFEbp__t fn = (iFEbp__t)fcn; struct_p_t arg_4; from_struct_p(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = fn(emu, *(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
+void iFiBp__32(x64emu_t *emu, uintptr_t fcn) { iFiBp__t fn = (iFiBp__t)fcn; struct_p_t arg_8; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
+void iFpBL__32(x64emu_t *emu, uintptr_t fcn) { iFpBL__t fn = (iFpBL__t)fcn; struct_L_t arg_8; R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFHBp__32(x64emu_t *emu, uintptr_t fcn) { iFHBp__t fn = (iFHBp__t)fcn; struct_p_t arg_8; R_EAX = fn(from_hash_d(from_ptri(ptr_t, R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void fFpBp__32(x64emu_t *emu, uintptr_t fcn) { fFpBp__t fn = (fFpBp__t)fcn; struct_p_t arg_8; float fl = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); fpu_do_push(emu); ST0val = fl; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void dFpBp__32(x64emu_t *emu, uintptr_t fcn) { dFpBp__t fn = (dFpBp__t)fcn; struct_p_t arg_8; double db = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); fpu_do_push(emu); ST0val = db; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
@@ -1246,6 +1259,7 @@ void dFddd_32(x64emu_t *emu, uintptr_t fcn) { dFddd_t fn = (dFddd_t)fcn; double
 void dFddp_32(x64emu_t *emu, uintptr_t fcn) { dFddp_t fn = (dFddp_t)fcn; double db = fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptriv(R_ESP + 20)); fpu_do_push(emu); ST0val = db; }
 void lFipL_32(x64emu_t *emu, uintptr_t fcn) { lFipL_t fn = (lFipL_t)fcn; R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)))); }
 void lFlpi_32(x64emu_t *emu, uintptr_t fcn) { lFlpi_t fn = (lFlpi_t)fcn; R_EAX = to_long(fn(to_long(from_ptri(long_t, R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); }
+void lFppL_32(x64emu_t *emu, uintptr_t fcn) { lFppL_t fn = (lFppL_t)fcn; R_EAX = to_long(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)))); }
 void LFpip_32(x64emu_t *emu, uintptr_t fcn) { LFpip_t fn = (LFpip_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12))); }
 void LFppL_32(x64emu_t *emu, uintptr_t fcn) { LFppL_t fn = (LFppL_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)))); }
 void pFEip_32(x64emu_t *emu, uintptr_t fcn) { pFEip_t fn = (pFEip_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8))); }
@@ -1267,7 +1281,9 @@ void aFipa_32(x64emu_t *emu, uintptr_t fcn) { aFipa_t fn = (aFipa_t)fcn; R_EAX =
 void SFEpp_32(x64emu_t *emu, uintptr_t fcn) { SFEpp_t fn = (SFEpp_t)fcn; R_EAX = to_ptrv(io_convert_from(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8)))); }
 void SFppS_32(x64emu_t *emu, uintptr_t fcn) { SFppS_t fn = (SFppS_t)fcn; R_EAX = to_ptrv(io_convert_from(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), io_convert32(from_ptriv(R_ESP + 12))))); }
 void tFipu_32(x64emu_t *emu, uintptr_t fcn) { tFipu_t fn = (tFipu_t)fcn; R_EAX = to_cstring(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12))); }
+void iFppbL__32(x64emu_t *emu, uintptr_t fcn) { iFppbL__t fn = (iFppbL__t)fcn; struct_L_t arg_12; from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFpBp_i_32(x64emu_t *emu, uintptr_t fcn) { iFpBp_i_t fn = (iFpBp_i_t)fcn; struct_p_t arg_8; R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
+void iFpbL_p_32(x64emu_t *emu, uintptr_t fcn) { iFpbL_p_t fn = (iFpbL_p_t)fcn; struct_L_t arg_8; from_struct_L(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptriv(R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFBp_LL_32(x64emu_t *emu, uintptr_t fcn) { iFBp_LL_t fn = (iFBp_LL_t)fcn; struct_p_t arg_4; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, to_ulong(from_ptri(ulong_t, R_ESP + 8)), to_ulong(from_ptri(ulong_t, R_ESP + 12))); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void IFpBp_i_32(x64emu_t *emu, uintptr_t fcn) { IFpBp_i_t fn = (IFpBp_i_t)fcn; struct_p_t arg_8; ui64_t r; r.i = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12)); R_EAX = r.d[0]; R_EDX = r.d[1]; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void UFpBp_i_32(x64emu_t *emu, uintptr_t fcn) { UFpBp_i_t fn = (UFpBp_i_t)fcn; struct_p_t arg_8; ui64_t r; r.u = (uint64_t)fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12)); R_EAX = r.d[0]; R_EDX = r.d[1]; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
@@ -1388,6 +1404,8 @@ void iFpupp_32(x64emu_t *emu, uintptr_t fcn) { iFpupp_t fn = (iFpupp_t)fcn; R_EA
 void iFppii_32(x64emu_t *emu, uintptr_t fcn) { iFppii_t fn = (iFppii_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFppiU_32(x64emu_t *emu, uintptr_t fcn) { iFppiU_t fn = (iFppiU_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(uint64_t, R_ESP + 16)); }
 void iFppip_32(x64emu_t *emu, uintptr_t fcn) { iFppip_t fn = (iFppip_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); }
+void iFppui_32(x64emu_t *emu, uintptr_t fcn) { iFppui_t fn = (iFppui_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
+void iFppLi_32(x64emu_t *emu, uintptr_t fcn) { iFppLi_t fn = (iFppLi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16)); }
 void iFpppi_32(x64emu_t *emu, uintptr_t fcn) { iFpppi_t fn = (iFpppi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFpppp_32(x64emu_t *emu, uintptr_t fcn) { iFpppp_t fn = (iFpppp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void iFhpiL_32(x64emu_t *emu, uintptr_t fcn) { iFhpiL_t fn = (iFhpiL_t)fcn; R_EAX = fn(from_hash(from_ptri(ptr_t, R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), to_ulong(from_ptri(ulong_t, R_ESP + 16))); }
@@ -1412,6 +1430,7 @@ void pFpipp_32(x64emu_t *emu, uintptr_t fcn) { pFpipp_t fn = (pFpipp_t)fcn; R_EA
 void pFppLL_32(x64emu_t *emu, uintptr_t fcn) { pFppLL_t fn = (pFppLL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)), to_ulong(from_ptri(ulong_t, R_ESP + 16)))); }
 void pFpppi_32(x64emu_t *emu, uintptr_t fcn) { pFpppi_t fn = (pFpppi_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16))); }
 void pFpppp_32(x64emu_t *emu, uintptr_t fcn) { pFpppp_t fn = (pFpppp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); }
+void iFBp_pui_32(x64emu_t *emu, uintptr_t fcn) { iFBp_pui_t fn = (iFBp_pui_t)fcn; struct_p_t arg_4; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void IFpBp_ii_32(x64emu_t *emu, uintptr_t fcn) { IFpBp_ii_t fn = (IFpBp_ii_t)fcn; struct_p_t arg_8; ui64_t r; r.i = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); R_EAX = r.d[0]; R_EDX = r.d[1]; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void UFpBp_ii_32(x64emu_t *emu, uintptr_t fcn) { UFpBp_ii_t fn = (UFpBp_ii_t)fcn; struct_p_t arg_8; ui64_t r; r.u = (uint64_t)fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); R_EAX = r.d[0]; R_EDX = r.d[1]; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void lFiibp_L_32(x64emu_t *emu, uintptr_t fcn) { lFiibp_L_t fn = (lFiibp_L_t)fcn; struct_p_t arg_12; from_struct_p(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, to_ulong(from_ptri(ulong_t, R_ESP + 16)))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
@@ -1602,6 +1621,7 @@ void vFupupip_32(x64emu_t *emu, uintptr_t fcn) { vFupupip_t fn = (vFupupip_t)fcn
 void vFuppppu_32(x64emu_t *emu, uintptr_t fcn) { vFuppppu_t fn = (vFuppppu_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(uint32_t, R_ESP + 24)); }
 void vFffffff_32(x64emu_t *emu, uintptr_t fcn) { vFffffff_t fn = (vFffffff_t)fcn; fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20), from_ptri(float, R_ESP + 24)); }
 void vFdddddd_32(x64emu_t *emu, uintptr_t fcn) { vFdddddd_t fn = (vFdddddd_t)fcn; fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28), from_ptri(double, R_ESP + 36), from_ptri(double, R_ESP + 44)); }
+void vFpipipV_32(x64emu_t *emu, uintptr_t fcn) { vFpipipV_t fn = (vFpipipV_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptrv(R_ESP + 24)); }
 void vFppiiii_32(x64emu_t *emu, uintptr_t fcn) { vFppiiii_t fn = (vFppiiii_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); }
 void vFppupii_32(x64emu_t *emu, uintptr_t fcn) { vFppupii_t fn = (vFppupii_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); }
 void iFpiiipp_32(x64emu_t *emu, uintptr_t fcn) { iFpiiipp_t fn = (iFpiiipp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index 4f1f22fb..53359abd 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -193,6 +193,7 @@ void dFdD_32(x64emu_t *emu, uintptr_t fnc);
 void dFdp_32(x64emu_t *emu, uintptr_t fnc);
 void dFLL_32(x64emu_t *emu, uintptr_t fnc);
 void lFui_32(x64emu_t *emu, uintptr_t fnc);
+void lFpl_32(x64emu_t *emu, uintptr_t fnc);
 void LFpL_32(x64emu_t *emu, uintptr_t fnc);
 void LFpp_32(x64emu_t *emu, uintptr_t fnc);
 void pFEv_32(x64emu_t *emu, uintptr_t fnc);
@@ -211,6 +212,8 @@ void SFpp_32(x64emu_t *emu, uintptr_t fnc);
 void tFip_32(x64emu_t *emu, uintptr_t fnc);
 void tFpL_32(x64emu_t *emu, uintptr_t fnc);
 void iFEbp__32(x64emu_t *emu, uintptr_t fnc);
+void iFiBp__32(x64emu_t *emu, uintptr_t fnc);
+void iFpBL__32(x64emu_t *emu, uintptr_t fnc);
 void iFHBp__32(x64emu_t *emu, uintptr_t fnc);
 void fFpBp__32(x64emu_t *emu, uintptr_t fnc);
 void dFpBp__32(x64emu_t *emu, uintptr_t fnc);
@@ -344,6 +347,7 @@ void dFddd_32(x64emu_t *emu, uintptr_t fnc);
 void dFddp_32(x64emu_t *emu, uintptr_t fnc);
 void lFipL_32(x64emu_t *emu, uintptr_t fnc);
 void lFlpi_32(x64emu_t *emu, uintptr_t fnc);
+void lFppL_32(x64emu_t *emu, uintptr_t fnc);
 void LFpip_32(x64emu_t *emu, uintptr_t fnc);
 void LFppL_32(x64emu_t *emu, uintptr_t fnc);
 void pFEip_32(x64emu_t *emu, uintptr_t fnc);
@@ -365,7 +369,9 @@ void aFipa_32(x64emu_t *emu, uintptr_t fnc);
 void SFEpp_32(x64emu_t *emu, uintptr_t fnc);
 void SFppS_32(x64emu_t *emu, uintptr_t fnc);
 void tFipu_32(x64emu_t *emu, uintptr_t fnc);
+void iFppbL__32(x64emu_t *emu, uintptr_t fnc);
 void iFpBp_i_32(x64emu_t *emu, uintptr_t fnc);
+void iFpbL_p_32(x64emu_t *emu, uintptr_t fnc);
 void iFBp_LL_32(x64emu_t *emu, uintptr_t fnc);
 void IFpBp_i_32(x64emu_t *emu, uintptr_t fnc);
 void UFpBp_i_32(x64emu_t *emu, uintptr_t fnc);
@@ -486,6 +492,8 @@ void iFpupp_32(x64emu_t *emu, uintptr_t fnc);
 void iFppii_32(x64emu_t *emu, uintptr_t fnc);
 void iFppiU_32(x64emu_t *emu, uintptr_t fnc);
 void iFppip_32(x64emu_t *emu, uintptr_t fnc);
+void iFppui_32(x64emu_t *emu, uintptr_t fnc);
+void iFppLi_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppi_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFhpiL_32(x64emu_t *emu, uintptr_t fnc);
@@ -510,6 +518,7 @@ void pFpipp_32(x64emu_t *emu, uintptr_t fnc);
 void pFppLL_32(x64emu_t *emu, uintptr_t fnc);
 void pFpppi_32(x64emu_t *emu, uintptr_t fnc);
 void pFpppp_32(x64emu_t *emu, uintptr_t fnc);
+void iFBp_pui_32(x64emu_t *emu, uintptr_t fnc);
 void IFpBp_ii_32(x64emu_t *emu, uintptr_t fnc);
 void UFpBp_ii_32(x64emu_t *emu, uintptr_t fnc);
 void lFiibp_L_32(x64emu_t *emu, uintptr_t fnc);
@@ -700,6 +709,7 @@ void vFupupip_32(x64emu_t *emu, uintptr_t fnc);
 void vFuppppu_32(x64emu_t *emu, uintptr_t fnc);
 void vFffffff_32(x64emu_t *emu, uintptr_t fnc);
 void vFdddddd_32(x64emu_t *emu, uintptr_t fnc);
+void vFpipipV_32(x64emu_t *emu, uintptr_t fnc);
 void vFppiiii_32(x64emu_t *emu, uintptr_t fnc);
 void vFppupii_32(x64emu_t *emu, uintptr_t fnc);
 void iFpiiipp_32(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped32/wrappedlibasound.c b/src/wrapped32/wrappedlibasound.c
new file mode 100644
index 00000000..0e583717
--- /dev/null
+++ b/src/wrapped32/wrappedlibasound.c
@@ -0,0 +1,299 @@
+#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 "debug.h"
+#include "wrapper32.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box64context.h"
+#include "emu/x64emu_private.h"
+#include "bridge.h"
+#include "box32.h"
+
+#define LIBNAME libasound
+static const char* libasoundName = "libasound.so.2";
+
+#include "generated/wrappedlibasoundtypes32.h"
+
+EXPORT uintptr_t my32_snd_lib_error = 0;
+static void default_error_handler(const char *file, int line, const char *function, int err, const char *fmt, va_list ap)
+{
+    (void)file; (void)line; (void)function; (void)err;
+    vprintf(fmt, ap);
+}
+
+#define ADDED_INIT() \
+    my32_snd_lib_error = AddCheckBridge(my_lib->w.bridge, vFpipipV_32, default_error_handler, 0, "ASoundCustomErrorHandler");
+
+#define ADDED_FINI() \
+    my32_snd_lib_error = 0;   // no removing of bridge
+
+#include "wrappercallback32.h"
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)
+
+// snd_async_callback_t
+#define GO(A)   \
+static uintptr_t my32_async_fct_##A = 0;                                          \
+static void* my32_async_##A(void* handler)                                        \
+{                                                                               \
+    return (void*)RunFunctionFmt(my32_async_fct_##A, "p", handler);         \
+}
+SUPER()
+#undef GO
+static void* findAsyncFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my32_async_fct_##A == (uintptr_t)fct) return my32_async_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my32_async_fct_##A == 0) {my32_async_fct_##A = (uintptr_t)fct; return my32_async_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for Asound Async callback\n");
+    return NULL;
+}
+// snd_mixer_elem_callback_t
+#define GO(A)   \
+static uintptr_t my32_elem_fct_##A = 0;                                           \
+static int my32_elem_##A(void* elem, uint32_t mask)                               \
+{                                                                               \
+    return (int)RunFunctionFmt(my32_elem_fct_##A, "pu", elem, mask);        \
+}
+SUPER()
+#undef GO
+static void* findElemFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my32_elem_fct_##A == (uintptr_t)fct) return my32_elem_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my32_elem_fct_##A == 0) {my32_elem_fct_##A = (uintptr_t)fct; return my32_elem_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for Asound Elem callback\n");
+    return NULL;
+}
+// snd_pcm_hook_func_t
+#define GO(A)   \
+static uintptr_t my32_pcm_hook_fct_##A = 0;                       \
+static int my32_pcm_hook_##A(void* a)                             \
+{                                                               \
+    return (int)RunFunctionFmt(my32_pcm_hook_fct_##A, "p", a);    \
+}
+SUPER()
+#undef GO
+static void* findPCMHookFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my32_pcm_hook_fct_##A == (uintptr_t)fct) return my32_elem_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my32_pcm_hook_fct_##A == 0) {my32_pcm_hook_fct_##A = (uintptr_t)fct; return my32_pcm_hook_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for Asound PCMHook callback\n");
+    return NULL;
+}
+//  snd_mixer_compare_t
+#define GO(A)   \
+static uintptr_t my32_mixer_compare_fct_##A = 0;                       \
+static int my32_mixer_compare_##A(void* a)                             \
+{                                                               \
+    return (int)RunFunctionFmt(my32_mixer_compare_fct_##A, "p", a);    \
+}
+SUPER()
+#undef GO
+static void* findMixerCompareFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my32_mixer_compare_fct_##A == (uintptr_t)fct) return my32_elem_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my32_mixer_compare_fct_##A == 0) {my32_mixer_compare_fct_##A = (uintptr_t)fct; return my32_mixer_compare_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for Asound Mixer Compare callback\n");
+    return NULL;
+}
+//  private_free
+#define GO(A)   \
+static uintptr_t my32_private_free_fct_##A = 0;                       \
+static int my32_private_free_##A(void* a)                             \
+{                                                               \
+    return (int)RunFunctionFmt(my32_private_free_fct_##A, "p", a);    \
+}
+SUPER()
+#undef GO
+static void* findPrivateFreeFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my32_private_free_fct_##A == (uintptr_t)fct) return my32_elem_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my32_private_free_fct_##A == 0) {my32_private_free_fct_##A = (uintptr_t)fct; return my32_private_free_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for Asound PrivateFree callback\n");
+    return NULL;
+}
+//  snd_mixer_event_t
+#define GO(A)   \
+static uintptr_t my32_mixer_event_fct_##A = 0;                                \
+static int my32_mixer_event_##A(void* a, uint32_t b, void* c, void* d)        \
+{                                                                           \
+    return (int)RunFunctionFmt(my32_mixer_event_fct_##A, "pupp", a, b, c, d); \
+}
+SUPER()
+#undef GO
+static void* findMixerEventFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my32_mixer_event_fct_##A == (uintptr_t)fct) return my32_elem_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my32_mixer_event_fct_##A == 0) {my32_mixer_event_fct_##A = (uintptr_t)fct; return my32_mixer_event_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for Asound MixerEvent callback\n");
+    return NULL;
+}
+
+
+//EXPORT int my32_snd_async_add_handler(x64emu_t *emu, void *handler, int fd, void* callback, void *private_data)
+//{
+//    return my->snd_async_add_handler(handler, fd, findAsyncFct(callback), private_data);
+//}
+
+//EXPORT int my32_snd_async_add_pcm_handler(x64emu_t *emu, void *handler, void* pcm,  void* callback, void *private_data)
+//{
+//    return my->snd_async_add_pcm_handler(handler, pcm, findAsyncFct(callback), private_data);
+//}
+
+static void* current_error_handler = NULL;
+static void dummy32_error_handler(const char *file, int line, const char *function, int err, const char *fmt, ...)
+{
+    (void)function; (void)err;
+    va_list ap;
+
+    fprintf(stderr, "Warning: this is a dummy snd_lib error handler\n");
+    fprintf(stderr, "Error in file %s on line %i: ", file, line);
+    va_start(ap, fmt);
+    vfprintf(stderr, fmt, ap);
+    va_end(ap);
+}
+
+static void empty_error_handler(const char *file, int line, const char *function, int err, const char *fmt, ...)
+{
+    (void)file; (void)line; (void)function; (void)err; (void)fmt;
+    // do nothing
+}
+
+//EXPORT int my32_snd_lib_error_set_handler(x64emu_t* emu, void* handler)
+//{
+//    current_error_handler = handler;
+//    void *error_handler;
+//    uint8_t *code = (uint8_t *)handler;
+//    if (code) {
+//        if ((code[0] == 0xC3) || ((code[0] == 0xF3) && (code[1] == 0xC3))) {
+//            error_handler = &empty_error_handler;
+//        } else {
+//            error_handler = &dummy32_error_handler;
+//            printf_log(LOG_NONE, "Warning: snd_lib_error_set_handler: using dummy error handler\n");
+//        }
+//    } else error_handler = NULL;
+//
+//    return my->snd_lib_error_set_handler(error_handler);
+//}
+
+//EXPORT void my32_snd_mixer_elem_set_callback(x64emu_t* emu, void* handler, void* f)
+//{
+//    my->snd_mixer_elem_set_callback(handler, findElemFct(f));
+//}
+
+//EXPORT int my32_snd_pcm_hook_add(x64emu_t* emu, void* hook, void* pcm, uint32_t type, void* f, void* data)
+//{
+//    return my->snd_pcm_hook_add(hook, pcm, type, findPCMHookFct(f), data);
+//}
+
+//EXPORT int my32_snd_mixer_set_compare(x64emu_t* emu, void* mixer, void* f)
+//{
+//    return my->snd_mixer_set_compare(mixer, findMixerCompareFct(f));
+//}
+
+//EXPORT int my32_snd_mixer_elem_new(x64emu_t* emu, void* elem, uint32_t type, int weight, void* data, void* f)
+//{
+//    return my->snd_mixer_elem_new(elem, type, weight, data, findPrivateFreeFct(f));
+//}
+
+//EXPORT void* my32_snd_mixer_class_get_event(x64emu_t* emu, void* class)
+//{
+//    void* ret = my->snd_mixer_class_get_event(class);
+//    AddAutomaticBridge(my_lib->w.bridge, iFpupp, ret, 0, "snd_event_t");
+//    return ret;
+//}
+
+//EXPORT void* my32_snd_mixer_class_get_compare(x64emu_t* emu, void* class)
+//{
+//    void* ret = my->snd_mixer_class_get_compare(class);
+//    AddAutomaticBridge(my_lib->w.bridge, iFpp, ret, 0, "snd_mixer_compare_t");
+//    return ret;
+//}
+
+//EXPORT int my32_snd_mixer_class_set_event(x64emu_t* emu, void* class, void* f)
+//{
+//    return my->snd_mixer_class_set_event(class, findMixerEventFct(f));
+//}
+
+//EXPORT int my32_snd_mixer_class_set_private_free(x64emu_t* emu, void* class, void* f)
+//{
+//    return my->snd_mixer_class_set_private_free(class, findPrivateFreeFct(f));
+//}
+
+//EXPORT int my32_snd_mixer_class_set_compare(x64emu_t* emu, void* class, void* f)
+//{
+//    return my->snd_mixer_class_set_compare(class, findMixerCompareFct(f));
+//}
+
+void* my_dlopen(x64emu_t* emu, void *filename, int flag);   // defined in wrappedlibdl.c
+char* my_dlerror(x64emu_t* emu);
+int my_dlclose(x64emu_t* emu, void *handle);
+void* my_dlvsym(x64emu_t* emu, void *handle, void *symbol, void *version);
+EXPORT void * my32_snd_dlopen(x64emu_t* emu, void* name, int mode, void* errbuf, size_t errbuflen)
+{
+    void* ret = my_dlopen(emu, name, mode);  // Does NULL name (so dlopen libasound) need special treatment?
+    if(!ret && errbuf) {
+        strncpy(errbuf, my_dlerror(emu), errbuflen);
+    }
+    return ret;
+}
+EXPORT int my32_snd_dlclose(x64emu_t* emu, void* handle)
+{
+    return my_dlclose(emu, handle);
+}
+EXPORT void* my32_snd_dlsym(x64emu_t* emu, void* handle, void* name, void* version)
+{
+    return my_dlvsym(emu, handle, name, version);
+}
+
+#include "wrappedlib_init32.h"
diff --git a/src/wrapped32/wrappedlibasound_private.h b/src/wrapped32/wrappedlibasound_private.h
new file mode 100644
index 00000000..a0474385
--- /dev/null
+++ b/src/wrapped32/wrappedlibasound_private.h
@@ -0,0 +1,1279 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh...
+#endif
+
+//DATAB(alsa_lisp_nil, 4)
+//DATAB(alsa_lisp_t, 4)
+//DATAB(snd_config, 4)
+//DATAB(_snd_config_hook_load_dlsym_config_hook_001, 4)
+//DATAB(_snd_config_hook_load_for_all_cards_dlsym_config_hook_001, 4)
+//DATAB(__snd_ctl_hw_open_dlsym_control_001, 4)
+//DATAB(__snd_ctl_shm_open_dlsym_control_001, 4)
+//DATAB(_snd_func_card_driver_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_card_id_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_card_inum_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_card_name_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_concat_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_datadir_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_getenv_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_iadd_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_igetenv_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_imul_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_pcm_args_by_class_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_pcm_id_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_private_card_driver_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_private_pcm_subdevice_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_private_string_dlsym_config_evaluate_001, 4)
+//DATAB(_snd_func_refer_dlsym_config_evaluate_001, 4)
+//DATAB(__snd_hwdep_hw_open_dlsym_hwdep_001, 4)
+//DATAB(__snd_pcm_adpcm_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_alaw_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_asym_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_copy_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_dmix_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_dshare_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_dsnoop_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_empty_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_file_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_hook_ctl_elems_install_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_hooks_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_hw_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_iec958_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_ladspa_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_lfloat_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_linear_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_mmap_emul_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_mulaw_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_multi_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_null_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_plug_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_rate_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_route_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_share_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_shm_open_dlsym_pcm_001, 4)
+//DATAB(__snd_pcm_softvol_open_dlsym_pcm_001, 4)
+//DATAB(__snd_rawmidi_hw_open_dlsym_rawmidi_001, 4)
+//DATAB(__snd_rawmidi_virtual_open_dlsym_rawmidi_001, 4)
+//DATAB(__snd_seq_hw_open_dlsym_seq_001, 4)
+//DATAB(__snd_timer_hw_open_dlsym_timer_001, 4)
+//DATAB(__snd_timer_query_hw_open_dlsym_timer_query_001, 4)
+
+//GO(snd_asoundlib_version, pFv)
+//GOM(snd_dlopen, pFEpipL)
+//GOM(snd_dlsym, pFEppp)
+//GOM(snd_dlclose, iFEp)
+//GOM(snd_async_add_handler, iFEpipp)
+//GO(snd_async_del_handler, iFp)
+//GO(snd_async_handler_get_fd, iFp)
+//GO(snd_async_handler_get_signo, iFp)
+//GO(snd_async_handler_get_callback_private, pFp)
+//GO(snd_shm_area_create, pFip)
+//GO(snd_shm_area_share, pFp)
+//GO(snd_shm_area_destroy, iFp)
+//GO(snd_user_file, iFpp)
+//GO(snd_input_stdio_open, iFppp)
+//GO(snd_input_stdio_attach, iFppi)
+//GO(snd_input_buffer_open, iFppl)
+//GO(snd_input_close, iFp)
+//GOM(snd_input_scanf, iFppV)
+//GO(snd_input_gets, pFppL)
+//GO(snd_input_getc, iFp)
+//GO(snd_input_ungetc, iFpi)
+//GO(snd_output_stdio_open, iFppp)
+//GO(snd_output_stdio_attach, iFppi)
+//GO(snd_output_buffer_open, iFp)
+//GO(snd_output_buffer_string, LFpp)
+//GO(snd_output_close, iFp)
+//GOM(snd_output_printf, iFppV)
+//GOM(snd_output_vprintf, iFppA)
+//GO(snd_output_puts, iFpp)
+//GO(snd_output_putc, iFpi)
+//GO(snd_output_flush, iFp)
+GO(snd_strerror, pFi)
+//GOM(snd_lib_error_set_handler, iFEp)
+//GO(snd_config_top, iFp)
+//GO(snd_config_load, iFpp)
+//GO(snd_config_load_override, iFpp)
+//GO(snd_config_save, iFpp)
+//GO(snd_config_update, iFv)
+//GO(snd_config_update_r, iFppp)
+//GO(snd_config_update_free, iFp)
+//GO(snd_config_update_free_global, iFv)
+//GO(snd_config_search, iFppp)
+//GOM(snd_config_searchv, iFppV)
+//GO(snd_config_search_definition, iFpppp)
+//GO(snd_config_expand, iFppppp)
+//GO(snd_config_evaluate, iFpppp)
+//GO(snd_config_add, iFpp)
+//GO(snd_config_delete, iFp)
+//GO(snd_config_delete_compound_members, iFp)
+//GO(snd_config_copy, iFpp)
+//GO(snd_config_make, iFppu)
+//GO(snd_config_make_integer, iFpp)
+//GO(snd_config_make_integer64, iFpp)
+//GO(snd_config_make_real, iFpp)
+//GO(snd_config_make_string, iFpp)
+//GO(snd_config_make_pointer, iFpp)
+//GO(snd_config_make_compound, iFppi)
+//GO(snd_config_imake_integer, iFppl)
+//GO(snd_config_imake_integer64, iFppI)
+//GO(snd_config_imake_real, iFppd)
+//GO(snd_config_imake_string, iFppp)
+//GO(snd_config_imake_pointer, iFppp)
+//GO(snd_config_get_type, uFp)
+//GO(snd_config_set_id, iFpp)
+//GO(snd_config_set_integer, iFpl)
+//GO(snd_config_set_integer64, iFpI)
+//GO(snd_config_set_real, iFpd)
+//GO(snd_config_set_string, iFpp)
+//GO(snd_config_set_ascii, iFpp)
+//GO(snd_config_set_pointer, iFpp)
+//GO(snd_config_get_id, iFpp)
+//GO(snd_config_get_integer, iFpp)
+//GO(snd_config_get_integer64, iFpp)
+//GO(snd_config_get_real, iFpp)
+//GO(snd_config_get_ireal, iFpp)
+//GO(snd_config_get_string, iFpp)
+//GO(snd_config_get_ascii, iFpp)
+//GO(snd_config_get_pointer, iFpp)
+//GO(snd_config_test_id, iFpp)
+//GO(snd_config_iterator_first, pFp)
+//GO(snd_config_iterator_next, pFp)
+//GO(snd_config_iterator_end, pFp)
+//GO(snd_config_iterator_entry, pFp)
+//GO(snd_config_get_bool_ascii, iFp)
+//GO(snd_config_get_bool, iFp)
+//GO(snd_config_get_ctl_iface_ascii, iFp)
+//GO(snd_config_get_ctl_iface, iFp)
+//GO(snd_device_name_free_hint, iFp)
+//GO(snd_device_name_get_hint, pFpp)
+//GO(snd_device_name_hint, iFipp)
+//GO(snd_names_list, iFpp)
+//GO(snd_names_list_free, vFp)
+//GO(snd_pcm_format_mask_sizeof, LFv)
+//GO(snd_pcm_subformat_mask_sizeof, LFv)
+//GO(snd_pcm_status_sizeof, LFv)
+//GOM(snd_async_add_pcm_handler, iFEpppp)
+//GO(snd_async_handler_get_pcm, pFp)
+//GO(snd_pcm_access_mask_any, vFp)
+//GO(snd_pcm_access_mask_copy, vFpp)
+//GO(snd_pcm_access_mask_empty, iFp)
+//GO(snd_pcm_access_mask_free, vFp)
+//GO(snd_pcm_access_mask_malloc, iFp)
+//GO(snd_pcm_access_mask_none, vFp)
+//GO(snd_pcm_access_mask_reset, vFpu)
+//GO(snd_pcm_access_mask_set, vFpu)
+//GO(snd_pcm_access_mask_test, iFpu)
+//GO(snd_pcm_access_name, pFu)
+//GO(snd_pcm_area_copy, iFpLpLui)
+//GO(snd_pcm_area_silence, iFpLui)
+//GO(snd_pcm_areas_copy, iFpLpLuLi)
+//GO(snd_pcm_areas_silence, iFpLuLi)
+//GO(snd_pcm_avail, lFp)
+//GO(snd_pcm_avail_delay, iFppp)
+//GO(snd_pcm_avail_update, lFp)
+//GO(snd_pcm_build_linear_format, iFiiii)
+GO(snd_pcm_bytes_to_frames, lFpl)
+GO(snd_pcm_bytes_to_samples, lFpl)
+GO(snd_pcm_chmap_type_name, pFu)
+GO(snd_pcm_chmap_name, pFu)
+GO(snd_pcm_chmap_long_name, pFu)
+//GO(snd_pcm_chmap_print, iFpLp)
+GO(snd_pcm_chmap_from_string, uFp)
+GO(snd_pcm_chmap_parse_string, pFp)
+GO(snd_pcm_close, iFp)
+//GO(snd_pcm_delay, iFpp)
+//GO(snd_pcm_drain, iFp)
+GO(snd_pcm_drop, iFp)
+//GO(snd_pcm_dump, iFpp)
+//GO(snd_pcm_dump_hw_setup, iFpp)
+//GO(snd_pcm_dump_setup, iFpp)
+//GO(snd_pcm_dump_sw_setup, iFpp)
+//GO(snd_pcm_format_big_endian, iFi)
+//GO(snd_pcm_format_cpu_endian, iFi)
+//GO(snd_pcm_format_description, pFi)
+//GO(snd_pcm_format_float, iFi)
+//GO(snd_pcm_format_linear, iFi)
+//GO(snd_pcm_format_little_endian, iFi)
+//GO(snd_pcm_format_mask_any, vFp)
+//GO(snd_pcm_format_mask_copy, vFpp)
+//GO(snd_pcm_format_mask_empty, iFp)
+//GO(snd_pcm_format_mask_free, vFp)
+//GO(snd_pcm_format_mask_malloc, iFp)
+//GO(snd_pcm_format_mask_none, vFp)
+//GO(snd_pcm_format_mask_reset, vFpi)
+//GO(snd_pcm_format_mask_set, vFpi)
+//GO(snd_pcm_format_mask_test, iFpi)
+//GO(snd_pcm_format_name, pFi)
+//GO(snd_pcm_format_physical_width, iFi)
+//GO(snd_pcm_format_set_silence, iFipu)
+//GO(snd_pcm_format_signed, iFi)
+//GO(snd_pcm_format_silence, CFi)
+//GO(snd_pcm_format_silence_16, WFi)
+//GO(snd_pcm_format_silence_32, uFi)
+//GO(snd_pcm_format_silence_64, UFi)
+//GO(snd_pcm_format_size, lFiL)
+//GO(snd_pcm_format_unsigned, iFi)
+//GO(snd_pcm_format_value, iFp)
+//GO(snd_pcm_format_width, iFi)
+//GO(snd_pcm_forward, lFpL)
+//GO(snd_pcm_frames_to_bytes, lFpl)
+//GO(snd_pcm_get_params, iFppp)
+//GO(snd_pcm_get_chmap, pFp)
+//GOM(snd_pcm_hook_add, iFEppupp)
+//GO(snd_pcm_hook_get_pcm, pFp)
+//GO(snd_pcm_hook_get_private, pFp)
+//GO(snd_pcm_hook_remove, iFp)
+//GO(snd_pcm_hook_set_private, vFpp)
+//GO(snd_pcm_hw_free, iFp)
+GO(snd_pcm_hw_params, iFpp)
+GO(snd_pcm_hw_params_any, iFpp)
+//GO(snd_pcm_hw_params_can_mmap_sample_resolution, iFp)
+//GO(snd_pcm_hw_params_can_overrange, iFp)
+//GO(snd_pcm_hw_params_can_pause, iFp)
+//GO(snd_pcm_hw_params_can_resume, iFp)
+//GO(snd_pcm_hw_params_can_sync_start, iFp)
+//GO(snd_pcm_hw_params_copy, vFpp)
+//GO(snd_pcm_hw_params_current, iFpp)
+//GO(snd_pcm_hw_params_dump, iFpp)
+GO(snd_pcm_hw_params_free, vFp)
+GO(snd_pcm_hw_params_get_access, iFpp)
+GO(snd_pcm_hw_params_get_access_mask, iFpp)
+GO(snd_pcm_hw_params_get_buffer_size, iFpBL_)
+GO(snd_pcm_hw_params_get_buffer_size_max, iFpBL_)
+GO(snd_pcm_hw_params_get_buffer_size_min, iFpBL_)
+GO(snd_pcm_hw_params_get_buffer_time, iFppp)
+GO(snd_pcm_hw_params_get_buffer_time_max, iFppp)
+GO(snd_pcm_hw_params_get_buffer_time_min, iFppp)
+GO(snd_pcm_hw_params_get_channels, iFpp)
+GO(snd_pcm_hw_params_get_channels_max, iFpp)
+GO(snd_pcm_hw_params_get_channels_min, iFpp)
+//GO(snd_pcm_hw_params_get_export_buffer, iFppp)
+//GO(snd_pcm_hw_params_get_fifo_size, iFp)
+//GO(snd_pcm_hw_params_get_format, iFpp)
+//GO(snd_pcm_hw_params_get_format_mask, vFpp)
+//GO(snd_pcm_hw_params_get_min_align, iFpp)
+GO(snd_pcm_hw_params_get_period_size, iFpbL_p)
+GO(snd_pcm_hw_params_get_period_size_max, iFpbL_p)
+GO(snd_pcm_hw_params_get_period_size_min, iFpbL_p)
+GO(snd_pcm_hw_params_get_period_time, iFppp)
+GO(snd_pcm_hw_params_get_period_time_max, iFppp)
+GO(snd_pcm_hw_params_get_period_time_min, iFppp)
+GO(snd_pcm_hw_params_get_periods, iFppp)
+GO(snd_pcm_hw_params_get_periods_max, iFppp)
+GO(snd_pcm_hw_params_get_periods_min, iFppp)
+GO(snd_pcm_hw_params_get_rate, iFppp)
+GO(snd_pcm_hw_params_get_rate_max, iFppp)
+GO(snd_pcm_hw_params_get_rate_min, iFppp)
+//GO(snd_pcm_hw_params_get_rate_numden, iFppp)
+//GO(snd_pcm_hw_params_get_rate_resample, iFppp)
+//GO(snd_pcm_hw_params_get_sbits, iFp)
+//GO(snd_pcm_hw_params_get_subformat, iFpp)
+//GO(snd_pcm_hw_params_get_subformat_mask, vFpp)
+//GO(snd_pcm_hw_params_get_tick_time, iFppp)
+//GO(snd_pcm_hw_params_get_tick_time_max, iFppp)
+//GO(snd_pcm_hw_params_get_tick_time_min, iFppp)
+//GO(snd_pcm_hw_params_is_batch, iFp)
+//GO(snd_pcm_hw_params_is_block_transfer, iFp)
+//GO(snd_pcm_hw_params_is_double, iFp)
+//GO(snd_pcm_hw_params_is_half_duplex, iFp)
+//GO(snd_pcm_hw_params_is_joint_duplex, iFp)
+//GO(snd_pcm_hw_params_malloc, iFp)
+GO(snd_pcm_hw_params_set_access, iFppu)
+//GO(snd_pcm_hw_params_set_access_first, iFppp)
+//GO(snd_pcm_hw_params_set_access_last, iFppp)
+//GO(snd_pcm_hw_params_set_access_mask, iFppp)
+GO(snd_pcm_hw_params_set_buffer_size, iFppL)
+//GO(snd_pcm_hw_params_set_buffer_size_first, iFppp)
+//GO(snd_pcm_hw_params_set_buffer_size_last, iFppp)
+//GO(snd_pcm_hw_params_set_buffer_size_max, iFppp)
+//GO(snd_pcm_hw_params_set_buffer_size_min, iFppp)
+//GO(snd_pcm_hw_params_set_buffer_size_minmax, iFpppp)
+GO(snd_pcm_hw_params_set_buffer_size_near, iFppbL_)
+//GO(snd_pcm_hw_params_set_buffer_time, iFppui)
+//GO(snd_pcm_hw_params_set_buffer_time_first, iFpppp)
+//GO(snd_pcm_hw_params_set_buffer_time_last, iFpppp)
+//GO(snd_pcm_hw_params_set_buffer_time_max, iFpppp)
+//GO(snd_pcm_hw_params_set_buffer_time_min, iFpppp)
+//GO(snd_pcm_hw_params_set_buffer_time_minmax, iFpppppp)
+GO(snd_pcm_hw_params_set_buffer_time_near, iFpppp)
+GO(snd_pcm_hw_params_set_channels, iFppu)
+//GO(snd_pcm_hw_params_set_channels_first, iFppp)
+//GO(snd_pcm_hw_params_set_channels_last, iFppp)
+//GO(snd_pcm_hw_params_set_channels_max, iFppp)
+//GO(snd_pcm_hw_params_set_channels_min, iFppp)
+//GO(snd_pcm_hw_params_set_channels_minmax, iFpppp)
+//GO(snd_pcm_hw_params_set_channels_near, iFppp)
+//GO(snd_pcm_hw_params_set_export_buffer, iFppu)
+GO(snd_pcm_hw_params_set_format, iFppi)
+//GO(snd_pcm_hw_params_set_format_first, iFppp)
+//GO(snd_pcm_hw_params_set_format_last, iFppp)
+//GO(snd_pcm_hw_params_set_format_mask, iFppp)
+//GO(snd_pcm_hw_params_set_period_size, iFppLi)
+//GO(snd_pcm_hw_params_set_period_size_first, iFpppp)
+//GO(snd_pcm_hw_params_set_period_size_integer, iFpp)
+//GO(snd_pcm_hw_params_set_period_size_last, iFpppp)
+//GO(snd_pcm_hw_params_set_period_size_max, iFpppp)
+//GO(snd_pcm_hw_params_set_period_size_min, iFpppp)
+//GO(snd_pcm_hw_params_set_period_size_minmax, iFpppppp)
+//GO(snd_pcm_hw_params_set_period_size_near, iFpppp)
+//GO(snd_pcm_hw_params_set_period_time, iFppui)
+//GO(snd_pcm_hw_params_set_period_time_first, iFpppp)
+//GO(snd_pcm_hw_params_set_period_time_last, iFpppp)
+//GO(snd_pcm_hw_params_set_period_time_max, iFpppp)
+//GO(snd_pcm_hw_params_set_period_time_min, iFpppp)
+//GO(snd_pcm_hw_params_set_period_time_minmax, iFpppppp)
+GO(snd_pcm_hw_params_set_period_time_near, iFpppp)
+GO(snd_pcm_hw_params_set_periods, iFppui)
+//GO(snd_pcm_hw_params_set_periods_first, iFpppp)
+//GO(snd_pcm_hw_params_set_periods_integer, iFpp)
+//GO(snd_pcm_hw_params_set_periods_last, iFpppp)
+//GO(snd_pcm_hw_params_set_periods_max, iFpppp)
+//GO(snd_pcm_hw_params_set_periods_min, iFpppp)
+//GO(snd_pcm_hw_params_set_periods_minmax, iFpppppp)
+GO(snd_pcm_hw_params_set_periods_near, iFpppp)
+GO(snd_pcm_hw_params_set_rate, iFppui)
+//GO(snd_pcm_hw_params_set_rate_first, iFpppp)
+//GO(snd_pcm_hw_params_set_rate_last, iFpppp)
+//GO(snd_pcm_hw_params_set_rate_max, iFpppp)
+//GO(snd_pcm_hw_params_set_rate_min, iFpppp)
+//GO(snd_pcm_hw_params_set_rate_minmax, iFpppppp)
+GO(snd_pcm_hw_params_set_rate_near, iFpppp)
+//GO(snd_pcm_hw_params_set_rate_resample, iFppu)
+//GO(snd_pcm_hw_params_set_subformat, iFppi)
+//GO(snd_pcm_hw_params_set_subformat_first, iFppp)
+//GO(snd_pcm_hw_params_set_subformat_last, iFppp)
+//GO(snd_pcm_hw_params_set_subformat_mask, iFppp)
+//GO(snd_pcm_hw_params_set_tick_time, iFppui)
+//GO(snd_pcm_hw_params_set_tick_time_first, iFpppp)
+//GO(snd_pcm_hw_params_set_tick_time_last, iFpppp)
+//GO(snd_pcm_hw_params_set_tick_time_max, iFpppp)
+//GO(snd_pcm_hw_params_set_tick_time_min, iFpppp)
+//GO(snd_pcm_hw_params_set_tick_time_minmax, iFpppppp)
+//GO(snd_pcm_hw_params_set_tick_time_near, iFpppp)
+GO(snd_pcm_hw_params_test_access, iFppu)
+GO(snd_pcm_hw_params_test_buffer_size, iFppL)
+GO(snd_pcm_hw_params_test_buffer_time, iFppui)
+GO(snd_pcm_hw_params_test_channels, iFppu)
+GO(snd_pcm_hw_params_test_format, iFppi)
+GO(snd_pcm_hw_params_test_period_size, iFppLi)
+GO(snd_pcm_hw_params_test_period_time, iFppui)
+GO(snd_pcm_hw_params_test_periods, iFppui)
+GO(snd_pcm_hw_params_test_rate, iFppui)
+GO(snd_pcm_hw_params_test_subformat, iFppi)
+GO(snd_pcm_hw_params_test_tick_time, iFppui)
+//GO(snd_pcm_hwsync, iFp)
+//GO(snd_pcm_info, iFpp)
+//GO(snd_pcm_info_copy, vFpp)
+//GO(snd_pcm_info_free, vFp)
+//GO(snd_pcm_info_get_card, iFp)
+//GO(snd_pcm_info_get_class, uFp)
+//GO(snd_pcm_info_get_device, uFp)
+//GO(snd_pcm_info_get_id, pFp)
+//GO(snd_pcm_info_get_name, pFp)
+//GO(snd_pcm_info_get_stream, uFp)
+//GO(snd_pcm_info_get_subclass, uFp)
+//GO(snd_pcm_info_get_subdevice, uFp)
+//GO(snd_pcm_info_get_subdevice_name, pFp)
+//GO(snd_pcm_info_get_subdevices_avail, uFp)
+//GO(snd_pcm_info_get_subdevices_count, uFp)
+//GO(snd_pcm_info_get_sync, HFp)
+//GO(snd_pcm_info_malloc, iFp)
+//GO(snd_pcm_info_sizeof, LFv)
+//GO(snd_pcm_access_mask_sizeof, LFv)
+//GO(snd_pcm_info_set_device, vFpu)
+//GO(snd_pcm_info_set_stream, vFpu)
+//GO(snd_pcm_info_set_subdevice, vFpu)
+//GO(snd_pcm_link, iFpp)
+//GO(snd_pcm_meter_add_scope, iFpp)
+//GO(snd_pcm_meter_get_boundary, LFp)
+//GO(snd_pcm_meter_get_bufsize, LFp)
+//GO(snd_pcm_meter_get_channels, uFp)
+//GO(snd_pcm_meter_get_now, LFp)
+//GO(snd_pcm_meter_get_rate, uFp)
+//GO(snd_pcm_meter_search_scope, pFpp)
+//GO(snd_pcm_mmap_begin, iFpppp)
+//GO(snd_pcm_mmap_commit, lFpLL)
+//GO(snd_pcm_mmap_readi, lFppL)
+//GO(snd_pcm_mmap_readn, lFppL)
+//GO(snd_pcm_mmap_writei, lFppL)
+//GO(snd_pcm_mmap_writen, lFppL)
+//GO(snd_pcm_name, pFp)
+GO(snd_pcm_nonblock, iFpi)
+GO(snd_pcm_open, iFBp_pui)  
+//GO(snd_pcm_open_lconf, iFppuip)
+//GO(snd_pcm_pause, iFpi)
+//GO(snd_pcm_poll_descriptors, iFppu)
+//GO(snd_pcm_poll_descriptors_count, iFp)
+//GO(snd_pcm_poll_descriptors_revents, iFppup)
+GO(snd_pcm_prepare, iFp)
+GO(snd_pcm_readi, lFppL)
+//GO(snd_pcm_readn, lFppL)
+//GO(snd_pcm_recover, iFpii)
+//GO(snd_pcm_reset, iFp)
+//GO(snd_pcm_resume, iFp)
+//GO(snd_pcm_rewind, lFpL)  
+//GO(snd_pcm_samples_to_bytes, lFpl)
+//GOM(snd_pcm_scope_get_callback_private, pFEp)
+//GO(snd_pcm_scope_get_name, pFp)
+//GO(snd_pcm_scope_malloc, iFp)
+//GO(snd_pcm_scope_s16_get_channel_buffer, pFpu)
+//GO(snd_pcm_scope_s16_open, iFppp)
+//GOM(snd_pcm_scope_set_callback_private, vFEpp)
+GO(snd_pcm_hw_params_sizeof, LFv)
+GO(snd_pcm_sw_params_sizeof, LFv)
+//GO(snd_pcm_hw_params_is_monotonic, iFp)
+//GO(snd_pcm_scope_set_name, vFpp)
+//GOM(snd_pcm_scope_set_ops, vFEpp)
+//GO(snd_pcm_set_chmap, iFpp)
+//GO(snd_pcm_set_params, iFpiuuuiu)
+//GO(snd_pcm_start, iFp)
+//GO(snd_pcm_start_mode_name, pFu)
+//GO(snd_pcm_state, uFp)
+//GO(snd_pcm_state_name, pFu)
+//GO(snd_pcm_status, iFpp)
+//GO(snd_pcm_status_copy, vFpp)
+//GO(snd_pcm_status_dump, iFpp)
+//GO(snd_pcm_status_free, vFp)
+//GO(snd_pcm_status_get_avail, LFp)
+//GO(snd_pcm_status_get_avail_max, LFp)
+//GO(snd_pcm_status_get_delay, lFp)
+//GO(snd_pcm_status_get_htstamp, vFpp)
+//GO(snd_pcm_status_get_overrange, LFp)
+//GO(snd_pcm_status_get_state, uFp)
+//GO(snd_pcm_status_get_trigger_htstamp, vFpp)
+//GO(snd_pcm_status_get_trigger_tstamp, vFpp)
+//GO(snd_pcm_status_get_tstamp, vFpp)
+//GO(snd_pcm_status_malloc, iFp)
+//GO(snd_pcm_stream, uFp)
+//GO(snd_pcm_stream_name, pFu)
+//GO(snd_pcm_subformat_description, pFi)
+//GO(snd_pcm_subformat_mask_any, vFp)
+//GO(snd_pcm_subformat_mask_copy, vFpp)
+//GO(snd_pcm_subformat_mask_empty, iFp)
+//GO(snd_pcm_subformat_mask_free, vFp)
+//GO(snd_pcm_subformat_mask_malloc, iFp)
+//GO(snd_pcm_subformat_mask_none, vFp)
+//GO(snd_pcm_subformat_mask_reset, vFpi)
+//GO(snd_pcm_subformat_mask_set, vFpi)
+//GO(snd_pcm_subformat_mask_test, iFpi)
+//GO(snd_pcm_subformat_name, pFi)
+//GO(snd_pcm_sw_params, iFpp)
+//GO(snd_pcm_sw_params_copy, vFpp)
+//GO(snd_pcm_sw_params_current, iFpp)
+//GO(snd_pcm_sw_params_dump, iFpp)
+//GO(snd_pcm_sw_params_free, vFp)
+//GO(snd_pcm_sw_params_get_avail_min, iFpp)
+//GO(snd_pcm_sw_params_get_boundary, iFpp)
+//GO(snd_pcm_sw_params_get_silence_size, iFpp)
+//GO(snd_pcm_sw_params_get_silence_threshold, iFpp)
+//GO(snd_pcm_sw_params_get_sleep_min, iFpp)
+//GO(snd_pcm_sw_params_get_start_mode, uFp)
+//GO(snd_pcm_sw_params_get_start_threshold, iFpp)
+//GO(snd_pcm_sw_params_get_stop_threshold, iFpp)
+//GO(snd_pcm_sw_params_get_tstamp_mode, iFpp)
+//GO(snd_pcm_sw_params_get_xfer_align, iFpp)
+//GO(snd_pcm_sw_params_get_xrun_mode, uFp)
+//GO(snd_pcm_sw_params_malloc, iFp)
+//GO(snd_pcm_sw_params_set_avail_min, iFppL)
+//GO(snd_pcm_sw_params_set_period_event, iFppi)
+//GO(snd_pcm_sw_params_set_silence_size, iFppL)
+//GO(snd_pcm_sw_params_set_silence_threshold, iFppL)
+//GO(snd_pcm_sw_params_set_sleep_min, iFppu)
+//GO(snd_pcm_sw_params_set_start_mode, iFppu)
+//GO(snd_pcm_sw_params_set_start_threshold, iFppL)
+//GO(snd_pcm_sw_params_set_stop_threshold, iFppL)
+//GO(snd_pcm_sw_params_set_tstamp_mode, iFppu)
+//GO(snd_pcm_sw_params_set_tstamp_type, iFppu)
+//GO(snd_pcm_sw_params_set_xfer_align, iFppL)
+//GO(snd_pcm_sw_params_set_xrun_mode, iFppu)
+//GO(snd_pcm_tstamp_mode_name, pFu)
+//GO(snd_pcm_type, uFp)
+//GO(snd_pcm_type_name, pFu)
+//GO(snd_pcm_unlink, iFp)
+//GO(snd_pcm_wait, iFpi)
+GO(snd_pcm_writei, lFppL)   
+//GO(snd_pcm_writen, lFppL)
+//GO(snd_pcm_xrun_mode_name, pFu)
+//GO(snd_spcm_init, iFpuuiiuuu)
+//GO(snd_spcm_init_duplex, iFppuuiiuuuu)
+//GO(snd_spcm_init_get_params, iFpppp)
+//GO(snd_rawmidi_open, iFpppi)
+//GO(snd_rawmidi_open_lconf, iFpppip)
+//GO(snd_rawmidi_close, iFp)
+//GO(snd_rawmidi_poll_descriptors_count, iFp)
+//GO(snd_rawmidi_poll_descriptors, iFppu)
+//GO(snd_rawmidi_poll_descriptors_revents, iFppup)
+//GO(snd_rawmidi_nonblock, iFpi)
+//GO(snd_rawmidi_info_sizeof, LFv)
+//GO(snd_rawmidi_info_malloc, iFp)
+//GO(snd_rawmidi_info_free, vFp)
+//GO(snd_rawmidi_info_copy, vFpp)
+//GO(snd_rawmidi_info_get_device, uFp)
+//GO(snd_rawmidi_info_get_subdevice, uFp)
+//GO(snd_rawmidi_info_get_stream, uFp)
+//GO(snd_rawmidi_info_get_card, iFp)
+//GO(snd_rawmidi_info_get_flags, uFp)
+//GO(snd_rawmidi_info_get_id, pFp)
+//GO(snd_rawmidi_info_get_name, pFp)
+//GO(snd_rawmidi_info_get_subdevice_name, pFp)
+//GO(snd_rawmidi_info_get_subdevices_count, uFp)
+//GO(snd_rawmidi_info_get_subdevices_avail, uFp)
+//GO(snd_rawmidi_info_set_device, vFpu)
+//GO(snd_rawmidi_info_set_subdevice, vFpu)
+//GO(snd_rawmidi_info_set_stream, vFpu)
+//GO(snd_rawmidi_info, iFpp)
+//GO(snd_rawmidi_params_sizeof, LFv)
+//GO(snd_rawmidi_params_malloc, iFp)
+//GO(snd_rawmidi_params_free, vFp)
+//GO(snd_rawmidi_params_copy, vFpp)
+//GO(snd_rawmidi_params_set_buffer_size, iFppL)
+//GO(snd_rawmidi_params_get_buffer_size, LFp)
+//GO(snd_rawmidi_params_set_avail_min, iFppL)
+//GO(snd_rawmidi_params_get_avail_min, LFp)
+//GO(snd_rawmidi_params_set_no_active_sensing, iFppi)
+//GO(snd_rawmidi_params_get_no_active_sensing, iFp)
+//GO(snd_rawmidi_params, iFpp)
+//GO(snd_rawmidi_params_current, iFpp)
+//GO(snd_rawmidi_status_sizeof, LFv)
+//GO(snd_rawmidi_status_malloc, iFp)
+//GO(snd_rawmidi_status_free, vFp)
+//GO(snd_rawmidi_status_copy, vFpp)
+//GO(snd_rawmidi_status_get_tstamp, vFpp)
+//GO(snd_rawmidi_status_get_avail, LFp)
+//GO(snd_rawmidi_status_get_xruns, LFp)
+//GO(snd_rawmidi_status, iFpp)
+//GO(snd_rawmidi_drain, iFp)
+//GO(snd_rawmidi_drop, iFp)
+//GO(snd_rawmidi_write, lFppL)
+//GO(snd_rawmidi_read, lFppL)
+//GO(snd_rawmidi_name, pFp)
+//GO(snd_rawmidi_type, uFp)
+//GO(snd_rawmidi_stream, uFp)
+//GO(snd_timer_query_open, iFppi)
+//GO(snd_timer_query_open_lconf, iFppip)
+//GO(snd_timer_query_close, iFp)
+//GO(snd_timer_query_next_device, iFpp)
+//GO(snd_timer_query_info, iFpp)
+//GO(snd_timer_query_params, iFpp)
+//GO(snd_timer_query_status, iFpp)
+//GO(snd_timer_open, iFppi)
+//GO(snd_timer_open_lconf, iFppip)
+//GO(snd_timer_close, iFp)
+//GOM(snd_async_add_timer_handler, iFpppp)
+//GO(snd_async_handler_get_timer, pFp)
+//GO(snd_timer_poll_descriptors_count, iFp)
+//GO(snd_timer_poll_descriptors, iFppu)
+//GO(snd_timer_poll_descriptors_revents, iFppup)
+//GO(snd_timer_info, iFpp)
+//GO(snd_timer_params, iFpp)
+//GO(snd_timer_status, iFpp)
+//GO(snd_timer_start, iFp)
+//GO(snd_timer_stop, iFp)
+//GO(snd_timer_continue, iFp)
+//GO(snd_timer_read, lFppL)
+//GO(snd_timer_id_sizeof, LFv)
+//GO(snd_timer_id_malloc, iFp)
+//GO(snd_timer_id_free, vFp)
+//GO(snd_timer_id_copy, vFpp)
+//GO(snd_timer_id_set_class, vFpi)
+//GO(snd_timer_id_get_class, iFp)
+//GO(snd_timer_id_set_sclass, vFpi)
+//GO(snd_timer_id_get_sclass, iFp)
+//GO(snd_timer_id_set_card, vFpi)
+//GO(snd_timer_id_get_card, iFp)
+//GO(snd_timer_id_set_device, vFpi)
+//GO(snd_timer_id_get_device, iFp)
+//GO(snd_timer_id_set_subdevice, vFpi)
+//GO(snd_timer_id_get_subdevice, iFp)
+//GO(snd_timer_ginfo_sizeof, LFv)
+//GO(snd_timer_ginfo_malloc, iFp)
+//GO(snd_timer_ginfo_free, vFp)
+//GO(snd_timer_ginfo_copy, vFpp)
+//GO(snd_timer_ginfo_set_tid, iFpp)
+//GO(snd_timer_ginfo_get_tid, pFp)
+//GO(snd_timer_ginfo_get_flags, uFp)
+//GO(snd_timer_ginfo_get_card, iFp)
+//GO(snd_timer_ginfo_get_id, pFp)
+//GO(snd_timer_ginfo_get_name, pFp)
+//GO(snd_timer_ginfo_get_resolution, LFp)
+//GO(snd_timer_ginfo_get_resolution_min, LFp)
+//GO(snd_timer_ginfo_get_resolution_max, LFp)
+//GO(snd_timer_ginfo_get_clients, uFp)
+//GO(snd_timer_info_sizeof, LFv)
+//GO(snd_timer_info_malloc, iFp)
+//GO(snd_timer_info_free, vFp)
+//GO(snd_timer_info_copy, vFpp)
+//GO(snd_timer_info_is_slave, iFp)
+//GO(snd_timer_info_get_card, iFp)
+//GO(snd_timer_info_get_id, pFp)
+//GO(snd_timer_info_get_name, pFp)
+//GO(snd_timer_info_get_resolution, lFp)
+//GO(snd_timer_params_sizeof, LFv)
+//GO(snd_timer_params_malloc, iFp)
+//GO(snd_timer_params_free, vFp)
+//GO(snd_timer_params_copy, vFpp)
+//GO(snd_timer_params_set_auto_start, iFpi)
+//GO(snd_timer_params_get_auto_start, iFp)
+//GO(snd_timer_params_set_exclusive, iFpi)
+//GO(snd_timer_params_get_exclusive, iFp)
+//GO(snd_timer_params_set_early_event, iFpi)
+//GO(snd_timer_params_get_early_event, iFp)
+//GO(snd_timer_params_set_ticks, vFpl)
+//GO(snd_timer_params_get_ticks, lFp)
+//GO(snd_timer_params_set_queue_size, vFpl)
+//GO(snd_timer_params_get_queue_size, lFp)
+//GO(snd_timer_params_set_filter, vFpu)
+//GO(snd_timer_params_get_filter, uFp)
+//GO(snd_timer_status_sizeof, LFv)
+//GO(snd_timer_status_malloc, iFp)
+//GO(snd_timer_status_free, vFp)
+//GO(snd_timer_status_copy, vFpp)
+//GO(snd_timer_status_get_timestamp, HFp)
+//GO(snd_timer_status_get_resolution, lFp)
+//GO(snd_timer_status_get_lost, lFp)
+//GO(snd_timer_status_get_overrun, lFp)
+//GO(snd_timer_status_get_queue, lFp)
+//GO(snd_timer_info_get_ticks, lFp)
+//GO(snd_hwdep_open, iFppi)
+//GO(snd_hwdep_close, iFp)
+//GO(snd_hwdep_poll_descriptors, iFppu)
+//GO(snd_hwdep_poll_descriptors_revents, iFppup)
+//GO(snd_hwdep_nonblock, iFpi)
+//GO(snd_hwdep_info, iFpp)
+//GO(snd_hwdep_dsp_status, iFpp)
+//GO(snd_hwdep_dsp_load, iFpp)
+//GO(snd_hwdep_ioctl, iFpup)
+//GO(snd_hwdep_write, lFppL)
+//GO(snd_hwdep_read, lFppL)
+//GO(snd_hwdep_info_sizeof, LFv)
+//GO(snd_hwdep_dsp_status_sizeof, LFv)
+//GO(snd_hwdep_dsp_status_malloc, iFp)
+//GO(snd_hwdep_dsp_status_free, vFp)
+//GO(snd_hwdep_dsp_status_copy, vFpp)
+//GO(snd_hwdep_dsp_status_get_version, uFp)
+//GO(snd_hwdep_dsp_status_get_id, pFp)
+//GO(snd_hwdep_dsp_status_get_num_dsps, uFp)
+//GO(snd_hwdep_dsp_status_get_dsp_loaded, uFp)
+//GO(snd_hwdep_dsp_status_get_chip_ready, uFp)
+//GO(snd_hwdep_dsp_image_sizeof, LFv)
+//GO(snd_hwdep_dsp_image_malloc, iFp)
+//GO(snd_hwdep_dsp_image_free, vFp)
+//GO(snd_hwdep_dsp_image_copy, vFpp)
+//GO(snd_hwdep_dsp_image_get_index, uFp)
+//GO(snd_hwdep_dsp_image_get_name, pFp)
+//GO(snd_hwdep_dsp_image_get_image, pFp)
+//GO(snd_hwdep_dsp_image_get_length, LFp)
+//GO(snd_hwdep_dsp_image_set_index, vFpu)
+//GO(snd_hwdep_dsp_image_set_name, vFpp)
+//GO(snd_hwdep_dsp_image_set_image, vFpp)
+//GO(snd_hwdep_dsp_image_set_length, vFpL)
+GO(snd_card_load, iFi)
+GO(snd_card_next, iFp)
+//GO(snd_card_get_index, iFp)
+GO(snd_card_get_name, iFiBp_            )
+//GO(snd_card_get_longname, iFip)
+//GO(snd_ctl_open, iFppi)
+//GO(snd_ctl_open_lconf, iFppip)
+//GO(snd_ctl_close, iFp)
+//GO(snd_ctl_nonblock, iFpi)
+//GOM(snd_async_add_ctl_handler, iFpppp)
+//GO(snd_async_handler_get_ctl, pFp)
+//GO(snd_ctl_poll_descriptors_count, iFp)
+//GO(snd_ctl_poll_descriptors, iFppu)
+//GO(snd_ctl_poll_descriptors_revents, iFppup)
+//GO(snd_ctl_subscribe_events, iFpi)
+//GO(snd_ctl_card_info, iFpp)
+//GO(snd_ctl_elem_list, iFpp)
+//GO(snd_ctl_elem_info, iFpp)
+//GO(snd_ctl_elem_read, iFpp)
+//GO(snd_ctl_elem_write, iFpp)
+//GO(snd_ctl_elem_lock, iFpp)
+//GO(snd_ctl_elem_unlock, iFpp)
+//GO(snd_ctl_elem_tlv_read, iFpppu)
+//GO(snd_ctl_elem_tlv_write, iFppp)
+//GO(snd_ctl_elem_tlv_command, iFppp)
+//GO(snd_ctl_hwdep_next_device, iFpp)
+//GO(snd_ctl_hwdep_info, iFpp)
+//GO(snd_ctl_pcm_next_device, iFpp)
+//GO(snd_ctl_pcm_info, iFpp)
+//GO(snd_ctl_pcm_prefer_subdevice, iFpi)
+//GO(snd_ctl_rawmidi_next_device, iFpp)
+//GO(snd_ctl_rawmidi_info, iFpp)
+//GO(snd_ctl_rawmidi_prefer_subdevice, iFpi)
+//GO(snd_ctl_set_power_state, iFpu)
+//GO(snd_ctl_get_power_state, iFpp)
+//GO(snd_ctl_read, iFpp)
+//GO(snd_ctl_wait, iFpi)
+//GO(snd_ctl_name, pFp)
+//GO(snd_ctl_type, uFp)
+//GO(snd_ctl_elem_type_name, pFu)
+//GO(snd_ctl_elem_iface_name, pFu)
+//GO(snd_ctl_event_type_name, pFu)
+//GO(snd_ctl_event_elem_get_mask, uFp)
+//GO(snd_ctl_event_elem_get_numid, uFp)
+//GO(snd_ctl_event_elem_get_id, vFpp)
+//GO(snd_ctl_event_elem_get_interface, uFp)
+//GO(snd_ctl_event_elem_get_device, uFp)
+//GO(snd_ctl_event_elem_get_subdevice, uFp)
+//GO(snd_ctl_event_elem_get_name, pFp)
+//GO(snd_ctl_event_elem_get_index, uFp)
+//GO(snd_ctl_elem_list_alloc_space, iFpu)
+//GO(snd_ctl_elem_list_free_space, vFp)
+//GO(snd_ctl_elem_id_sizeof, LFv)
+//GO(snd_ctl_elem_id_malloc, iFp)
+//GO(snd_ctl_elem_id_free, vFp)
+//GO(snd_ctl_elem_id_clear, vFp)
+//GO(snd_ctl_elem_id_copy, vFpp)
+//GO(snd_ctl_elem_id_get_numid, uFp)
+//GO(snd_ctl_elem_id_get_interface, uFp)
+//GO(snd_ctl_elem_id_get_device, uFp)
+//GO(snd_ctl_elem_id_get_subdevice, uFp)
+//GO(snd_ctl_elem_id_get_name, pFp)
+//GO(snd_ctl_elem_id_get_index, uFp)
+//GO(snd_ctl_elem_id_set_numid, vFpu)
+//GO(snd_ctl_elem_id_set_interface, vFpu)
+//GO(snd_ctl_elem_id_set_device, vFpu)
+//GO(snd_ctl_elem_id_set_subdevice, vFpu)
+//GO(snd_ctl_elem_id_set_name, vFpp)
+//GO(snd_ctl_elem_id_set_index, vFpu)
+//GO(snd_ctl_card_info_sizeof, LFv)
+//GO(snd_ctl_card_info_malloc, iFp)
+//GO(snd_ctl_card_info_free, vFp)
+//GO(snd_ctl_card_info_clear, vFp)
+//GO(snd_ctl_card_info_copy, vFpp)
+//GO(snd_ctl_card_info_get_card, iFp)
+//GO(snd_ctl_card_info_get_id, pFp)
+//GO(snd_ctl_card_info_get_driver, pFp)
+//GO(snd_ctl_card_info_get_name, pFp)
+//GO(snd_ctl_card_info_get_longname, pFp)
+//GO(snd_ctl_card_info_get_mixername, pFp)
+//GO(snd_ctl_card_info_get_components, pFp)
+//GO(snd_ctl_event_sizeof, LFv)
+//GO(snd_ctl_event_malloc, iFp)
+//GO(snd_ctl_event_free, vFp)
+//GO(snd_ctl_event_clear, vFp)
+//GO(snd_ctl_event_copy, vFpp)
+//GO(snd_ctl_event_get_type, uFp)
+//GO(snd_ctl_elem_list_sizeof, LFv)
+//GO(snd_ctl_elem_list_malloc, iFp)
+//GO(snd_ctl_elem_list_free, vFp)
+//GO(snd_ctl_elem_list_clear, vFp)
+//GO(snd_ctl_elem_list_copy, vFpp)
+//GO(snd_ctl_elem_list_set_offset, vFpu)
+//GO(snd_ctl_elem_list_get_used, uFp)
+//GO(snd_ctl_elem_list_get_count, uFp)
+//GO(snd_ctl_elem_list_get_id, vFpup)
+//GO(snd_ctl_elem_list_get_numid, uFpu)
+//GO(snd_ctl_elem_list_get_interface, uFpu)
+//GO(snd_ctl_elem_list_get_device, uFpu)
+//GO(snd_ctl_elem_list_get_subdevice, uFpu)
+//GO(snd_ctl_elem_list_get_name, pFpu)
+//GO(snd_ctl_elem_list_get_index, uFpu)
+//GO(snd_ctl_elem_info_sizeof, LFv)
+//GO(snd_ctl_elem_info_malloc, iFp)
+//GO(snd_ctl_elem_info_free, vFp)
+//GO(snd_ctl_elem_info_clear, vFp)
+//GO(snd_ctl_elem_info_copy, vFpp)
+//GO(snd_ctl_elem_info_get_type, uFp)
+//GO(snd_ctl_elem_info_is_readable, iFp)
+//GO(snd_ctl_elem_info_is_writable, iFp)
+//GO(snd_ctl_elem_info_is_volatile, iFp)
+//GO(snd_ctl_elem_info_is_inactive, iFp)
+//GO(snd_ctl_elem_info_is_locked, iFp)
+//GO(snd_ctl_elem_info_is_tlv_readable, iFp)
+//GO(snd_ctl_elem_info_is_tlv_writable, iFp)
+//GO(snd_ctl_elem_info_is_tlv_commandable, iFp)
+//GO(snd_ctl_elem_info_is_owner, iFp)
+//GO(snd_ctl_elem_info_is_user, iFp)
+//GO(snd_ctl_elem_info_get_owner, iFp)
+//GO(snd_ctl_elem_info_get_count, uFp)
+//GO(snd_ctl_elem_info_get_min, lFp)
+//GO(snd_ctl_elem_info_get_max, lFp)
+//GO(snd_ctl_elem_info_get_step, lFp)
+//GO(snd_ctl_elem_info_get_min64, IFp)
+//GO(snd_ctl_elem_info_get_max64, IFp)
+//GO(snd_ctl_elem_info_get_step64, IFp)
+//GO(snd_ctl_elem_info_get_items, uFp)
+//GO(snd_ctl_elem_info_set_item, vFpu)
+//GO(snd_ctl_elem_info_get_item_name, pFp)
+//GO(snd_ctl_elem_info_get_dimensions, iFp)
+//GO(snd_ctl_elem_info_get_dimension, iFpu)
+//GO(snd_ctl_elem_info_get_id, vFpp)
+//GO(snd_ctl_elem_info_get_numid, uFp)
+//GO(snd_ctl_elem_info_get_interface, uFp)
+//GO(snd_ctl_elem_info_get_device, uFp)
+//GO(snd_ctl_elem_info_get_subdevice, uFp)
+//GO(snd_ctl_elem_info_get_name, pFp)
+//GO(snd_ctl_elem_info_get_index, uFp)
+//GO(snd_ctl_elem_info_set_id, vFpp)
+//GO(snd_ctl_elem_info_set_numid, vFpu)
+//GO(snd_ctl_elem_info_set_interface, vFpu)
+//GO(snd_ctl_elem_info_set_device, vFpu)
+//GO(snd_ctl_elem_info_set_subdevice, vFpu)
+//GO(snd_ctl_elem_info_set_name, vFpp)
+//GO(snd_ctl_elem_info_set_index, vFpu)
+//GO(snd_ctl_elem_add_integer, iFppulll)
+//GO(snd_ctl_elem_add_integer64, iFppuIII)
+//GO(snd_ctl_elem_add_boolean, iFppu)
+//GO(snd_ctl_elem_add_iec958, iFpp)
+//GO(snd_ctl_elem_remove, iFpp)
+//GO(snd_ctl_elem_value_sizeof, LFv)
+//GO(snd_ctl_elem_value_malloc, iFp)
+//GO(snd_ctl_elem_value_free, vFp)
+//GO(snd_ctl_elem_value_clear, vFp)
+//GO(snd_ctl_elem_value_copy, vFpp)
+//GO(snd_ctl_elem_value_get_id, vFpp)
+//GO(snd_ctl_elem_value_get_numid, uFp)
+//GO(snd_ctl_elem_value_get_interface, uFp)
+//GO(snd_ctl_elem_value_get_device, uFp)
+//GO(snd_ctl_elem_value_get_subdevice, uFp)
+//GO(snd_ctl_elem_value_get_name, pFp)
+//GO(snd_ctl_elem_value_get_index, uFp)
+//GO(snd_ctl_elem_value_set_id, vFpp)
+//GO(snd_ctl_elem_value_set_numid, vFpu)
+//GO(snd_ctl_elem_value_set_interface, vFpu)
+//GO(snd_ctl_elem_value_set_device, vFpu)
+//GO(snd_ctl_elem_value_set_subdevice, vFpu)
+//GO(snd_ctl_elem_value_set_name, vFpp)
+//GO(snd_ctl_elem_value_set_index, vFpu)
+//GO(snd_ctl_elem_value_get_boolean, iFpu)
+//GO(snd_ctl_elem_value_get_integer, lFpu)
+//GO(snd_ctl_elem_value_get_integer64, IFpu)
+//GO(snd_ctl_elem_value_get_enumerated, uFpu)
+//GO(snd_ctl_elem_value_get_byte, CFpu)
+//GO(snd_ctl_elem_value_set_boolean, vFpul)
+//GO(snd_ctl_elem_value_set_integer, vFpul)
+//GO(snd_ctl_elem_value_set_integer64, vFpuI)
+//GO(snd_ctl_elem_value_set_enumerated, vFpuu)
+//GO(snd_ctl_elem_value_set_byte, vFpuC)
+//GO(snd_ctl_elem_set_bytes, vFppL)
+//GO(snd_ctl_elem_value_get_bytes, pFp)
+//GO(snd_ctl_elem_value_get_iec958, vFpp)
+//GO(snd_ctl_elem_value_set_iec958, vFpp)
+//GO(snd_hctl_compare_fast, iFpp)
+//GO(snd_hctl_open, iFppi)
+//GO(snd_hctl_open_ctl, iFpp)
+//GO(snd_hctl_close, iFp)
+//GO(snd_hctl_nonblock, iFpi)
+//GO(snd_hctl_poll_descriptors_count, iFp)
+//GO(snd_hctl_poll_descriptors, iFppu)
+//GO(snd_hctl_poll_descriptors_revents, iFppup)
+//GO(snd_hctl_get_count, uFp)
+//GOM(snd_hctl_set_compare, iFpp)
+//GO(snd_hctl_first_elem, pFp)
+//GO(snd_hctl_last_elem, pFp)
+//GO(snd_hctl_find_elem, pFpp)
+//GOM(snd_hctl_set_callback, vFpp)
+//GO(snd_hctl_set_callback_private, vFpp)
+//GO(snd_hctl_get_callback_private, pFp)
+//GO(snd_hctl_load, iFp)
+//GO(snd_hctl_free, iFp)
+//GO(snd_hctl_handle_events, iFp)
+//GO(snd_hctl_name, pFp)
+//GO(snd_hctl_wait, iFpi)
+//GO(snd_hctl_ctl, pFp)
+//GO(snd_hctl_elem_next, pFp)
+//GO(snd_hctl_elem_prev, pFp)
+//GO(snd_hctl_elem_info, iFpp)
+//GO(snd_hctl_elem_read, iFpp)
+//GO(snd_hctl_elem_write, iFpp)
+//GO(snd_hctl_elem_tlv_read, iFppu)
+//GO(snd_hctl_elem_tlv_write, iFpp)
+//GO(snd_hctl_elem_tlv_command, iFpp)
+//GO(snd_hctl_elem_get_hctl, pFp)
+//GO(snd_hctl_elem_get_id, vFpp)
+//GO(snd_hctl_elem_get_numid, uFp)
+//GO(snd_hctl_elem_get_interface, uFp)
+//GO(snd_hctl_elem_get_device, uFp)
+//GO(snd_hctl_elem_get_subdevice, uFp)
+//GO(snd_hctl_elem_get_name, pFp)
+//GO(snd_hctl_elem_get_index, uFp)
+//GOM(snd_hctl_elem_set_callback, vFpp)
+//GO(snd_hctl_elem_get_callback_private, pFp)
+//GO(snd_hctl_elem_set_callback_private, vFpp)
+//GO(snd_sctl_build, iFppppi)
+//GO(snd_sctl_free, iFp)
+//GO(snd_sctl_install, iFp)
+//GO(snd_sctl_remove, iFp)
+//GO(snd_mixer_open, iFpi)
+//GO(snd_mixer_close, iFp)
+//GO(snd_mixer_first_elem, pFp)
+//GO(snd_mixer_last_elem, pFp)
+//GO(snd_mixer_handle_events, iFp)
+//GO(snd_mixer_attach, iFpp)
+//GO(snd_mixer_attach_hctl, iFpp)
+//GO(snd_mixer_detach, iFpp)
+//GO(snd_mixer_detach_hctl, iFpp)
+//GO(snd_mixer_get_hctl, iFppp)
+//GO(snd_mixer_poll_descriptors_count, iFp)
+//GO(snd_mixer_poll_descriptors, iFppu)
+//GO(snd_mixer_poll_descriptors_revents, iFppup)
+//GO(snd_mixer_load, iFp)
+//GO(snd_mixer_free, vFp)
+//GO(snd_mixer_wait, iFpi)
+//GOM(snd_mixer_set_compare, iFEpp)
+//GOM(snd_mixer_set_callback, vFpp)
+//GO(snd_mixer_get_callback_private, pFp)
+//GO(snd_mixer_set_callback_private, vFpp)
+//GO(snd_mixer_get_count, uFp)
+//GO(snd_mixer_class_unregister, iFp)
+//GO(snd_mixer_elem_next, pFp)
+//GO(snd_mixer_elem_prev, pFp)
+//GOM(snd_mixer_elem_set_callback, vFEpp)
+//GO(snd_mixer_elem_get_callback_private, pFp)
+//GO(snd_mixer_elem_set_callback_private, vFpp)
+//GO(snd_mixer_elem_get_type, uFp)
+//GO(snd_mixer_class_register, iFpp)
+//GO(snd_mixer_add_elem, iFpp)
+//GO(snd_mixer_remove_elem, iFpp)
+//GOM(snd_mixer_elem_new, iFEpuipp)
+//GO(snd_mixer_elem_add, iFpp)
+//GO(snd_mixer_elem_remove, iFp)
+//GO(snd_mixer_elem_free, vFp)
+//GO(snd_mixer_elem_info, iFp)
+//GO(snd_mixer_elem_value, iFp)
+//GO(snd_mixer_elem_attach, iFpp)
+//GO(snd_mixer_elem_detach, iFpp)
+//GO(snd_mixer_elem_empty, iFp)
+//GO(snd_mixer_elem_get_private, pFp)
+//GO(snd_mixer_class_sizeof, LFv)
+//GO(snd_mixer_class_malloc, iFp)
+//GO(snd_mixer_class_free, vFp)
+//GO(snd_mixer_class_copy, vFpp)
+//GO(snd_mixer_class_get_mixer, pFp)
+//GOM(snd_mixer_class_get_event, pFEp)
+//GO(snd_mixer_class_get_private, pFp)
+//GOM(snd_mixer_class_get_compare, pFEp)
+//GOM(snd_mixer_class_set_event, iFEpp)
+//GO(snd_mixer_class_set_private, iFpp)
+//GOM(snd_mixer_class_set_private_free, iFEpp)
+//GOM(snd_mixer_class_set_compare, iFEpp)
+//GO(snd_mixer_selem_channel_name, pFi)
+//GO(snd_mixer_selem_register, iFppp)
+//GO(snd_mixer_selem_get_id, vFpp)
+//GO(snd_mixer_selem_get_name, pFp)
+//GO(snd_mixer_selem_get_index, uFp)
+//GO(snd_mixer_find_selem, pFpp)
+//GO(snd_mixer_selem_ask_playback_dB_vol, iFplip)
+//GO(snd_mixer_selem_ask_playback_vol_dB, iFplp)
+//GO(snd_mixer_selem_is_active, iFp)
+//GO(snd_mixer_selem_is_playback_mono, iFp)
+//GO(snd_mixer_selem_has_playback_channel, iFpi)
+//GO(snd_mixer_selem_is_capture_mono, iFp)
+//GO(snd_mixer_selem_has_capture_channel, iFpi)
+//GO(snd_mixer_selem_get_capture_group, iFp)
+//GO(snd_mixer_selem_has_common_volume, iFp)
+//GO(snd_mixer_selem_has_playback_volume, iFp)
+//GO(snd_mixer_selem_has_playback_volume_joined, iFp)
+//GO(snd_mixer_selem_has_capture_volume, iFp)
+//GO(snd_mixer_selem_has_capture_volume_joined, iFp)
+//GO(snd_mixer_selem_has_common_switch, iFp)
+//GO(snd_mixer_selem_has_playback_switch, iFp)
+//GO(snd_mixer_selem_has_playback_switch_joined, iFp)
+//GO(snd_mixer_selem_has_capture_switch, iFp)
+//GO(snd_mixer_selem_has_capture_switch_joined, iFp)
+//GO(snd_mixer_selem_has_capture_switch_exclusive, iFp)
+//GO(snd_mixer_selem_get_playback_volume, iFpip)
+//GO(snd_mixer_selem_get_capture_volume, iFpip)
+//GO(snd_mixer_selem_get_playback_dB, iFpip)
+//GO(snd_mixer_selem_get_capture_dB, iFpip)
+//GO(snd_mixer_selem_get_playback_switch, iFpip)
+//GO(snd_mixer_selem_get_capture_switch, iFpip)
+//GO(snd_mixer_selem_set_playback_volume, iFpil)
+//GO(snd_mixer_selem_set_capture_volume, iFpil)
+//GO(snd_mixer_selem_set_playback_dB, iFpili)
+//GO(snd_mixer_selem_set_capture_dB, iFpili)
+//GO(snd_mixer_selem_set_playback_volume_all, iFpl)
+//GO(snd_mixer_selem_set_capture_volume_all, iFpl)
+//GO(snd_mixer_selem_set_playback_dB_all, iFpli)
+//GO(snd_mixer_selem_set_capture_dB_all, iFpli)
+//GO(snd_mixer_selem_set_playback_switch, iFpii)
+//GO(snd_mixer_selem_set_capture_switch, iFpii)
+//GO(snd_mixer_selem_set_playback_switch_all, iFpi)
+//GO(snd_mixer_selem_set_capture_switch_all, iFpi)
+//GO(snd_mixer_selem_get_playback_volume_range, iFppp)
+//GO(snd_mixer_selem_get_playback_dB_range, iFppp)
+//GO(snd_mixer_selem_set_playback_volume_range, iFpll)
+//GO(snd_mixer_selem_get_capture_volume_range, iFppp)
+//GO(snd_mixer_selem_get_capture_dB_range, iFppp)
+//GO(snd_mixer_selem_set_capture_volume_range, iFpll)
+//GO(snd_mixer_selem_is_enumerated, iFp)
+//GO(snd_mixer_selem_is_enum_playback, iFp)
+//GO(snd_mixer_selem_is_enum_capture, iFp)
+//GO(snd_mixer_selem_get_enum_items, iFp)
+//GO(snd_mixer_selem_get_enum_item_name, iFpuLp)
+//GO(snd_mixer_selem_get_enum_item, iFpip)
+//GO(snd_mixer_selem_set_enum_item, iFpiu)
+//GO(snd_mixer_selem_id_sizeof, LFv)
+//GO(snd_mixer_selem_id_malloc, iFp)
+//GO(snd_mixer_selem_id_free, vFp)
+//GO(snd_mixer_selem_id_copy, vFpp)
+//GO(snd_mixer_selem_id_get_name, pFp)
+//GO(snd_mixer_selem_id_get_index, uFp)
+//GO(snd_mixer_selem_id_set_name, vFpp)
+//GO(snd_mixer_selem_id_set_index, vFpu)
+//GO(snd_seq_open, iFppii)
+//GO(snd_seq_open_lconf, iFppiip)
+//GO(snd_seq_name, pFp)
+//GO(snd_seq_type, uFp)
+//GO(snd_seq_close, iFp)
+//GO(snd_seq_poll_descriptors_count, iFpw)
+//GO(snd_seq_poll_descriptors, iFppuw)
+//GO(snd_seq_poll_descriptors_revents, iFppup)
+//GO(snd_seq_nonblock, iFpi)
+//GO(snd_seq_client_id, iFp)
+//GO(snd_seq_get_output_buffer_size, LFp)
+//GO(snd_seq_get_input_buffer_size, LFp)
+//GO(snd_seq_set_output_buffer_size, iFpL)
+//GO(snd_seq_set_input_buffer_size, iFpL)
+//GO(snd_seq_system_info_sizeof, LFv)
+//GO(snd_seq_system_info_malloc, iFp)
+//GO(snd_seq_system_info_free, vFp)
+//GO(snd_seq_system_info_copy, vFpp)
+//GO(snd_seq_system_info_get_queues, iFp)
+//GO(snd_seq_system_info_get_clients, iFp)
+//GO(snd_seq_system_info_get_ports, iFp)
+//GO(snd_seq_system_info_get_channels, iFp)
+//GO(snd_seq_system_info_get_cur_clients, iFp)
+//GO(snd_seq_system_info_get_cur_queues, iFp)
+//GO(snd_seq_system_info, iFpp)
+//GO(snd_seq_client_info_sizeof, LFv)
+//GO(snd_seq_client_info_malloc, iFp)
+//GO(snd_seq_client_info_free, vFp)
+//GO(snd_seq_client_info_copy, vFpp)
+//GO(snd_seq_client_info_get_client, iFp)
+//GO(snd_seq_client_info_get_type, uFp)
+//GO(snd_seq_client_info_get_name, pFp)
+//GO(snd_seq_client_info_get_broadcast_filter, iFp)
+//GO(snd_seq_client_info_get_error_bounce, iFp)
+//GO(snd_seq_client_info_get_event_filter, pFp)
+//GO(snd_seq_client_info_get_num_ports, iFp)
+//GO(snd_seq_client_info_get_event_lost, iFp)
+//GO(snd_seq_client_info_set_client, vFpi)
+//GO(snd_seq_client_info_set_name, vFpp)
+//GO(snd_seq_client_info_set_broadcast_filter, vFpi)
+//GO(snd_seq_client_info_set_error_bounce, vFpi)
+//GO(snd_seq_client_info_set_event_filter, vFpp)
+//GO(snd_seq_get_client_info, iFpp)
+//GO(snd_seq_get_any_client_info, iFpip)
+//GO(snd_seq_set_client_info, iFpp)
+//GO(snd_seq_query_next_client, iFpp)
+//GO(snd_seq_client_pool_sizeof, LFv)
+//GO(snd_seq_client_pool_malloc, iFp)
+//GO(snd_seq_client_pool_free, vFp)
+//GO(snd_seq_client_pool_copy, vFpp)
+//GO(snd_seq_client_pool_get_client, iFp)
+//GO(snd_seq_client_pool_get_output_pool, LFp)
+//GO(snd_seq_client_pool_get_input_pool, LFp)
+//GO(snd_seq_client_pool_get_output_room, LFp)
+//GO(snd_seq_client_pool_get_output_free, LFp)
+//GO(snd_seq_client_pool_get_input_free, LFp)
+//GO(snd_seq_client_pool_set_output_pool, vFpL)
+//GO(snd_seq_client_pool_set_input_pool, vFpL)
+//GO(snd_seq_client_pool_set_output_room, vFpL)
+//GO(snd_seq_get_client_pool, iFpp)
+//GO(snd_seq_set_client_pool, iFpp)
+//GO(snd_seq_port_info_sizeof, LFv)
+//GO(snd_seq_port_info_malloc, iFp)
+//GO(snd_seq_port_info_free, vFp)
+//GO(snd_seq_port_info_copy, vFpp)
+//GO(snd_seq_port_info_get_client, iFp)
+//GO(snd_seq_port_info_get_port, iFp)
+//GO(snd_seq_port_info_get_addr, pFp)
+//GO(snd_seq_port_info_get_name, pFp)
+//GO(snd_seq_port_info_get_capability, uFp)
+//GO(snd_seq_port_info_get_type, uFp)
+//GO(snd_seq_port_info_get_midi_channels, iFp)
+//GO(snd_seq_port_info_get_midi_voices, iFp)
+//GO(snd_seq_port_info_get_synth_voices, iFp)
+//GO(snd_seq_port_info_get_read_use, iFp)
+//GO(snd_seq_port_info_get_write_use, iFp)
+//GO(snd_seq_port_info_get_port_specified, iFp)
+//GO(snd_seq_port_info_get_timestamping, iFp)
+//GO(snd_seq_port_info_get_timestamp_real, iFp)
+//GO(snd_seq_port_info_get_timestamp_queue, iFp)
+//GO(snd_seq_port_info_set_client, vFpi)
+//GO(snd_seq_port_info_set_port, vFpi)
+//GO(snd_seq_port_info_set_addr, vFpp)
+//GO(snd_seq_port_info_set_name, vFpp)
+//GO(snd_seq_port_info_set_capability, vFpu)
+//GO(snd_seq_port_info_set_type, vFpu)
+//GO(snd_seq_port_info_set_midi_channels, vFpi)
+//GO(snd_seq_port_info_set_midi_voices, vFpi)
+//GO(snd_seq_port_info_set_synth_voices, vFpi)
+//GO(snd_seq_port_info_set_port_specified, vFpi)
+//GO(snd_seq_port_info_set_timestamping, vFpi)
+//GO(snd_seq_port_info_set_timestamp_real, vFpi)
+//GO(snd_seq_port_info_set_timestamp_queue, vFpi)
+//GO(snd_seq_create_port, iFpp)
+//GO(snd_seq_delete_port, iFpi)
+//GO(snd_seq_get_port_info, iFpip)
+//GO(snd_seq_get_any_port_info, iFpiip)
+//GO(snd_seq_set_port_info, iFpip)
+//GO(snd_seq_query_next_port, iFpp)
+//GO(snd_seq_port_subscribe_sizeof, LFv)
+//GO(snd_seq_port_subscribe_malloc, iFp)
+//GO(snd_seq_port_subscribe_free, vFp)
+//GO(snd_seq_port_subscribe_copy, vFpp)
+//GO(snd_seq_port_subscribe_get_sender, pFp)
+//GO(snd_seq_port_subscribe_get_dest, pFp)
+//GO(snd_seq_port_subscribe_get_queue, iFp)
+//GO(snd_seq_port_subscribe_get_exclusive, iFp)
+//GO(snd_seq_port_subscribe_get_time_update, iFp)
+//GO(snd_seq_port_subscribe_get_time_real, iFp)
+//GO(snd_seq_port_subscribe_set_sender, vFpp)
+//GO(snd_seq_port_subscribe_set_dest, vFpp)
+//GO(snd_seq_port_subscribe_set_queue, vFpi)
+//GO(snd_seq_port_subscribe_set_exclusive, vFpi)
+//GO(snd_seq_port_subscribe_set_time_update, vFpi)
+//GO(snd_seq_port_subscribe_set_time_real, vFpi)
+//GO(snd_seq_get_port_subscription, iFpp)
+//GO(snd_seq_subscribe_port, iFpp)
+//GO(snd_seq_unsubscribe_port, iFpp)
+//GO(snd_seq_query_subscribe_sizeof, LFv)
+//GO(snd_seq_query_subscribe_malloc, iFp)
+//GO(snd_seq_query_subscribe_free, vFp)
+//GO(snd_seq_query_subscribe_copy, vFpp)
+//GO(snd_seq_query_subscribe_get_client, iFp)
+//GO(snd_seq_query_subscribe_get_port, iFp)
+//GO(snd_seq_query_subscribe_get_root, pFp)
+//GO(snd_seq_query_subscribe_get_type, uFp)
+//GO(snd_seq_query_subscribe_get_index, iFp)
+//GO(snd_seq_query_subscribe_get_num_subs, iFp)
+//GO(snd_seq_query_subscribe_get_addr, pFp)
+//GO(snd_seq_query_subscribe_get_queue, iFp)
+//GO(snd_seq_query_subscribe_get_exclusive, iFp)
+//GO(snd_seq_query_subscribe_get_time_update, iFp)
+//GO(snd_seq_query_subscribe_get_time_real, iFp)
+//GO(snd_seq_query_subscribe_set_client, vFpi)
+//GO(snd_seq_query_subscribe_set_port, vFpi)
+//GO(snd_seq_query_subscribe_set_root, vFpp)
+//GO(snd_seq_query_subscribe_set_type, vFpu)
+//GO(snd_seq_query_subscribe_set_index, vFpi)
+//GO(snd_seq_query_port_subscribers, iFpp)
+//GO(snd_seq_queue_info_sizeof, LFv)
+//GO(snd_seq_queue_info_malloc, iFp)
+//GO(snd_seq_queue_info_free, vFp)
+//GO(snd_seq_queue_info_copy, vFpp)
+//GO(snd_seq_queue_info_get_queue, iFp)
+//GO(snd_seq_queue_info_get_name, pFp)
+//GO(snd_seq_queue_info_get_owner, iFp)
+//GO(snd_seq_queue_info_get_locked, iFp)
+//GO(snd_seq_queue_info_get_flags, uFp)
+//GO(snd_seq_queue_info_set_name, vFpp)
+//GO(snd_seq_queue_info_set_owner, vFpi)
+//GO(snd_seq_queue_info_set_locked, vFpi)
+//GO(snd_seq_queue_info_set_flags, vFpu)
+//GO(snd_seq_create_queue, iFpp)
+//GO(snd_seq_alloc_named_queue, iFpp)
+//GO(snd_seq_alloc_queue, iFp)
+//GO(snd_seq_free_queue, iFpi)
+//GO(snd_seq_get_queue_info, iFpip)
+//GO(snd_seq_set_queue_info, iFpip)
+//GO(snd_seq_query_named_queue, iFpp)
+//GO(snd_seq_get_queue_usage, iFpi)
+//GO(snd_seq_set_queue_usage, iFpii)
+//GO(snd_seq_queue_status_sizeof, LFv)
+//GO(snd_seq_queue_status_malloc, iFp)
+//GO(snd_seq_queue_status_free, vFp)
+//GO(snd_seq_queue_status_copy, vFpp)
+//GO(snd_seq_queue_status_get_queue, iFp)
+//GO(snd_seq_queue_status_get_events, iFp)
+//GO(snd_seq_queue_status_get_tick_time, uFp)
+//GO(snd_seq_queue_status_get_real_time, pFp)
+//GO(snd_seq_queue_status_get_status, uFp)
+//GO(snd_seq_get_queue_status, iFpip)
+//GO(snd_seq_queue_tempo_sizeof, LFv)
+//GO(snd_seq_queue_tempo_malloc, iFp)
+//GO(snd_seq_queue_tempo_free, vFp)
+//GO(snd_seq_queue_tempo_copy, vFpp)
+//GO(snd_seq_queue_tempo_get_queue, iFp)
+//GO(snd_seq_queue_tempo_get_tempo, uFp)
+//GO(snd_seq_queue_tempo_get_ppq, iFp)
+//GO(snd_seq_queue_tempo_get_skew, uFp)
+//GO(snd_seq_queue_tempo_get_skew_base, uFp)
+//GO(snd_seq_queue_tempo_set_tempo, vFpu)
+//GO(snd_seq_queue_tempo_set_ppq, vFpi)
+//GO(snd_seq_queue_tempo_set_skew, vFpu)
+//GO(snd_seq_queue_tempo_set_skew_base, vFpu)
+//GO(snd_seq_get_queue_tempo, iFpip)
+//GO(snd_seq_set_queue_tempo, iFpip)
+//GO(snd_seq_queue_timer_sizeof, LFv)
+//GO(snd_seq_queue_timer_malloc, iFp)
+//GO(snd_seq_queue_timer_free, vFp)
+//GO(snd_seq_queue_timer_copy, vFpp)
+//GO(snd_seq_queue_timer_get_queue, iFp)
+//GO(snd_seq_queue_timer_get_type, uFp)
+//GO(snd_seq_queue_timer_get_id, pFp)
+//GO(snd_seq_queue_timer_get_resolution, uFp)
+//GO(snd_seq_queue_timer_set_type, vFpu)
+//GO(snd_seq_queue_timer_set_id, vFpp)
+//GO(snd_seq_queue_timer_set_resolution, vFpu)
+//GO(snd_seq_get_queue_timer, iFpip)
+//GO(snd_seq_set_queue_timer, iFpip)
+//GO(snd_seq_free_event, iFp)
+//GO(snd_seq_event_length, lFp)
+//GO(snd_seq_event_output, iFpp)
+//GO(snd_seq_event_output_buffer, iFpp)
+//GO(snd_seq_event_output_direct, iFpp)
+//GO(snd_seq_event_input, iFpp)
+//GO(snd_seq_event_input_pending, iFpi)
+//GO(snd_seq_drain_output, iFp)
+//GO(snd_seq_event_output_pending, iFp)
+//GO(snd_seq_extract_output, iFpp)
+//GO(snd_seq_drop_output, iFp)
+//GO(snd_seq_drop_output_buffer, iFp)
+//GO(snd_seq_drop_input, iFp)
+//GO(snd_seq_drop_input_buffer, iFp)
+//GO(snd_seq_remove_events_sizeof, LFv)
+//GO(snd_seq_remove_events_malloc, iFp)
+//GO(snd_seq_remove_events_free, vFp)
+//GO(snd_seq_remove_events_copy, vFpp)
+//GO(snd_seq_remove_events_get_condition, uFp)
+//GO(snd_seq_remove_events_get_queue, iFp)
+//GO(snd_seq_remove_events_get_time, pFp)
+//GO(snd_seq_remove_events_get_dest, pFp)
+//GO(snd_seq_remove_events_get_channel, iFp)
+//GO(snd_seq_remove_events_get_event_type, iFp)
+//GO(snd_seq_remove_events_get_tag, iFp)
+//GO(snd_seq_remove_events_set_condition, vFpu)
+//GO(snd_seq_remove_events_set_queue, vFpi)
+//GO(snd_seq_remove_events_set_time, vFpp)
+//GO(snd_seq_remove_events_set_dest, vFpp)
+//GO(snd_seq_remove_events_set_channel, vFpi)
+//GO(snd_seq_remove_events_set_event_type, vFpi)
+//GO(snd_seq_remove_events_set_tag, vFpi)
+//GO(snd_seq_remove_events, iFpp)
+//GO(snd_seq_set_bit, vFip)
+//GO(snd_seq_change_bit, iFip)
+//GO(snd_seq_get_bit, iFip)
+//GO(snd_midi_event_new, iFLp)
+//GO(snd_midi_event_resize_buffer, iFpL)
+//GO(snd_midi_event_free, vFp)
+//GO(snd_midi_event_init, vFp)
+//GO(snd_midi_event_reset_encode, vFp)
+//GO(snd_midi_event_reset_decode, vFp)
+//GO(snd_midi_event_no_status, vFpi)
+//GO(snd_midi_event_encode, lFpplp)
+//GO(snd_midi_event_encode_byte, iFpip)
+//GO(snd_midi_event_decode, lFpplp)
+//GO(snd_seq_control_queue, iFpiiip)
+//GO(snd_seq_create_simple_port, iFppuu)
+//GO(snd_seq_delete_simple_port, iFpi)
+//GO(snd_seq_connect_from, iFpiii)
+//GO(snd_seq_connect_to, iFpiii)
+//GO(snd_seq_disconnect_from, iFpiii)
+//GO(snd_seq_disconnect_to, iFpiii)
+//GO(snd_seq_set_client_name, iFpp)
+//GO(snd_seq_set_client_event_filter, iFpi)
+//GO(snd_seq_set_client_pool_output_room, iFpL)
+//GO(snd_seq_set_client_pool_input, iFpL)
+//GO(snd_seq_reset_pool_output, iFp)
+//GO(snd_seq_reset_pool_input, iFp)
+//GO(snd_seq_sync_output_queue, iFp)
+//GO(snd_seq_parse_address, iFppp)
+
+//GO(snd_hwdep_info_get_iface, uFp)
+//DATAM(snd_lib_error, 8)
+GO(superdummy_error_handler, vFpipipV)    // dummy to have the bridge definition