11725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o#include <Python.h>
21725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o#include <time.h>
31725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o#include <uuid/uuid.h>
41725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o
51725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'ostatic PyObject * _uuid_generate(PyObject *self, PyObject *args)
61725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o{
71725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o  uuid_t u;
81725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o  char uuid[37];
91725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o  if (!PyArg_ParseTuple(args, "")) return NULL;
101725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o  uuid_generate(u);
111725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o  uuid_unparse(u, uuid);
121725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o  return Py_BuildValue("s", uuid);
131725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o}
141725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o
151725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'ostatic PyMethodDef _uuid_methods[] = {
161725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o  {"generate", _uuid_generate, METH_VARARGS, "Generate UUID"},
171725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o  {NULL, NULL, 0, NULL}
181725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o};
191725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o
201725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'ovoid inite2fsprogs_uuid(void)
211725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o{
221725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o  (void) Py_InitModule("e2fsprogs_uuid", _uuid_methods);
231725c0cf530eec737b9d1ed008e0be8bfb7fcb4fTheodore Ts'o}
24