moved SWIG code from python directory to new swig directory. Added
authorFrank Mori Hess <fmhess@speakeasy.net>
Sun, 4 Jan 2004 16:56:35 +0000 (16:56 +0000)
committerFrank Mori Hess <fmhess@speakeasy.net>
Sun, 4 Jan 2004 16:56:35 +0000 (16:56 +0000)
beginnings of support for ruby swig binding

16 files changed:
Makefile.am
configure.ac
python/README.txt [deleted file]
python/comedi.i [deleted file]
python/comedi_wrap.c [deleted file]
swig/Makefile.am [new file with mode: 0644]
swig/comedi.i [new file with mode: 0644]
swig/python/Makefile.am [moved from python/Makefile.am with 52% similarity]
swig/python/comedi.py [moved from python/comedi.py with 99% similarity]
swig/python/comedi_wrap.doc [moved from python/comedi_wrap.doc with 100% similarity]
swig/python/setup.py [moved from python/setup.py with 100% similarity]
swig/python/test_comedi.py [moved from python/test_comedi.py with 100% similarity]
swig/ruby/Makefile.am [new file with mode: 0644]
swig/ruby/examples/cmd [new file with mode: 0755]
swig/ruby/examples/common [new file with mode: 0644]
swig/ruby/syntax_sugar [new file with mode: 0644]

index 7d4aaa5d3d1df30866c84b2f53735e4362a49ad1..3e2c4c85d82355336b9afae2be769dd1c8e44dd3 100644 (file)
@@ -1,5 +1,5 @@
 
-SUBDIRS = lib comedi_calibrate comedi_config man testing demo doc python \
+SUBDIRS = lib comedi_calibrate comedi_config man testing demo doc swig \
        include etc
 
 #pkgconfigdir = $(libdir)/pkgconfig
index 81a9f30ef60aa3c64bf8143d5641703c1528fb06..0805aeacb556af01c08e501b1c71ad5c9a6f9280 100644 (file)
@@ -28,6 +28,11 @@ COMEDILIB_LIBS="$COMEDILIB_LIBS \$(top_builddir)/lib/libcomedi.la -lm"
 AC_SUBST(COMEDILIB_CFLAGS)
 AC_SUBST(COMEDILIB_LIBS)
 
+AC_PATH_PROG(SWIG, swig, no)
+if test x$SWIG = xno ; then
+  AC_MSG_WARN([swig not found, will not be able to regenerate code for swig bindings])
+fi
+
 AM_PATH_PYTHON
 AM_CHECK_PYTHON_HEADERS(HAVE_PYTHON=yes,[HAVE_PYTHON=no;AC_MSG_WARN([python headers not found, disabling python binding])])
 AM_CONDITIONAL(HAVE_PYTHON, [test "x$HAVE_PYTHON" = xyes])
@@ -36,21 +41,27 @@ AS_COMPILER_FLAG([-fno-strict-aliasing],[PYTHON_QUIET="$PYTHON_QUIET -fno-strict
 AS_COMPILER_FLAG([-Wno-unused-function],[PYTHON_QUIET="$PYTHON_QUIET -Wno-unused-function"], true )
 AC_SUBST(PYTHON_QUIET)
 
+AC_PATH_PROG(RUBY, ruby, no)
+if test x$RUBY = xno ; then
+  AC_MSG_WARN([ruby not found, disabling ruby binding])
+fi
+AM_CONDITIONAL(HAVE_RUBY, [test "x$RUBY" != xno])
+
 AC_PATH_PROG(DOCBOOK2MAN, docbook2man, no)
 if test x$DOCBOOK2MAN = xno ; then
-  AC_MSG_WARN([docbook2man not found, disabling documentation])
+  AC_MSG_WARN([docbook2man not found, will not be able to rebuild man pages])
 fi
 AM_CONDITIONAL(HAVE_DOCBOOK2MAN, [test "x$DOCBOOK2MAN" != xno])
 
 AC_PATH_PROG(DOCBOOK2PDF, docbook2pdf, no)
 if test x$DOCBOOK2PDF = xno ; then
-  AC_MSG_WARN([docbook2pdf not found, disabling documentation])
+  AC_MSG_WARN([docbook2pdf not found, will not be able to rebuild pdf documentation])
 fi
 AM_CONDITIONAL(HAVE_DOCBOOK2PDF, [test "x$DOCBOOK2PDF" != xno])
 
 AC_PATH_PROG(DOCBOOK2HTML, docbook2html, no)
 if test x$DOCBOOK2HTML = xno ; then
-  AC_MSG_WARN([docbook2html not found, disabling documentation])
+  AC_MSG_WARN([docbook2html not found, will not be able to rebuild html documentation])
 fi
 AM_CONDITIONAL(HAVE_DOCBOOK2HTML, [test "x$DOCBOOK2HTML" != xno])
 
@@ -61,7 +72,7 @@ AC_SUBST(pcmciadir)
 #the hotplug expects the device dependent scripts here:
 usbhotplugdir="/etc/hotplug/usb"
 AC_SUBST(usbhotplugdir)
+
 #firmware for the hotplug script
 #see: http://linux-hotplug.sourceforge.net/
 usbfirmwaredir="/usr/share/usb"
@@ -81,7 +92,9 @@ demo/Makefile
 include/Makefile
 lib/Makefile
 man/Makefile
-python/Makefile
+swig/Makefile
+swig/python/Makefile
+swig/ruby/Makefile
 testing/Makefile
 comedilib.spec
 )
diff --git a/python/README.txt b/python/README.txt
deleted file mode 100644 (file)
index 9ddd91f..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-** General info on the swig-generated wrappers for Comedilib **
-
-1) Regenerating the wrappers
-       The wrapper were made using swig-1.3.19. Any of the swig-1.3.x seris should work
-       N.B. the default swig on redhat systems is version 1.1. Upgrade to v-1.3.19. It's better!
-       
-       run $> swig -python comedi.i
-       
-2) Building the module
-       i) edit the setup.py file so that the include and lib paths are correct for your system
-       ii) run $>      python setup.py build
-       
-3) Installing the module
-       i) Manual installation I'm afraid. Copy comedi.py and _comedi.pyd files to somewhere in your PYTHONPATH
-       
-4) Using the module
-       All the comedilib functions are translated directly to python function. The various comedi structs
-       are now available as python classes (e.g. comedi_cmd_struct). The members of each struct are now
-       attributes of the class and can be set and retrieved in the usual way. Comedilib Functions which 
-       take a pointer to a comedilib struct as an argument (in C) now, in python, accept the appropriate 
-       struct python object.
-       
-       For a multichannel acquisition, a C-array containing the channel list, gains and referencing is
-       required. This can be created using a swig-generated helper class: chanlist(n). This creates a C-array
-       of length n and type Unsigned Int. Individual members of the array can be accessed/set using 
-       pythons indexing syntax:
-               mylist = chanlist(3)   #creates a chanlist array of length 3
-               mylist[0] = 100 #set some values
-               mylist[1] = 200
-               mylist[2] = 300
-               
-       The chanlist object can then be passed to a comedi_cmd_struct object, for example. N.B. The
-       chanlist object contains *no* length-checking or other error protection so use with care! Don't
-       try to get/set indexes outside the array bounds.
-       
-       All the comedilib macros (e.g. CR_PACK) are now available as python functions.
-       
-       check out the example test_comedi.py to clarify the above.
-       
-       
\ No newline at end of file
diff --git a/python/comedi.i b/python/comedi.i
deleted file mode 100644 (file)
index 9afd540..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/***********************************************************
-*           Interface file for wrapping Comedilib                                  
-*           author: Bryan Cole  email: bryan.cole@teraview.co.uk  
-*
-*     This file was created with Python wrappers in mind but wil
-*  probably work for other swig-supported script languages
-*
-*    to regenerate the wrappers run:
-*    swig -python comedi.i
-*
-***********************************************************/
-%module comedi
-%{
-#include "../include/comedi.h"
-#include "../include/comedilib.h"\r
-%}
-%include "carrays.i"
-
-%inline %{
-static unsigned int cr_pack(unsigned int chan, unsigned int rng, unsigned int aref){
-       return CR_PACK(chan,rng,aref);
-}
-static unsigned int cr_pack_flags(unsigned int chan, unsigned int rng, unsigned int aref, unsigned int flags){
-       return CR_PACK_FLAGS(chan,rng,aref, flags);
-}
-static unsigned int cr_chan(unsigned int a){
-       return CR_CHAN(a);
-}
-static unsigned int cr_range(unsigned int a){
-       return CR_RANGE(a);
-}
-static unsigned int cr_aref(unsigned int a){
-       return CR_AREF(a);
-}
-%}
-
-%array_class(unsigned int, chanlist);
-
-%include "../include/comedi.h"
-%include "../include/comedilib.h"
diff --git a/python/comedi_wrap.c b/python/comedi_wrap.c
deleted file mode 100644 (file)
index 2b9a569..0000000
+++ /dev/null
@@ -1,7407 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.19
- * 
- * This file is not intended to be easily readable and contains a number of 
- * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
- * ----------------------------------------------------------------------------- */
-
-#define SWIGPYTHON
-
-#include "Python.h"
-
-/***********************************************************************
- * common.swg
- *
- *     This file contains generic SWIG runtime support for pointer
- *     type checking as well as a few commonly used macros to control
- *     external linkage.
- *
- * Author : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (c) 1999-2000, The University of Chicago
- * 
- * This file may be freely redistributed without license or fee provided
- * this copyright message remains intact.
- ************************************************************************/
-
-#include <string.h>
-
-#if defined(_WIN32) || defined(__WIN32__)
-#       if defined(_MSC_VER)
-#               if defined(STATIC_LINKED)
-#                       define SWIGEXPORT(a) a
-#                       define SWIGIMPORT(a) extern a
-#               else
-#                       define SWIGEXPORT(a) __declspec(dllexport) a
-#                       define SWIGIMPORT(a) extern a
-#               endif
-#       else
-#               if defined(__BORLANDC__)
-#                       define SWIGEXPORT(a) a _export
-#                       define SWIGIMPORT(a) a _export
-#               else
-#                       define SWIGEXPORT(a) a
-#                       define SWIGIMPORT(a) a
-#               endif
-#       endif
-#else
-#       define SWIGEXPORT(a) a
-#       define SWIGIMPORT(a) a
-#endif
-
-#ifdef SWIG_GLOBAL
-#define SWIGRUNTIME(a) SWIGEXPORT(a)
-#else
-#define SWIGRUNTIME(a) static a
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef void *(*swig_converter_func)(void *);
-typedef struct swig_type_info *(*swig_dycast_func)(void **);
-
-typedef struct swig_type_info {
-  const char             *name;                 
-  swig_converter_func     converter;
-  const char             *str;
-  void                   *clientdata;  
-  swig_dycast_func        dcast;
-  struct swig_type_info  *next;
-  struct swig_type_info  *prev;
-} swig_type_info;
-
-#ifdef SWIG_NOINCLUDE
-
-SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *);
-SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);
-SWIGIMPORT(void *)           SWIG_TypeCast(swig_type_info *, void *);
-SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **);
-SWIGIMPORT(const char *)     SWIG_TypeName(const swig_type_info *);
-SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *);
-SWIGIMPORT(void)             SWIG_TypeClientData(swig_type_info *, void *);
-
-#else
-
-static swig_type_info *swig_type_list = 0;
-
-/* Register a type mapping with the type-checking */
-SWIGRUNTIME(swig_type_info *)
-SWIG_TypeRegister(swig_type_info *ti)
-{
-  swig_type_info *tc, *head, *ret, *next;
-  /* Check to see if this type has already been registered */
-  tc = swig_type_list;
-  while (tc) {
-    if (strcmp(tc->name, ti->name) == 0) {
-      /* Already exists in the table.  Just add additional types to the list */
-      if (tc->clientdata) ti->clientdata = tc->clientdata;     
-      head = tc;
-      next = tc->next;
-      goto l1;
-    }
-    tc = tc->prev;
-  }
-  head = ti;
-  next = 0;
-
-  /* Place in list */
-  ti->prev = swig_type_list;
-  swig_type_list = ti;
-
-  /* Build linked lists */
- l1:
-  ret = head;
-  tc = ti + 1;
-  /* Patch up the rest of the links */
-  while (tc->name) {
-    head->next = tc;
-    tc->prev = head;
-    head = tc;
-    tc++;
-  }
-  if (next) next->prev = head;  /**/
-  head->next = next;
-  return ret;
-}
-
-/* Check the typename */
-SWIGRUNTIME(swig_type_info *) 
-SWIG_TypeCheck(char *c, swig_type_info *ty)
-{
-  swig_type_info *s;
-  if (!ty) return 0;        /* Void pointer */
-  s = ty->next;             /* First element always just a name */
-  do {
-    if (strcmp(s->name,c) == 0) {
-      if (s == ty->next) return s;
-      /* Move s to the top of the linked list */
-      s->prev->next = s->next;
-      if (s->next) {
-       s->next->prev = s->prev;
-      }
-      /* Insert s as second element in the list */
-      s->next = ty->next;
-      if (ty->next) ty->next->prev = s;
-      ty->next = s;
-      s->prev = ty;  /**/
-      return s;
-    }
-    s = s->next;
-  } while (s && (s != ty->next));
-  return 0;
-}
-
-/* Cast a pointer up an inheritance hierarchy */
-SWIGRUNTIME(void *) 
-SWIG_TypeCast(swig_type_info *ty, void *ptr) 
-{
-  if ((!ty) || (!ty->converter)) return ptr;
-  return (*ty->converter)(ptr);
-}
-
-/* Dynamic pointer casting. Down an inheritance hierarchy */
-SWIGRUNTIME(swig_type_info *) 
-SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) 
-{
-  swig_type_info *lastty = ty;
-  if (!ty || !ty->dcast) return ty;
-  while (ty && (ty->dcast)) {
-     ty = (*ty->dcast)(ptr);
-     if (ty) lastty = ty;
-  }
-  return lastty;
-}
-
-/* Return the name associated with this type */
-SWIGRUNTIME(const char *)
-SWIG_TypeName(const swig_type_info *ty) {
-  return ty->name;
-}
-
-/* Search for a swig_type_info structure */
-SWIGRUNTIME(swig_type_info *)
-SWIG_TypeQuery(const char *name) {
-  swig_type_info *ty = swig_type_list;
-  while (ty) {
-    if (ty->str && (strcmp(name,ty->str) == 0)) return ty;
-    if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
-    ty = ty->prev;
-  }
-  return 0;
-}
-
-/* Set the clientdata field for a type */
-SWIGRUNTIME(void)
-SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
-  swig_type_info *tc, *equiv;
-  if (ti->clientdata == clientdata) return;
-  ti->clientdata = clientdata;
-  equiv = ti->next;
-  while (equiv) {
-    if (!equiv->converter) {
-      tc = swig_type_list;
-      while (tc) {
-       if ((strcmp(tc->name, equiv->name) == 0))
-         SWIG_TypeClientData(tc,clientdata);
-       tc = tc->prev;
-      }
-    }
-    equiv = equiv->next;
-  }
-}
-#endif
-
-#ifdef __cplusplus
-}
-
-#endif
-
-/***********************************************************************
- * python.swg
- *
- *     This file contains the runtime support for Python modules
- *     and includes code for managing global variables and pointer
- *     type checking.
- *
- * Author : David Beazley (beazley@cs.uchicago.edu)
- ************************************************************************/
-
-#include "Python.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define SWIG_PY_INT     1
-#define SWIG_PY_FLOAT   2
-#define SWIG_PY_STRING  3
-#define SWIG_PY_POINTER 4
-#define SWIG_PY_BINARY  5
-
-/* Flags for pointer conversion */
-
-#define SWIG_POINTER_EXCEPTION     0x1
-#define SWIG_POINTER_DISOWN        0x2
-
-/* Exception handling in wrappers */
-#define SWIG_fail   goto fail
-
-/* Constant information structure */
-typedef struct swig_const_info {
-    int type;
-    char *name;
-    long lvalue;
-    double dvalue;
-    void   *pvalue;
-    swig_type_info **ptype;
-} swig_const_info;
-
-#ifdef SWIG_NOINCLUDE
-
-SWIGEXPORT(PyObject *)        SWIG_newvarlink(void);
-SWIGEXPORT(void)              SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
-SWIGEXPORT(int)               SWIG_ConvertPtr(PyObject *, void **, swig_type_info *, int);
-SWIGEXPORT(int)               SWIG_ConvertPacked(PyObject *, void *, int sz, swig_type_info *, int);
-SWIGEXPORT(char *)            SWIG_PackData(char *c, void *, int);
-SWIGEXPORT(char *)            SWIG_UnpackData(char *c, void *, int);
-SWIGEXPORT(PyObject *)        SWIG_NewPointerObj(void *, swig_type_info *,int own);
-SWIGEXPORT(PyObject *)        SWIG_NewPackedObj(void *, int sz, swig_type_info *);
-SWIGEXPORT(void)              SWIG_InstallConstants(PyObject *d, swig_const_info constants[]);
-#else
-
-/* -----------------------------------------------------------------------------
- * global variable support code.
- * ----------------------------------------------------------------------------- */
-
-typedef struct swig_globalvar {   
-  char       *name;                  /* Name of global variable */
-  PyObject *(*get_attr)(void);       /* Return the current value */
-  int       (*set_attr)(PyObject *); /* Set the value */
-  struct swig_globalvar *next;
-} swig_globalvar;
-
-typedef struct swig_varlinkobject {
-  PyObject_HEAD
-  swig_globalvar *vars;
-} swig_varlinkobject;
-
-static PyObject *
-swig_varlink_repr(swig_varlinkobject *v) {
-  v = v;
-  return PyString_FromString("<Global variables>");
-}
-
-static int
-swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) {
-  swig_globalvar  *var;
-  flags = flags;
-  fprintf(fp,"Global variables { ");
-  for (var = v->vars; var; var=var->next) {
-    fprintf(fp,"%s", var->name);
-    if (var->next) fprintf(fp,", ");
-  }
-  fprintf(fp," }\n");
-  return 0;
-}
-
-static PyObject *
-swig_varlink_getattr(swig_varlinkobject *v, char *n) {
-  swig_globalvar *var = v->vars;
-  while (var) {
-    if (strcmp(var->name,n) == 0) {
-      return (*var->get_attr)();
-    }
-    var = var->next;
-  }
-  PyErr_SetString(PyExc_NameError,"Unknown C global variable");
-  return NULL;
-}
-
-static int
-swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
-  swig_globalvar *var = v->vars;
-  while (var) {
-    if (strcmp(var->name,n) == 0) {
-      return (*var->set_attr)(p);
-    }
-    var = var->next;
-  }
-  PyErr_SetString(PyExc_NameError,"Unknown C global variable");
-  return 1;
-}
-
-statichere PyTypeObject varlinktype = {
-  PyObject_HEAD_INIT(0)              
-  0,
-  (char *)"swigvarlink",                      /* Type name    */
-  sizeof(swig_varlinkobject),         /* Basic size   */
-  0,                                  /* Itemsize     */
-  0,                                  /* Deallocator  */ 
-  (printfunc) swig_varlink_print,     /* Print        */
-  (getattrfunc) swig_varlink_getattr, /* get attr     */
-  (setattrfunc) swig_varlink_setattr, /* Set attr     */
-  0,                                  /* tp_compare   */
-  (reprfunc) swig_varlink_repr,       /* tp_repr      */    
-  0,                                  /* tp_as_number */
-  0,                                  /* tp_as_mapping*/
-  0,                                  /* tp_hash      */
-};
-
-/* Create a variable linking object for use later */
-SWIGRUNTIME(PyObject *)
-SWIG_newvarlink(void) {
-  swig_varlinkobject *result = 0;
-  result = PyMem_NEW(swig_varlinkobject,1);
-  varlinktype.ob_type = &PyType_Type;    /* Patch varlinktype into a PyType */
-  result->ob_type = &varlinktype;
-  result->vars = 0;
-  result->ob_refcnt = 0;
-  Py_XINCREF((PyObject *) result);
-  return ((PyObject*) result);
-}
-
-SWIGRUNTIME(void)
-SWIG_addvarlink(PyObject *p, char *name,
-          PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
-  swig_varlinkobject *v;
-  swig_globalvar *gv;
-  v= (swig_varlinkobject *) p;
-  gv = (swig_globalvar *) malloc(sizeof(swig_globalvar));
-  gv->name = (char *) malloc(strlen(name)+1);
-  strcpy(gv->name,name);
-  gv->get_attr = get_attr;
-  gv->set_attr = set_attr;
-  gv->next = v->vars;
-  v->vars = gv;
-}
-
-/* Pack binary data into a string */
-SWIGRUNTIME(char *)
-SWIG_PackData(char *c, void *ptr, int sz) {
-  static char hex[17] = "0123456789abcdef";
-  int i;
-  unsigned char *u = (unsigned char *) ptr;
-  register unsigned char uu;
-  for (i = 0; i < sz; i++,u++) {
-    uu = *u;
-    *(c++) = hex[(uu & 0xf0) >> 4];
-    *(c++) = hex[uu & 0xf];
-  }
-  return c;
-}
-
-/* Unpack binary data from a string */
-SWIGRUNTIME(char *)
-SWIG_UnpackData(char *c, void *ptr, int sz) {
-  register unsigned char uu = 0;
-  register int d;
-  unsigned char *u = (unsigned char *) ptr;
-  int i;
-  for (i = 0; i < sz; i++, u++) {
-    d = *(c++);
-    if ((d >= '0') && (d <= '9'))
-      uu = ((d - '0') << 4);
-    else if ((d >= 'a') && (d <= 'f'))
-      uu = ((d - ('a'-10)) << 4);
-    d = *(c++);
-    if ((d >= '0') && (d <= '9'))
-      uu |= (d - '0');
-    else if ((d >= 'a') && (d <= 'f'))
-      uu |= (d - ('a'-10));
-    *u = uu;
-  }
-  return c;
-}
-
-/* Convert a pointer value */
-SWIGRUNTIME(int)
-SWIG_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) {
-  swig_type_info *tc;
-  char  *c;
-  static PyObject *SWIG_this = 0;
-  int    newref = 0;
-  PyObject  *pyobj = 0;
-
-  if (!obj) return 0;
-  if (obj == Py_None) {
-    *ptr = 0;
-    return 0;
-  }
-#ifdef SWIG_COBJECT_TYPES
-  if (!(PyCObject_Check(obj))) {
-    if (!SWIG_this)
-      SWIG_this = PyString_FromString("this");
-    pyobj = obj;
-    obj = PyObject_GetAttr(obj,SWIG_this);
-    newref = 1;
-    if (!obj) goto type_error;
-    if (!PyCObject_Check(obj)) {
-      Py_DECREF(obj);
-      goto type_error;
-    }
-  }  
-  *ptr = PyCObject_AsVoidPtr(obj);
-  c = (char *) PyCObject_GetDesc(obj);
-  if (newref) Py_DECREF(obj);
-  goto cobject;
-#else
-  if (!(PyString_Check(obj))) {
-    if (!SWIG_this)
-      SWIG_this = PyString_FromString("this");
-    pyobj = obj;
-    obj = PyObject_GetAttr(obj,SWIG_this);
-    newref = 1;
-    if (!obj) goto type_error;
-    if (!PyString_Check(obj)) {
-      Py_DECREF(obj);
-      goto type_error;
-    }
-  } 
-  c = PyString_AsString(obj);
-  /* Pointer values must start with leading underscore */
-  if (*c != '_') {
-    *ptr = (void *) 0;
-    if (strcmp(c,"NULL") == 0) {
-      if (newref) { Py_DECREF(obj); }
-      return 0;
-    } else {
-      if (newref) { Py_DECREF(obj); }
-      goto type_error;
-    }
-  }
-  c++;
-  c = SWIG_UnpackData(c,ptr,sizeof(void *));
-  if (newref) { Py_DECREF(obj); }
-#endif
-
-#ifdef SWIG_COBJECT_TYPES
-cobject:
-#endif
-
-  if (ty) {
-    tc = SWIG_TypeCheck(c,ty);
-    if (!tc) goto type_error;
-    *ptr = SWIG_TypeCast(tc,(void*) *ptr);
-  }
-
-  if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) {
-      PyObject *zero = PyInt_FromLong(0);
-      PyObject_SetAttrString(pyobj,(char*)"thisown",zero);
-      Py_DECREF(zero);
-  }
-  return 0;
-
-type_error:
-  if (flags & SWIG_POINTER_EXCEPTION) {
-    if (ty) {
-      char *temp = (char *) malloc(64+strlen(ty->name));
-      sprintf(temp,"Type error. Expected %s", ty->name);
-      PyErr_SetString(PyExc_TypeError, temp);
-      free((char *) temp);
-    } else {
-      PyErr_SetString(PyExc_TypeError,"Expected a pointer");
-    }
-  }
-  return -1;
-}
-
-/* Convert a packed value value */
-SWIGRUNTIME(int)
-SWIG_ConvertPacked(PyObject *obj, void *ptr, int sz, swig_type_info *ty, int flags) {
-  swig_type_info *tc;
-  char  *c;
-
-  if ((!obj) || (!PyString_Check(obj))) goto type_error;
-  c = PyString_AsString(obj);
-  /* Pointer values must start with leading underscore */
-  if (*c != '_') goto type_error;
-  c++;
-  c = SWIG_UnpackData(c,ptr,sz);
-  if (ty) {
-    tc = SWIG_TypeCheck(c,ty);
-    if (!tc) goto type_error;
-  }
-  return 0;
-
-type_error:
-
-  if (flags) {
-    if (ty) {
-      char *temp = (char *) malloc(64+strlen(ty->name));
-      sprintf(temp,"Type error. Expected %s", ty->name);
-      PyErr_SetString(PyExc_TypeError, temp);
-      free((char *) temp);
-    } else {
-      PyErr_SetString(PyExc_TypeError,"Expected a pointer");
-    }
-  }
-  return -1;
-}
-
-/* Create a new pointer object */
-SWIGRUNTIME(PyObject *)
-SWIG_NewPointerObj(void *ptr, swig_type_info *type, int own) {
-  PyObject *robj;
-  if (!ptr) {
-    Py_INCREF(Py_None);
-    return Py_None;
-  }
-#ifdef SWIG_COBJECT_TYPES
-  robj = PyCObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name, NULL);
-#else
-  {
-    char result[1024];
-    char *r = result;
-    *(r++) = '_';
-    r = SWIG_PackData(r,&ptr,sizeof(void *));
-    strcpy(r,type->name);
-    robj = PyString_FromString(result);
-  }
-#endif
-  if (!robj || (robj == Py_None)) return robj;
-  if (type->clientdata) {
-    PyObject *inst;
-    PyObject *args = Py_BuildValue((char*)"(O)", robj);
-    Py_DECREF(robj);
-    inst = PyObject_CallObject((PyObject *) type->clientdata, args);
-    Py_DECREF(args);
-    if (inst) {
-      if (own) {
-       PyObject *n = PyInt_FromLong(1);
-       PyObject_SetAttrString(inst,(char*)"thisown",n);
-       Py_DECREF(n);
-      }
-      robj = inst;
-    }
-  }
-  return robj;
-}
-
-SWIGRUNTIME(PyObject *)
-SWIG_NewPackedObj(void *ptr, int sz, swig_type_info *type) {
-  char result[1024];
-  char *r = result;
-  if ((2*sz + 1 + strlen(type->name)) > 1000) return 0;
-  *(r++) = '_';
-  r = SWIG_PackData(r,ptr,sz);
-  strcpy(r,type->name);
-  return PyString_FromString(result);
-}
-
-/* Install Constants */
-SWIGRUNTIME(void)
-SWIG_InstallConstants(PyObject *d, swig_const_info constants[]) {
-  int i;
-  PyObject *obj;
-  for (i = 0; constants[i].type; i++) {
-    switch(constants[i].type) {
-    case SWIG_PY_INT:
-      obj = PyInt_FromLong(constants[i].lvalue);
-      break;
-    case SWIG_PY_FLOAT:
-      obj = PyFloat_FromDouble(constants[i].dvalue);
-      break;
-    case SWIG_PY_STRING:
-      obj = PyString_FromString((char *) constants[i].pvalue);
-      break;
-    case SWIG_PY_POINTER:
-      obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
-      break;
-    case SWIG_PY_BINARY:
-      obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
-      break;
-    default:
-      obj = 0;
-      break;
-    }
-    if (obj) {
-      PyDict_SetItemString(d,constants[i].name,obj);
-      Py_DECREF(obj);
-    }
-  }
-}
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
-
-
-
-
-
-/* -------- TYPES TABLE (BEGIN) -------- */
-
-#define  SWIGTYPE_p_lsampl_t swig_types[0] 
-#define  SWIGTYPE_p_sampl_t swig_types[1] 
-#define  SWIGTYPE_p_comedi_calibration_setting_t swig_types[2] 
-#define  SWIGTYPE_p_double swig_types[3] 
-#define  SWIGTYPE_p_comedi_range swig_types[4] 
-#define  SWIGTYPE_p_unsigned_int swig_types[5] 
-#define  SWIGTYPE_p_void swig_types[6] 
-#define  SWIGTYPE_p_comedi_subdinfo_struct swig_types[7] 
-#define  SWIGTYPE_p_comedi_krange_struct swig_types[8] 
-#define  SWIGTYPE_p_comedi_rangeinfo_struct swig_types[9] 
-#define  SWIGTYPE_p_comedi_chaninfo_struct swig_types[10] 
-#define  SWIGTYPE_p_comedi_cmd_struct swig_types[11] 
-#define  SWIGTYPE_p_comedi_insnlist_struct swig_types[12] 
-#define  SWIGTYPE_p_comedi_insn_struct swig_types[13] 
-#define  SWIGTYPE_p_comedi_trig_struct swig_types[14] 
-#define  SWIGTYPE_p_comedi_devinfo_struct swig_types[15] 
-#define  SWIGTYPE_p_char swig_types[16] 
-#define  SWIGTYPE_p_comedi_devconfig_struct swig_types[17] 
-#define  SWIGTYPE_p_comedi_bufconfig_struct swig_types[18] 
-#define  SWIGTYPE_p_comedi_bufinfo_struct swig_types[19] 
-#define  SWIGTYPE_p_comedi_calibration_t swig_types[20] 
-#define  SWIGTYPE_p_comedi_sv_t swig_types[21] 
-#define  SWIGTYPE_p_chanlist swig_types[22] 
-#define  SWIGTYPE_p_comedi_insn swig_types[23] 
-#define  SWIGTYPE_p_comedi_insnlist swig_types[24] 
-#define  SWIGTYPE_p_comedi_caldac_t swig_types[25] 
-#define  SWIGTYPE_p_comedi_t swig_types[26] 
-#define  SWIGTYPE_p_int swig_types[27] 
-#define  SWIGTYPE_p_comedi_cmd swig_types[28] 
-static swig_type_info *swig_types[30];
-
-/* -------- TYPES TABLE (END) -------- */
-
-
-/*-----------------------------------------------
-              @(target):= _comedi.so
-  ------------------------------------------------*/
-#define SWIG_init    init_comedi
-
-#define SWIG_name    "_comedi"
-
-#include "../include/comedi.h"
-#include "../include/comedilib.h"
-
-
-static unsigned int cr_pack(unsigned int chan, unsigned int rng, unsigned int aref){
-       return CR_PACK(chan,rng,aref);
-}
-static unsigned int cr_pack_flags(unsigned int chan, unsigned int rng, unsigned int aref, unsigned int flags){
-       return CR_PACK_FLAGS(chan,rng,aref, flags);
-}
-static unsigned int cr_chan(unsigned int a){
-       return CR_CHAN(a);
-}
-static unsigned int cr_range(unsigned int a){
-       return CR_RANGE(a);
-}
-static unsigned int cr_aref(unsigned int a){
-       return CR_AREF(a);
-}
-
-
-typedef unsigned int chanlist;
-
-chanlist *new_chanlist(int nelements){
-  return (unsigned int *) calloc(nelements,sizeof(unsigned int));
-}
-void delete_chanlist(chanlist *self){
-  free(self);
-}
-unsigned int chanlist_getitem(chanlist *self,int index){
-  return self[index];
-}
-void chanlist_setitem(chanlist *self,int index,unsigned int value){
-  self[index] = value;
-}
-unsigned int *chanlist_cast(chanlist *self){
-  return self;
-}
-chanlist *chanlist_frompointer(unsigned int *t){
-  return (chanlist *) t;
-}
-#ifdef __cplusplus
-extern "C" {
-#endif
-static PyObject *_wrap_cr_pack(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    unsigned int arg1 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOO:cr_pack",&obj0,&obj1,&obj2)) goto fail;
-    arg1 = (unsigned int) PyInt_AsLong(obj0);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (unsigned int)cr_pack(arg1,arg2,arg3);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_cr_pack_flags(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    unsigned int arg1 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOO:cr_pack_flags",&obj0,&obj1,&obj2,&obj3)) goto fail;
-    arg1 = (unsigned int) PyInt_AsLong(obj0);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (unsigned int)cr_pack_flags(arg1,arg2,arg3,arg4);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_cr_chan(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    unsigned int arg1 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:cr_chan",&obj0)) goto fail;
-    arg1 = (unsigned int) PyInt_AsLong(obj0);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (unsigned int)cr_chan(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_cr_range(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    unsigned int arg1 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:cr_range",&obj0)) goto fail;
-    arg1 = (unsigned int) PyInt_AsLong(obj0);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (unsigned int)cr_range(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_cr_aref(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    unsigned int arg1 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:cr_aref",&obj0)) goto fail;
-    arg1 = (unsigned int) PyInt_AsLong(obj0);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (unsigned int)cr_aref(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_chanlist(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    int arg1 ;
-    chanlist *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)"i:new_chanlist",&arg1)) goto fail;
-    result = (chanlist *)new_chanlist(arg1);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_chanlist, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_chanlist(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    chanlist *arg1 = (chanlist *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_chanlist",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_chanlist,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    delete_chanlist(arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_chanlist___getitem__(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    chanlist *arg1 = (chanlist *) 0 ;
-    int arg2 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Oi:chanlist___getitem__",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_chanlist,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int)chanlist_getitem(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_chanlist___setitem__(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    chanlist *arg1 = (chanlist *) 0 ;
-    int arg2 ;
-    unsigned int arg3 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OiO:chanlist___setitem__",&obj0,&arg2,&obj2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_chanlist,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    chanlist_setitem(arg1,arg2,arg3);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_chanlist_cast(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    chanlist *arg1 = (chanlist *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:chanlist_cast",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_chanlist,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *)chanlist_cast(arg1);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_chanlist_frompointer(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    unsigned int *arg1 = (unsigned int *) 0 ;
-    chanlist *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:chanlist_frompointer",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (chanlist *)chanlist_frompointer(arg1);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_chanlist, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * chanlist_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_chanlist, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_trig_struct_subdev_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_subdev_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subdev = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_subdev_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_subdev_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subdev);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_mode_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_mode_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->mode = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_mode_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_mode_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->mode);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_flags_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_flags_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->flags = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_flags_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_flags_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->flags);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_n_chan_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_n_chan_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->n_chan = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_n_chan_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_n_chan_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->n_chan);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_chanlist_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int *arg2 = (unsigned int *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_chanlist_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->chanlist = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_chanlist_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_chanlist_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *) ((arg1)->chanlist);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_data_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    sampl_t *arg2 = (sampl_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_data_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_sampl_t,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->data = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_data_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    sampl_t *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_data_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (sampl_t *) ((arg1)->data);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_sampl_t, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_n_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_n_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->n = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_n_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_n_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->n);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_trigsrc_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_trigsrc_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->trigsrc = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_trigsrc_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_trigsrc_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->trigsrc);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_trigvar_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_trigvar_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->trigvar = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_trigvar_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_trigvar_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->trigvar);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_trigvar1_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_trigvar1_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->trigvar1 = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_trigvar1_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_trigvar1_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->trigvar1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_data_len_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_data_len_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->data_len = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_data_len_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_data_len_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->data_len);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_unused_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int *arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_trig_struct_unused_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        int ii;
-        unsigned int *b = (unsigned int *) arg1->unused;
-        for (ii = 0; ii < 3; ii++) b[ii] = *((unsigned int *) arg2 + ii);
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_trig_struct_unused_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_trig_struct_unused_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *)(unsigned int *) ((arg1)->unused);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_trig_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_trig_struct")) goto fail;
-    result = (struct comedi_trig_struct *)(struct comedi_trig_struct *) calloc(1, sizeof(struct comedi_trig_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_trig_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_trig_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_trig_struct *arg1 = (struct comedi_trig_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_trig_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_trig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_trig_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_trig_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_insn_struct_insn_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_insn_struct_insn_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->insn = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_insn_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_insn_struct_insn_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->insn);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_n_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_insn_struct_n_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->n = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_n_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_insn_struct_n_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->n);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_data_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    lsampl_t *arg2 = (lsampl_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_insn_struct_data_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_lsampl_t,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->data = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_data_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    lsampl_t *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_insn_struct_data_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (lsampl_t *) ((arg1)->data);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_lsampl_t, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_subdev_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_insn_struct_subdev_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subdev = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_subdev_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_insn_struct_subdev_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subdev);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_chanspec_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_insn_struct_chanspec_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->chanspec = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_chanspec_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_insn_struct_chanspec_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->chanspec);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_unused_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int *arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_insn_struct_unused_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        int ii;
-        unsigned int *b = (unsigned int *) arg1->unused;
-        for (ii = 0; ii < 3; ii++) b[ii] = *((unsigned int *) arg2 + ii);
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insn_struct_unused_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_insn_struct_unused_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *)(unsigned int *) ((arg1)->unused);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_insn_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_insn_struct")) goto fail;
-    result = (struct comedi_insn_struct *)(struct comedi_insn_struct *) calloc(1, sizeof(struct comedi_insn_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_insn_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_insn_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insn_struct *arg1 = (struct comedi_insn_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_insn_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insn_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_insn_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_insn_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_insnlist_struct_n_insns_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insnlist_struct *arg1 = (struct comedi_insnlist_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_insnlist_struct_n_insns_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insnlist_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->n_insns = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insnlist_struct_n_insns_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insnlist_struct *arg1 = (struct comedi_insnlist_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_insnlist_struct_n_insns_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insnlist_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->n_insns);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insnlist_struct_insns_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insnlist_struct *arg1 = (struct comedi_insnlist_struct *) 0 ;
-    comedi_insn *arg2 = (comedi_insn *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_insnlist_struct_insns_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insnlist_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_insn,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->insns = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_insnlist_struct_insns_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insnlist_struct *arg1 = (struct comedi_insnlist_struct *) 0 ;
-    comedi_insn *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_insnlist_struct_insns_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insnlist_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (comedi_insn *) ((arg1)->insns);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_insn, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_insnlist_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insnlist_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_insnlist_struct")) goto fail;
-    result = (struct comedi_insnlist_struct *)(struct comedi_insnlist_struct *) calloc(1, sizeof(struct comedi_insnlist_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_insnlist_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_insnlist_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_insnlist_struct *arg1 = (struct comedi_insnlist_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_insnlist_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_insnlist_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_insnlist_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_insnlist_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_cmd_struct_subdev_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_subdev_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subdev = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_subdev_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_subdev_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subdev);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_flags_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_flags_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->flags = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_flags_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_flags_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->flags);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_start_src_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_start_src_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->start_src = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_start_src_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_start_src_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->start_src);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_start_arg_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_start_arg_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->start_arg = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_start_arg_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_start_arg_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->start_arg);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_scan_begin_src_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_scan_begin_src_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->scan_begin_src = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_scan_begin_src_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_scan_begin_src_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->scan_begin_src);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_scan_begin_arg_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_scan_begin_arg_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->scan_begin_arg = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_scan_begin_arg_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_scan_begin_arg_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->scan_begin_arg);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_convert_src_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_convert_src_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->convert_src = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_convert_src_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_convert_src_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->convert_src);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_convert_arg_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_convert_arg_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->convert_arg = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_convert_arg_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_convert_arg_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->convert_arg);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_scan_end_src_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_scan_end_src_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->scan_end_src = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_scan_end_src_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_scan_end_src_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->scan_end_src);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_scan_end_arg_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_scan_end_arg_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->scan_end_arg = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_scan_end_arg_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_scan_end_arg_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->scan_end_arg);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_stop_src_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_stop_src_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->stop_src = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_stop_src_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_stop_src_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->stop_src);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_stop_arg_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_stop_arg_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->stop_arg = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_stop_arg_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_stop_arg_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->stop_arg);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_chanlist_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int *arg2 = (unsigned int *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_chanlist_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->chanlist = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_chanlist_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_chanlist_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *) ((arg1)->chanlist);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_chanlist_len_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_chanlist_len_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->chanlist_len = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_chanlist_len_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_chanlist_len_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->chanlist_len);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_data_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    sampl_t *arg2 = (sampl_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_data_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_sampl_t,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->data = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_data_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    sampl_t *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_data_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (sampl_t *) ((arg1)->data);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_sampl_t, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_data_len_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cmd_struct_data_len_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->data_len = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cmd_struct_data_len_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cmd_struct_data_len_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->data_len);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_cmd_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_cmd_struct")) goto fail;
-    result = (struct comedi_cmd_struct *)(struct comedi_cmd_struct *) calloc(1, sizeof(struct comedi_cmd_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_cmd_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_cmd_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_cmd_struct *arg1 = (struct comedi_cmd_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_cmd_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_cmd_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_cmd_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_cmd_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_chaninfo_struct_subdev_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_chaninfo_struct_subdev_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subdev = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_chaninfo_struct_subdev_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_chaninfo_struct_subdev_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subdev);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_chaninfo_struct_maxdata_list_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    lsampl_t *arg2 = (lsampl_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_chaninfo_struct_maxdata_list_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_lsampl_t,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->maxdata_list = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_chaninfo_struct_maxdata_list_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    lsampl_t *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_chaninfo_struct_maxdata_list_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (lsampl_t *) ((arg1)->maxdata_list);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_lsampl_t, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_chaninfo_struct_flaglist_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    unsigned int *arg2 = (unsigned int *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_chaninfo_struct_flaglist_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->flaglist = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_chaninfo_struct_flaglist_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_chaninfo_struct_flaglist_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *) ((arg1)->flaglist);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_chaninfo_struct_rangelist_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    unsigned int *arg2 = (unsigned int *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_chaninfo_struct_rangelist_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->rangelist = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_chaninfo_struct_rangelist_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_chaninfo_struct_rangelist_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *) ((arg1)->rangelist);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_chaninfo_struct_unused_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    unsigned int *arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_chaninfo_struct_unused_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        int ii;
-        unsigned int *b = (unsigned int *) arg1->unused;
-        for (ii = 0; ii < 4; ii++) b[ii] = *((unsigned int *) arg2 + ii);
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_chaninfo_struct_unused_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_chaninfo_struct_unused_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *)(unsigned int *) ((arg1)->unused);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_chaninfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_chaninfo_struct")) goto fail;
-    result = (struct comedi_chaninfo_struct *)(struct comedi_chaninfo_struct *) calloc(1, sizeof(struct comedi_chaninfo_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_chaninfo_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_chaninfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_chaninfo_struct *arg1 = (struct comedi_chaninfo_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_chaninfo_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_chaninfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_chaninfo_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_chaninfo_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_rangeinfo_struct_range_type_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_rangeinfo_struct *arg1 = (struct comedi_rangeinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_rangeinfo_struct_range_type_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_rangeinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->range_type = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_rangeinfo_struct_range_type_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_rangeinfo_struct *arg1 = (struct comedi_rangeinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_rangeinfo_struct_range_type_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_rangeinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->range_type);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_rangeinfo_struct_range_ptr_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_rangeinfo_struct *arg1 = (struct comedi_rangeinfo_struct *) 0 ;
-    void *arg2 = (void *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_rangeinfo_struct_range_ptr_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_rangeinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, 0, SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->range_ptr = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_rangeinfo_struct_range_ptr_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_rangeinfo_struct *arg1 = (struct comedi_rangeinfo_struct *) 0 ;
-    void *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_rangeinfo_struct_range_ptr_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_rangeinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (void *) ((arg1)->range_ptr);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_void, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_rangeinfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_rangeinfo_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_rangeinfo_struct")) goto fail;
-    result = (struct comedi_rangeinfo_struct *)(struct comedi_rangeinfo_struct *) calloc(1, sizeof(struct comedi_rangeinfo_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_rangeinfo_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_rangeinfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_rangeinfo_struct *arg1 = (struct comedi_rangeinfo_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_rangeinfo_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_rangeinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_rangeinfo_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_rangeinfo_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_krange_struct_min_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_krange_struct *arg1 = (struct comedi_krange_struct *) 0 ;
-    int arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Oi:comedi_krange_struct_min_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_krange_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if (arg1) (arg1)->min = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_krange_struct_min_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_krange_struct *arg1 = (struct comedi_krange_struct *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_krange_struct_min_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_krange_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int) ((arg1)->min);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_krange_struct_max_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_krange_struct *arg1 = (struct comedi_krange_struct *) 0 ;
-    int arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Oi:comedi_krange_struct_max_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_krange_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if (arg1) (arg1)->max = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_krange_struct_max_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_krange_struct *arg1 = (struct comedi_krange_struct *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_krange_struct_max_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_krange_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int) ((arg1)->max);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_krange_struct_flags_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_krange_struct *arg1 = (struct comedi_krange_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_krange_struct_flags_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_krange_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->flags = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_krange_struct_flags_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_krange_struct *arg1 = (struct comedi_krange_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_krange_struct_flags_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_krange_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->flags);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_krange_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_krange_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_krange_struct")) goto fail;
-    result = (struct comedi_krange_struct *)(struct comedi_krange_struct *) calloc(1, sizeof(struct comedi_krange_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_krange_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_krange_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_krange_struct *arg1 = (struct comedi_krange_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_krange_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_krange_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_krange_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_krange_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_subdinfo_struct_type_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_type_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->type = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_type_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_type_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->type);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_n_chan_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_n_chan_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->n_chan = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_n_chan_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_n_chan_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->n_chan);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_subd_flags_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_subd_flags_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subd_flags = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_subd_flags_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_subd_flags_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subd_flags);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_timer_type_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_timer_type_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->timer_type = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_timer_type_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_timer_type_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->timer_type);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_len_chanlist_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_len_chanlist_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->len_chanlist = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_len_chanlist_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_len_chanlist_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->len_chanlist);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_maxdata_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    lsampl_t arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_maxdata_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (lsampl_t) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->maxdata = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_maxdata_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    lsampl_t result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_maxdata_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (lsampl_t) ((arg1)->maxdata);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_flags_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_flags_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->flags = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_flags_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_flags_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->flags);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_range_type_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_range_type_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->range_type = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_range_type_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_range_type_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->range_type);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_settling_time_0_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_settling_time_0_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->settling_time_0 = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_settling_time_0_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_settling_time_0_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->settling_time_0);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_unused_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int *arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_subdinfo_struct_unused_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        int ii;
-        unsigned int *b = (unsigned int *) arg1->unused;
-        for (ii = 0; ii < 9; ii++) b[ii] = *((unsigned int *) arg2 + ii);
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_subdinfo_struct_unused_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_subdinfo_struct_unused_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *)(unsigned int *) ((arg1)->unused);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_subdinfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_subdinfo_struct")) goto fail;
-    result = (struct comedi_subdinfo_struct *)(struct comedi_subdinfo_struct *) calloc(1, sizeof(struct comedi_subdinfo_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_subdinfo_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_subdinfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_subdinfo_struct *arg1 = (struct comedi_subdinfo_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_subdinfo_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_subdinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_subdinfo_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_subdinfo_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_devinfo_struct_version_code_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_devinfo_struct_version_code_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->version_code = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_version_code_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_devinfo_struct_version_code_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->version_code);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_n_subdevs_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_devinfo_struct_n_subdevs_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->n_subdevs = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_n_subdevs_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_devinfo_struct_n_subdevs_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->n_subdevs);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_driver_name_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    char *arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Os:comedi_devinfo_struct_driver_name_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        if (arg2) strncpy(arg1->driver_name,arg2,20);
-        else arg1->driver_name[0] = 0;
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_driver_name_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    char *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_devinfo_struct_driver_name_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (char *)(char *) ((arg1)->driver_name);
-    
-    resultobj = PyString_FromString(result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_board_name_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    char *arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Os:comedi_devinfo_struct_board_name_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        if (arg2) strncpy(arg1->board_name,arg2,20);
-        else arg1->board_name[0] = 0;
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_board_name_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    char *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_devinfo_struct_board_name_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (char *)(char *) ((arg1)->board_name);
-    
-    resultobj = PyString_FromString(result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_read_subdevice_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    int arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Oi:comedi_devinfo_struct_read_subdevice_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if (arg1) (arg1)->read_subdevice = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_read_subdevice_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_devinfo_struct_read_subdevice_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int) ((arg1)->read_subdevice);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_write_subdevice_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    int arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Oi:comedi_devinfo_struct_write_subdevice_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if (arg1) (arg1)->write_subdevice = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_write_subdevice_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_devinfo_struct_write_subdevice_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int) ((arg1)->write_subdevice);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_unused_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    int *arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_devinfo_struct_unused_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        int ii;
-        int *b = (int *) arg1->unused;
-        for (ii = 0; ii < 30; ii++) b[ii] = *((int *) arg2 + ii);
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devinfo_struct_unused_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_devinfo_struct_unused_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int *)(int *) ((arg1)->unused);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_devinfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_devinfo_struct")) goto fail;
-    result = (struct comedi_devinfo_struct *)(struct comedi_devinfo_struct *) calloc(1, sizeof(struct comedi_devinfo_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_devinfo_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_devinfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devinfo_struct *arg1 = (struct comedi_devinfo_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_devinfo_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_devinfo_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_devinfo_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_devconfig_struct_board_name_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devconfig_struct *arg1 = (struct comedi_devconfig_struct *) 0 ;
-    char *arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Os:comedi_devconfig_struct_board_name_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        if (arg2) strncpy(arg1->board_name,arg2,20);
-        else arg1->board_name[0] = 0;
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devconfig_struct_board_name_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devconfig_struct *arg1 = (struct comedi_devconfig_struct *) 0 ;
-    char *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_devconfig_struct_board_name_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (char *)(char *) ((arg1)->board_name);
-    
-    resultobj = PyString_FromString(result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devconfig_struct_options_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devconfig_struct *arg1 = (struct comedi_devconfig_struct *) 0 ;
-    int *arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_devconfig_struct_options_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        int ii;
-        int *b = (int *) arg1->options;
-        for (ii = 0; ii < 32; ii++) b[ii] = *((int *) arg2 + ii);
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_devconfig_struct_options_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devconfig_struct *arg1 = (struct comedi_devconfig_struct *) 0 ;
-    int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_devconfig_struct_options_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int *)(int *) ((arg1)->options);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_devconfig_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devconfig_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_devconfig_struct")) goto fail;
-    result = (struct comedi_devconfig_struct *)(struct comedi_devconfig_struct *) calloc(1, sizeof(struct comedi_devconfig_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_devconfig_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_devconfig_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_devconfig_struct *arg1 = (struct comedi_devconfig_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_devconfig_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_devconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_devconfig_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_devconfig_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_bufconfig_struct_subdevice_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufconfig_struct_subdevice_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subdevice = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufconfig_struct_subdevice_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufconfig_struct_subdevice_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subdevice);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufconfig_struct_flags_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufconfig_struct_flags_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->flags = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufconfig_struct_flags_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufconfig_struct_flags_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->flags);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufconfig_struct_maximum_size_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufconfig_struct_maximum_size_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->maximum_size = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufconfig_struct_maximum_size_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufconfig_struct_maximum_size_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->maximum_size);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufconfig_struct_size_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufconfig_struct_size_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->size = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufconfig_struct_size_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufconfig_struct_size_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->size);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufconfig_struct_unused_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int *arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufconfig_struct_unused_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        int ii;
-        unsigned int *b = (unsigned int *) arg1->unused;
-        for (ii = 0; ii < 4; ii++) b[ii] = *((unsigned int *) arg2 + ii);
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufconfig_struct_unused_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufconfig_struct_unused_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *)(unsigned int *) ((arg1)->unused);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_bufconfig_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_bufconfig_struct")) goto fail;
-    result = (struct comedi_bufconfig_struct *)(struct comedi_bufconfig_struct *) calloc(1, sizeof(struct comedi_bufconfig_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_bufconfig_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_bufconfig_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufconfig_struct *arg1 = (struct comedi_bufconfig_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_bufconfig_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufconfig_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_bufconfig_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_bufconfig_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_bufinfo_struct_subdevice_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufinfo_struct_subdevice_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subdevice = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_subdevice_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufinfo_struct_subdevice_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subdevice);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_bytes_read_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufinfo_struct_bytes_read_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->bytes_read = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_bytes_read_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufinfo_struct_bytes_read_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->bytes_read);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_buf_int_ptr_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufinfo_struct_buf_int_ptr_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->buf_int_ptr = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_buf_int_ptr_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufinfo_struct_buf_int_ptr_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->buf_int_ptr);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_buf_user_ptr_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufinfo_struct_buf_user_ptr_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->buf_user_ptr = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_buf_user_ptr_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufinfo_struct_buf_user_ptr_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->buf_user_ptr);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_buf_int_count_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufinfo_struct_buf_int_count_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->buf_int_count = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_buf_int_count_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufinfo_struct_buf_int_count_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->buf_int_count);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_buf_user_count_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufinfo_struct_buf_user_count_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->buf_user_count = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_buf_user_count_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufinfo_struct_buf_user_count_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->buf_user_count);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_bytes_written_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufinfo_struct_bytes_written_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->bytes_written = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_bytes_written_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufinfo_struct_bytes_written_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->bytes_written);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_unused_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int *arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_bufinfo_struct_unused_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        int ii;
-        unsigned int *b = (unsigned int *) arg1->unused;
-        for (ii = 0; ii < 4; ii++) b[ii] = *((unsigned int *) arg2 + ii);
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_bufinfo_struct_unused_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_bufinfo_struct_unused_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *)(unsigned int *) ((arg1)->unused);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_bufinfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_bufinfo_struct")) goto fail;
-    result = (struct comedi_bufinfo_struct *)(struct comedi_bufinfo_struct *) calloc(1, sizeof(struct comedi_bufinfo_struct));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_bufinfo_struct, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_bufinfo_struct(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    struct comedi_bufinfo_struct *arg1 = (struct comedi_bufinfo_struct *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_bufinfo_struct",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_bufinfo_struct,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_bufinfo_struct_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_bufinfo_struct, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_range_min_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_range *arg1 = (comedi_range *) 0 ;
-    double arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Od:comedi_range_min_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if (arg1) (arg1)->min = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_range_min_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_range *arg1 = (comedi_range *) 0 ;
-    double result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_range_min_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (double) ((arg1)->min);
-    
-    resultobj = PyFloat_FromDouble(result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_range_max_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_range *arg1 = (comedi_range *) 0 ;
-    double arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Od:comedi_range_max_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if (arg1) (arg1)->max = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_range_max_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_range *arg1 = (comedi_range *) 0 ;
-    double result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_range_max_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (double) ((arg1)->max);
-    
-    resultobj = PyFloat_FromDouble(result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_range_unit_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_range *arg1 = (comedi_range *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_range_unit_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->unit = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_range_unit_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_range *arg1 = (comedi_range *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_range_unit_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->unit);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_range(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_range *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_range")) goto fail;
-    result = (comedi_range *)(comedi_range *) calloc(1, sizeof(comedi_range));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_range, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_range(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_range *arg1 = (comedi_range *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_range",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_range_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_range, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_sv_t_dev_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    comedi_t *arg2 = (comedi_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_sv_t_dev_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->dev = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_dev_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    comedi_t *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_sv_t_dev_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (comedi_t *) ((arg1)->dev);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_t, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_subdevice_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_sv_t_subdevice_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subdevice = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_subdevice_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_sv_t_subdevice_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subdevice);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_chan_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_sv_t_chan_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->chan = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_chan_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_sv_t_chan_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->chan);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_range_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    int arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Oi:comedi_sv_t_range_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if (arg1) (arg1)->range = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_range_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_sv_t_range_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int) ((arg1)->range);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_aref_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    int arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Oi:comedi_sv_t_aref_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if (arg1) (arg1)->aref = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_aref_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_sv_t_aref_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int) ((arg1)->aref);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_n_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    int arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Oi:comedi_sv_t_n_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if (arg1) (arg1)->n = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_n_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_sv_t_n_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int) ((arg1)->n);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_maxdata_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    lsampl_t arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_sv_t_maxdata_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (lsampl_t) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->maxdata = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_t_maxdata_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    lsampl_t result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_sv_t_maxdata_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (lsampl_t) ((arg1)->maxdata);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_sv_t(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_sv_t")) goto fail;
-    result = (comedi_sv_t *)(comedi_sv_t *) calloc(1, sizeof(comedi_sv_t));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_sv_t, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_sv_t(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_sv_t",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_sv_t_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_sv_t, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_open(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    char *arg1 ;
-    comedi_t *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)"s:comedi_open",&arg1)) goto fail;
-    result = (comedi_t *)comedi_open((char const *)arg1);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_t, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_close(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_close",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_close(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_loglevel(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    int arg1 ;
-    int result;
-    
-    if(!PyArg_ParseTuple(args,(char *)"i:comedi_loglevel",&arg1)) goto fail;
-    result = (int)comedi_loglevel(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_perror(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    char *arg1 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"s:comedi_perror",&arg1)) goto fail;
-    comedi_perror((char const *)arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_strerror(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    int arg1 ;
-    char *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)"i:comedi_strerror",&arg1)) goto fail;
-    result = (char *)comedi_strerror(arg1);
-    
-    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_errno(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    int result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":comedi_errno")) goto fail;
-    result = (int)comedi_errno();
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_fileno(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_fileno",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_fileno(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_set_global_oor_behavior(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    int arg1 ;
-    int result;
-    
-    if(!PyArg_ParseTuple(args,(char *)"i:comedi_set_global_oor_behavior",&arg1)) goto fail;
-    result = (int)comedi_set_global_oor_behavior((enum comedi_oor_behavior)arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_n_subdevices(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_get_n_subdevices",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_get_n_subdevices(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_version_code(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_get_version_code",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_get_version_code(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_driver_name(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    char *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_get_driver_name",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (char *)comedi_get_driver_name(arg1);
-    
-    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_board_name(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    char *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_get_board_name",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (char *)comedi_get_board_name(arg1);
-    
-    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_read_subdevice(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_get_read_subdevice",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_get_read_subdevice(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_write_subdevice(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_get_write_subdevice",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_get_write_subdevice(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_subdevice_type(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_get_subdevice_type",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_get_subdevice_type(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_find_subdevice_by_type(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    int arg2 ;
-    unsigned int arg3 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OiO:comedi_find_subdevice_by_type",&obj0,&arg2,&obj2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_find_subdevice_by_type(arg1,arg2,arg3);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_subdevice_flags(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_get_subdevice_flags",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_get_subdevice_flags(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_n_channels(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_get_n_channels",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_get_n_channels(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_range_is_chan_specific(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_range_is_chan_specific",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_range_is_chan_specific(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_maxdata_is_chan_specific(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_maxdata_is_chan_specific",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_maxdata_is_chan_specific(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_maxdata(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    lsampl_t result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOO:comedi_get_maxdata",&obj0,&obj1,&obj2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (lsampl_t)comedi_get_maxdata(arg1,arg2,arg3);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_n_ranges(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOO:comedi_get_n_ranges",&obj0,&obj1,&obj2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_get_n_ranges(arg1,arg2,arg3);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_range(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    comedi_range *result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOO:comedi_get_range",&obj0,&obj1,&obj2,&obj3)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (comedi_range *)comedi_get_range(arg1,arg2,arg3,arg4);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_range, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_find_range(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    double arg5 ;
-    double arg6 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOOdd:comedi_find_range",&obj0,&obj1,&obj2,&obj3,&arg5,&arg6)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_find_range(arg1,arg2,arg3,arg4,arg5,arg6);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_buffer_size(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_get_buffer_size",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_get_buffer_size(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_max_buffer_size(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_get_max_buffer_size",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_get_max_buffer_size(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_set_buffer_size(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOO:comedi_set_buffer_size",&obj0,&obj1,&obj2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_set_buffer_size(arg1,arg2,arg3);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_do_insnlist(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    comedi_insnlist *arg2 = (comedi_insnlist *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_do_insnlist",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_insnlist,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_do_insnlist(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_do_insn(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    comedi_insn *arg2 = (comedi_insn *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_do_insn",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_insn,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_do_insn(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_lock(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_lock",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_lock(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_unlock(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_unlock",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_unlock(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_to_phys(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    lsampl_t arg1 ;
-    comedi_range *arg2 = (comedi_range *) 0 ;
-    lsampl_t arg3 ;
-    double result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOO:comedi_to_phys",&obj0,&obj1,&obj2)) goto fail;
-    arg1 = (lsampl_t) PyInt_AsLong(obj0);
-    if (PyErr_Occurred()) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg3 = (lsampl_t) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (double)comedi_to_phys(arg1,arg2,arg3);
-    
-    resultobj = PyFloat_FromDouble(result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_from_phys(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    double arg1 ;
-    comedi_range *arg2 = (comedi_range *) 0 ;
-    lsampl_t arg3 ;
-    lsampl_t result;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"dOO:comedi_from_phys",&arg1,&obj1,&obj2)) goto fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg3 = (lsampl_t) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (lsampl_t)comedi_from_phys(arg1,arg2,arg3);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sampl_to_phys(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    double *arg1 = (double *) 0 ;
-    int arg2 ;
-    sampl_t *arg3 = (sampl_t *) 0 ;
-    int arg4 ;
-    comedi_range *arg5 = (comedi_range *) 0 ;
-    lsampl_t arg6 ;
-    int arg7 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj4 = 0 ;
-    PyObject * obj5 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OiOiOOi:comedi_sampl_to_phys",&obj0,&arg2,&obj2,&arg4,&obj4,&obj5,&arg7)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_double,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_sampl_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj4,(void **) &arg5, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg6 = (lsampl_t) PyInt_AsLong(obj5);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_sampl_to_phys(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sampl_from_phys(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    sampl_t *arg1 = (sampl_t *) 0 ;
-    int arg2 ;
-    double *arg3 = (double *) 0 ;
-    int arg4 ;
-    comedi_range *arg5 = (comedi_range *) 0 ;
-    lsampl_t arg6 ;
-    int arg7 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj4 = 0 ;
-    PyObject * obj5 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OiOiOOi:comedi_sampl_from_phys",&obj0,&arg2,&obj2,&arg4,&obj4,&obj5,&arg7)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_sampl_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_double,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj4,(void **) &arg5, SWIGTYPE_p_comedi_range,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg6 = (lsampl_t) PyInt_AsLong(obj5);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_sampl_from_phys(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_data_read(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    unsigned int arg5 ;
-    lsampl_t *arg6 = (lsampl_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    PyObject * obj4 = 0 ;
-    PyObject * obj5 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOOOO:comedi_data_read",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg5 = (unsigned int) PyInt_AsLong(obj4);
-    if (PyErr_Occurred()) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj5,(void **) &arg6, SWIGTYPE_p_lsampl_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_data_read(arg1,arg2,arg3,arg4,arg5,arg6);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_data_read_n(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    unsigned int arg5 ;
-    lsampl_t *arg6 = (lsampl_t *) 0 ;
-    unsigned int arg7 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    PyObject * obj4 = 0 ;
-    PyObject * obj5 = 0 ;
-    PyObject * obj6 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOOOOO:comedi_data_read_n",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg5 = (unsigned int) PyInt_AsLong(obj4);
-    if (PyErr_Occurred()) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj5,(void **) &arg6, SWIGTYPE_p_lsampl_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg7 = (unsigned int) PyInt_AsLong(obj6);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_data_read_n(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_data_read_hint(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    unsigned int arg5 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    PyObject * obj4 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOOO:comedi_data_read_hint",&obj0,&obj1,&obj2,&obj3,&obj4)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg5 = (unsigned int) PyInt_AsLong(obj4);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_data_read_hint(arg1,arg2,arg3,arg4,arg5);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_data_read_delayed(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    unsigned int arg5 ;
-    lsampl_t *arg6 = (lsampl_t *) 0 ;
-    unsigned int arg7 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    PyObject * obj4 = 0 ;
-    PyObject * obj5 = 0 ;
-    PyObject * obj6 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOOOOO:comedi_data_read_delayed",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg5 = (unsigned int) PyInt_AsLong(obj4);
-    if (PyErr_Occurred()) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj5,(void **) &arg6, SWIGTYPE_p_lsampl_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg7 = (unsigned int) PyInt_AsLong(obj6);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_data_read_delayed(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_data_write(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    unsigned int arg5 ;
-    lsampl_t arg6 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    PyObject * obj4 = 0 ;
-    PyObject * obj5 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOOOO:comedi_data_write",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg5 = (unsigned int) PyInt_AsLong(obj4);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg6 = (lsampl_t) PyInt_AsLong(obj5);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_data_write(arg1,arg2,arg3,arg4,arg5,arg6);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_dio_config(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOO:comedi_dio_config",&obj0,&obj1,&obj2,&obj3)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_dio_config(arg1,arg2,arg3,arg4);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_dio_read(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int *arg4 = (unsigned int *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOO:comedi_dio_read",&obj0,&obj1,&obj2,&obj3)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj3,(void **) &arg4, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_dio_read(arg1,arg2,arg3,arg4);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_dio_write(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOO:comedi_dio_write",&obj0,&obj1,&obj2,&obj3)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_dio_write(arg1,arg2,arg3,arg4);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_dio_bitfield(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int *arg4 = (unsigned int *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOO:comedi_dio_bitfield",&obj0,&obj1,&obj2,&obj3)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj3,(void **) &arg4, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_dio_bitfield(arg1,arg2,arg3,arg4);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_init(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    comedi_t *arg2 = (comedi_t *) 0 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOO:comedi_sv_init",&obj0,&obj1,&obj2,&obj3)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_sv_init(arg1,arg2,arg3,arg4);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_update(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_sv_update",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_sv_update(arg1);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_sv_measure(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_sv_t *arg1 = (comedi_sv_t *) 0 ;
-    double *arg2 = (double *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_sv_measure",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_sv_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_double,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_sv_measure(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_cmd_src_mask(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    comedi_cmd *arg3 = (comedi_cmd *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOO:comedi_get_cmd_src_mask",&obj0,&obj1,&obj2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_comedi_cmd,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_get_cmd_src_mask(arg1,arg2,arg3);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_cmd_generic_timed(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    comedi_cmd *arg3 = (comedi_cmd *) 0 ;
-    unsigned int arg4 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOO:comedi_get_cmd_generic_timed",&obj0,&obj1,&obj2,&obj3)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_comedi_cmd,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_get_cmd_generic_timed(arg1,arg2,arg3,arg4);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cancel(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_cancel",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_cancel(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_command(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    comedi_cmd *arg2 = (comedi_cmd *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_command",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_cmd,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_command(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_command_test(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    comedi_cmd *arg2 = (comedi_cmd *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_command_test",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_cmd,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_command_test(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_poll(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_poll",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_poll(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_set_max_buffer_size(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOO:comedi_set_max_buffer_size",&obj0,&obj1,&obj2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_set_max_buffer_size(arg1,arg2,arg3);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_buffer_contents(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_get_buffer_contents",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_get_buffer_contents(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_mark_buffer_read(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOO:comedi_mark_buffer_read",&obj0,&obj1,&obj2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_mark_buffer_read(arg1,arg2,arg3);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_buffer_offset(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_get_buffer_offset",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_get_buffer_offset(arg1,arg2);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_caldac_t_subdevice_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_caldac_t *arg1 = (comedi_caldac_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_caldac_t_subdevice_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_caldac_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subdevice = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_caldac_t_subdevice_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_caldac_t *arg1 = (comedi_caldac_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_caldac_t_subdevice_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_caldac_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subdevice);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_caldac_t_channel_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_caldac_t *arg1 = (comedi_caldac_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_caldac_t_channel_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_caldac_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->channel = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_caldac_t_channel_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_caldac_t *arg1 = (comedi_caldac_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_caldac_t_channel_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_caldac_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->channel);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_caldac_t_value_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_caldac_t *arg1 = (comedi_caldac_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_caldac_t_value_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_caldac_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->value = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_caldac_t_value_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_caldac_t *arg1 = (comedi_caldac_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_caldac_t_value_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_caldac_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->value);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_caldac_t(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_caldac_t *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_caldac_t")) goto fail;
-    result = (comedi_caldac_t *)(comedi_caldac_t *) calloc(1, sizeof(comedi_caldac_t));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_caldac_t, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_caldac_t(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_caldac_t *arg1 = (comedi_caldac_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_caldac_t",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_caldac_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_caldac_t_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_caldac_t, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_calibration_setting_t_subdevice_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_setting_t_subdevice_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->subdevice = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_subdevice_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_setting_t_subdevice_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->subdevice);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_channels_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int *arg2 = (unsigned int *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_setting_t_channels_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->channels = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_channels_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_setting_t_channels_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *) ((arg1)->channels);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_num_channels_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_setting_t_num_channels_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->num_channels = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_num_channels_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_setting_t_num_channels_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->num_channels);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_ranges_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int *arg2 = (unsigned int *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_setting_t_ranges_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->ranges = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_ranges_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_setting_t_ranges_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *) ((arg1)->ranges);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_num_ranges_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_setting_t_num_ranges_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->num_ranges = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_num_ranges_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_setting_t_num_ranges_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->num_ranges);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_arefs_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int *arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_setting_t_arefs_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_unsigned_int,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        int ii;
-        unsigned int *b = (unsigned int *) arg1->arefs;
-        for (ii = 0; ii < 4; ii++) b[ii] = *((unsigned int *) arg2 + ii);
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_arefs_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_setting_t_arefs_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int *)(unsigned int *) ((arg1)->arefs);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_unsigned_int, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_num_arefs_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_setting_t_num_arefs_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->num_arefs = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_num_arefs_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_setting_t_num_arefs_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->num_arefs);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_caldacs_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    comedi_caldac_t *arg2 = (comedi_caldac_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_setting_t_caldacs_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_caldac_t,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->caldacs = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_caldacs_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    comedi_caldac_t *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_setting_t_caldacs_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (comedi_caldac_t *) ((arg1)->caldacs);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_caldac_t, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_num_caldacs_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_setting_t_num_caldacs_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->num_caldacs = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_setting_t_num_caldacs_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_setting_t_num_caldacs_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->num_caldacs);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_calibration_setting_t(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_calibration_setting_t")) goto fail;
-    result = (comedi_calibration_setting_t *)(comedi_calibration_setting_t *) calloc(1, sizeof(comedi_calibration_setting_t));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_calibration_setting_t, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_calibration_setting_t(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_setting_t *arg1 = (comedi_calibration_setting_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_calibration_setting_t",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_calibration_setting_t_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_calibration_setting_t, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_calibration_t_driver_name_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    char *arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Os:comedi_calibration_t_driver_name_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        if (arg1->driver_name) free((char*)arg1->driver_name);
-        if (arg2) {
-            arg1->driver_name = (char *) malloc(strlen(arg2)+1);
-            strcpy((char*)arg1->driver_name,arg2);
-        }else {
-            arg1->driver_name = 0;
-        }
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_t_driver_name_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    char *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_t_driver_name_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (char *) ((arg1)->driver_name);
-    
-    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_t_board_name_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    char *arg2 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"Os:comedi_calibration_t_board_name_set",&obj0,&arg2)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    {
-        if (arg1->board_name) free((char*)arg1->board_name);
-        if (arg2) {
-            arg1->board_name = (char *) malloc(strlen(arg2)+1);
-            strcpy((char*)arg1->board_name,arg2);
-        }else {
-            arg1->board_name = 0;
-        }
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_t_board_name_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    char *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_t_board_name_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (char *) ((arg1)->board_name);
-    
-    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_t_settings_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    comedi_calibration_setting_t *arg2 = (comedi_calibration_setting_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_t_settings_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_comedi_calibration_setting_t,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
-    if (arg1) (arg1)->settings = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_t_settings_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    comedi_calibration_setting_t *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_t_settings_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (comedi_calibration_setting_t *) ((arg1)->settings);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_calibration_setting_t, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_t_num_settings_set(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    unsigned int arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OO:comedi_calibration_t_num_settings_set",&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    if (arg1) (arg1)->num_settings = arg2;
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_calibration_t_num_settings_get(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    unsigned int result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_calibration_t_num_settings_get",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (unsigned int) ((arg1)->num_settings);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_new_comedi_calibration_t(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)":new_comedi_calibration_t")) goto fail;
-    result = (comedi_calibration_t *)(comedi_calibration_t *) calloc(1, sizeof(comedi_calibration_t));
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_calibration_t, 1);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_delete_comedi_calibration_t(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:delete_comedi_calibration_t",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    free((char *) arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject * comedi_calibration_t_swigregister(PyObject *self, PyObject *args) {
-    PyObject *obj;
-    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
-    SWIG_TypeClientData(SWIGTYPE_p_comedi_calibration_t, obj);
-    Py_INCREF(obj);
-    return Py_BuildValue((char *)"");
-}
-static PyObject *_wrap_comedi_parse_calibration_file(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    char *arg1 ;
-    comedi_calibration_t *result;
-    
-    if(!PyArg_ParseTuple(args,(char *)"s:comedi_parse_calibration_file",&arg1)) goto fail;
-    result = (comedi_calibration_t *)comedi_parse_calibration_file((char const *)arg1);
-    
-    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_comedi_calibration_t, 0);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_apply_parsed_calibration(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    unsigned int arg5 ;
-    comedi_calibration_t *arg6 = (comedi_calibration_t *) 0 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    PyObject * obj4 = 0 ;
-    PyObject * obj5 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOOOO:comedi_apply_parsed_calibration",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg5 = (unsigned int) PyInt_AsLong(obj4);
-    if (PyErr_Occurred()) SWIG_fail;
-    if ((SWIG_ConvertPtr(obj5,(void **) &arg6, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (int)comedi_apply_parsed_calibration(arg1,arg2,arg3,arg4,arg5,(comedi_calibration_t const *)arg6);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_get_default_calibration_path(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    char *result;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_get_default_calibration_path",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    result = (char *)comedi_get_default_calibration_path(arg1);
-    
-    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_cleanup_calibration(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_calibration_t *arg1 = (comedi_calibration_t *) 0 ;
-    PyObject * obj0 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"O:comedi_cleanup_calibration",&obj0)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_calibration_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    comedi_cleanup_calibration(arg1);
-    
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_comedi_apply_calibration(PyObject *self, PyObject *args) {
-    PyObject *resultobj;
-    comedi_t *arg1 = (comedi_t *) 0 ;
-    unsigned int arg2 ;
-    unsigned int arg3 ;
-    unsigned int arg4 ;
-    unsigned int arg5 ;
-    char *arg6 ;
-    int result;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    PyObject * obj2 = 0 ;
-    PyObject * obj3 = 0 ;
-    PyObject * obj4 = 0 ;
-    
-    if(!PyArg_ParseTuple(args,(char *)"OOOOOs:comedi_apply_calibration",&obj0,&obj1,&obj2,&obj3,&obj4,&arg6)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_comedi_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
-    arg2 = (unsigned int) PyInt_AsLong(obj1);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg3 = (unsigned int) PyInt_AsLong(obj2);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg4 = (unsigned int) PyInt_AsLong(obj3);
-    if (PyErr_Occurred()) SWIG_fail;
-    arg5 = (unsigned int) PyInt_AsLong(obj4);
-    if (PyErr_Occurred()) SWIG_fail;
-    result = (int)comedi_apply_calibration(arg1,arg2,arg3,arg4,arg5,(char const *)arg6);
-    
-    resultobj = PyInt_FromLong((long)result);
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyMethodDef SwigMethods[] = {
-        { (char *)"cr_pack", _wrap_cr_pack, METH_VARARGS },
-        { (char *)"cr_pack_flags", _wrap_cr_pack_flags, METH_VARARGS },
-        { (char *)"cr_chan", _wrap_cr_chan, METH_VARARGS },
-        { (char *)"cr_range", _wrap_cr_range, METH_VARARGS },
-        { (char *)"cr_aref", _wrap_cr_aref, METH_VARARGS },
-        { (char *)"new_chanlist", _wrap_new_chanlist, METH_VARARGS },
-        { (char *)"delete_chanlist", _wrap_delete_chanlist, METH_VARARGS },
-        { (char *)"chanlist___getitem__", _wrap_chanlist___getitem__, METH_VARARGS },
-        { (char *)"chanlist___setitem__", _wrap_chanlist___setitem__, METH_VARARGS },
-        { (char *)"chanlist_cast", _wrap_chanlist_cast, METH_VARARGS },
-        { (char *)"chanlist_frompointer", _wrap_chanlist_frompointer, METH_VARARGS },
-        { (char *)"chanlist_swigregister", chanlist_swigregister, METH_VARARGS },
-        { (char *)"comedi_trig_struct_subdev_set", _wrap_comedi_trig_struct_subdev_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_subdev_get", _wrap_comedi_trig_struct_subdev_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_mode_set", _wrap_comedi_trig_struct_mode_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_mode_get", _wrap_comedi_trig_struct_mode_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_flags_set", _wrap_comedi_trig_struct_flags_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_flags_get", _wrap_comedi_trig_struct_flags_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_n_chan_set", _wrap_comedi_trig_struct_n_chan_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_n_chan_get", _wrap_comedi_trig_struct_n_chan_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_chanlist_set", _wrap_comedi_trig_struct_chanlist_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_chanlist_get", _wrap_comedi_trig_struct_chanlist_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_data_set", _wrap_comedi_trig_struct_data_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_data_get", _wrap_comedi_trig_struct_data_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_n_set", _wrap_comedi_trig_struct_n_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_n_get", _wrap_comedi_trig_struct_n_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_trigsrc_set", _wrap_comedi_trig_struct_trigsrc_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_trigsrc_get", _wrap_comedi_trig_struct_trigsrc_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_trigvar_set", _wrap_comedi_trig_struct_trigvar_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_trigvar_get", _wrap_comedi_trig_struct_trigvar_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_trigvar1_set", _wrap_comedi_trig_struct_trigvar1_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_trigvar1_get", _wrap_comedi_trig_struct_trigvar1_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_data_len_set", _wrap_comedi_trig_struct_data_len_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_data_len_get", _wrap_comedi_trig_struct_data_len_get, METH_VARARGS },
-        { (char *)"comedi_trig_struct_unused_set", _wrap_comedi_trig_struct_unused_set, METH_VARARGS },
-        { (char *)"comedi_trig_struct_unused_get", _wrap_comedi_trig_struct_unused_get, METH_VARARGS },
-        { (char *)"new_comedi_trig_struct", _wrap_new_comedi_trig_struct, METH_VARARGS },
-        { (char *)"delete_comedi_trig_struct", _wrap_delete_comedi_trig_struct, METH_VARARGS },
-        { (char *)"comedi_trig_struct_swigregister", comedi_trig_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_insn_struct_insn_set", _wrap_comedi_insn_struct_insn_set, METH_VARARGS },
-        { (char *)"comedi_insn_struct_insn_get", _wrap_comedi_insn_struct_insn_get, METH_VARARGS },
-        { (char *)"comedi_insn_struct_n_set", _wrap_comedi_insn_struct_n_set, METH_VARARGS },
-        { (char *)"comedi_insn_struct_n_get", _wrap_comedi_insn_struct_n_get, METH_VARARGS },
-        { (char *)"comedi_insn_struct_data_set", _wrap_comedi_insn_struct_data_set, METH_VARARGS },
-        { (char *)"comedi_insn_struct_data_get", _wrap_comedi_insn_struct_data_get, METH_VARARGS },
-        { (char *)"comedi_insn_struct_subdev_set", _wrap_comedi_insn_struct_subdev_set, METH_VARARGS },
-        { (char *)"comedi_insn_struct_subdev_get", _wrap_comedi_insn_struct_subdev_get, METH_VARARGS },
-        { (char *)"comedi_insn_struct_chanspec_set", _wrap_comedi_insn_struct_chanspec_set, METH_VARARGS },
-        { (char *)"comedi_insn_struct_chanspec_get", _wrap_comedi_insn_struct_chanspec_get, METH_VARARGS },
-        { (char *)"comedi_insn_struct_unused_set", _wrap_comedi_insn_struct_unused_set, METH_VARARGS },
-        { (char *)"comedi_insn_struct_unused_get", _wrap_comedi_insn_struct_unused_get, METH_VARARGS },
-        { (char *)"new_comedi_insn_struct", _wrap_new_comedi_insn_struct, METH_VARARGS },
-        { (char *)"delete_comedi_insn_struct", _wrap_delete_comedi_insn_struct, METH_VARARGS },
-        { (char *)"comedi_insn_struct_swigregister", comedi_insn_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_insnlist_struct_n_insns_set", _wrap_comedi_insnlist_struct_n_insns_set, METH_VARARGS },
-        { (char *)"comedi_insnlist_struct_n_insns_get", _wrap_comedi_insnlist_struct_n_insns_get, METH_VARARGS },
-        { (char *)"comedi_insnlist_struct_insns_set", _wrap_comedi_insnlist_struct_insns_set, METH_VARARGS },
-        { (char *)"comedi_insnlist_struct_insns_get", _wrap_comedi_insnlist_struct_insns_get, METH_VARARGS },
-        { (char *)"new_comedi_insnlist_struct", _wrap_new_comedi_insnlist_struct, METH_VARARGS },
-        { (char *)"delete_comedi_insnlist_struct", _wrap_delete_comedi_insnlist_struct, METH_VARARGS },
-        { (char *)"comedi_insnlist_struct_swigregister", comedi_insnlist_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_subdev_set", _wrap_comedi_cmd_struct_subdev_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_subdev_get", _wrap_comedi_cmd_struct_subdev_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_flags_set", _wrap_comedi_cmd_struct_flags_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_flags_get", _wrap_comedi_cmd_struct_flags_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_start_src_set", _wrap_comedi_cmd_struct_start_src_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_start_src_get", _wrap_comedi_cmd_struct_start_src_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_start_arg_set", _wrap_comedi_cmd_struct_start_arg_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_start_arg_get", _wrap_comedi_cmd_struct_start_arg_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_scan_begin_src_set", _wrap_comedi_cmd_struct_scan_begin_src_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_scan_begin_src_get", _wrap_comedi_cmd_struct_scan_begin_src_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_scan_begin_arg_set", _wrap_comedi_cmd_struct_scan_begin_arg_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_scan_begin_arg_get", _wrap_comedi_cmd_struct_scan_begin_arg_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_convert_src_set", _wrap_comedi_cmd_struct_convert_src_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_convert_src_get", _wrap_comedi_cmd_struct_convert_src_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_convert_arg_set", _wrap_comedi_cmd_struct_convert_arg_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_convert_arg_get", _wrap_comedi_cmd_struct_convert_arg_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_scan_end_src_set", _wrap_comedi_cmd_struct_scan_end_src_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_scan_end_src_get", _wrap_comedi_cmd_struct_scan_end_src_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_scan_end_arg_set", _wrap_comedi_cmd_struct_scan_end_arg_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_scan_end_arg_get", _wrap_comedi_cmd_struct_scan_end_arg_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_stop_src_set", _wrap_comedi_cmd_struct_stop_src_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_stop_src_get", _wrap_comedi_cmd_struct_stop_src_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_stop_arg_set", _wrap_comedi_cmd_struct_stop_arg_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_stop_arg_get", _wrap_comedi_cmd_struct_stop_arg_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_chanlist_set", _wrap_comedi_cmd_struct_chanlist_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_chanlist_get", _wrap_comedi_cmd_struct_chanlist_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_chanlist_len_set", _wrap_comedi_cmd_struct_chanlist_len_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_chanlist_len_get", _wrap_comedi_cmd_struct_chanlist_len_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_data_set", _wrap_comedi_cmd_struct_data_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_data_get", _wrap_comedi_cmd_struct_data_get, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_data_len_set", _wrap_comedi_cmd_struct_data_len_set, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_data_len_get", _wrap_comedi_cmd_struct_data_len_get, METH_VARARGS },
-        { (char *)"new_comedi_cmd_struct", _wrap_new_comedi_cmd_struct, METH_VARARGS },
-        { (char *)"delete_comedi_cmd_struct", _wrap_delete_comedi_cmd_struct, METH_VARARGS },
-        { (char *)"comedi_cmd_struct_swigregister", comedi_cmd_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_subdev_set", _wrap_comedi_chaninfo_struct_subdev_set, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_subdev_get", _wrap_comedi_chaninfo_struct_subdev_get, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_maxdata_list_set", _wrap_comedi_chaninfo_struct_maxdata_list_set, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_maxdata_list_get", _wrap_comedi_chaninfo_struct_maxdata_list_get, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_flaglist_set", _wrap_comedi_chaninfo_struct_flaglist_set, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_flaglist_get", _wrap_comedi_chaninfo_struct_flaglist_get, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_rangelist_set", _wrap_comedi_chaninfo_struct_rangelist_set, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_rangelist_get", _wrap_comedi_chaninfo_struct_rangelist_get, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_unused_set", _wrap_comedi_chaninfo_struct_unused_set, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_unused_get", _wrap_comedi_chaninfo_struct_unused_get, METH_VARARGS },
-        { (char *)"new_comedi_chaninfo_struct", _wrap_new_comedi_chaninfo_struct, METH_VARARGS },
-        { (char *)"delete_comedi_chaninfo_struct", _wrap_delete_comedi_chaninfo_struct, METH_VARARGS },
-        { (char *)"comedi_chaninfo_struct_swigregister", comedi_chaninfo_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_rangeinfo_struct_range_type_set", _wrap_comedi_rangeinfo_struct_range_type_set, METH_VARARGS },
-        { (char *)"comedi_rangeinfo_struct_range_type_get", _wrap_comedi_rangeinfo_struct_range_type_get, METH_VARARGS },
-        { (char *)"comedi_rangeinfo_struct_range_ptr_set", _wrap_comedi_rangeinfo_struct_range_ptr_set, METH_VARARGS },
-        { (char *)"comedi_rangeinfo_struct_range_ptr_get", _wrap_comedi_rangeinfo_struct_range_ptr_get, METH_VARARGS },
-        { (char *)"new_comedi_rangeinfo_struct", _wrap_new_comedi_rangeinfo_struct, METH_VARARGS },
-        { (char *)"delete_comedi_rangeinfo_struct", _wrap_delete_comedi_rangeinfo_struct, METH_VARARGS },
-        { (char *)"comedi_rangeinfo_struct_swigregister", comedi_rangeinfo_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_krange_struct_min_set", _wrap_comedi_krange_struct_min_set, METH_VARARGS },
-        { (char *)"comedi_krange_struct_min_get", _wrap_comedi_krange_struct_min_get, METH_VARARGS },
-        { (char *)"comedi_krange_struct_max_set", _wrap_comedi_krange_struct_max_set, METH_VARARGS },
-        { (char *)"comedi_krange_struct_max_get", _wrap_comedi_krange_struct_max_get, METH_VARARGS },
-        { (char *)"comedi_krange_struct_flags_set", _wrap_comedi_krange_struct_flags_set, METH_VARARGS },
-        { (char *)"comedi_krange_struct_flags_get", _wrap_comedi_krange_struct_flags_get, METH_VARARGS },
-        { (char *)"new_comedi_krange_struct", _wrap_new_comedi_krange_struct, METH_VARARGS },
-        { (char *)"delete_comedi_krange_struct", _wrap_delete_comedi_krange_struct, METH_VARARGS },
-        { (char *)"comedi_krange_struct_swigregister", comedi_krange_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_type_set", _wrap_comedi_subdinfo_struct_type_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_type_get", _wrap_comedi_subdinfo_struct_type_get, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_n_chan_set", _wrap_comedi_subdinfo_struct_n_chan_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_n_chan_get", _wrap_comedi_subdinfo_struct_n_chan_get, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_subd_flags_set", _wrap_comedi_subdinfo_struct_subd_flags_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_subd_flags_get", _wrap_comedi_subdinfo_struct_subd_flags_get, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_timer_type_set", _wrap_comedi_subdinfo_struct_timer_type_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_timer_type_get", _wrap_comedi_subdinfo_struct_timer_type_get, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_len_chanlist_set", _wrap_comedi_subdinfo_struct_len_chanlist_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_len_chanlist_get", _wrap_comedi_subdinfo_struct_len_chanlist_get, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_maxdata_set", _wrap_comedi_subdinfo_struct_maxdata_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_maxdata_get", _wrap_comedi_subdinfo_struct_maxdata_get, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_flags_set", _wrap_comedi_subdinfo_struct_flags_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_flags_get", _wrap_comedi_subdinfo_struct_flags_get, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_range_type_set", _wrap_comedi_subdinfo_struct_range_type_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_range_type_get", _wrap_comedi_subdinfo_struct_range_type_get, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_settling_time_0_set", _wrap_comedi_subdinfo_struct_settling_time_0_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_settling_time_0_get", _wrap_comedi_subdinfo_struct_settling_time_0_get, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_unused_set", _wrap_comedi_subdinfo_struct_unused_set, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_unused_get", _wrap_comedi_subdinfo_struct_unused_get, METH_VARARGS },
-        { (char *)"new_comedi_subdinfo_struct", _wrap_new_comedi_subdinfo_struct, METH_VARARGS },
-        { (char *)"delete_comedi_subdinfo_struct", _wrap_delete_comedi_subdinfo_struct, METH_VARARGS },
-        { (char *)"comedi_subdinfo_struct_swigregister", comedi_subdinfo_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_version_code_set", _wrap_comedi_devinfo_struct_version_code_set, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_version_code_get", _wrap_comedi_devinfo_struct_version_code_get, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_n_subdevs_set", _wrap_comedi_devinfo_struct_n_subdevs_set, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_n_subdevs_get", _wrap_comedi_devinfo_struct_n_subdevs_get, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_driver_name_set", _wrap_comedi_devinfo_struct_driver_name_set, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_driver_name_get", _wrap_comedi_devinfo_struct_driver_name_get, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_board_name_set", _wrap_comedi_devinfo_struct_board_name_set, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_board_name_get", _wrap_comedi_devinfo_struct_board_name_get, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_read_subdevice_set", _wrap_comedi_devinfo_struct_read_subdevice_set, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_read_subdevice_get", _wrap_comedi_devinfo_struct_read_subdevice_get, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_write_subdevice_set", _wrap_comedi_devinfo_struct_write_subdevice_set, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_write_subdevice_get", _wrap_comedi_devinfo_struct_write_subdevice_get, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_unused_set", _wrap_comedi_devinfo_struct_unused_set, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_unused_get", _wrap_comedi_devinfo_struct_unused_get, METH_VARARGS },
-        { (char *)"new_comedi_devinfo_struct", _wrap_new_comedi_devinfo_struct, METH_VARARGS },
-        { (char *)"delete_comedi_devinfo_struct", _wrap_delete_comedi_devinfo_struct, METH_VARARGS },
-        { (char *)"comedi_devinfo_struct_swigregister", comedi_devinfo_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_devconfig_struct_board_name_set", _wrap_comedi_devconfig_struct_board_name_set, METH_VARARGS },
-        { (char *)"comedi_devconfig_struct_board_name_get", _wrap_comedi_devconfig_struct_board_name_get, METH_VARARGS },
-        { (char *)"comedi_devconfig_struct_options_set", _wrap_comedi_devconfig_struct_options_set, METH_VARARGS },
-        { (char *)"comedi_devconfig_struct_options_get", _wrap_comedi_devconfig_struct_options_get, METH_VARARGS },
-        { (char *)"new_comedi_devconfig_struct", _wrap_new_comedi_devconfig_struct, METH_VARARGS },
-        { (char *)"delete_comedi_devconfig_struct", _wrap_delete_comedi_devconfig_struct, METH_VARARGS },
-        { (char *)"comedi_devconfig_struct_swigregister", comedi_devconfig_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_subdevice_set", _wrap_comedi_bufconfig_struct_subdevice_set, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_subdevice_get", _wrap_comedi_bufconfig_struct_subdevice_get, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_flags_set", _wrap_comedi_bufconfig_struct_flags_set, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_flags_get", _wrap_comedi_bufconfig_struct_flags_get, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_maximum_size_set", _wrap_comedi_bufconfig_struct_maximum_size_set, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_maximum_size_get", _wrap_comedi_bufconfig_struct_maximum_size_get, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_size_set", _wrap_comedi_bufconfig_struct_size_set, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_size_get", _wrap_comedi_bufconfig_struct_size_get, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_unused_set", _wrap_comedi_bufconfig_struct_unused_set, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_unused_get", _wrap_comedi_bufconfig_struct_unused_get, METH_VARARGS },
-        { (char *)"new_comedi_bufconfig_struct", _wrap_new_comedi_bufconfig_struct, METH_VARARGS },
-        { (char *)"delete_comedi_bufconfig_struct", _wrap_delete_comedi_bufconfig_struct, METH_VARARGS },
-        { (char *)"comedi_bufconfig_struct_swigregister", comedi_bufconfig_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_subdevice_set", _wrap_comedi_bufinfo_struct_subdevice_set, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_subdevice_get", _wrap_comedi_bufinfo_struct_subdevice_get, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_bytes_read_set", _wrap_comedi_bufinfo_struct_bytes_read_set, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_bytes_read_get", _wrap_comedi_bufinfo_struct_bytes_read_get, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_buf_int_ptr_set", _wrap_comedi_bufinfo_struct_buf_int_ptr_set, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_buf_int_ptr_get", _wrap_comedi_bufinfo_struct_buf_int_ptr_get, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_buf_user_ptr_set", _wrap_comedi_bufinfo_struct_buf_user_ptr_set, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_buf_user_ptr_get", _wrap_comedi_bufinfo_struct_buf_user_ptr_get, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_buf_int_count_set", _wrap_comedi_bufinfo_struct_buf_int_count_set, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_buf_int_count_get", _wrap_comedi_bufinfo_struct_buf_int_count_get, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_buf_user_count_set", _wrap_comedi_bufinfo_struct_buf_user_count_set, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_buf_user_count_get", _wrap_comedi_bufinfo_struct_buf_user_count_get, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_bytes_written_set", _wrap_comedi_bufinfo_struct_bytes_written_set, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_bytes_written_get", _wrap_comedi_bufinfo_struct_bytes_written_get, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_unused_set", _wrap_comedi_bufinfo_struct_unused_set, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_unused_get", _wrap_comedi_bufinfo_struct_unused_get, METH_VARARGS },
-        { (char *)"new_comedi_bufinfo_struct", _wrap_new_comedi_bufinfo_struct, METH_VARARGS },
-        { (char *)"delete_comedi_bufinfo_struct", _wrap_delete_comedi_bufinfo_struct, METH_VARARGS },
-        { (char *)"comedi_bufinfo_struct_swigregister", comedi_bufinfo_struct_swigregister, METH_VARARGS },
-        { (char *)"comedi_range_min_set", _wrap_comedi_range_min_set, METH_VARARGS },
-        { (char *)"comedi_range_min_get", _wrap_comedi_range_min_get, METH_VARARGS },
-        { (char *)"comedi_range_max_set", _wrap_comedi_range_max_set, METH_VARARGS },
-        { (char *)"comedi_range_max_get", _wrap_comedi_range_max_get, METH_VARARGS },
-        { (char *)"comedi_range_unit_set", _wrap_comedi_range_unit_set, METH_VARARGS },
-        { (char *)"comedi_range_unit_get", _wrap_comedi_range_unit_get, METH_VARARGS },
-        { (char *)"new_comedi_range", _wrap_new_comedi_range, METH_VARARGS },
-        { (char *)"delete_comedi_range", _wrap_delete_comedi_range, METH_VARARGS },
-        { (char *)"comedi_range_swigregister", comedi_range_swigregister, METH_VARARGS },
-        { (char *)"comedi_sv_t_dev_set", _wrap_comedi_sv_t_dev_set, METH_VARARGS },
-        { (char *)"comedi_sv_t_dev_get", _wrap_comedi_sv_t_dev_get, METH_VARARGS },
-        { (char *)"comedi_sv_t_subdevice_set", _wrap_comedi_sv_t_subdevice_set, METH_VARARGS },
-        { (char *)"comedi_sv_t_subdevice_get", _wrap_comedi_sv_t_subdevice_get, METH_VARARGS },
-        { (char *)"comedi_sv_t_chan_set", _wrap_comedi_sv_t_chan_set, METH_VARARGS },
-        { (char *)"comedi_sv_t_chan_get", _wrap_comedi_sv_t_chan_get, METH_VARARGS },
-        { (char *)"comedi_sv_t_range_set", _wrap_comedi_sv_t_range_set, METH_VARARGS },
-        { (char *)"comedi_sv_t_range_get", _wrap_comedi_sv_t_range_get, METH_VARARGS },
-        { (char *)"comedi_sv_t_aref_set", _wrap_comedi_sv_t_aref_set, METH_VARARGS },
-        { (char *)"comedi_sv_t_aref_get", _wrap_comedi_sv_t_aref_get, METH_VARARGS },
-        { (char *)"comedi_sv_t_n_set", _wrap_comedi_sv_t_n_set, METH_VARARGS },
-        { (char *)"comedi_sv_t_n_get", _wrap_comedi_sv_t_n_get, METH_VARARGS },
-        { (char *)"comedi_sv_t_maxdata_set", _wrap_comedi_sv_t_maxdata_set, METH_VARARGS },
-        { (char *)"comedi_sv_t_maxdata_get", _wrap_comedi_sv_t_maxdata_get, METH_VARARGS },
-        { (char *)"new_comedi_sv_t", _wrap_new_comedi_sv_t, METH_VARARGS },
-        { (char *)"delete_comedi_sv_t", _wrap_delete_comedi_sv_t, METH_VARARGS },
-        { (char *)"comedi_sv_t_swigregister", comedi_sv_t_swigregister, METH_VARARGS },
-        { (char *)"comedi_open", _wrap_comedi_open, METH_VARARGS },
-        { (char *)"comedi_close", _wrap_comedi_close, METH_VARARGS },
-        { (char *)"comedi_loglevel", _wrap_comedi_loglevel, METH_VARARGS },
-        { (char *)"comedi_perror", _wrap_comedi_perror, METH_VARARGS },
-        { (char *)"comedi_strerror", _wrap_comedi_strerror, METH_VARARGS },
-        { (char *)"comedi_errno", _wrap_comedi_errno, METH_VARARGS },
-        { (char *)"comedi_fileno", _wrap_comedi_fileno, METH_VARARGS },
-        { (char *)"comedi_set_global_oor_behavior", _wrap_comedi_set_global_oor_behavior, METH_VARARGS },
-        { (char *)"comedi_get_n_subdevices", _wrap_comedi_get_n_subdevices, METH_VARARGS },
-        { (char *)"comedi_get_version_code", _wrap_comedi_get_version_code, METH_VARARGS },
-        { (char *)"comedi_get_driver_name", _wrap_comedi_get_driver_name, METH_VARARGS },
-        { (char *)"comedi_get_board_name", _wrap_comedi_get_board_name, METH_VARARGS },
-        { (char *)"comedi_get_read_subdevice", _wrap_comedi_get_read_subdevice, METH_VARARGS },
-        { (char *)"comedi_get_write_subdevice", _wrap_comedi_get_write_subdevice, METH_VARARGS },
-        { (char *)"comedi_get_subdevice_type", _wrap_comedi_get_subdevice_type, METH_VARARGS },
-        { (char *)"comedi_find_subdevice_by_type", _wrap_comedi_find_subdevice_by_type, METH_VARARGS },
-        { (char *)"comedi_get_subdevice_flags", _wrap_comedi_get_subdevice_flags, METH_VARARGS },
-        { (char *)"comedi_get_n_channels", _wrap_comedi_get_n_channels, METH_VARARGS },
-        { (char *)"comedi_range_is_chan_specific", _wrap_comedi_range_is_chan_specific, METH_VARARGS },
-        { (char *)"comedi_maxdata_is_chan_specific", _wrap_comedi_maxdata_is_chan_specific, METH_VARARGS },
-        { (char *)"comedi_get_maxdata", _wrap_comedi_get_maxdata, METH_VARARGS },
-        { (char *)"comedi_get_n_ranges", _wrap_comedi_get_n_ranges, METH_VARARGS },
-        { (char *)"comedi_get_range", _wrap_comedi_get_range, METH_VARARGS },
-        { (char *)"comedi_find_range", _wrap_comedi_find_range, METH_VARARGS },
-        { (char *)"comedi_get_buffer_size", _wrap_comedi_get_buffer_size, METH_VARARGS },
-        { (char *)"comedi_get_max_buffer_size", _wrap_comedi_get_max_buffer_size, METH_VARARGS },
-        { (char *)"comedi_set_buffer_size", _wrap_comedi_set_buffer_size, METH_VARARGS },
-        { (char *)"comedi_do_insnlist", _wrap_comedi_do_insnlist, METH_VARARGS },
-        { (char *)"comedi_do_insn", _wrap_comedi_do_insn, METH_VARARGS },
-        { (char *)"comedi_lock", _wrap_comedi_lock, METH_VARARGS },
-        { (char *)"comedi_unlock", _wrap_comedi_unlock, METH_VARARGS },
-        { (char *)"comedi_to_phys", _wrap_comedi_to_phys, METH_VARARGS },
-        { (char *)"comedi_from_phys", _wrap_comedi_from_phys, METH_VARARGS },
-        { (char *)"comedi_sampl_to_phys", _wrap_comedi_sampl_to_phys, METH_VARARGS },
-        { (char *)"comedi_sampl_from_phys", _wrap_comedi_sampl_from_phys, METH_VARARGS },
-        { (char *)"comedi_data_read", _wrap_comedi_data_read, METH_VARARGS },
-        { (char *)"comedi_data_read_n", _wrap_comedi_data_read_n, METH_VARARGS },
-        { (char *)"comedi_data_read_hint", _wrap_comedi_data_read_hint, METH_VARARGS },
-        { (char *)"comedi_data_read_delayed", _wrap_comedi_data_read_delayed, METH_VARARGS },
-        { (char *)"comedi_data_write", _wrap_comedi_data_write, METH_VARARGS },
-        { (char *)"comedi_dio_config", _wrap_comedi_dio_config, METH_VARARGS },
-        { (char *)"comedi_dio_read", _wrap_comedi_dio_read, METH_VARARGS },
-        { (char *)"comedi_dio_write", _wrap_comedi_dio_write, METH_VARARGS },
-        { (char *)"comedi_dio_bitfield", _wrap_comedi_dio_bitfield, METH_VARARGS },
-        { (char *)"comedi_sv_init", _wrap_comedi_sv_init, METH_VARARGS },
-        { (char *)"comedi_sv_update", _wrap_comedi_sv_update, METH_VARARGS },
-        { (char *)"comedi_sv_measure", _wrap_comedi_sv_measure, METH_VARARGS },
-        { (char *)"comedi_get_cmd_src_mask", _wrap_comedi_get_cmd_src_mask, METH_VARARGS },
-        { (char *)"comedi_get_cmd_generic_timed", _wrap_comedi_get_cmd_generic_timed, METH_VARARGS },
-        { (char *)"comedi_cancel", _wrap_comedi_cancel, METH_VARARGS },
-        { (char *)"comedi_command", _wrap_comedi_command, METH_VARARGS },
-        { (char *)"comedi_command_test", _wrap_comedi_command_test, METH_VARARGS },
-        { (char *)"comedi_poll", _wrap_comedi_poll, METH_VARARGS },
-        { (char *)"comedi_set_max_buffer_size", _wrap_comedi_set_max_buffer_size, METH_VARARGS },
-        { (char *)"comedi_get_buffer_contents", _wrap_comedi_get_buffer_contents, METH_VARARGS },
-        { (char *)"comedi_mark_buffer_read", _wrap_comedi_mark_buffer_read, METH_VARARGS },
-        { (char *)"comedi_get_buffer_offset", _wrap_comedi_get_buffer_offset, METH_VARARGS },
-        { (char *)"comedi_caldac_t_subdevice_set", _wrap_comedi_caldac_t_subdevice_set, METH_VARARGS },
-        { (char *)"comedi_caldac_t_subdevice_get", _wrap_comedi_caldac_t_subdevice_get, METH_VARARGS },
-        { (char *)"comedi_caldac_t_channel_set", _wrap_comedi_caldac_t_channel_set, METH_VARARGS },
-        { (char *)"comedi_caldac_t_channel_get", _wrap_comedi_caldac_t_channel_get, METH_VARARGS },
-        { (char *)"comedi_caldac_t_value_set", _wrap_comedi_caldac_t_value_set, METH_VARARGS },
-        { (char *)"comedi_caldac_t_value_get", _wrap_comedi_caldac_t_value_get, METH_VARARGS },
-        { (char *)"new_comedi_caldac_t", _wrap_new_comedi_caldac_t, METH_VARARGS },
-        { (char *)"delete_comedi_caldac_t", _wrap_delete_comedi_caldac_t, METH_VARARGS },
-        { (char *)"comedi_caldac_t_swigregister", comedi_caldac_t_swigregister, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_subdevice_set", _wrap_comedi_calibration_setting_t_subdevice_set, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_subdevice_get", _wrap_comedi_calibration_setting_t_subdevice_get, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_channels_set", _wrap_comedi_calibration_setting_t_channels_set, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_channels_get", _wrap_comedi_calibration_setting_t_channels_get, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_num_channels_set", _wrap_comedi_calibration_setting_t_num_channels_set, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_num_channels_get", _wrap_comedi_calibration_setting_t_num_channels_get, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_ranges_set", _wrap_comedi_calibration_setting_t_ranges_set, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_ranges_get", _wrap_comedi_calibration_setting_t_ranges_get, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_num_ranges_set", _wrap_comedi_calibration_setting_t_num_ranges_set, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_num_ranges_get", _wrap_comedi_calibration_setting_t_num_ranges_get, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_arefs_set", _wrap_comedi_calibration_setting_t_arefs_set, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_arefs_get", _wrap_comedi_calibration_setting_t_arefs_get, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_num_arefs_set", _wrap_comedi_calibration_setting_t_num_arefs_set, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_num_arefs_get", _wrap_comedi_calibration_setting_t_num_arefs_get, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_caldacs_set", _wrap_comedi_calibration_setting_t_caldacs_set, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_caldacs_get", _wrap_comedi_calibration_setting_t_caldacs_get, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_num_caldacs_set", _wrap_comedi_calibration_setting_t_num_caldacs_set, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_num_caldacs_get", _wrap_comedi_calibration_setting_t_num_caldacs_get, METH_VARARGS },
-        { (char *)"new_comedi_calibration_setting_t", _wrap_new_comedi_calibration_setting_t, METH_VARARGS },
-        { (char *)"delete_comedi_calibration_setting_t", _wrap_delete_comedi_calibration_setting_t, METH_VARARGS },
-        { (char *)"comedi_calibration_setting_t_swigregister", comedi_calibration_setting_t_swigregister, METH_VARARGS },
-        { (char *)"comedi_calibration_t_driver_name_set", _wrap_comedi_calibration_t_driver_name_set, METH_VARARGS },
-        { (char *)"comedi_calibration_t_driver_name_get", _wrap_comedi_calibration_t_driver_name_get, METH_VARARGS },
-        { (char *)"comedi_calibration_t_board_name_set", _wrap_comedi_calibration_t_board_name_set, METH_VARARGS },
-        { (char *)"comedi_calibration_t_board_name_get", _wrap_comedi_calibration_t_board_name_get, METH_VARARGS },
-        { (char *)"comedi_calibration_t_settings_set", _wrap_comedi_calibration_t_settings_set, METH_VARARGS },
-        { (char *)"comedi_calibration_t_settings_get", _wrap_comedi_calibration_t_settings_get, METH_VARARGS },
-        { (char *)"comedi_calibration_t_num_settings_set", _wrap_comedi_calibration_t_num_settings_set, METH_VARARGS },
-        { (char *)"comedi_calibration_t_num_settings_get", _wrap_comedi_calibration_t_num_settings_get, METH_VARARGS },
-        { (char *)"new_comedi_calibration_t", _wrap_new_comedi_calibration_t, METH_VARARGS },
-        { (char *)"delete_comedi_calibration_t", _wrap_delete_comedi_calibration_t, METH_VARARGS },
-        { (char *)"comedi_calibration_t_swigregister", comedi_calibration_t_swigregister, METH_VARARGS },
-        { (char *)"comedi_parse_calibration_file", _wrap_comedi_parse_calibration_file, METH_VARARGS },
-        { (char *)"comedi_apply_parsed_calibration", _wrap_comedi_apply_parsed_calibration, METH_VARARGS },
-        { (char *)"comedi_get_default_calibration_path", _wrap_comedi_get_default_calibration_path, METH_VARARGS },
-        { (char *)"comedi_cleanup_calibration", _wrap_comedi_cleanup_calibration, METH_VARARGS },
-        { (char *)"comedi_apply_calibration", _wrap_comedi_apply_calibration, METH_VARARGS },
-        { NULL, NULL }
-};
-
-
-/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
-
-static void *_p_chanlistTo_p_unsigned_int(void *x) {
-    return (void *)((unsigned int *)  ((chanlist *) x));
-}
-static swig_type_info _swigt__p_lsampl_t[] = {{"_p_lsampl_t", 0, "lsampl_t *", 0},{"_p_chanlist"},{"_p_lsampl_t"},{"_p_unsigned_int"},{0}};
-static swig_type_info _swigt__p_sampl_t[] = {{"_p_sampl_t", 0, "sampl_t *", 0},{"_p_sampl_t"},{0}};
-static swig_type_info _swigt__p_comedi_calibration_setting_t[] = {{"_p_comedi_calibration_setting_t", 0, "comedi_calibration_setting_t *", 0},{"_p_comedi_calibration_setting_t"},{0}};
-static swig_type_info _swigt__p_double[] = {{"_p_double", 0, "double *", 0},{"_p_double"},{0}};
-static swig_type_info _swigt__p_comedi_range[] = {{"_p_comedi_range", 0, "comedi_range *", 0},{"_p_comedi_range"},{0}};
-static swig_type_info _swigt__p_unsigned_int[] = {{"_p_unsigned_int", 0, "unsigned int *", 0},{"_p_chanlist", _p_chanlistTo_p_unsigned_int},{"_p_lsampl_t"},{"_p_unsigned_int"},{0}};
-static swig_type_info _swigt__p_void[] = {{"_p_void", 0, "void *", 0},{"_p_void"},{0}};
-static swig_type_info _swigt__p_comedi_subdinfo_struct[] = {{"_p_comedi_subdinfo_struct", 0, "comedi_subdinfo_struct *", 0},{"_p_comedi_subdinfo_struct"},{0}};
-static swig_type_info _swigt__p_comedi_krange_struct[] = {{"_p_comedi_krange_struct", 0, "comedi_krange_struct *", 0},{"_p_comedi_krange_struct"},{0}};
-static swig_type_info _swigt__p_comedi_rangeinfo_struct[] = {{"_p_comedi_rangeinfo_struct", 0, "comedi_rangeinfo_struct *", 0},{"_p_comedi_rangeinfo_struct"},{0}};
-static swig_type_info _swigt__p_comedi_chaninfo_struct[] = {{"_p_comedi_chaninfo_struct", 0, "comedi_chaninfo_struct *", 0},{"_p_comedi_chaninfo_struct"},{0}};
-static swig_type_info _swigt__p_comedi_cmd_struct[] = {{"_p_comedi_cmd_struct", 0, "comedi_cmd_struct *", 0},{"_p_comedi_cmd_struct"},{"_p_comedi_cmd"},{0}};
-static swig_type_info _swigt__p_comedi_insnlist_struct[] = {{"_p_comedi_insnlist_struct", 0, "comedi_insnlist_struct *", 0},{"_p_comedi_insnlist"},{"_p_comedi_insnlist_struct"},{0}};
-static swig_type_info _swigt__p_comedi_insn_struct[] = {{"_p_comedi_insn_struct", 0, "comedi_insn_struct *", 0},{"_p_comedi_insn_struct"},{"_p_comedi_insn"},{0}};
-static swig_type_info _swigt__p_comedi_trig_struct[] = {{"_p_comedi_trig_struct", 0, "comedi_trig_struct *", 0},{"_p_comedi_trig_struct"},{0}};
-static swig_type_info _swigt__p_comedi_devinfo_struct[] = {{"_p_comedi_devinfo_struct", 0, "comedi_devinfo_struct *", 0},{"_p_comedi_devinfo_struct"},{0}};
-static swig_type_info _swigt__p_char[] = {{"_p_char", 0, "char *", 0},{"_p_char"},{0}};
-static swig_type_info _swigt__p_comedi_devconfig_struct[] = {{"_p_comedi_devconfig_struct", 0, "comedi_devconfig_struct *", 0},{"_p_comedi_devconfig_struct"},{0}};
-static swig_type_info _swigt__p_comedi_bufconfig_struct[] = {{"_p_comedi_bufconfig_struct", 0, "comedi_bufconfig_struct *", 0},{"_p_comedi_bufconfig_struct"},{0}};
-static swig_type_info _swigt__p_comedi_bufinfo_struct[] = {{"_p_comedi_bufinfo_struct", 0, "comedi_bufinfo_struct *", 0},{"_p_comedi_bufinfo_struct"},{0}};
-static swig_type_info _swigt__p_comedi_calibration_t[] = {{"_p_comedi_calibration_t", 0, "comedi_calibration_t *", 0},{"_p_comedi_calibration_t"},{0}};
-static swig_type_info _swigt__p_comedi_sv_t[] = {{"_p_comedi_sv_t", 0, "comedi_sv_t *", 0},{"_p_comedi_sv_t"},{0}};
-static swig_type_info _swigt__p_chanlist[] = {{"_p_chanlist", 0, "chanlist *", 0},{"_p_chanlist"},{0}};
-static swig_type_info _swigt__p_comedi_insn[] = {{"_p_comedi_insn", 0, "comedi_insn *", 0},{"_p_comedi_insn_struct"},{"_p_comedi_insn"},{0}};
-static swig_type_info _swigt__p_comedi_insnlist[] = {{"_p_comedi_insnlist", 0, "comedi_insnlist *", 0},{"_p_comedi_insnlist"},{"_p_comedi_insnlist_struct"},{0}};
-static swig_type_info _swigt__p_comedi_caldac_t[] = {{"_p_comedi_caldac_t", 0, "comedi_caldac_t *", 0},{"_p_comedi_caldac_t"},{0}};
-static swig_type_info _swigt__p_comedi_t[] = {{"_p_comedi_t", 0, "comedi_t *", 0},{"_p_comedi_t"},{0}};
-static swig_type_info _swigt__p_int[] = {{"_p_int", 0, "int *", 0},{"_p_int"},{0}};
-static swig_type_info _swigt__p_comedi_cmd[] = {{"_p_comedi_cmd", 0, "comedi_cmd *", 0},{"_p_comedi_cmd"},{"_p_comedi_cmd_struct"},{0}};
-
-static swig_type_info *swig_types_initial[] = {
-_swigt__p_lsampl_t, 
-_swigt__p_sampl_t, 
-_swigt__p_comedi_calibration_setting_t, 
-_swigt__p_double, 
-_swigt__p_comedi_range, 
-_swigt__p_unsigned_int, 
-_swigt__p_void, 
-_swigt__p_comedi_subdinfo_struct, 
-_swigt__p_comedi_krange_struct, 
-_swigt__p_comedi_rangeinfo_struct, 
-_swigt__p_comedi_chaninfo_struct, 
-_swigt__p_comedi_cmd_struct, 
-_swigt__p_comedi_insnlist_struct, 
-_swigt__p_comedi_insn_struct, 
-_swigt__p_comedi_trig_struct, 
-_swigt__p_comedi_devinfo_struct, 
-_swigt__p_char, 
-_swigt__p_comedi_devconfig_struct, 
-_swigt__p_comedi_bufconfig_struct, 
-_swigt__p_comedi_bufinfo_struct, 
-_swigt__p_comedi_calibration_t, 
-_swigt__p_comedi_sv_t, 
-_swigt__p_chanlist, 
-_swigt__p_comedi_insn, 
-_swigt__p_comedi_insnlist, 
-_swigt__p_comedi_caldac_t, 
-_swigt__p_comedi_t, 
-_swigt__p_int, 
-_swigt__p_comedi_cmd, 
-0
-};
-
-
-/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
-
-static swig_const_info swig_const_table[] = {
-{ SWIG_PY_INT,     (char *)"COMEDI_MAJOR", (long) 98, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_NDEVICES", (long) 4, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_NDEVCONFOPTS", (long) 32, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_NAMELEN", (long) 20, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CR_FLAGS_MASK", (long) 0xfc000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CR_ALT_FILTER", (long) (1<<26), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CR_DITHER", (long) (1<<26), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CR_DEGLITCH", (long) (1<<26), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CR_ALT_SOURCE", (long) (1<<27), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CR_EDGE", (long) (1<<30), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CR_INVERT", (long) (1<<31), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"AREF_GROUND", (long) 0x00, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"AREF_COMMON", (long) 0x01, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"AREF_DIFF", (long) 0x02, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"AREF_OTHER", (long) 0x03, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_RESET", (long) 0x0001, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_SET_SOURCE", (long) 0x0002, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_SET_GATE", (long) 0x0004, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_SET_DIRECTION", (long) 0x0008, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_SET_OPERATION", (long) 0x0010, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_ARM", (long) 0x0020, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_DISARM", (long) 0x0040, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_GET_INT_CLK_FRQ", (long) 0x0080, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_INT_CLOCK", (long) 0x0001, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_EXT_PIN", (long) 0x0002, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_NO_GATE", (long) 0x0004, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_UP", (long) 0x0008, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_DOWN", (long) 0x0010, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_HWUD", (long) 0x0020, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_SIMPLE_EVENT", (long) 0x0040, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_SINGLE_PERIOD", (long) 0x0080, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_SINGLE_PW", (long) 0x0100, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_CONT_PULSE_OUT", (long) 0x0200, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"GPCT_SINGLE_PULSE_OUT", (long) 0x0400, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_MASK_WRITE", (long) 0x8000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_MASK_READ", (long) 0x4000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_MASK_SPECIAL", (long) 0x2000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_READ", (long) (0|0x4000000), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_WRITE", (long) (1|0x8000000), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_BITS", (long) (2|0x4000000|0x8000000), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_CONFIG", (long) (3|0x4000000|0x8000000), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_GTOD", (long) (4|0x4000000|0x2000000), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_WAIT", (long) (5|0x8000000|0x2000000), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_INTTRIG", (long) (6|0x8000000|0x2000000), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_BOGUS", (long) 0x0001, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_DITHER", (long) 0x0002, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_DEGLITCH", (long) 0x0004, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_CONFIG", (long) 0x0010, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CMDF_PRIORITY", (long) 0x00000008, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_RT", (long) 0x00000008, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_WAKE_EOS", (long) 0x00000020, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CMDF_WRITE", (long) 0x00000040, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_WRITE", (long) 0x00000040, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CMDF_RAWDATA", (long) 0x00000080, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_EV_START", (long) 0x00040000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_EV_SCAN_BEGIN", (long) 0x00080000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_EV_CONVERT", (long) 0x00100000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_EV_SCAN_END", (long) 0x00200000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_EV_STOP", (long) 0x00400000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_ROUND_MASK", (long) 0x00030000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_ROUND_NEAREST", (long) 0x00000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_ROUND_DOWN", (long) 0x00010000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_ROUND_UP", (long) 0x00020000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_ROUND_UP_NEXT", (long) 0x00030000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_ANY", (long) 0xffffffff, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_INVALID", (long) 0x00000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_NONE", (long) 0x00000001, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_NOW", (long) 0x00000002, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_FOLLOW", (long) 0x00000004, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_TIME", (long) 0x00000008, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_TIMER", (long) 0x00000010, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_COUNT", (long) 0x00000020, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_EXT", (long) 0x00000040, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_INT", (long) 0x00000080, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"TRIG_OTHER", (long) 0x00000100, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_BUSY", (long) 0x0001, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_BUSY_OWNER", (long) 0x0002, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_LOCKED", (long) 0x0004, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_LOCK_OWNER", (long) 0x0008, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_MAXDATA", (long) 0x0010, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_FLAGS", (long) 0x0020, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_RANGETYPE", (long) 0x0040, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_MODE0", (long) 0x0080, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_MODE1", (long) 0x0100, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_MODE2", (long) 0x0200, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_MODE3", (long) 0x0400, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_MODE4", (long) 0x0800, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_CMD", (long) 0x1000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_READABLE", (long) 0x00010000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_WRITABLE", (long) 0x00020000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_WRITEABLE", (long) 0x00020000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_INTERNAL", (long) 0x00040000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_RT", (long) 0x00080000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_GROUND", (long) 0x00100000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_COMMON", (long) 0x00200000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_DIFF", (long) 0x00400000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_OTHER", (long) 0x00800000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_DITHER", (long) 0x01000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_DEGLITCH", (long) 0x02000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_MMAP", (long) 0x04000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_RUNNING", (long) 0x08000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_LSAMPL", (long) 0x10000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"SDF_PACKED", (long) 0x20000000, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_UNUSED", (long) 0, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_AI", (long) 1, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_AO", (long) 2, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_DI", (long) 3, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_DO", (long) 4, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_DIO", (long) 5, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_COUNTER", (long) 6, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_TIMER", (long) 7, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_MEMORY", (long) 8, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_CALIB", (long) 9, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_SUBD_PROC", (long) 10, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_INPUT", (long) 0, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_OUTPUT", (long) 1, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_OPENDRAIN", (long) 2, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_CONFIG_ANALOG_TRIG", (long) 0x10, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_CONFIG_ALT_SOURCE", (long) 0x14, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_CONFIG_DIGITAL_TRIG", (long) 0x15, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_CONFIG_BLOCK_SIZE", (long) 0x16, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"INSN_CONFIG_TIMER_1", (long) 0x17, 0, 0, 0},
-{ SWIG_PY_STRING,  (char*)"CIO", 0, 0, (void *)"d", 0},
-{ SWIG_PY_INT,     (char *)"RF_EXTERNAL", (long) (1<<8), 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"UNIT_volt", (long) 0, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"UNIT_mA", (long) 1, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"UNIT_none", (long) 2, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_CB_EOS", (long) 1, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_CB_EOA", (long) 2, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_CB_BLOCK", (long) 4, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_CB_EOBUF", (long) 8, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_CB_ERROR", (long) 16, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_CB_OVERFLOW", (long) 32, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_OOR_NUMBER", (long) COMEDI_OOR_NUMBER, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"COMEDI_OOR_NAN", (long) COMEDI_OOR_NAN, 0, 0, 0},
-{ SWIG_PY_INT,     (char *)"CS_MAX_AREFS_LENGTH", (long) 4, 0, 0, 0},
-{0}};
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifdef __cplusplus
-extern "C"
-#endif
-SWIGEXPORT(void) SWIG_init(void) {
-    static PyObject *SWIG_globals = 0; 
-    static int       typeinit = 0;
-    PyObject *m, *d;
-    int       i;
-    if (!SWIG_globals) SWIG_globals = SWIG_newvarlink();
-    m = Py_InitModule((char *) SWIG_name, SwigMethods);
-    d = PyModule_GetDict(m);
-    
-    if (!typeinit) {
-        for (i = 0; swig_types_initial[i]; i++) {
-            swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
-        }
-        typeinit = 1;
-    }
-    SWIG_InstallConstants(d,swig_const_table);
-    
-}
-
diff --git a/swig/Makefile.am b/swig/Makefile.am
new file mode 100644 (file)
index 0000000..54e781a
--- /dev/null
@@ -0,0 +1,5 @@
+
+SUBDIRS = python ruby
+
+EXTRA_DIST = comedi.i
+
diff --git a/swig/comedi.i b/swig/comedi.i
new file mode 100644 (file)
index 0000000..7b73202
--- /dev/null
@@ -0,0 +1,567 @@
+/***********************************************************
+           Interface file for wrapping Comedilib
+
+    Copyright (C) 2003 Bryan Cole  <bryan.cole@teraview.co.uk>
+    Copyright (C) 1998-2002 David A. Schleef <ds@schleef.org>
+    Copyright (C) 2003,2004 Frank Mori Hess <fmhess@users.sourceforge.net>
+    Copyright (C) 2003 Steven Jenkins <steven.jenkins@ieee.org>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+***********************************************************
+*
+*     This file was created with Python wrappers in mind but wil
+*  probably work for other swig-supported script languages
+*
+*    to regenerate the wrappers run:
+*    swig -python comedi.i
+*
+***********************************************************/
+%module comedi
+%{
+#include "comedilib.h"
+%}
+%include "carrays.i"
+
+%inline %{
+static unsigned int cr_pack(unsigned int chan, unsigned int rng, unsigned int aref){
+       return CR_PACK(chan,rng,aref);
+}
+static unsigned int cr_pack_flags(unsigned int chan, unsigned int rng, unsigned int aref, unsigned int flags){
+       return CR_PACK_FLAGS(chan,rng,aref, flags);
+}
+static unsigned int cr_chan(unsigned int a){
+       return CR_CHAN(a);
+}
+static unsigned int cr_range(unsigned int a){
+       return CR_RANGE(a);
+}
+static unsigned int cr_aref(unsigned int a){
+       return CR_AREF(a);
+}
+%}
+
+%array_class(unsigned int, chanlist);
+
+/* below are (modified) copies of comedi.h and comedilib.h */
+
+/* comedi.h */
+
+typedef unsigned int lsampl_t;
+typedef unsigned short sampl_t;
+
+#define CR_FLAGS_MASK  0xfc000000
+#define CR_ALT_FILTER  (1<<26)
+#define CR_DITHER              CR_ALT_FILTER
+#define CR_DEGLITCH            CR_ALT_FILTER
+#define CR_ALT_SOURCE  (1<<27)
+#define CR_EDGE        (1<<30)
+#define CR_INVERT      (1<<31)
+
+#define AREF_GROUND    0x00            /* analog ref = analog ground */
+#define AREF_COMMON    0x01            /* analog ref = analog common */
+#define AREF_DIFF      0x02            /* analog ref = differential */
+#define AREF_OTHER     0x03            /* analog ref = other (undefined) */
+
+/* counters -- these are arbitrary values */
+#define GPCT_RESET             0x0001
+#define GPCT_SET_SOURCE                0x0002
+#define GPCT_SET_GATE          0x0004
+#define GPCT_SET_DIRECTION     0x0008
+#define GPCT_SET_OPERATION     0x0010
+#define GPCT_ARM               0x0020
+#define GPCT_DISARM            0x0040
+#define GPCT_GET_INT_CLK_FRQ   0x0080
+
+#define GPCT_INT_CLOCK         0x0001
+#define GPCT_EXT_PIN           0x0002
+#define GPCT_NO_GATE           0x0004
+#define GPCT_UP                        0x0008
+#define GPCT_DOWN              0x0010
+#define GPCT_HWUD              0x0020
+#define GPCT_SIMPLE_EVENT      0x0040
+#define GPCT_SINGLE_PERIOD     0x0080
+#define GPCT_SINGLE_PW         0x0100
+#define GPCT_CONT_PULSE_OUT    0x0200
+#define GPCT_SINGLE_PULSE_OUT  0x0400
+
+
+/* instructions */
+
+#define INSN_MASK_WRITE                0x8000000
+#define INSN_MASK_READ         0x4000000
+#define INSN_MASK_SPECIAL      0x2000000
+
+#define INSN_READ              ( 0 | INSN_MASK_READ)
+#define INSN_WRITE             ( 1 | INSN_MASK_WRITE)
+#define INSN_BITS              ( 2 | INSN_MASK_READ|INSN_MASK_WRITE)
+#define INSN_CONFIG            ( 3 | INSN_MASK_READ|INSN_MASK_WRITE)
+#define INSN_GTOD              ( 4 | INSN_MASK_READ|INSN_MASK_SPECIAL)
+#define INSN_WAIT              ( 5 | INSN_MASK_WRITE|INSN_MASK_SPECIAL)
+#define INSN_INTTRIG           ( 6 | INSN_MASK_WRITE|INSN_MASK_SPECIAL)
+
+/* trigger flags */
+/* These flags are used in comedi_trig structures */
+
+#define TRIG_BOGUS     0x0001          /* do the motions */
+#define TRIG_DITHER    0x0002          /* enable dithering */
+#define TRIG_DEGLITCH  0x0004          /* enable deglitching */
+//#define TRIG_RT      0x0008          /* perform op in real time */
+#define TRIG_CONFIG    0x0010          /* perform configuration, not triggering */
+//#define TRIG_WAKE_EOS        0x0020          /* wake up on end-of-scan events */
+//#define TRIG_WRITE   0x0040          /* write to bidirectional devices */
+
+/* command flags */
+/* These flags are used in comedi_cmd structures */
+
+#define CMDF_PRIORITY          0x00000008 /* try to use a real-time interrupt while performing command */
+
+#define TRIG_RT                CMDF_PRIORITY /* compatibility definition */
+#define TRIG_WAKE_EOS          0x00000020 /* legacy definition for COMEDI_EV_SCAN_END */
+
+#define CMDF_WRITE             0x00000040
+#define TRIG_WRITE     CMDF_WRITE /* compatibility definition */
+
+#define CMDF_RAWDATA           0x00000080
+
+#define COMEDI_EV_START                0x00040000
+#define COMEDI_EV_SCAN_BEGIN   0x00080000
+#define COMEDI_EV_CONVERT      0x00100000
+#define COMEDI_EV_SCAN_END     0x00200000
+#define COMEDI_EV_STOP         0x00400000
+
+#define TRIG_ROUND_MASK                0x00030000
+#define TRIG_ROUND_NEAREST     0x00000000
+#define TRIG_ROUND_DOWN                0x00010000
+#define TRIG_ROUND_UP          0x00020000
+#define TRIG_ROUND_UP_NEXT     0x00030000
+
+/* trigger sources */
+
+#define TRIG_ANY       0xffffffff
+#define TRIG_INVALID   0x00000000
+
+#define TRIG_NONE      0x00000001      /* never trigger */
+#define TRIG_NOW       0x00000002      /* trigger now + N ns */
+#define TRIG_FOLLOW    0x00000004      /* trigger on next lower level trig */
+#define TRIG_TIME      0x00000008      /* trigger at time N ns */
+#define TRIG_TIMER     0x00000010      /* trigger at rate N ns */
+#define TRIG_COUNT     0x00000020      /* trigger when count reaches N */
+#define TRIG_EXT       0x00000040      /* trigger on external signal N */
+#define TRIG_INT       0x00000080      /* trigger on comedi-internal signal N */
+#define TRIG_OTHER     0x00000100      /* driver defined */
+
+/* subdevice flags */
+
+#define SDF_BUSY       0x0001          /* device is busy */
+#define SDF_BUSY_OWNER 0x0002          /* device is busy with your job */
+#define SDF_LOCKED     0x0004          /* subdevice is locked */
+#define SDF_LOCK_OWNER 0x0008          /* you own lock */
+#define SDF_MAXDATA    0x0010          /* maxdata depends on channel */
+#define SDF_FLAGS      0x0020          /* flags depend on channel */
+#define SDF_RANGETYPE  0x0040          /* range type depends on channel */
+#define SDF_MODE0      0x0080          /* can do mode 0 */
+#define SDF_MODE1      0x0100          /* can do mode 1 */
+#define SDF_MODE2      0x0200          /* can do mode 2 */
+#define SDF_MODE3      0x0400          /* can do mode 3 */
+#define SDF_MODE4      0x0800          /* can do mode 4 */
+#define SDF_CMD                0x1000          /* can do commands */
+
+#define SDF_READABLE   0x00010000      /* subdevice can be read (e.g. analog input) */
+#define SDF_WRITABLE   0x00020000      /* subdevice can be written (e.g. analog output) */
+#define SDF_WRITEABLE  SDF_WRITABLE    /* spelling error in API */
+#define SDF_INTERNAL   0x00040000      /* subdevice does not have externally visible lines */
+#define SDF_RT         0x00080000      /* DEPRECATED: subdevice is RT capable */
+#define SDF_GROUND     0x00100000      /* can do aref=ground */
+#define SDF_COMMON     0x00200000      /* can do aref=common */
+#define SDF_DIFF       0x00400000      /* can do aref=diff */
+#define SDF_OTHER      0x00800000      /* can do aref=other */
+#define SDF_DITHER     0x01000000      /* can do dithering */
+#define SDF_DEGLITCH   0x02000000      /* can do deglitching */
+#define SDF_MMAP       0x04000000      /* can do mmap() */
+#define SDF_RUNNING    0x08000000      /* subdevice is acquiring data */
+#define SDF_LSAMPL     0x10000000      /* subdevice uses 32-bit samples */
+#define SDF_PACKED     0x20000000      /* subdevice can do packed DIO */
+
+/* subdevice types */
+
+#define COMEDI_SUBD_UNUSED              0      /* unused */
+#define COMEDI_SUBD_AI                  1      /* analog input */
+#define COMEDI_SUBD_AO                  2      /* analog output */
+#define COMEDI_SUBD_DI                  3      /* digital input */
+#define COMEDI_SUBD_DO                  4      /* digital output */
+#define COMEDI_SUBD_DIO                 5      /* digital input/output */
+#define COMEDI_SUBD_COUNTER             6      /* counter */
+#define COMEDI_SUBD_TIMER               7      /* timer */
+#define COMEDI_SUBD_MEMORY              8      /* memory, EEPROM, DPRAM */
+#define COMEDI_SUBD_CALIB               9      /* calibration DACs */
+#define COMEDI_SUBD_PROC                10     /* processor, DSP */
+
+/* configuration instructions */
+
+#define COMEDI_INPUT                   0
+#define COMEDI_OUTPUT                  1
+#define COMEDI_OPENDRAIN               2
+
+#define INSN_CONFIG_ANALOG_TRIG                0x10
+//#define INSN_CONFIG_WAVEFORM         0x11
+//#define INSN_CONFIG_TRIG             0x12
+//#define INSN_CONFIG_COUNTER          0x13
+#define INSN_CONFIG_ALT_SOURCE         0x14
+#define INSN_CONFIG_DIGITAL_TRIG       0x15
+#define INSN_CONFIG_BLOCK_SIZE         0x16
+#define INSN_CONFIG_TIMER_1            0x17
+#define INSN_CONFIG_FILTER             0x18
+#define INSN_CONFIG_CHANGE_NOTIFY      0x19
+
+/* structures */
+
+typedef struct comedi_trig_struct comedi_trig;
+typedef struct comedi_cmd_struct comedi_cmd;
+typedef struct comedi_insn_struct comedi_insn;
+typedef struct comedi_insnlist_struct comedi_insnlist;
+typedef struct comedi_chaninfo_struct comedi_chaninfo;
+typedef struct comedi_subdinfo_struct comedi_subdinfo;
+typedef struct comedi_devinfo_struct comedi_devinfo;
+typedef struct comedi_devconfig_struct comedi_devconfig;
+typedef struct comedi_rangeinfo_struct comedi_rangeinfo;
+typedef struct comedi_krange_struct comedi_krange;
+typedef struct comedi_bufconfig_struct comedi_bufconfig;
+typedef struct comedi_bufinfo_struct comedi_bufinfo;
+
+struct comedi_trig_struct{
+       unsigned int subdev;            /* subdevice */
+       unsigned int mode;              /* mode */
+       unsigned int flags;
+       unsigned int n_chan;            /* number of channels */
+       unsigned int *chanlist;         /* channel/range list */
+       sampl_t *data;                  /* data list, size depends on subd flags */
+       unsigned int n;                 /* number of scans */
+       unsigned int trigsrc;
+       unsigned int trigvar;
+       unsigned int trigvar1;
+       unsigned int data_len;
+       unsigned int unused[3];
+};
+
+struct comedi_insn_struct{
+       unsigned int insn;
+       unsigned int n;
+       lsampl_t *data;
+       unsigned int subdev;
+       unsigned int chanspec;
+       unsigned int unused[3];
+};
+
+struct comedi_insnlist_struct{
+       unsigned int n_insns;
+       comedi_insn *insns;
+};
+
+struct comedi_cmd_struct{
+       unsigned int subdev;
+       unsigned int flags;
+
+       unsigned int start_src;
+       unsigned int start_arg;
+
+       unsigned int scan_begin_src;
+       unsigned int scan_begin_arg;
+
+       unsigned int convert_src;
+       unsigned int convert_arg;
+
+       unsigned int scan_end_src;
+       unsigned int scan_end_arg;
+
+       unsigned int stop_src;
+       unsigned int stop_arg;
+
+       unsigned int *chanlist;         /* channel/range list */
+       unsigned int chanlist_len;
+
+       sampl_t *data;                  /* data list, size depends on subd flags */
+       unsigned int data_len;
+};
+
+struct comedi_chaninfo_struct{
+       unsigned int subdev;
+       lsampl_t *maxdata_list;
+       unsigned int *flaglist;
+       unsigned int *rangelist;
+       unsigned int unused[4];
+};
+
+struct comedi_rangeinfo_struct{
+       unsigned int range_type;
+       void *range_ptr;
+};
+
+struct comedi_krange_struct{
+       int min;        /* fixed point, multiply by 1e-6 */
+       int max;        /* fixed point, multiply by 1e-6 */
+       unsigned int flags;
+};
+
+struct comedi_subdinfo_struct{
+       unsigned int type;
+       unsigned int n_chan;
+       unsigned int subd_flags;
+       unsigned int timer_type;
+       unsigned int len_chanlist;
+       lsampl_t        maxdata;
+       unsigned int    flags;          /* channel flags */
+       unsigned int    range_type;     /* lookup in kernel */
+       unsigned int    settling_time_0;
+       unsigned int unused[9];
+};
+
+struct comedi_devinfo_struct{
+       unsigned int version_code;
+       unsigned int n_subdevs;
+       char driver_name[COMEDI_NAMELEN];
+       char board_name[COMEDI_NAMELEN];
+       int read_subdevice;
+       int write_subdevice;
+       int unused[30];
+};
+
+struct comedi_devconfig_struct{
+       char board_name[COMEDI_NAMELEN];
+       int options[COMEDI_NDEVCONFOPTS];
+};
+
+struct comedi_bufconfig_struct{
+       unsigned int subdevice;
+       unsigned int flags;
+
+       unsigned int maximum_size;
+       unsigned int size;
+
+       unsigned int unused[4];
+};
+
+struct comedi_bufinfo_struct{
+       unsigned int subdevice;
+       unsigned int bytes_read;
+
+       unsigned int buf_int_ptr;
+       unsigned int buf_user_ptr;
+       unsigned int buf_int_count;
+       unsigned int buf_user_count;
+
+       unsigned int bytes_written;
+
+       unsigned int unused[4];
+};
+
+/* range stuff */
+
+#define __RANGE(a,b)   ((((a)&0xffff)<<16)|((b)&0xffff))
+
+#define RANGE_OFFSET(a)                (((a)>>16)&0xffff)
+#define RANGE_LENGTH(b)                ((b)&0xffff)
+
+#define RF_UNIT(flags)         ((flags)&0xff)
+#define RF_EXTERNAL            (1<<8)
+
+#define UNIT_volt              0
+#define UNIT_mA                        1
+#define UNIT_none              2
+
+#define COMEDI_MIN_SPEED       ((unsigned int)0xffffffff)
+
+/* callback stuff */
+/* only relevant to kernel modules. */
+
+#define COMEDI_CB_EOS          1       /* end of scan */
+#define COMEDI_CB_EOA          2       /* end of acquisition */
+#define COMEDI_CB_BLOCK                4       /* DEPRECATED: convenient block size */
+#define COMEDI_CB_EOBUF                8       /* DEPRECATED: end of buffer */
+#define COMEDI_CB_ERROR                16      /* card error during acquisition */
+#define COMEDI_CB_OVERFLOW     32      /* buffer overflow/underflow */
+
+/* comedilib.h */
+typedef void comedi_t;
+
+typedef struct{
+       double min;
+       double max;
+       unsigned int unit;
+}comedi_range;
+
+typedef struct comedi_sv_struct{
+       comedi_t *dev;
+       unsigned int subdevice;
+       unsigned int chan;
+
+       /* range policy */
+       int range;
+       int aref;
+
+       /* number of measurements to average (for ai) */
+       int n;
+
+       lsampl_t maxdata;
+}comedi_sv_t;
+
+enum comedi_oor_behavior {
+       COMEDI_OOR_NUMBER = 0,
+       COMEDI_OOR_NAN
+};
+
+comedi_t *comedi_open(const char *fn);
+int comedi_close(comedi_t *it);
+
+/* logging */
+int comedi_loglevel(int loglevel);
+void comedi_perror(const char *s);
+char *comedi_strerror(int errnum);
+int comedi_errno(void);
+int comedi_fileno(comedi_t *it);
+
+/* global behavior */
+enum comedi_oor_behavior comedi_set_global_oor_behavior(enum comedi_oor_behavior behavior);
+
+/* device queries */
+int comedi_get_n_subdevices(comedi_t *it);
+#define COMEDI_VERSION_CODE(a,b,c) (((a)<<16) | ((b)<<8) | (c))
+int comedi_get_version_code(comedi_t *it);
+char *comedi_get_driver_name(comedi_t *it);
+char *comedi_get_board_name(comedi_t *it);
+int comedi_get_read_subdevice(comedi_t *dev);
+int comedi_get_write_subdevice(comedi_t *dev);
+
+/* subdevice queries */
+int comedi_get_subdevice_type(comedi_t *it,unsigned int subdevice);
+int comedi_find_subdevice_by_type(comedi_t *it,int type,unsigned int subd);
+int comedi_get_subdevice_flags(comedi_t *it,unsigned int subdevice);
+int comedi_get_n_channels(comedi_t *it,unsigned int subdevice);
+int comedi_range_is_chan_specific(comedi_t *it,unsigned int subdevice);
+int comedi_maxdata_is_chan_specific(comedi_t *it,unsigned int subdevice);
+
+/* channel queries */
+lsampl_t comedi_get_maxdata(comedi_t *it,unsigned int subdevice,
+       unsigned int chan);
+int comedi_get_n_ranges(comedi_t *it,unsigned int subdevice,
+       unsigned int chan);
+comedi_range * comedi_get_range(comedi_t *it,unsigned int subdevice,
+       unsigned int chan,unsigned int range);
+int comedi_find_range(comedi_t *it,unsigned int subd,unsigned int chan,
+       unsigned int unit,double min,double max);
+
+/* buffer queries */
+int comedi_get_buffer_size(comedi_t *it,unsigned int subdevice);
+int comedi_get_max_buffer_size(comedi_t *it,unsigned int subdevice);
+int comedi_set_buffer_size(comedi_t *it,unsigned int subdevice,
+       unsigned int len);
+
+/* low-level stuff */
+int comedi_do_insnlist(comedi_t *it,comedi_insnlist *il);
+int comedi_do_insn(comedi_t *it,comedi_insn *insn);
+int comedi_lock(comedi_t *it,unsigned int subdevice);
+int comedi_unlock(comedi_t *it,unsigned int subdevice);
+
+/* physical units */
+double comedi_to_phys(lsampl_t data,comedi_range *rng,lsampl_t maxdata);
+lsampl_t comedi_from_phys(double data,comedi_range *rng,lsampl_t maxdata);
+int comedi_sampl_to_phys(double *dest, int dst_stride, sampl_t *src,
+       int src_stride, comedi_range *rng, lsampl_t maxdata, int n);
+int comedi_sampl_from_phys(sampl_t *dest,int dst_stride,double *src,
+       int src_stride, comedi_range *rng, lsampl_t maxdata, int n);
+
+/* syncronous stuff */
+int comedi_data_read(comedi_t *it,unsigned int subd,unsigned int chan,
+       unsigned int range,unsigned int aref,lsampl_t *OUTPUT);
+int comedi_data_read_n(comedi_t *it,unsigned int subd,unsigned int chan,
+       unsigned int range,unsigned int aref,lsampl_t *OUTPUT, unsigned int n);
+int comedi_data_read_hint(comedi_t *it,unsigned int subd,unsigned int chan,
+       unsigned int range,unsigned int aref);
+int comedi_data_read_delayed(comedi_t *it,unsigned int subd,unsigned int chan,
+       unsigned int range,unsigned int aref,lsampl_t *OUTPUT, unsigned int nano_sec);
+int comedi_data_write(comedi_t *it,unsigned int subd,unsigned int chan,
+       unsigned int range,unsigned int aref,lsampl_t data);
+int comedi_dio_config(comedi_t *it,unsigned int subd,unsigned int chan,
+       unsigned int dir);
+int comedi_dio_read(comedi_t *it,unsigned int subd,unsigned int chan,
+       unsigned int *OUTPUT);
+int comedi_dio_write(comedi_t *it,unsigned int subd,unsigned int chan,
+       unsigned int bit);
+int comedi_dio_bitfield(comedi_t *it,unsigned int subd,
+       unsigned int write_mask, unsigned int *BOTH);
+
+/* slowly varying stuff */
+int comedi_sv_init(comedi_sv_t *it,comedi_t *dev,unsigned int subd,unsigned int chan);
+int comedi_sv_update(comedi_sv_t *it);
+int comedi_sv_measure(comedi_sv_t *it,double *data);
+
+/* streaming I/O (commands) */
+
+int comedi_get_cmd_src_mask(comedi_t *dev,unsigned int subdevice,
+       comedi_cmd *BOTH);
+int comedi_get_cmd_generic_timed(comedi_t *dev,unsigned int subdevice,
+       comedi_cmd *BOTH,unsigned int ns);
+int comedi_cancel(comedi_t *it,unsigned int subdevice);
+int comedi_command(comedi_t *it,comedi_cmd *BOTH);
+int comedi_command_test(comedi_t *it,comedi_cmd *BOTH);
+int comedi_poll(comedi_t *dev,unsigned int subdevice);
+
+/* buffer control */
+
+int comedi_set_max_buffer_size(comedi_t *it, unsigned int subdev,
+       unsigned int max_size);
+int comedi_get_buffer_contents(comedi_t *it, unsigned int subdev);
+int comedi_mark_buffer_read(comedi_t *it, unsigned int subdev,
+       unsigned int bytes);
+int comedi_get_buffer_offset(comedi_t *it, unsigned int subdev);
+
+
+/* structs and functions used for parsing calibration files */
+typedef struct
+{
+       unsigned int subdevice;
+       unsigned int channel;
+       unsigned int value;
+} comedi_caldac_t;
+#define CS_MAX_AREFS_LENGTH 4
+typedef struct
+{
+       unsigned int subdevice;
+       unsigned int *channels;
+       unsigned int num_channels;
+       unsigned int *ranges;
+       unsigned int num_ranges;
+       unsigned int arefs[ CS_MAX_AREFS_LENGTH ];
+       unsigned int num_arefs;
+       comedi_caldac_t *caldacs;
+       unsigned int num_caldacs;
+} comedi_calibration_setting_t;
+
+typedef struct
+{
+       char *driver_name;
+       char *board_name;
+       comedi_calibration_setting_t *settings;
+       unsigned int num_settings;
+} comedi_calibration_t;
+
+comedi_calibration_t* comedi_parse_calibration_file( const char *cal_file_path );
+int comedi_apply_parsed_calibration( comedi_t *dev, unsigned int subdev, unsigned int channel,
+       unsigned int range, unsigned int aref, const comedi_calibration_t *calibration );
+char* comedi_get_default_calibration_path( comedi_t *dev );
+void comedi_cleanup_calibration( comedi_calibration_t *calibration );
+int comedi_apply_calibration( comedi_t *dev, unsigned int subdev, unsigned int channel,
+       unsigned int range, unsigned int aref, const char *cal_file_path);
+
similarity index 52%
rename from python/Makefile.am
rename to swig/python/Makefile.am
index 469e4091f837d199afeb11e4ede66978875882f9..ec23de019b7be03fe6a2f7d9e43cbf699aed342e 100644 (file)
@@ -5,11 +5,16 @@ else
 pyexec_LTLIBRARIES = 
 endif
 
-_comedi_la_SOURCES = comedi_wrap.c
+_comedi_la_SOURCES = comedi_python_wrap.c
 _comedi_la_CFLAGS = $(COMEDILIB_CFLAGS) $(PYTHON_INCLUDES) $(PYTHON_QUIET)
 _comedi_la_LDFLAGS = -module -avoid-version $(COMEDILIB_LIBS)
 
 pyexec_SCRIPTS = comedi.py
 
-EXTRA_DIST = comedi.i README.txt comedi.py setup.py test_comedi.py
+BUILT_SOURCES = comedi_python_wrap.c
+
+EXTRA_DIST = README.txt comedi.py setup.py test_comedi.py
+
+comedi_pythong_wrap.c: ../comedi.i
+       $(SWIG) -python -o ./comedi_python_wrap.c ../comedi.i
 
similarity index 99%
rename from python/comedi.py
rename to swig/python/comedi.py
index 728c8d4f7075fcde928b2895a0d654576c3fad59..8b0bf94a62ba3754d632131330813c4bc226a827 100644 (file)
@@ -66,10 +66,6 @@ _comedi.chanlist_swigregister(chanlistPtr)
 chanlist_frompointer = _comedi.chanlist_frompointer
 
 
-COMEDI_MAJOR = _comedi.COMEDI_MAJOR
-COMEDI_NDEVICES = _comedi.COMEDI_NDEVICES
-COMEDI_NDEVCONFOPTS = _comedi.COMEDI_NDEVCONFOPTS
-COMEDI_NAMELEN = _comedi.COMEDI_NAMELEN
 CR_FLAGS_MASK = _comedi.CR_FLAGS_MASK
 CR_ALT_FILTER = _comedi.CR_ALT_FILTER
 CR_DITHER = _comedi.CR_DITHER
@@ -188,7 +184,8 @@ INSN_CONFIG_ALT_SOURCE = _comedi.INSN_CONFIG_ALT_SOURCE
 INSN_CONFIG_DIGITAL_TRIG = _comedi.INSN_CONFIG_DIGITAL_TRIG
 INSN_CONFIG_BLOCK_SIZE = _comedi.INSN_CONFIG_BLOCK_SIZE
 INSN_CONFIG_TIMER_1 = _comedi.INSN_CONFIG_TIMER_1
-CIO = _comedi.CIO
+INSN_CONFIG_FILTER = _comedi.INSN_CONFIG_FILTER
+INSN_CONFIG_CHANGE_NOTIFY = _comedi.INSN_CONFIG_CHANGE_NOTIFY
 class comedi_trig_struct(_object):
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, comedi_trig_struct, name, value)
similarity index 100%
rename from python/setup.py
rename to swig/python/setup.py
diff --git a/swig/ruby/Makefile.am b/swig/ruby/Makefile.am
new file mode 100644 (file)
index 0000000..2d29bdd
--- /dev/null
@@ -0,0 +1,8 @@
+
+EXTRA_DIST = examples
+
+BUILT_SOURCES = comedi_ruby_wrap.c
+
+comedi_ruby_wrap.c: ../comedi.i
+       $(SWIG) -ruby -o ./comedi_ruby_wrap.c ../comedi.i
+
diff --git a/swig/ruby/examples/cmd b/swig/ruby/examples/cmd
new file mode 100755 (executable)
index 0000000..c8de6aa
--- /dev/null
@@ -0,0 +1,91 @@
+#!/usr/bin/env ruby
+
+require 'comedi'
+require 'getoptlong'
+require 'common'
+
+include Comedi
+
+cmdtest_messages = [ "success", "invalid source", "source conflict",
+                   "invalid argument", "argument conflict",
+                   "invalid chanlist" ]
+
+class Comedi_t
+
+    def prepare_cmd_lib(subdevice, freq, cmd)
+       ret, cmd = get_cmd_generic_timed(subdevice, cmd,
+           1000000000.0 / freq)
+
+       if ret < 0
+           printf("comedi_get_cmd_generic_timed failed\n")
+           return ret, cmd
+       end
+
+       cmd.chanlist = $chanlist
+       cmd.chanlist_len = $n_chan
+
+       cmd.scan_end_arg = $n_chan
+       cmd.stop_arg = $n_scan if cmd.stop_src == TRIG_COUNT
+
+       return 0, cmd
+    end
+
+end
+
+parse_options($ARGV)
+
+begin
+    dev = Comedi_t.new($filename)
+rescue
+    comedi_perror($filename)
+    exit 1
+end
+
+$chanlist = Chanlist.new($n_chan)
+0.upto($n_chan - 1) do |i|
+    $chanlist[i] = cr_pack($channel + i, $range, $aref)
+end
+
+ret, cmd = dev.prepare_cmd_lib($subdevice, $freq, Comedi_cmd_struct.new)
+
+$stderr.printf("command before testing:\n")
+dump_cmd($stderr, cmd)
+
+ret, cmd = dev.command_test(cmd)
+if ret < 0
+    comedi_perror("comedi_command_test")
+    exit 1
+end
+$stderr.printf("first test returned %d (%s)\n", ret, cmdtest_messages[ret])
+dump_cmd($stderr, cmd)
+
+ret, cmd = dev.command_test(cmd)
+if ret < 0
+    comedi_perror("comedi_command_test")
+    exit 1
+end
+$stderr.printf("second test returned %d (%s)\n", ret, cmdtest_messages[ret])
+dump_cmd($stderr, cmd)
+
+tstart = Time.new
+$stderr.printf("start time: %d.%06d\n", tstart.tv_sec, tstart.tv_usec)
+
+ret = dev.command(cmd)
+if ret < 0
+    comedi_perror("comedi_command")
+    exit 1
+end
+
+while line = dev.ios.read(2 * $n_chan)
+    data = line.unpack('S*')
+    data.each do |d|
+       printf("%d ", d)
+    end
+    puts
+end
+
+tend = Time.new
+$stderr.printf("end time: %d.%06d\n", tend.tv_sec, tend.tv_usec)
+
+tdiff = tend - tstart
+$stderr.printf("time: %.6f\n", tdiff)
diff --git a/swig/ruby/examples/common b/swig/ruby/examples/common
new file mode 100644 (file)
index 0000000..ff4abce
--- /dev/null
@@ -0,0 +1,102 @@
+def parse_options(argv)
+
+    $filename = "/dev/comedi0"
+    $subdevice = 0
+    $channel = 0
+    $range = 0
+    $aref = AREF_GROUND
+    $n_chan = 4
+    $n_scan = 1000
+    $freq = 1000.0
+
+    opts = GetoptLong.new(
+       [ "--filename",         "-f",   GetoptLong::REQUIRED_ARGUMENT ],
+       [ "--subdevice",        "-s",   GetoptLong::REQUIRED_ARGUMENT ],
+       [ "--channel",          "-c",   GetoptLong::REQUIRED_ARGUMENT ],
+       [ "--aref",             "-a",   GetoptLong::REQUIRED_ARGUMENT ],
+       [ "--range",            "-r",   GetoptLong::REQUIRED_ARGUMENT ],
+       [ "--n_chan",           "-n",   GetoptLong::REQUIRED_ARGUMENT ],
+       [ "--n_scan",           "-N",   GetoptLong::REQUIRED_ARGUMENT ],
+       [ "--freq",             "-F",   GetoptLong::REQUIRED_ARGUMENT ],
+       [ "--verbose",          "-v",   GetoptLong::NO_ARGUMENT ],
+       [ "--diff",             "-d",   GetoptLong::NO_ARGUMENT ],
+       [ "--ground",           "-g",   GetoptLong::NO_ARGUMENT ],
+       [ "--other",            "-o",   GetoptLong::NO_ARGUMENT ],
+       [ "--common",           "-m",   GetoptLong::NO_ARGUMENT ]
+       )
+
+    opts.each do |opt, arg|
+       case opt
+           when "--filename"
+               $filename = arg.to_s
+           when "--subdevice"
+               $subdevice = arg.to_i
+           when "--channel"
+               $channel = arg.to_i
+           when "--range"
+               $range = arg.to_i
+           when "--n_chan"
+               $n_chan = arg.to_i
+           when "--n_scan"
+               $n_scan = arg.to_i
+           when "--freq"
+               $freq = arg.to_i
+           when "--diff"
+               $aref = AREF_DIFF
+           when "--ground"
+               $aref = AREF_GROUND
+           when "--other"
+               $aref = AREF_OTHER
+           when "--common"
+               $aref = AREF_COMMON
+           when "--help"
+               usage
+               exit 0
+       end
+    end
+end
+
+def cmd_src(src)
+
+    buf = ""
+    buf << "none|" if src & TRIG_NONE > 0
+    buf << "now|" if src & TRIG_NOW > 0
+    buf << "follow|" if src & TRIG_FOLLOW > 0
+    buf << "time|" if src & TRIG_TIME > 0
+    buf << "timer|" if src & TRIG_TIMER > 0
+    buf << "count|" if src & TRIG_COUNT > 0
+    buf << "ext|" if src & TRIG_EXT > 0
+    buf << "int|" if src & TRIG_INT > 0
+    buf << "other|" if src & TRIG_OTHER > 0
+
+    if buf == ""
+       buf = "unknown(0x%08x)" % src
+    else
+       buf.sub!(/\|\z/, '')
+    end
+
+    return buf
+end
+
+def dump_cmd(out, cmd)
+
+    out.printf("start:      %-8s %d\n",
+       cmd_src(cmd.start_src),
+       cmd.start_arg)
+
+    out.printf("scan_begin: %-8s %d\n",
+       cmd_src(cmd.scan_begin_src),
+       cmd.scan_begin_arg)
+
+    out.printf("convert:    %-8s %d\n",
+       cmd_src(cmd.convert_src),
+       cmd.convert_arg)
+
+    out.printf("scan_end:   %-8s %d\n",
+       cmd_src(cmd.scan_end_src),
+       cmd.scan_end_arg)
+
+    out.printf("stop:       %-8s %d\n",
+       cmd_src(cmd.stop_src),
+       cmd.stop_arg)
+end
diff --git a/swig/ruby/syntax_sugar b/swig/ruby/syntax_sugar
new file mode 100644 (file)
index 0000000..1bbafc4
--- /dev/null
@@ -0,0 +1,91 @@
+require 'comedi.so'
+
+include Comedi
+include SWIG
+
+module Comedi
+
+class Comedi_t
+
+    def initialize(name)
+       @pointer = Comedi::open(name)
+       raise if @pointer.nil?
+       @ios = IO.new(fileno, "r")
+       raise if @ios.nil?
+    end
+
+    attr_reader :pointer, :ios
+end
+
+private
+
+    def wrap_function(mod, name)
+       defn = %Q{  def #{name}(*args)
+                       comedi_#{name}(*args)
+                   end
+               }
+       mod.module_eval defn
+    end
+
+    def wrap_function_with_receiver(mod, name)
+       defn = %Q{  def #{name}(*args)
+                       comedi_#{name}(self, *args)
+                   end
+               }
+       mod.module_eval defn
+    end
+
+    def wrap_function_with_pointer(mod, name)
+       defn = %Q{  def #{name}(*args)
+                       comedi_#{name}(self.pointer, *args)
+                   end
+               }
+       mod.module_eval defn
+    end
+
+    # Comedi module methods
+
+    names = %w{ open loglevel perror strerrno errno to_phys from_phys
+               set_global_oor_behavior parse_calibration_file }
+
+    names.each do |name|
+       wrap_function(Comedi, name)
+    end
+
+    # Comedi_t instance methods
+
+    names = %w{ close fileno get_n_subdevices get_version_code
+               get_driver_name get_board_name get_subdevice_type
+               find_subdevice_by_type get_read_subdevice get_write_device
+               get_subdevice_flags get_n_channels range_is_chan_specific
+               maxdata_is_chan_specific get_maxdata get_n_ranges
+               get_range find_range get_buffer size
+               get_max_buffer_size set_buffer_size trigger
+               do_insnlist do_insn lock unlock data_read
+               data_read_delayed data_read_hint data_write dio_config
+               dio_read dio_write dio_bitfield get_cmd_src_mask
+               get_cmd_generic_timed cancel command command_test poll
+               set_max_buffer_size get_buffer_contents
+               mark_buffer_read get_buffer_offset apply_calibration
+               apply_parsed_calibration get_default_calibration_path }
+
+    names.each do |name|
+       wrap_function_with_pointer(Comedi_t, name)
+    end
+
+    # Comedi_sv_t instance methods
+
+    names = %w{ sv_init sv_update sv_measure }
+
+    names.each do |name|
+       wrap_function_with_receiver(Comedi_sv_t, name)
+    end
+
+    # Comedi_calibration_t instance methods
+
+    names = %w{ cleanup_calibration_file }
+
+    names.each do |name|
+       wrap_function_with_receiver(Comedi_calibration_t, name)
+    end
+end