/* This file was generated by PyBindGen 0.15.0 */
#define PY_SSIZE_T_CLEAN
#include <Python.h>
#include <stddef.h>


#if PY_VERSION_HEX < 0x020400F0

#define PyEval_ThreadsInitialized() 1

#define Py_CLEAR(op)				\
        do {                            	\
                if (op) {			\
                        PyObject *tmp = (PyObject *)(op);	\
                        (op) = NULL;		\
                        Py_DECREF(tmp);		\
                }				\
        } while (0)


#define Py_VISIT(op)							\
        do { 								\
                if (op) {						\
                        int vret = visit((PyObject *)(op), arg);	\
                        if (vret)					\
                                return vret;				\
                }							\
        } while (0)

#endif



#if PY_VERSION_HEX < 0x020500F0

typedef int Py_ssize_t;
# define PY_SSIZE_T_MAX INT_MAX
# define PY_SSIZE_T_MIN INT_MIN
typedef inquiry lenfunc;
typedef intargfunc ssizeargfunc;
typedef intobjargproc ssizeobjargproc;

#endif


#if     __GNUC__ > 2
# define PYBINDGEN_UNUSED(param) param __attribute__((__unused__))
#elif     __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
# define PYBINDGEN_UNUSED(param) __attribute__((__unused__)) param
#else
# define PYBINDGEN_UNUSED(param) param
#endif  /* !__GNUC__ */

typedef enum _PyBindGenWrapperFlags {
   PYBINDGEN_WRAPPER_FLAG_NONE = 0,
   PYBINDGEN_WRAPPER_FLAG_OBJECT_NOT_OWNED = (1<<0),
} PyBindGenWrapperFlags;


#include "a.h"
static PyMethodDef a1_std_functions[] = {
    {NULL, NULL, 0, NULL}
};

static PyObject *
inita1_std(void)
{
    PyObject *m;
    m = Py_InitModule3((char *) "a1.std", a1_std_functions, NULL);
    if (m == NULL) {
        return NULL;
    }
    return m;
}
/* --- module functions --- */


PyObject *
_wrap_a1ADoB(PyObject * PYBINDGEN_UNUSED(dummy), PyObject *args, PyObject *kwargs)
{
    PyObject *py_retval;
    unsigned int b;
    const char *keywords[] = {"b", NULL};

    if (!PyArg_ParseTupleAndKeywords(args, kwargs, (char *) "I", (char **) keywords, &b)) {
        return NULL;
    }
    ADoB(b);
    Py_INCREF(Py_None);
    py_retval = Py_None;
    return py_retval;
}
PyObject * _wrap_a1ADoB(PyObject * PYBINDGEN_UNUSED(dummy), PyObject *args, PyObject *kwargs);


PyObject *
_wrap_a1ADoC()
{
    PyObject *py_retval;
    uint32_t retval;

    retval = ADoC();
    py_retval = Py_BuildValue((char *) "N", PyLong_FromUnsignedLong(retval));
    return py_retval;
}
PyObject * _wrap_a1ADoC();


PyObject *
_wrap_a1ADoA()
{
    PyObject *py_retval;

    ADoA();
    Py_INCREF(Py_None);
    py_retval = Py_None;
    return py_retval;
}
PyObject * _wrap_a1ADoA();

static PyMethodDef a1_functions[] = {
    {(char *) "ADoB", (PyCFunction) _wrap_a1ADoB, METH_KEYWORDS|METH_VARARGS, NULL },
    {(char *) "ADoC", (PyCFunction) _wrap_a1ADoC, METH_NOARGS, NULL },
    {(char *) "ADoA", (PyCFunction) _wrap_a1ADoA, METH_NOARGS, NULL },
    {NULL, NULL, 0, NULL}
};


PyMODINIT_FUNC
#if defined(__GNUC__) && __GNUC__ >= 4
__attribute__ ((visibility("default")))
#endif
inita1(void)
{
    PyObject *m;
    PyObject *submodule;
    m = Py_InitModule3((char *) "a1", a1_functions, NULL);
    if (m == NULL) {
        return;
    }
    submodule = inita1_std();
    if (submodule == NULL) {
        return;
    }
    Py_INCREF(submodule);
    PyModule_AddObject(m, (char *) "std", submodule);
}
