Access the C API via the lib object.
Set up some better structure the C API declarations.
Those were nonsense values.  Use more conventional nonsense, at least.
Consistent interface
Put all the typedefs first.
Actually assemble all of the modules.
Try automatically exposing some integer constants.
Oops
dmu_objset_type_t is an enum not a struct
Start trying to support the lzc_create type parameter.
not an argument list (and definitely not a tuple)
Maybe OST is "object set type".
Perhaps no semicolon here
Since there are no elements in this enum, just make it a typedef.

Perhaps as a bonus this will actually work.
Remove stray punctuation from the cdef.
Separate assembling the cdef source from invoking cffi.
iterate over the right things
Just have one error condition for the type.
Handle bogus types that do not hash
reinstate the wrong-type test