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