# along with mLib/Python; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-cdef extern from 'mLib/unihash.h':
- ctypedef int uint32
- ctypedef struct unihash_info:
- pass
- void unihash_setkey(unihash_info *i, uint32 k)
- uint32 UNIHASH_INIT(unihash_info *i)
- uint32 unihash_hash(unihash_info *i, uint32 a, void *p, int sz)
- unihash_info unihash_global
-
-cdef extern from 'limits.h':
- enum:
- LONG_MAX
-
-cdef extern from 'Python.h':
- int PyObject_AsReadBuffer(obj, void **buf, int *len) except -1
- PyInt_FromLong(long i)
- PyLong_FromUnsignedLong(unsigned long i)
-
-cdef _u32(uint32 x):
- if x < LONG_MAX:
- return PyInt_FromLong(x)
- else:
- return PyLong_FromUnsignedLong(x)
-
def setglobalkey(uint32 k):
unihash_setkey(&unihash_global, k)