/* Generated by Cython 0.11.2 on Thu Aug 22 09:21:37 2013 */

#define PY_SSIZE_T_CLEAN
#include "Python.h"
#include "structmember.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#if PY_VERSION_HEX < 0x02040000
  #define METH_COEXIST 0
  #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
#endif
#if PY_VERSION_HEX < 0x02050000
  typedef int Py_ssize_t;
  #define PY_SSIZE_T_MAX INT_MAX
  #define PY_SSIZE_T_MIN INT_MIN
  #define PY_FORMAT_SIZE_T ""
  #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
  #define PyInt_AsSsize_t(o)   PyInt_AsLong(o)
  #define PyNumber_Index(o)    PyNumber_Int(o)
  #define PyIndex_Check(o)     PyNumber_Check(o)
#endif
#if PY_VERSION_HEX < 0x02060000
  #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
  #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
  #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
  #define PyVarObject_HEAD_INIT(type, size) \
          PyObject_HEAD_INIT(type) size,
  #define PyType_Modified(t)

  typedef struct {
       void *buf;
       PyObject *obj;
       Py_ssize_t len;
       Py_ssize_t itemsize;
       int readonly;
       int ndim;
       char *format;
       Py_ssize_t *shape;
       Py_ssize_t *strides;
       Py_ssize_t *suboffsets;
       void *internal;
  } Py_buffer;

  #define PyBUF_SIMPLE 0
  #define PyBUF_WRITABLE 0x0001
  #define PyBUF_FORMAT 0x0004
  #define PyBUF_ND 0x0008
  #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
  #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
  #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
  #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
  #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)

#endif
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
#endif
#if PY_MAJOR_VERSION >= 3
  #define Py_TPFLAGS_CHECKTYPES 0
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyString_Type                PyBytes_Type
  #define PyString_CheckExact          PyBytes_CheckExact
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define PyBytes_Type                 PyString_Type
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
#endif
#if !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#else
  #define _USE_MATH_DEFINES
#endif
#if PY_VERSION_HEX < 0x02050000
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),((char *)(n)))
#else
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),(n))
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
#endif
#if PY_VERSION_HEX < 0x02050000
  #define __Pyx_NAMESTR(n) ((char *)(n))
  #define __Pyx_DOCSTR(n)  ((char *)(n))
#else
  #define __Pyx_NAMESTR(n) (n)
  #define __Pyx_DOCSTR(n)  (n)
#endif
#ifdef __cplusplus
#define __PYX_EXTERN_C extern "C"
#else
#define __PYX_EXTERN_C extern
#endif
#include <math.h>
#define __PYX_HAVE_API__xfs
#include "stdlib.h"
#include "sys/ioctl.h"
#include "sys/types.h"
#include "sys/stat.h"
#include "xfs/xfs.h"
#include "xfs/jdm.h"
#define __PYX_USE_C99_COMPLEX defined(_Complex_I)


#ifdef __GNUC__
#define INLINE __inline__
#elif _WIN32
#define INLINE __inline
#else
#define INLINE 
#endif

typedef struct {PyObject **p; char *s; long n; char is_unicode; char intern; char is_identifier;} __Pyx_StringTabEntry; /*proto*/



static int __pyx_skip_dispatch = 0;


/* Type Conversion Predeclarations */

#if PY_MAJOR_VERSION < 3
#define __Pyx_PyBytes_FromString          PyString_FromString
#define __Pyx_PyBytes_FromStringAndSize   PyString_FromStringAndSize
#define __Pyx_PyBytes_AsString            PyString_AsString
#else
#define __Pyx_PyBytes_FromString          PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize   PyBytes_FromStringAndSize
#define __Pyx_PyBytes_AsString            PyBytes_AsString
#endif

#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
static INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);

#if !defined(T_PYSSIZET)
#if PY_VERSION_HEX < 0x02050000
#define T_PYSSIZET T_INT
#elif !defined(T_LONGLONG)
#define T_PYSSIZET \
        ((sizeof(Py_ssize_t) == sizeof(int))  ? T_INT  : \
        ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : -1))
#else
#define T_PYSSIZET \
        ((sizeof(Py_ssize_t) == sizeof(int))          ? T_INT      : \
        ((sizeof(Py_ssize_t) == sizeof(long))         ? T_LONG     : \
        ((sizeof(Py_ssize_t) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))
#endif
#endif

#if !defined(T_SIZET)
#if !defined(T_ULONGLONG)
#define T_SIZET \
        ((sizeof(size_t) == sizeof(unsigned int))  ? T_UINT  : \
        ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : -1))
#else
#define T_SIZET \
        ((sizeof(size_t) == sizeof(unsigned int))          ? T_UINT      : \
        ((sizeof(size_t) == sizeof(unsigned long))         ? T_ULONG     : \
        ((sizeof(size_t) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))
#endif
#endif

static INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
static INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);

#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))


#ifdef __GNUC__
/* Test for GCC > 2.95 */
#if __GNUC__ > 2 ||               (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) 
#define likely(x)   __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#else /* __GNUC__ > 2 ... */
#define likely(x)   (x)
#define unlikely(x) (x)
#endif /* __GNUC__ > 2 ... */
#else /* __GNUC__ */
#define likely(x)   (x)
#define unlikely(x) (x)
#endif /* __GNUC__ */
    
static PyObject *__pyx_m;
static PyObject *__pyx_b;
static PyObject *__pyx_empty_tuple;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;
static const char **__pyx_f;

static char __pyx_mdoc[] = "\n";


#ifdef CYTHON_REFNANNY
typedef struct {
  void (*INCREF)(void*, PyObject*, int);
  void (*DECREF)(void*, PyObject*, int);
  void (*GOTREF)(void*, PyObject*, int);
  void (*GIVEREF)(void*, PyObject*, int);
  void* (*NewContext)(const char*, int, const char*);
  void (*FinishContext)(void**);
} __Pyx_RefnannyAPIStruct;
static __Pyx_RefnannyAPIStruct *__Pyx_Refnanny = NULL;
#define __Pyx_ImportRefcountAPI(name)   (__Pyx_RefnannyAPIStruct *) PyCObject_Import((char *)name, (char *)"RefnannyAPI")
#define __Pyx_INCREF(r) __Pyx_Refnanny->INCREF(__pyx_refchk, (PyObject *)(r), __LINE__)
#define __Pyx_DECREF(r) __Pyx_Refnanny->DECREF(__pyx_refchk, (PyObject *)(r), __LINE__)
#define __Pyx_GOTREF(r) __Pyx_Refnanny->GOTREF(__pyx_refchk, (PyObject *)(r), __LINE__)
#define __Pyx_GIVEREF(r) __Pyx_Refnanny->GIVEREF(__pyx_refchk, (PyObject *)(r), __LINE__)
#define __Pyx_XDECREF(r) if((r) == NULL) ; else __Pyx_DECREF(r)
#define __Pyx_SetupRefcountContext(name)   void* __pyx_refchk = __Pyx_Refnanny->NewContext((name), __LINE__, __FILE__)
#define __Pyx_FinishRefcountContext()   __Pyx_Refnanny->FinishContext(&__pyx_refchk)
#else
#define __Pyx_INCREF(r) Py_INCREF(r)
#define __Pyx_DECREF(r) Py_DECREF(r)
#define __Pyx_GOTREF(r)
#define __Pyx_GIVEREF(r)
#define __Pyx_XDECREF(r) Py_XDECREF(r)
#define __Pyx_SetupRefcountContext(name)
#define __Pyx_FinishRefcountContext()
#endif /* CYTHON_REFNANNY */
#define __Pyx_XGIVEREF(r) if((r) == NULL) ; else __Pyx_GIVEREF(r)
#define __Pyx_XGOTREF(r) if((r) == NULL) ; else __Pyx_GOTREF(r)

static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name, PyObject* kw_name); /*proto*/

static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/

static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],     PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,     const char* function_name); /*proto*/

static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/

static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/

static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/

static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/

static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/

#ifndef __PYX_FORCE_INIT_THREADS
#if PY_VERSION_HEX < 0x02040200
#define __PYX_FORCE_INIT_THREADS 1
#else
#define __PYX_FORCE_INIT_THREADS 0
#endif
#endif

static INLINE int __Pyx_StrEq(const char *, const char *); /*proto*/

static INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);

static INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);

static INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);

static INLINE char __Pyx_PyInt_AsChar(PyObject *);

static INLINE short __Pyx_PyInt_AsShort(PyObject *);

static INLINE int __Pyx_PyInt_AsInt(PyObject *);

static INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);

static INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);

static INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);

static INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);

static INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);

static INLINE long __Pyx_PyInt_AsLong(PyObject *);

static INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);

static INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);

static INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);

static void __Pyx_AddTraceback(const char *funcname); /*proto*/

static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/

/* Type declarations */

/* "/home/redbo/xfs/xfs.pyx":99
 * 
 * 
 * cdef class open_bstat:             # <<<<<<<<<<<<<<
 *     cdef xfs_bstat *stat
 *     cdef jdm_fshandle_t *fs
 */

struct __pyx_obj_3xfs_open_bstat {
  PyObject_HEAD
  struct xfs_bstat *stat;
  jdm_fshandle_t *fs;
  int fd;
};

/* "/home/redbo/xfs/xfs.pyx":114
 * 
 * 
 * cdef class bstat:             # <<<<<<<<<<<<<<
 *     cdef xfs_bstat *stat
 *     cdef jdm_fshandle_t *fs
 */

struct __pyx_obj_3xfs_bstat {
  PyObject_HEAD
  struct xfs_bstat *stat;
  jdm_fshandle_t *fs;
};

/* "/home/redbo/xfs/xfs.pyx":207
 * 
 * 
 * cdef class BulkstatResult:             # <<<<<<<<<<<<<<
 *     cdef bstat stat
 *     cdef int count
 */

struct __pyx_obj_3xfs_BulkstatResult {
  PyObject_HEAD
  struct __pyx_obj_3xfs_bstat *stat;
  int count;
  unsigned PY_LONG_LONG last;
  struct xfs_bstat *t;
  struct xfs_fsop_bulkreq bsr;
  jdm_fshandle_t *fs;
  int fd;
  int done;
  int pos;
};
/* Module declarations from stdlib */

/* Module declarations from xfs */

static PyTypeObject *__pyx_ptype_3xfs_open_bstat = 0;
static PyTypeObject *__pyx_ptype_3xfs_bstat = 0;
static PyTypeObject *__pyx_ptype_3xfs_BulkstatResult = 0;
#define __Pyx_MODULE_NAME "xfs"
int __pyx_module_is_main_xfs = 0;

/* Implementation of xfs */
static char __pyx_k_1[] = "0.1";
static PyObject *__pyx_int_25000;
static char __pyx_k___main__[] = "__main__";
static PyObject *__pyx_kp___main__;
static char __pyx_k___enter__[] = "__enter__";
static PyObject *__pyx_kp___enter__;
static char __pyx_k___exit__[] = "__exit__";
static PyObject *__pyx_kp___exit__;
static char __pyx_k_st_size[] = "st_size";
static PyObject *__pyx_kp_st_size;
static char __pyx_k_st_mode[] = "st_mode";
static PyObject *__pyx_kp_st_mode;
static char __pyx_k_st_ino[] = "st_ino";
static PyObject *__pyx_kp_st_ino;
static char __pyx_k_st_dev[] = "st_dev";
static PyObject *__pyx_kp_st_dev;
static char __pyx_k_st_nlink[] = "st_nlink";
static PyObject *__pyx_kp_st_nlink;
static char __pyx_k_st_uid[] = "st_uid";
static PyObject *__pyx_kp_st_uid;
static char __pyx_k_st_gid[] = "st_gid";
static PyObject *__pyx_kp_st_gid;
static char __pyx_k_st_atime[] = "st_atime";
static PyObject *__pyx_kp_st_atime;
static char __pyx_k_st_mtime[] = "st_mtime";
static PyObject *__pyx_kp_st_mtime;
static char __pyx_k_st_ctime[] = "st_ctime";
static PyObject *__pyx_kp_st_ctime;
static char __pyx_k_st_fatime[] = "st_fatime";
static PyObject *__pyx_kp_st_fatime;
static char __pyx_k_st_fmtime[] = "st_fmtime";
static PyObject *__pyx_kp_st_fmtime;
static char __pyx_k_st_fctime[] = "st_fctime";
static PyObject *__pyx_kp_st_fctime;
static char __pyx_k_st_xflags[] = "st_xflags";
static PyObject *__pyx_kp_st_xflags;
static char __pyx_k_has_xattrs[] = "has_xattrs";
static PyObject *__pyx_kp_has_xattrs;
static char __pyx_k_isreg[] = "isreg";
static PyObject *__pyx_kp_isreg;
static char __pyx_k_isdir[] = "isdir";
static PyObject *__pyx_kp_isdir;
static char __pyx_k_isfifo[] = "isfifo";
static PyObject *__pyx_kp_isfifo;
static char __pyx_k_islink[] = "islink";
static PyObject *__pyx_kp_islink;
static char __pyx_k_open[] = "open";
static PyObject *__pyx_kp_open;
static char __pyx_k___repr__[] = "__repr__";
static PyObject *__pyx_kp___repr__;
static char __pyx_k___init__[] = "__init__";
static PyObject *__pyx_kp___init__;
static char __pyx_k___dealloc__[] = "__dealloc__";
static PyObject *__pyx_kp___dealloc__;
static char __pyx_k___iter__[] = "__iter__";
static PyObject *__pyx_kp___iter__;
static char __pyx_k___next__[] = "__next__";
static PyObject *__pyx_kp___next__;
static char __pyx_k_typ[] = "typ";
static PyObject *__pyx_kp_typ;
static char __pyx_k_value[] = "value";
static PyObject *__pyx_kp_value;
static char __pyx_k_traceback[] = "traceback";
static PyObject *__pyx_kp_traceback;
static char __pyx_k_path[] = "path";
static PyObject *__pyx_kp_path;
static char __pyx_k_os[] = "os";
static PyObject *__pyx_kp_os;
static char __pyx_k___version__[] = "__version__";
static PyObject *__pyx_kp___version__;
static char __pyx_k_AT_A_TIME[] = "AT_A_TIME";
static PyObject *__pyx_kp_AT_A_TIME;
static char __pyx_k_XFS_XFLAG_HASATTR[] = "XFS_XFLAG_HASATTR";
static PyObject *__pyx_kp_XFS_XFLAG_HASATTR;
static char __pyx_k_XFS_XFLAG_REALTIME[] = "XFS_XFLAG_REALTIME";
static PyObject *__pyx_kp_XFS_XFLAG_REALTIME;
static char __pyx_k_XFS_XFLAG_PREALLOC[] = "XFS_XFLAG_PREALLOC";
static PyObject *__pyx_kp_XFS_XFLAG_PREALLOC;
static char __pyx_k_XFS_XFLAG_IMMUTABLE[] = "XFS_XFLAG_IMMUTABLE";
static PyObject *__pyx_kp_XFS_XFLAG_IMMUTABLE;
static char __pyx_k_XFS_XFLAG_APPEND[] = "XFS_XFLAG_APPEND";
static PyObject *__pyx_kp_XFS_XFLAG_APPEND;
static char __pyx_k_XFS_XFLAG_SYNC[] = "XFS_XFLAG_SYNC";
static PyObject *__pyx_kp_XFS_XFLAG_SYNC;
static char __pyx_k_XFS_XFLAG_NOATIME[] = "XFS_XFLAG_NOATIME";
static PyObject *__pyx_kp_XFS_XFLAG_NOATIME;
static char __pyx_k_XFS_XFLAG_NODUMP[] = "XFS_XFLAG_NODUMP";
static PyObject *__pyx_kp_XFS_XFLAG_NODUMP;
static char __pyx_k_XFS_XFLAG_RTINHERIT[] = "XFS_XFLAG_RTINHERIT";
static PyObject *__pyx_kp_XFS_XFLAG_RTINHERIT;
static char __pyx_k_2[] = "XFS_XFLAG_PROJINHERIT";
static PyObject *__pyx_kp_2;
static char __pyx_k_3[] = "XFS_XFLAG_NOSYMLINKS";
static PyObject *__pyx_kp_3;
static char __pyx_k_XFS_XFLAG_EXTSIZE[] = "XFS_XFLAG_EXTSIZE";
static PyObject *__pyx_kp_XFS_XFLAG_EXTSIZE;
static char __pyx_k_4[] = "XFS_XFLAG_EXTSZINHERIT";
static PyObject *__pyx_kp_4;
static char __pyx_k_XFS_XFLAG_NODEFRAG[] = "XFS_XFLAG_NODEFRAG";
static PyObject *__pyx_kp_XFS_XFLAG_NODEFRAG;
static char __pyx_k_5[] = "XFS_XFLAG_FILESTREAM";
static PyObject *__pyx_kp_5;
static char __pyx_k_property[] = "property";
static PyObject *__pyx_kp_property;
static char __pyx_k_O_RDONLY[] = "O_RDONLY";
static PyObject *__pyx_kp_O_RDONLY;
static char __pyx_k_close[] = "close";
static PyObject *__pyx_kp_close;
static char __pyx_k_O_DIRECTORY[] = "O_DIRECTORY";
static PyObject *__pyx_kp_O_DIRECTORY;
static char __pyx_k_Exception[] = "Exception";
static PyObject *__pyx_kp_Exception;
static char __pyx_k_StopIteration[] = "StopIteration";
static PyObject *__pyx_kp_StopIteration;
static PyObject *__pyx_kp_1;
static PyObject *__pyx_builtin_property;
static PyObject *__pyx_builtin_Exception;
static PyObject *__pyx_builtin_StopIteration;
static PyObject *__pyx_kp_6;
static char __pyx_k_6[] = "bstat(st_mode=%s, st_ino=%s, st_dev=%s, st_nlink=%s, st_uid=%s, st_gid=%s, st_size=%s, st_atime=%s, st_mtime=%s, st_ctime=%s)";
static PyObject *__pyx_kp_7;
static PyObject *__pyx_kp_8;
static char __pyx_k_7[] = "Unable to get filesystem handle";
static char __pyx_k_8[] = "Unable to allocate stat buffer";

/* "/home/redbo/xfs/xfs.pyx":104
 *     cdef int fd
 * 
 *     def __enter__(self):             # <<<<<<<<<<<<<<
 *         self.fd = jdm_open(self.fs, self.stat, os.O_RDONLY)
 *         if self.fd < 0:
 */

static PyObject *__pyx_pf_3xfs_10open_bstat___enter__(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_10open_bstat___enter__(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_SetupRefcountContext("__enter__");

  /* "/home/redbo/xfs/xfs.pyx":105
 * 
 *     def __enter__(self):
 *         self.fd = jdm_open(self.fs, self.stat, os.O_RDONLY)             # <<<<<<<<<<<<<<
 *         if self.fd < 0:
 *             return PyErr_SetFromErrno(PyExc_IOError)
 */
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_os); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyObject_GetAttr(__pyx_1, __pyx_kp_O_RDONLY); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  ((struct __pyx_obj_3xfs_open_bstat *)__pyx_v_self)->fd = jdm_open(((struct __pyx_obj_3xfs_open_bstat *)__pyx_v_self)->fs, ((struct __pyx_obj_3xfs_open_bstat *)__pyx_v_self)->stat, __pyx_t_2);

  /* "/home/redbo/xfs/xfs.pyx":106
 *     def __enter__(self):
 *         self.fd = jdm_open(self.fs, self.stat, os.O_RDONLY)
 *         if self.fd < 0:             # <<<<<<<<<<<<<<
 *             return PyErr_SetFromErrno(PyExc_IOError)
 *         return self.fd
 */
  __pyx_t_3 = (((struct __pyx_obj_3xfs_open_bstat *)__pyx_v_self)->fd < 0);
  if (__pyx_t_3) {

    /* "/home/redbo/xfs/xfs.pyx":107
 *         self.fd = jdm_open(self.fs, self.stat, os.O_RDONLY)
 *         if self.fd < 0:
 *             return PyErr_SetFromErrno(PyExc_IOError)             # <<<<<<<<<<<<<<
 *         return self.fd
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyErr_SetFromErrno(PyExc_IOError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "/home/redbo/xfs/xfs.pyx":108
 *         if self.fd < 0:
 *             return PyErr_SetFromErrno(PyExc_IOError)
 *         return self.fd             # <<<<<<<<<<<<<<
 * 
 *     def __exit__(self, typ, value, traceback):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3xfs_open_bstat *)__pyx_v_self)->fd); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_1);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.open_bstat.__enter__");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":110
 *         return self.fd
 * 
 *     def __exit__(self, typ, value, traceback):             # <<<<<<<<<<<<<<
 *         os.close(self.fd)
 * 
 */

static PyObject *__pyx_pf_3xfs_10open_bstat___exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pf_3xfs_10open_bstat___exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_typ = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_traceback = 0;
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_kp_typ,&__pyx_kp_value,&__pyx_kp_traceback,0};
  __Pyx_SetupRefcountContext("__exit__");
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_typ);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_value);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_traceback);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__exit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_typ = values[0];
    __pyx_v_value = values[1];
    __pyx_v_traceback = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_typ = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_value = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_traceback = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("xfs.open_bstat.__exit__");
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/redbo/xfs/xfs.pyx":111
 * 
 *     def __exit__(self, typ, value, traceback):
 *         os.close(self.fd)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_os); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyObject_GetAttr(__pyx_1, __pyx_kp_close); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_3xfs_open_bstat *)__pyx_v_self)->fd); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_1);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("xfs.open_bstat.__exit__");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":119
 * 
 *     @property
 *     def st_size(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_size
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_size(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_size(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_size");

  /* "/home/redbo/xfs/xfs.pyx":120
 *     @property
 *     def st_size(self):
 *         return self.stat.bs_size             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_size");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":123
 * 
 *     @property
 *     def st_mode(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_mode
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_mode(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_mode(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_mode");

  /* "/home/redbo/xfs/xfs.pyx":124
 *     @property
 *     def st_mode(self):
 *         return self.stat.bs_mode             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_mode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_mode");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":127
 * 
 *     @property
 *     def st_ino(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_ino
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_ino(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_ino(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_ino");

  /* "/home/redbo/xfs/xfs.pyx":128
 *     @property
 *     def st_ino(self):
 *         return self.stat.bs_ino             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_ino); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_ino");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":131
 * 
 *     @property
 *     def st_dev(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_rdev
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_dev(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_dev(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_dev");

  /* "/home/redbo/xfs/xfs.pyx":132
 *     @property
 *     def st_dev(self):
 *         return self.stat.bs_rdev             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_rdev); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_dev");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":135
 * 
 *     @property
 *     def st_nlink(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_nlink
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_nlink(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_nlink(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_nlink");

  /* "/home/redbo/xfs/xfs.pyx":136
 *     @property
 *     def st_nlink(self):
 *         return self.stat.bs_nlink             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_nlink); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_nlink");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":139
 * 
 *     @property
 *     def st_uid(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_uid
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_uid(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_uid(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_uid");

  /* "/home/redbo/xfs/xfs.pyx":140
 *     @property
 *     def st_uid(self):
 *         return self.stat.bs_uid             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_uid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_uid");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":143
 * 
 *     @property
 *     def st_gid(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_gid
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_gid(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_gid(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_gid");

  /* "/home/redbo/xfs/xfs.pyx":144
 *     @property
 *     def st_gid(self):
 *         return self.stat.bs_gid             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_gid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_gid");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":147
 * 
 *     @property
 *     def st_atime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_atime.tv_sec
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_atime(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_atime(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_atime");

  /* "/home/redbo/xfs/xfs.pyx":148
 *     @property
 *     def st_atime(self):
 *         return self.stat.bs_atime.tv_sec             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyLong_FromUnsignedLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_atime.tv_sec); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_atime");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":151
 * 
 *     @property
 *     def st_mtime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_mtime.tv_sec
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_mtime(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_mtime(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_mtime");

  /* "/home/redbo/xfs/xfs.pyx":152
 *     @property
 *     def st_mtime(self):
 *         return self.stat.bs_mtime.tv_sec             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyLong_FromUnsignedLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_mtime.tv_sec); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_mtime");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":155
 * 
 *     @property
 *     def st_ctime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_ctime.tv_sec
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_ctime(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_ctime(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_ctime");

  /* "/home/redbo/xfs/xfs.pyx":156
 *     @property
 *     def st_ctime(self):
 *         return self.stat.bs_ctime.tv_sec             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyLong_FromUnsignedLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_ctime.tv_sec); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_ctime");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":159
 * 
 *     @property
 *     def st_fatime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_atime.tv_sec + (self.stat.bs_atime.tv_nsec /
 *                                             1000000000.0)
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_fatime(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_fatime(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_fatime");

  /* "/home/redbo/xfs/xfs.pyx":160
 *     @property
 *     def st_fatime(self):
 *         return self.stat.bs_atime.tv_sec + (self.stat.bs_atime.tv_nsec /             # <<<<<<<<<<<<<<
 *                                             1000000000.0)
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "/home/redbo/xfs/xfs.pyx":161
 *     def st_fatime(self):
 *         return self.stat.bs_atime.tv_sec + (self.stat.bs_atime.tv_nsec /
 *                                             1000000000.0)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble((((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_atime.tv_sec + (((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_atime.tv_nsec / 1000000000.0))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_fatime");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":164
 * 
 *     @property
 *     def st_fmtime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_mtime.tv_sec + (self.stat.bs_mtime.tv_nsec /
 *                                             1000000000.0)
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_fmtime(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_fmtime(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_fmtime");

  /* "/home/redbo/xfs/xfs.pyx":165
 *     @property
 *     def st_fmtime(self):
 *         return self.stat.bs_mtime.tv_sec + (self.stat.bs_mtime.tv_nsec /             # <<<<<<<<<<<<<<
 *                                             1000000000.0)
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "/home/redbo/xfs/xfs.pyx":166
 *     def st_fmtime(self):
 *         return self.stat.bs_mtime.tv_sec + (self.stat.bs_mtime.tv_nsec /
 *                                             1000000000.0)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble((((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_mtime.tv_sec + (((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_mtime.tv_nsec / 1000000000.0))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_fmtime");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":169
 * 
 *     @property
 *     def st_fctime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_ctime.tv_sec + (self.stat.bs_ctime.tv_nsec /
 *                                             1000000000.0)
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_fctime(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_fctime(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_fctime");

  /* "/home/redbo/xfs/xfs.pyx":170
 *     @property
 *     def st_fctime(self):
 *         return self.stat.bs_ctime.tv_sec + (self.stat.bs_ctime.tv_nsec /             # <<<<<<<<<<<<<<
 *                                             1000000000.0)
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "/home/redbo/xfs/xfs.pyx":171
 *     def st_fctime(self):
 *         return self.stat.bs_ctime.tv_sec + (self.stat.bs_ctime.tv_nsec /
 *                                             1000000000.0)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble((((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_ctime.tv_sec + (((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_ctime.tv_nsec / 1000000000.0))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_fctime");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":174
 * 
 *     @property
 *     def st_xflags(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_xflags
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_st_xflags(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_st_xflags(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("st_xflags");

  /* "/home/redbo/xfs/xfs.pyx":175
 *     @property
 *     def st_xflags(self):
 *         return self.stat.bs_xflags             # <<<<<<<<<<<<<<
 * 
 *     def has_xattrs(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_xflags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.st_xflags");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":177
 *         return self.stat.bs_xflags
 * 
 *     def has_xattrs(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_xflags & _XFS_XFLAG_HASATTR
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_has_xattrs(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_has_xattrs(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("has_xattrs");

  /* "/home/redbo/xfs/xfs.pyx":178
 * 
 *     def has_xattrs(self):
 *         return self.stat.bs_xflags & _XFS_XFLAG_HASATTR             # <<<<<<<<<<<<<<
 * 
 *     def isreg(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_xflags & XFS_XFLAG_HASATTR)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.has_xattrs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":180
 *         return self.stat.bs_xflags & _XFS_XFLAG_HASATTR
 * 
 *     def isreg(self):             # <<<<<<<<<<<<<<
 *         return S_ISREG(self.stat.bs_mode)
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_isreg(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_isreg(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("isreg");

  /* "/home/redbo/xfs/xfs.pyx":181
 * 
 *     def isreg(self):
 *         return S_ISREG(self.stat.bs_mode)             # <<<<<<<<<<<<<<
 * 
 *     def isdir(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(S_ISREG(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_mode)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.isreg");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":183
 *         return S_ISREG(self.stat.bs_mode)
 * 
 *     def isdir(self):             # <<<<<<<<<<<<<<
 *         return S_ISDIR(self.stat.bs_mode)
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_isdir(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_isdir(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("isdir");

  /* "/home/redbo/xfs/xfs.pyx":184
 * 
 *     def isdir(self):
 *         return S_ISDIR(self.stat.bs_mode)             # <<<<<<<<<<<<<<
 * 
 *     def isfifo(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(S_ISDIR(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_mode)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.isdir");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":186
 *         return S_ISDIR(self.stat.bs_mode)
 * 
 *     def isfifo(self):             # <<<<<<<<<<<<<<
 *         return S_ISFIFO(self.stat.bs_mode)
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_isfifo(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_isfifo(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("isfifo");

  /* "/home/redbo/xfs/xfs.pyx":187
 * 
 *     def isfifo(self):
 *         return S_ISFIFO(self.stat.bs_mode)             # <<<<<<<<<<<<<<
 * 
 *     def islink(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(S_ISFIFO(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_mode)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.isfifo");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":189
 *         return S_ISFIFO(self.stat.bs_mode)
 * 
 *     def islink(self):             # <<<<<<<<<<<<<<
 *         return S_ISLNK(self.stat.bs_mode)
 * 
 */

static PyObject *__pyx_pf_3xfs_5bstat_islink(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_islink(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("islink");

  /* "/home/redbo/xfs/xfs.pyx":190
 * 
 *     def islink(self):
 *         return S_ISLNK(self.stat.bs_mode)             # <<<<<<<<<<<<<<
 * 
 *     def open(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(S_ISLNK(((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat->bs_mode)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.islink");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":192
 *         return S_ISLNK(self.stat.bs_mode)
 * 
 *     def open(self):             # <<<<<<<<<<<<<<
 *         cdef open_bstat filectx = open_bstat()
 *         filectx.stat = self.stat
 */

static PyObject *__pyx_pf_3xfs_5bstat_open(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat_open(PyObject *__pyx_v_self, PyObject *unused) {
  struct __pyx_obj_3xfs_open_bstat *__pyx_v_filectx = 0;
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_SetupRefcountContext("open");

  /* "/home/redbo/xfs/xfs.pyx":193
 * 
 *     def open(self):
 *         cdef open_bstat filectx = open_bstat()             # <<<<<<<<<<<<<<
 *         filectx.stat = self.stat
 *         filectx.fs = self.fs
 */
  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3xfs_open_bstat)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_3xfs_open_bstat))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_filectx = ((struct __pyx_obj_3xfs_open_bstat *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":194
 *     def open(self):
 *         cdef open_bstat filectx = open_bstat()
 *         filectx.stat = self.stat             # <<<<<<<<<<<<<<
 *         filectx.fs = self.fs
 *         return filectx
 */
  __pyx_v_filectx->stat = ((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->stat;

  /* "/home/redbo/xfs/xfs.pyx":195
 *         cdef open_bstat filectx = open_bstat()
 *         filectx.stat = self.stat
 *         filectx.fs = self.fs             # <<<<<<<<<<<<<<
 *         return filectx
 * 
 */
  __pyx_v_filectx->fs = ((struct __pyx_obj_3xfs_bstat *)__pyx_v_self)->fs;

  /* "/home/redbo/xfs/xfs.pyx":196
 *         filectx.stat = self.stat
 *         filectx.fs = self.fs
 *         return filectx             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_filectx));
  __pyx_r = ((PyObject *)__pyx_v_filectx);
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("xfs.bstat.open");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_filectx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":198
 *         return filectx
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return ('bstat(st_mode=%s, st_ino=%s, st_dev=%s, st_nlink=%s, '
 *                 'st_uid=%s, st_gid=%s, st_size=%s, st_atime=%s, '
 */

static PyObject *__pyx_pf_3xfs_5bstat___repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pf_3xfs_5bstat___repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  __Pyx_SetupRefcountContext("__repr__");

  /* "/home/redbo/xfs/xfs.pyx":199
 * 
 *     def __repr__(self):
 *         return ('bstat(st_mode=%s, st_ino=%s, st_dev=%s, st_nlink=%s, '             # <<<<<<<<<<<<<<
 *                 'st_uid=%s, st_gid=%s, st_size=%s, st_atime=%s, '
 *                 'st_mtime=%s, st_ctime=%s)' %
 */
  __Pyx_XDECREF(__pyx_r);

  /* "/home/redbo/xfs/xfs.pyx":202
 *                 'st_uid=%s, st_gid=%s, st_size=%s, st_atime=%s, '
 *                 'st_mtime=%s, st_ctime=%s)' %
 *                 (self.st_mode, self.st_ino, self.st_dev, self.st_nlink,             # <<<<<<<<<<<<<<
 *                  self.st_uid, self.st_gid, self.st_size, self.st_atime,
 *                  self.st_mtime, self.st_ctime))
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_mode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_ino); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_dev); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_nlink); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);

  /* "/home/redbo/xfs/xfs.pyx":203
 *                 'st_mtime=%s, st_ctime=%s)' %
 *                 (self.st_mode, self.st_ino, self.st_dev, self.st_nlink,
 *                  self.st_uid, self.st_gid, self.st_size, self.st_atime,             # <<<<<<<<<<<<<<
 *                  self.st_mtime, self.st_ctime))
 * 
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_uid); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_gid); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_size); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_atime); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);

  /* "/home/redbo/xfs/xfs.pyx":204
 *                 (self.st_mode, self.st_ino, self.st_dev, self.st_nlink,
 *                  self.st_uid, self.st_gid, self.st_size, self.st_atime,
 *                  self.st_mtime, self.st_ctime))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_mtime); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_st_ctime); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = PyTuple_New(10); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_11));
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_11, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_11, 5, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_11, 6, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_11, 7, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_11, 8, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 9, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_10);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  __pyx_t_10 = PyNumber_Remainder(__pyx_kp_6, ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
  __pyx_r = __pyx_t_10;
  __pyx_t_10 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("xfs.bstat.__repr__");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":218
 *     cdef int pos
 * 
 *     def __init__(self, path):             # <<<<<<<<<<<<<<
 *         self.fd = os.open(path, os.O_DIRECTORY)
 *         if self.fd < 0:
 */

static int __pyx_pf_3xfs_14BulkstatResult___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pf_3xfs_14BulkstatResult___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_path = 0;
  int __pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  char *__pyx_t_6;
  size_t __pyx_t_7;
  static PyObject **__pyx_pyargnames[] = {&__pyx_kp_path,0};
  __Pyx_SetupRefcountContext("__init__");
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[1] = {0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_path);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_path = values[0];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_path = PyTuple_GET_ITEM(__pyx_args, 0);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("xfs.BulkstatResult.__init__");
  return -1;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/redbo/xfs/xfs.pyx":219
 * 
 *     def __init__(self, path):
 *         self.fd = os.open(path, os.O_DIRECTORY)             # <<<<<<<<<<<<<<
 *         if self.fd < 0:
 *             PyErr_SetFromErrno(PyExc_IOError)
 */
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_os); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyObject_GetAttr(__pyx_1, __pyx_kp_open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_os); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_O_DIRECTORY); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_path);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_path);
  __Pyx_GIVEREF(__pyx_v_path);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->fd = __pyx_t_4;

  /* "/home/redbo/xfs/xfs.pyx":220
 *     def __init__(self, path):
 *         self.fd = os.open(path, os.O_DIRECTORY)
 *         if self.fd < 0:             # <<<<<<<<<<<<<<
 *             PyErr_SetFromErrno(PyExc_IOError)
 *             return
 */
  __pyx_t_5 = (((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->fd < 0);
  if (__pyx_t_5) {

    /* "/home/redbo/xfs/xfs.pyx":221
 *         self.fd = os.open(path, os.O_DIRECTORY)
 *         if self.fd < 0:
 *             PyErr_SetFromErrno(PyExc_IOError)             # <<<<<<<<<<<<<<
 *             return
 *         self.fs = jdm_getfshandle(path)
 */
    __pyx_t_2 = PyErr_SetFromErrno(PyExc_IOError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "/home/redbo/xfs/xfs.pyx":222
 *         if self.fd < 0:
 *             PyErr_SetFromErrno(PyExc_IOError)
 *             return             # <<<<<<<<<<<<<<
 *         self.fs = jdm_getfshandle(path)
 *         if not self.fs:
 */
    __pyx_r = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/redbo/xfs/xfs.pyx":223
 *             PyErr_SetFromErrno(PyExc_IOError)
 *             return
 *         self.fs = jdm_getfshandle(path)             # <<<<<<<<<<<<<<
 *         if not self.fs:
 *             raise Exception('Unable to get filesystem handle')
 */
  __pyx_t_6 = __Pyx_PyBytes_AsString(__pyx_v_path); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->fs = jdm_getfshandle(__pyx_t_6);

  /* "/home/redbo/xfs/xfs.pyx":224
 *             return
 *         self.fs = jdm_getfshandle(path)
 *         if not self.fs:             # <<<<<<<<<<<<<<
 *             raise Exception('Unable to get filesystem handle')
 *         self.t = <xfs_bstat *>malloc(AT_A_TIME * sizeof(xfs_bstat))
 */
  __pyx_t_5 = (!(((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->fs != 0));
  if (__pyx_t_5) {

    /* "/home/redbo/xfs/xfs.pyx":225
 *         self.fs = jdm_getfshandle(path)
 *         if not self.fs:
 *             raise Exception('Unable to get filesystem handle')             # <<<<<<<<<<<<<<
 *         self.t = <xfs_bstat *>malloc(AT_A_TIME * sizeof(xfs_bstat))
 *         if not self.t:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_INCREF(__pyx_kp_7);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_7);
    __Pyx_GIVEREF(__pyx_kp_7);
    __pyx_t_3 = PyObject_Call(__pyx_builtin_Exception, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "/home/redbo/xfs/xfs.pyx":226
 *         if not self.fs:
 *             raise Exception('Unable to get filesystem handle')
 *         self.t = <xfs_bstat *>malloc(AT_A_TIME * sizeof(xfs_bstat))             # <<<<<<<<<<<<<<
 *         if not self.t:
 *             raise Exception('Unable to allocate stat buffer')
 */
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_AT_A_TIME); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(struct xfs_bstat))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Multiply(__pyx_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __Pyx_PyInt_AsSize_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->t = ((struct xfs_bstat *)malloc(__pyx_t_7));

  /* "/home/redbo/xfs/xfs.pyx":227
 *             raise Exception('Unable to get filesystem handle')
 *         self.t = <xfs_bstat *>malloc(AT_A_TIME * sizeof(xfs_bstat))
 *         if not self.t:             # <<<<<<<<<<<<<<
 *             raise Exception('Unable to allocate stat buffer')
 *         self.stat = bstat()
 */
  __pyx_t_5 = (!(((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->t != 0));
  if (__pyx_t_5) {

    /* "/home/redbo/xfs/xfs.pyx":228
 *         self.t = <xfs_bstat *>malloc(AT_A_TIME * sizeof(xfs_bstat))
 *         if not self.t:
 *             raise Exception('Unable to allocate stat buffer')             # <<<<<<<<<<<<<<
 *         self.stat = bstat()
 *         self.stat.fs = self.fs
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_INCREF(__pyx_kp_8);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_8);
    __Pyx_GIVEREF(__pyx_kp_8);
    __pyx_t_3 = PyObject_Call(__pyx_builtin_Exception, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L8;
  }
  __pyx_L8:;

  /* "/home/redbo/xfs/xfs.pyx":229
 *         if not self.t:
 *             raise Exception('Unable to allocate stat buffer')
 *         self.stat = bstat()             # <<<<<<<<<<<<<<
 *         self.stat.fs = self.fs
 *         self.count = 0
 */
  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3xfs_bstat)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (!(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_3xfs_bstat))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->stat);
  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->stat));
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->stat = ((struct __pyx_obj_3xfs_bstat *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "/home/redbo/xfs/xfs.pyx":230
 *             raise Exception('Unable to allocate stat buffer')
 *         self.stat = bstat()
 *         self.stat.fs = self.fs             # <<<<<<<<<<<<<<
 *         self.count = 0
 *         self.last = 0
 */
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->stat->fs = ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->fs;

  /* "/home/redbo/xfs/xfs.pyx":231
 *         self.stat = bstat()
 *         self.stat.fs = self.fs
 *         self.count = 0             # <<<<<<<<<<<<<<
 *         self.last = 0
 *         self.pos = 0
 */
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->count = 0;

  /* "/home/redbo/xfs/xfs.pyx":232
 *         self.stat.fs = self.fs
 *         self.count = 0
 *         self.last = 0             # <<<<<<<<<<<<<<
 *         self.pos = 0
 *         self.bsr.lastip = &self.last
 */
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->last = 0;

  /* "/home/redbo/xfs/xfs.pyx":233
 *         self.count = 0
 *         self.last = 0
 *         self.pos = 0             # <<<<<<<<<<<<<<
 *         self.bsr.lastip = &self.last
 *         self.bsr.icount = AT_A_TIME
 */
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->pos = 0;

  /* "/home/redbo/xfs/xfs.pyx":234
 *         self.last = 0
 *         self.pos = 0
 *         self.bsr.lastip = &self.last             # <<<<<<<<<<<<<<
 *         self.bsr.icount = AT_A_TIME
 *         self.bsr.ubuffer = self.t
 */
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->bsr.lastip = (&((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->last);

  /* "/home/redbo/xfs/xfs.pyx":235
 *         self.pos = 0
 *         self.bsr.lastip = &self.last
 *         self.bsr.icount = AT_A_TIME             # <<<<<<<<<<<<<<
 *         self.bsr.ubuffer = self.t
 *         self.bsr.ocount = &self.count
 */
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_AT_A_TIME); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->bsr.icount = __pyx_t_4;

  /* "/home/redbo/xfs/xfs.pyx":236
 *         self.bsr.lastip = &self.last
 *         self.bsr.icount = AT_A_TIME
 *         self.bsr.ubuffer = self.t             # <<<<<<<<<<<<<<
 *         self.bsr.ocount = &self.count
 * 
 */
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->bsr.ubuffer = ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->t;

  /* "/home/redbo/xfs/xfs.pyx":237
 *         self.bsr.icount = AT_A_TIME
 *         self.bsr.ubuffer = self.t
 *         self.bsr.ocount = &self.count             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->bsr.ocount = (&((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->count);

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_1);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("xfs.BulkstatResult.__init__");
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":239
 *         self.bsr.ocount = &self.count
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self.fd >= 0:
 *             os.close(self.fd)
 */

static void __pyx_pf_3xfs_14BulkstatResult___dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pf_3xfs_14BulkstatResult___dealloc__(PyObject *__pyx_v_self) {
  PyObject *__pyx_1 = 0;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_SetupRefcountContext("__dealloc__");

  /* "/home/redbo/xfs/xfs.pyx":240
 * 
 *     def __dealloc__(self):
 *         if self.fd >= 0:             # <<<<<<<<<<<<<<
 *             os.close(self.fd)
 *         if self.t:
 */
  __pyx_t_1 = (((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->fd >= 0);
  if (__pyx_t_1) {

    /* "/home/redbo/xfs/xfs.pyx":241
 *     def __dealloc__(self):
 *         if self.fd >= 0:
 *             os.close(self.fd)             # <<<<<<<<<<<<<<
 *         if self.t:
 *             free(self.t)
 */
    __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_os); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_1);
    __pyx_t_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_close); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
    __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->fd); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "/home/redbo/xfs/xfs.pyx":242
 *         if self.fd >= 0:
 *             os.close(self.fd)
 *         if self.t:             # <<<<<<<<<<<<<<
 *             free(self.t)
 * 
 */
  __pyx_t_1 = (((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->t != 0);
  if (__pyx_t_1) {

    /* "/home/redbo/xfs/xfs.pyx":243
 *             os.close(self.fd)
 *         if self.t:
 *             free(self.t)             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
 */
    free(((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->t);
    goto __pyx_L6;
  }
  __pyx_L6:;

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("xfs.BulkstatResult.__dealloc__");
  __pyx_L0:;
  __Pyx_FinishRefcountContext();
}

/* "/home/redbo/xfs/xfs.pyx":245
 *             free(self.t)
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return self
 * 
 */

static PyObject *__pyx_pf_3xfs_14BulkstatResult___iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pf_3xfs_14BulkstatResult___iter__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_SetupRefcountContext("__iter__");

  /* "/home/redbo/xfs/xfs.pyx":246
 * 
 *     def __iter__(self):
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":248
 *         return self
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef int ioctl_result
 *         if self.pos >= self.count:
 */

static PyObject *__pyx_pf_3xfs_14BulkstatResult___next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pf_3xfs_14BulkstatResult___next__(PyObject *__pyx_v_self) {
  int __pyx_v_ioctl_result;
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_SetupRefcountContext("__next__");

  /* "/home/redbo/xfs/xfs.pyx":250
 *     def __next__(self):
 *         cdef int ioctl_result
 *         if self.pos >= self.count:             # <<<<<<<<<<<<<<
 *             with nogil:
 *                 ioctl_result = ioctl(self.fd, XFS_IOC_FSBULKSTAT, &self.bsr)
 */
  __pyx_t_1 = (((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->pos >= ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->count);
  if (__pyx_t_1) {

    /* "/home/redbo/xfs/xfs.pyx":251
 *         cdef int ioctl_result
 *         if self.pos >= self.count:
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 ioctl_result = ioctl(self.fd, XFS_IOC_FSBULKSTAT, &self.bsr)
 *             if ioctl_result != 0:
 */
    { PyThreadState *_save;
      Py_UNBLOCK_THREADS
      /*try:*/ {

        /* "/home/redbo/xfs/xfs.pyx":252
 *         if self.pos >= self.count:
 *             with nogil:
 *                 ioctl_result = ioctl(self.fd, XFS_IOC_FSBULKSTAT, &self.bsr)             # <<<<<<<<<<<<<<
 *             if ioctl_result != 0:
 *                 return PyErr_SetFromErrno(PyExc_IOError)
 */
        __pyx_v_ioctl_result = ioctl(((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->fd, XFS_IOC_FSBULKSTAT, (&((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->bsr));
      }
      /*finally:*/ {
        Py_BLOCK_THREADS
      }
    }

    /* "/home/redbo/xfs/xfs.pyx":253
 *             with nogil:
 *                 ioctl_result = ioctl(self.fd, XFS_IOC_FSBULKSTAT, &self.bsr)
 *             if ioctl_result != 0:             # <<<<<<<<<<<<<<
 *                 return PyErr_SetFromErrno(PyExc_IOError)
 *             if self.count == 0:
 */
    __pyx_t_1 = (__pyx_v_ioctl_result != 0);
    if (__pyx_t_1) {

      /* "/home/redbo/xfs/xfs.pyx":254
 *                 ioctl_result = ioctl(self.fd, XFS_IOC_FSBULKSTAT, &self.bsr)
 *             if ioctl_result != 0:
 *                 return PyErr_SetFromErrno(PyExc_IOError)             # <<<<<<<<<<<<<<
 *             if self.count == 0:
 *                 raise StopIteration()
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_2 = PyErr_SetFromErrno(PyExc_IOError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;
      goto __pyx_L9;
    }
    __pyx_L9:;

    /* "/home/redbo/xfs/xfs.pyx":255
 *             if ioctl_result != 0:
 *                 return PyErr_SetFromErrno(PyExc_IOError)
 *             if self.count == 0:             # <<<<<<<<<<<<<<
 *                 raise StopIteration()
 *             self.pos = 0
 */
    __pyx_t_1 = (((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->count == 0);
    if (__pyx_t_1) {

      /* "/home/redbo/xfs/xfs.pyx":256
 *                 return PyErr_SetFromErrno(PyExc_IOError)
 *             if self.count == 0:
 *                 raise StopIteration()             # <<<<<<<<<<<<<<
 *             self.pos = 0
 *         self.stat.stat = &self.t[self.pos]
 */
      __pyx_t_2 = PyObject_Call(__pyx_builtin_StopIteration, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_Raise(__pyx_t_2, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L10;
    }
    __pyx_L10:;

    /* "/home/redbo/xfs/xfs.pyx":257
 *             if self.count == 0:
 *                 raise StopIteration()
 *             self.pos = 0             # <<<<<<<<<<<<<<
 *         self.stat.stat = &self.t[self.pos]
 *         self.pos += 1
 */
    ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->pos = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "/home/redbo/xfs/xfs.pyx":258
 *                 raise StopIteration()
 *             self.pos = 0
 *         self.stat.stat = &self.t[self.pos]             # <<<<<<<<<<<<<<
 *         self.pos += 1
 *         return self.stat
 */
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->stat->stat = (&(((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->t[((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->pos]));

  /* "/home/redbo/xfs/xfs.pyx":259
 *             self.pos = 0
 *         self.stat.stat = &self.t[self.pos]
 *         self.pos += 1             # <<<<<<<<<<<<<<
 *         return self.stat
 * 
 */
  ((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->pos += 1;

  /* "/home/redbo/xfs/xfs.pyx":260
 *         self.stat.stat = &self.t[self.pos]
 *         self.pos += 1
 *         return self.stat             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->stat));
  __pyx_r = ((PyObject *)((struct __pyx_obj_3xfs_BulkstatResult *)__pyx_v_self)->stat);
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("xfs.BulkstatResult.__next__");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

/* "/home/redbo/xfs/xfs.pyx":263
 * 
 * 
 * def bulkstat(path):             # <<<<<<<<<<<<<<
 *     """
 *     bulkstat(fs_path)
 */

static PyObject *__pyx_pf_3xfs_bulkstat(PyObject *__pyx_self, PyObject *__pyx_v_path); /*proto*/
static char __pyx_doc_3xfs_bulkstat[] = "\n    bulkstat(fs_path)\n\n    Returns an iterator of stat-like objects for inodes in the filesystem.\n\n    Stat-like objects have the same properties as stat results: st_size,\n    st_ino, st_mode, st_dev, st_nlink, st_uid, st_gid, st_atime, st_ctime,\n    st_mtime\n\n    They also contain:\n\n    st_fatime, st_fctime, st_fmtime properties: same as st_atime, st_ctime and\n        st_mtime, except a float including subseconds\n\n    st_xflags property: xfs extended attributes\n\n    has_xattrs() method: returns true if the file contains extended attributes.\n\n    isreg(), isdir(), isfifo(), islink(): convenience methods for identifying\n        file type by mode.\n\n    open() method: contextmanager that returns a read-only file descriptor\n    ";
static PyObject *__pyx_pf_3xfs_bulkstat(PyObject *__pyx_self, PyObject *__pyx_v_path) {
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_SetupRefcountContext("bulkstat");
  __pyx_self = __pyx_self;

  /* "/home/redbo/xfs/xfs.pyx":287
 *     open() method: contextmanager that returns a read-only file descriptor
 *     """
 *     return BulkstatResult(path)             # <<<<<<<<<<<<<<
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_path);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_path);
  __Pyx_GIVEREF(__pyx_v_path);
  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3xfs_BulkstatResult)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("xfs.bulkstat");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_FinishRefcountContext();
  return __pyx_r;
}

static PyObject *__pyx_tp_new_3xfs_open_bstat(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = (*t->tp_alloc)(t, 0);
  if (!o) return 0;
  return o;
}

static void __pyx_tp_dealloc_3xfs_open_bstat(PyObject *o) {
  (*Py_TYPE(o)->tp_free)(o);
}

static struct PyMethodDef __pyx_methods_3xfs_open_bstat[] = {
  {__Pyx_NAMESTR("__enter__"), (PyCFunction)__pyx_pf_3xfs_10open_bstat___enter__, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("__exit__"), (PyCFunction)__pyx_pf_3xfs_10open_bstat___exit__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_open_bstat = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_coerce*/
  #endif
  0, /*nb_int*/
  #if PY_MAJOR_VERSION >= 3
  0, /*reserved*/
  #else
  0, /*nb_long*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
  0, /*nb_index*/
  #endif
};

static PySequenceMethods __pyx_tp_as_sequence_open_bstat = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_open_bstat = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_open_bstat = {
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getreadbuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getwritebuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getsegcount*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getcharbuffer*/
  #endif
  #if PY_VERSION_HEX >= 0x02060000
  0, /*bf_getbuffer*/
  #endif
  #if PY_VERSION_HEX >= 0x02060000
  0, /*bf_releasebuffer*/
  #endif
};

PyTypeObject __pyx_type_3xfs_open_bstat = {
  PyVarObject_HEAD_INIT(0, 0)
  __Pyx_NAMESTR("xfs.open_bstat"), /*tp_name*/
  sizeof(struct __pyx_obj_3xfs_open_bstat), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_3xfs_open_bstat, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_open_bstat, /*tp_as_number*/
  &__pyx_tp_as_sequence_open_bstat, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_open_bstat, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_open_bstat, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_3xfs_open_bstat, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_3xfs_open_bstat, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};

static PyObject *__pyx_tp_new_3xfs_bstat(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = (*t->tp_alloc)(t, 0);
  if (!o) return 0;
  return o;
}

static void __pyx_tp_dealloc_3xfs_bstat(PyObject *o) {
  (*Py_TYPE(o)->tp_free)(o);
}

static struct PyMethodDef __pyx_methods_3xfs_bstat[] = {
  {__Pyx_NAMESTR("st_size"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_size, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_mode"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_mode, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_ino"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_ino, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_dev"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_dev, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_nlink"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_nlink, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_uid"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_uid, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_gid"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_gid, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_atime"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_atime, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_mtime"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_mtime, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_ctime"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_ctime, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_fatime"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_fatime, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_fmtime"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_fmtime, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_fctime"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_fctime, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("st_xflags"), (PyCFunction)__pyx_pf_3xfs_5bstat_st_xflags, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("has_xattrs"), (PyCFunction)__pyx_pf_3xfs_5bstat_has_xattrs, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("isreg"), (PyCFunction)__pyx_pf_3xfs_5bstat_isreg, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("isdir"), (PyCFunction)__pyx_pf_3xfs_5bstat_isdir, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("isfifo"), (PyCFunction)__pyx_pf_3xfs_5bstat_isfifo, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("islink"), (PyCFunction)__pyx_pf_3xfs_5bstat_islink, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("open"), (PyCFunction)__pyx_pf_3xfs_5bstat_open, METH_NOARGS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("__repr__"), (PyCFunction)__pyx_pf_3xfs_5bstat___repr__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_bstat = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_coerce*/
  #endif
  0, /*nb_int*/
  #if PY_MAJOR_VERSION >= 3
  0, /*reserved*/
  #else
  0, /*nb_long*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
  0, /*nb_index*/
  #endif
};

static PySequenceMethods __pyx_tp_as_sequence_bstat = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_bstat = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_bstat = {
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getreadbuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getwritebuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getsegcount*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getcharbuffer*/
  #endif
  #if PY_VERSION_HEX >= 0x02060000
  0, /*bf_getbuffer*/
  #endif
  #if PY_VERSION_HEX >= 0x02060000
  0, /*bf_releasebuffer*/
  #endif
};

PyTypeObject __pyx_type_3xfs_bstat = {
  PyVarObject_HEAD_INIT(0, 0)
  __Pyx_NAMESTR("xfs.bstat"), /*tp_name*/
  sizeof(struct __pyx_obj_3xfs_bstat), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_3xfs_bstat, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  __pyx_pf_3xfs_5bstat___repr__, /*tp_repr*/
  &__pyx_tp_as_number_bstat, /*tp_as_number*/
  &__pyx_tp_as_sequence_bstat, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_bstat, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_bstat, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_3xfs_bstat, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_3xfs_bstat, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};

static PyObject *__pyx_tp_new_3xfs_BulkstatResult(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_3xfs_BulkstatResult *p;
  PyObject *o = (*t->tp_alloc)(t, 0);
  if (!o) return 0;
  p = ((struct __pyx_obj_3xfs_BulkstatResult *)o);
  p->stat = ((struct __pyx_obj_3xfs_bstat *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_3xfs_BulkstatResult(PyObject *o) {
  struct __pyx_obj_3xfs_BulkstatResult *p = (struct __pyx_obj_3xfs_BulkstatResult *)o;
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pf_3xfs_14BulkstatResult___dealloc__(o);
    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  Py_XDECREF(((PyObject *)p->stat));
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_3xfs_BulkstatResult(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_3xfs_BulkstatResult *p = (struct __pyx_obj_3xfs_BulkstatResult *)o;
  if (p->stat) {
    e = (*v)(((PyObject*)p->stat), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_3xfs_BulkstatResult(PyObject *o) {
  struct __pyx_obj_3xfs_BulkstatResult *p = (struct __pyx_obj_3xfs_BulkstatResult *)o;
  PyObject* tmp;
  tmp = ((PyObject*)p->stat);
  p->stat = ((struct __pyx_obj_3xfs_bstat *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static struct PyMethodDef __pyx_methods_3xfs_BulkstatResult[] = {
  {__Pyx_NAMESTR("__iter__"), (PyCFunction)__pyx_pf_3xfs_14BulkstatResult___iter__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pf_3xfs_14BulkstatResult___next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_BulkstatResult = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_coerce*/
  #endif
  0, /*nb_int*/
  #if PY_MAJOR_VERSION >= 3
  0, /*reserved*/
  #else
  0, /*nb_long*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX)
  0, /*nb_index*/
  #endif
};

static PySequenceMethods __pyx_tp_as_sequence_BulkstatResult = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_BulkstatResult = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_BulkstatResult = {
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getreadbuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getwritebuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getsegcount*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getcharbuffer*/
  #endif
  #if PY_VERSION_HEX >= 0x02060000
  0, /*bf_getbuffer*/
  #endif
  #if PY_VERSION_HEX >= 0x02060000
  0, /*bf_releasebuffer*/
  #endif
};

PyTypeObject __pyx_type_3xfs_BulkstatResult = {
  PyVarObject_HEAD_INIT(0, 0)
  __Pyx_NAMESTR("xfs.BulkstatResult"), /*tp_name*/
  sizeof(struct __pyx_obj_3xfs_BulkstatResult), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_3xfs_BulkstatResult, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_BulkstatResult, /*tp_as_number*/
  &__pyx_tp_as_sequence_BulkstatResult, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_BulkstatResult, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_BulkstatResult, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_3xfs_BulkstatResult, /*tp_traverse*/
  __pyx_tp_clear_3xfs_BulkstatResult, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pf_3xfs_14BulkstatResult___iter__, /*tp_iter*/
  __pyx_pf_3xfs_14BulkstatResult___next__, /*tp_iternext*/
  __pyx_methods_3xfs_BulkstatResult, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pf_3xfs_14BulkstatResult___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_3xfs_BulkstatResult, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};

static struct PyMethodDef __pyx_methods[] = {
  {__Pyx_NAMESTR("bulkstat"), (PyCFunction)__pyx_pf_3xfs_bulkstat, METH_O, __Pyx_DOCSTR(__pyx_doc_3xfs_bulkstat)},
  {0, 0, 0, 0}
};

static void __pyx_init_filenames(void); /*proto*/

#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef __pyx_moduledef = {
    PyModuleDef_HEAD_INIT,
    __Pyx_NAMESTR("xfs"),
    __Pyx_DOCSTR(__pyx_mdoc), /* m_doc */
    -1, /* m_size */
    __pyx_methods /* m_methods */,
    NULL, /* m_reload */
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_kp___main__, __pyx_k___main__, sizeof(__pyx_k___main__), 1, 1, 1},
  {&__pyx_kp___enter__, __pyx_k___enter__, sizeof(__pyx_k___enter__), 1, 1, 1},
  {&__pyx_kp___exit__, __pyx_k___exit__, sizeof(__pyx_k___exit__), 1, 1, 1},
  {&__pyx_kp_st_size, __pyx_k_st_size, sizeof(__pyx_k_st_size), 1, 1, 1},
  {&__pyx_kp_st_mode, __pyx_k_st_mode, sizeof(__pyx_k_st_mode), 1, 1, 1},
  {&__pyx_kp_st_ino, __pyx_k_st_ino, sizeof(__pyx_k_st_ino), 1, 1, 1},
  {&__pyx_kp_st_dev, __pyx_k_st_dev, sizeof(__pyx_k_st_dev), 1, 1, 1},
  {&__pyx_kp_st_nlink, __pyx_k_st_nlink, sizeof(__pyx_k_st_nlink), 1, 1, 1},
  {&__pyx_kp_st_uid, __pyx_k_st_uid, sizeof(__pyx_k_st_uid), 1, 1, 1},
  {&__pyx_kp_st_gid, __pyx_k_st_gid, sizeof(__pyx_k_st_gid), 1, 1, 1},
  {&__pyx_kp_st_atime, __pyx_k_st_atime, sizeof(__pyx_k_st_atime), 1, 1, 1},
  {&__pyx_kp_st_mtime, __pyx_k_st_mtime, sizeof(__pyx_k_st_mtime), 1, 1, 1},
  {&__pyx_kp_st_ctime, __pyx_k_st_ctime, sizeof(__pyx_k_st_ctime), 1, 1, 1},
  {&__pyx_kp_st_fatime, __pyx_k_st_fatime, sizeof(__pyx_k_st_fatime), 1, 1, 1},
  {&__pyx_kp_st_fmtime, __pyx_k_st_fmtime, sizeof(__pyx_k_st_fmtime), 1, 1, 1},
  {&__pyx_kp_st_fctime, __pyx_k_st_fctime, sizeof(__pyx_k_st_fctime), 1, 1, 1},
  {&__pyx_kp_st_xflags, __pyx_k_st_xflags, sizeof(__pyx_k_st_xflags), 1, 1, 1},
  {&__pyx_kp_has_xattrs, __pyx_k_has_xattrs, sizeof(__pyx_k_has_xattrs), 1, 1, 1},
  {&__pyx_kp_isreg, __pyx_k_isreg, sizeof(__pyx_k_isreg), 1, 1, 1},
  {&__pyx_kp_isdir, __pyx_k_isdir, sizeof(__pyx_k_isdir), 1, 1, 1},
  {&__pyx_kp_isfifo, __pyx_k_isfifo, sizeof(__pyx_k_isfifo), 1, 1, 1},
  {&__pyx_kp_islink, __pyx_k_islink, sizeof(__pyx_k_islink), 1, 1, 1},
  {&__pyx_kp_open, __pyx_k_open, sizeof(__pyx_k_open), 1, 1, 1},
  {&__pyx_kp___repr__, __pyx_k___repr__, sizeof(__pyx_k___repr__), 1, 1, 1},
  {&__pyx_kp___init__, __pyx_k___init__, sizeof(__pyx_k___init__), 1, 1, 1},
  {&__pyx_kp___dealloc__, __pyx_k___dealloc__, sizeof(__pyx_k___dealloc__), 1, 1, 1},
  {&__pyx_kp___iter__, __pyx_k___iter__, sizeof(__pyx_k___iter__), 1, 1, 1},
  {&__pyx_kp___next__, __pyx_k___next__, sizeof(__pyx_k___next__), 1, 1, 1},
  {&__pyx_kp_typ, __pyx_k_typ, sizeof(__pyx_k_typ), 1, 1, 1},
  {&__pyx_kp_value, __pyx_k_value, sizeof(__pyx_k_value), 1, 1, 1},
  {&__pyx_kp_traceback, __pyx_k_traceback, sizeof(__pyx_k_traceback), 1, 1, 1},
  {&__pyx_kp_path, __pyx_k_path, sizeof(__pyx_k_path), 1, 1, 1},
  {&__pyx_kp_os, __pyx_k_os, sizeof(__pyx_k_os), 1, 1, 1},
  {&__pyx_kp___version__, __pyx_k___version__, sizeof(__pyx_k___version__), 1, 1, 1},
  {&__pyx_kp_AT_A_TIME, __pyx_k_AT_A_TIME, sizeof(__pyx_k_AT_A_TIME), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_HASATTR, __pyx_k_XFS_XFLAG_HASATTR, sizeof(__pyx_k_XFS_XFLAG_HASATTR), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_REALTIME, __pyx_k_XFS_XFLAG_REALTIME, sizeof(__pyx_k_XFS_XFLAG_REALTIME), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_PREALLOC, __pyx_k_XFS_XFLAG_PREALLOC, sizeof(__pyx_k_XFS_XFLAG_PREALLOC), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_IMMUTABLE, __pyx_k_XFS_XFLAG_IMMUTABLE, sizeof(__pyx_k_XFS_XFLAG_IMMUTABLE), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_APPEND, __pyx_k_XFS_XFLAG_APPEND, sizeof(__pyx_k_XFS_XFLAG_APPEND), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_SYNC, __pyx_k_XFS_XFLAG_SYNC, sizeof(__pyx_k_XFS_XFLAG_SYNC), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_NOATIME, __pyx_k_XFS_XFLAG_NOATIME, sizeof(__pyx_k_XFS_XFLAG_NOATIME), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_NODUMP, __pyx_k_XFS_XFLAG_NODUMP, sizeof(__pyx_k_XFS_XFLAG_NODUMP), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_RTINHERIT, __pyx_k_XFS_XFLAG_RTINHERIT, sizeof(__pyx_k_XFS_XFLAG_RTINHERIT), 1, 1, 1},
  {&__pyx_kp_2, __pyx_k_2, sizeof(__pyx_k_2), 1, 1, 1},
  {&__pyx_kp_3, __pyx_k_3, sizeof(__pyx_k_3), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_EXTSIZE, __pyx_k_XFS_XFLAG_EXTSIZE, sizeof(__pyx_k_XFS_XFLAG_EXTSIZE), 1, 1, 1},
  {&__pyx_kp_4, __pyx_k_4, sizeof(__pyx_k_4), 1, 1, 1},
  {&__pyx_kp_XFS_XFLAG_NODEFRAG, __pyx_k_XFS_XFLAG_NODEFRAG, sizeof(__pyx_k_XFS_XFLAG_NODEFRAG), 1, 1, 1},
  {&__pyx_kp_5, __pyx_k_5, sizeof(__pyx_k_5), 1, 1, 1},
  {&__pyx_kp_property, __pyx_k_property, sizeof(__pyx_k_property), 1, 1, 1},
  {&__pyx_kp_O_RDONLY, __pyx_k_O_RDONLY, sizeof(__pyx_k_O_RDONLY), 1, 1, 1},
  {&__pyx_kp_close, __pyx_k_close, sizeof(__pyx_k_close), 1, 1, 1},
  {&__pyx_kp_O_DIRECTORY, __pyx_k_O_DIRECTORY, sizeof(__pyx_k_O_DIRECTORY), 1, 1, 1},
  {&__pyx_kp_Exception, __pyx_k_Exception, sizeof(__pyx_k_Exception), 1, 1, 1},
  {&__pyx_kp_StopIteration, __pyx_k_StopIteration, sizeof(__pyx_k_StopIteration), 1, 1, 1},
  {&__pyx_kp_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 0},
  {&__pyx_kp_6, __pyx_k_6, sizeof(__pyx_k_6), 0, 0, 0},
  {&__pyx_kp_7, __pyx_k_7, sizeof(__pyx_k_7), 0, 0, 0},
  {&__pyx_kp_8, __pyx_k_8, sizeof(__pyx_k_8), 0, 0, 0},
  {0, 0, 0, 0, 0, 0}
};
static int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_property = __Pyx_GetName(__pyx_b, __pyx_kp_property); if (!__pyx_builtin_property) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_Exception = __Pyx_GetName(__pyx_b, __pyx_kp_Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_StopIteration = __Pyx_GetName(__pyx_b, __pyx_kp_StopIteration); if (!__pyx_builtin_StopIteration) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  return 0;
  __pyx_L1_error:;
  return -1;
}

static int __Pyx_InitGlobals(void) {
  __pyx_int_25000 = PyInt_FromLong(25000); if (unlikely(!__pyx_int_25000)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  return 0;
  __pyx_L1_error:;
  return -1;
}

#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC initxfs(void); /*proto*/
PyMODINIT_FUNC initxfs(void)
#else
PyMODINIT_FUNC PyInit_xfs(void); /*proto*/
PyMODINIT_FUNC PyInit_xfs(void)
#endif
{
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  #ifdef CYTHON_REFNANNY
  void* __pyx_refchk = NULL;
  __Pyx_Refnanny = __Pyx_ImportRefcountAPI("refnanny");
  if (!__Pyx_Refnanny) {
      PyErr_Clear();
      __Pyx_Refnanny = __Pyx_ImportRefcountAPI("Cython.Runtime.refnanny");
      if (!__Pyx_Refnanny)
          Py_FatalError("failed to import refnanny module");
  }
  __pyx_refchk = __Pyx_Refnanny->NewContext("PyMODINIT_FUNC PyInit_xfs(void)", __LINE__, __FILE__);
  #endif
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  /*--- Library function declarations ---*/
  __pyx_init_filenames();
  /*--- Threads initialization code ---*/
  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  #ifdef WITH_THREAD /* Python build with threading support? */
  PyEval_InitThreads();
  #endif
  #endif
  /*--- Initialize various global constants etc. ---*/
  if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  /*--- Module creation code ---*/
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("xfs"), __pyx_methods, __pyx_mdoc, 0, PYTHON_API_VERSION);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  #if PY_MAJOR_VERSION < 3
  Py_INCREF(__pyx_m);
  #endif
  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME));
  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  if (__pyx_module_is_main_xfs) {
    if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_kp___main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  }
  /*--- Builtin init code ---*/
  if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_skip_dispatch = 0;
  /*--- Global init code ---*/
  /*--- Function export code ---*/
  /*--- Type init code ---*/
  if (PyType_Ready(&__pyx_type_3xfs_open_bstat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__Pyx_SetAttrString(__pyx_m, "open_bstat", (PyObject *)&__pyx_type_3xfs_open_bstat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_ptype_3xfs_open_bstat = &__pyx_type_3xfs_open_bstat;
  if (PyType_Ready(&__pyx_type_3xfs_bstat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__Pyx_SetAttrString(__pyx_m, "bstat", (PyObject *)&__pyx_type_3xfs_bstat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_ptype_3xfs_bstat = &__pyx_type_3xfs_bstat;
  if (PyType_Ready(&__pyx_type_3xfs_BulkstatResult) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__Pyx_SetAttrString(__pyx_m, "BulkstatResult", (PyObject *)&__pyx_type_3xfs_BulkstatResult) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_ptype_3xfs_BulkstatResult = &__pyx_type_3xfs_BulkstatResult;
  /*--- Type import code ---*/
  /*--- Function import code ---*/
  /*--- Execution code ---*/

  /* "/home/redbo/xfs/xfs.pyx":4
 * """
 * 
 * import os             # <<<<<<<<<<<<<<
 * 
 * from stdlib cimport malloc, free
 */
  __pyx_1 = __Pyx_Import(__pyx_kp_os, 0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_os, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_1); __pyx_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":9
 * 
 * 
 * __version__ = '0.1'             # <<<<<<<<<<<<<<
 * AT_A_TIME = 25000
 * 
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_kp___version__, __pyx_kp_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/redbo/xfs/xfs.pyx":10
 * 
 * __version__ = '0.1'
 * AT_A_TIME = 25000             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_AT_A_TIME, __pyx_int_25000) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/redbo/xfs/xfs.pyx":74
 * 
 * 
 * XFS_XFLAG_HASATTR = _XFS_XFLAG_HASATTR             # <<<<<<<<<<<<<<
 * XFS_XFLAG_REALTIME = _XFS_XFLAG_REALTIME
 * XFS_XFLAG_PREALLOC = _XFS_XFLAG_PREALLOC
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_HASATTR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_HASATTR, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":75
 * 
 * XFS_XFLAG_HASATTR = _XFS_XFLAG_HASATTR
 * XFS_XFLAG_REALTIME = _XFS_XFLAG_REALTIME             # <<<<<<<<<<<<<<
 * XFS_XFLAG_PREALLOC = _XFS_XFLAG_PREALLOC
 * XFS_XFLAG_IMMUTABLE = _XFS_XFLAG_IMMUTABLE
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_REALTIME); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_REALTIME, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":76
 * XFS_XFLAG_HASATTR = _XFS_XFLAG_HASATTR
 * XFS_XFLAG_REALTIME = _XFS_XFLAG_REALTIME
 * XFS_XFLAG_PREALLOC = _XFS_XFLAG_PREALLOC             # <<<<<<<<<<<<<<
 * XFS_XFLAG_IMMUTABLE = _XFS_XFLAG_IMMUTABLE
 * XFS_XFLAG_APPEND = _XFS_XFLAG_APPEND
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_PREALLOC); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_PREALLOC, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":77
 * XFS_XFLAG_REALTIME = _XFS_XFLAG_REALTIME
 * XFS_XFLAG_PREALLOC = _XFS_XFLAG_PREALLOC
 * XFS_XFLAG_IMMUTABLE = _XFS_XFLAG_IMMUTABLE             # <<<<<<<<<<<<<<
 * XFS_XFLAG_APPEND = _XFS_XFLAG_APPEND
 * XFS_XFLAG_SYNC = _XFS_XFLAG_SYNC
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_IMMUTABLE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_IMMUTABLE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":78
 * XFS_XFLAG_PREALLOC = _XFS_XFLAG_PREALLOC
 * XFS_XFLAG_IMMUTABLE = _XFS_XFLAG_IMMUTABLE
 * XFS_XFLAG_APPEND = _XFS_XFLAG_APPEND             # <<<<<<<<<<<<<<
 * XFS_XFLAG_SYNC = _XFS_XFLAG_SYNC
 * XFS_XFLAG_NOATIME = _XFS_XFLAG_NOATIME
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_APPEND); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_APPEND, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":79
 * XFS_XFLAG_IMMUTABLE = _XFS_XFLAG_IMMUTABLE
 * XFS_XFLAG_APPEND = _XFS_XFLAG_APPEND
 * XFS_XFLAG_SYNC = _XFS_XFLAG_SYNC             # <<<<<<<<<<<<<<
 * XFS_XFLAG_NOATIME = _XFS_XFLAG_NOATIME
 * XFS_XFLAG_NODUMP = _XFS_XFLAG_NODUMP
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_SYNC); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_SYNC, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":80
 * XFS_XFLAG_APPEND = _XFS_XFLAG_APPEND
 * XFS_XFLAG_SYNC = _XFS_XFLAG_SYNC
 * XFS_XFLAG_NOATIME = _XFS_XFLAG_NOATIME             # <<<<<<<<<<<<<<
 * XFS_XFLAG_NODUMP = _XFS_XFLAG_NODUMP
 * XFS_XFLAG_RTINHERIT = _XFS_XFLAG_RTINHERIT
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_NOATIME); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_NOATIME, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":81
 * XFS_XFLAG_SYNC = _XFS_XFLAG_SYNC
 * XFS_XFLAG_NOATIME = _XFS_XFLAG_NOATIME
 * XFS_XFLAG_NODUMP = _XFS_XFLAG_NODUMP             # <<<<<<<<<<<<<<
 * XFS_XFLAG_RTINHERIT = _XFS_XFLAG_RTINHERIT
 * XFS_XFLAG_PROJINHERIT = _XFS_XFLAG_PROJINHERIT
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_NODUMP); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_NODUMP, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":82
 * XFS_XFLAG_NOATIME = _XFS_XFLAG_NOATIME
 * XFS_XFLAG_NODUMP = _XFS_XFLAG_NODUMP
 * XFS_XFLAG_RTINHERIT = _XFS_XFLAG_RTINHERIT             # <<<<<<<<<<<<<<
 * XFS_XFLAG_PROJINHERIT = _XFS_XFLAG_PROJINHERIT
 * XFS_XFLAG_NOSYMLINKS = _XFS_XFLAG_NOSYMLINKS
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_RTINHERIT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_RTINHERIT, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":83
 * XFS_XFLAG_NODUMP = _XFS_XFLAG_NODUMP
 * XFS_XFLAG_RTINHERIT = _XFS_XFLAG_RTINHERIT
 * XFS_XFLAG_PROJINHERIT = _XFS_XFLAG_PROJINHERIT             # <<<<<<<<<<<<<<
 * XFS_XFLAG_NOSYMLINKS = _XFS_XFLAG_NOSYMLINKS
 * XFS_XFLAG_EXTSIZE = _XFS_XFLAG_EXTSIZE
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_PROJINHERIT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_2, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":84
 * XFS_XFLAG_RTINHERIT = _XFS_XFLAG_RTINHERIT
 * XFS_XFLAG_PROJINHERIT = _XFS_XFLAG_PROJINHERIT
 * XFS_XFLAG_NOSYMLINKS = _XFS_XFLAG_NOSYMLINKS             # <<<<<<<<<<<<<<
 * XFS_XFLAG_EXTSIZE = _XFS_XFLAG_EXTSIZE
 * XFS_XFLAG_EXTSZINHERIT = _XFS_XFLAG_EXTSZINHERIT
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_NOSYMLINKS); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_3, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":85
 * XFS_XFLAG_PROJINHERIT = _XFS_XFLAG_PROJINHERIT
 * XFS_XFLAG_NOSYMLINKS = _XFS_XFLAG_NOSYMLINKS
 * XFS_XFLAG_EXTSIZE = _XFS_XFLAG_EXTSIZE             # <<<<<<<<<<<<<<
 * XFS_XFLAG_EXTSZINHERIT = _XFS_XFLAG_EXTSZINHERIT
 * XFS_XFLAG_NODEFRAG = _XFS_XFLAG_NODEFRAG
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_EXTSIZE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_EXTSIZE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":86
 * XFS_XFLAG_NOSYMLINKS = _XFS_XFLAG_NOSYMLINKS
 * XFS_XFLAG_EXTSIZE = _XFS_XFLAG_EXTSIZE
 * XFS_XFLAG_EXTSZINHERIT = _XFS_XFLAG_EXTSZINHERIT             # <<<<<<<<<<<<<<
 * XFS_XFLAG_NODEFRAG = _XFS_XFLAG_NODEFRAG
 * XFS_XFLAG_FILESTREAM = _XFS_XFLAG_FILESTREAM
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_EXTSZINHERIT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_4, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":87
 * XFS_XFLAG_EXTSIZE = _XFS_XFLAG_EXTSIZE
 * XFS_XFLAG_EXTSZINHERIT = _XFS_XFLAG_EXTSZINHERIT
 * XFS_XFLAG_NODEFRAG = _XFS_XFLAG_NODEFRAG             # <<<<<<<<<<<<<<
 * XFS_XFLAG_FILESTREAM = _XFS_XFLAG_FILESTREAM
 * XFS_XFLAG_HASATTR = _XFS_XFLAG_HASATTR
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_NODEFRAG); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_NODEFRAG, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":88
 * XFS_XFLAG_EXTSZINHERIT = _XFS_XFLAG_EXTSZINHERIT
 * XFS_XFLAG_NODEFRAG = _XFS_XFLAG_NODEFRAG
 * XFS_XFLAG_FILESTREAM = _XFS_XFLAG_FILESTREAM             # <<<<<<<<<<<<<<
 * XFS_XFLAG_HASATTR = _XFS_XFLAG_HASATTR
 * 
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_FILESTREAM); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_5, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":89
 * XFS_XFLAG_NODEFRAG = _XFS_XFLAG_NODEFRAG
 * XFS_XFLAG_FILESTREAM = _XFS_XFLAG_FILESTREAM
 * XFS_XFLAG_HASATTR = _XFS_XFLAG_HASATTR             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyInt_FromLong(XFS_XFLAG_HASATTR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_kp_XFS_XFLAG_HASATTR, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/redbo/xfs/xfs.pyx":119
 * 
 *     @property
 *     def st_size(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_size
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_size); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_size, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":123
 * 
 *     @property
 *     def st_mode(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_mode
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_mode); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_mode, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":127
 * 
 *     @property
 *     def st_ino(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_ino
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_ino); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_ino, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":131
 * 
 *     @property
 *     def st_dev(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_rdev
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_dev); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_dev, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":135
 * 
 *     @property
 *     def st_nlink(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_nlink
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_nlink); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_nlink, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":139
 * 
 *     @property
 *     def st_uid(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_uid
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_uid); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_uid, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":143
 * 
 *     @property
 *     def st_gid(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_gid
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_gid); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_gid, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":147
 * 
 *     @property
 *     def st_atime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_atime.tv_sec
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_atime); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_atime, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":151
 * 
 *     @property
 *     def st_mtime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_mtime.tv_sec
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_mtime); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_mtime, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":155
 * 
 *     @property
 *     def st_ctime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_ctime.tv_sec
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_ctime); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_ctime, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":159
 * 
 *     @property
 *     def st_fatime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_atime.tv_sec + (self.stat.bs_atime.tv_nsec /
 *                                             1000000000.0)
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_fatime); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_fatime, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":164
 * 
 *     @property
 *     def st_fmtime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_mtime.tv_sec + (self.stat.bs_mtime.tv_nsec /
 *                                             1000000000.0)
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_fmtime); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_fmtime, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":169
 * 
 *     @property
 *     def st_fctime(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_ctime.tv_sec + (self.stat.bs_ctime.tv_nsec /
 *                                             1000000000.0)
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_fctime); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_fctime, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/home/redbo/xfs/xfs.pyx":174
 * 
 *     @property
 *     def st_xflags(self):             # <<<<<<<<<<<<<<
 *         return self.stat.bs_xflags
 * 
 */
  __pyx_1 = __Pyx_GetName((PyObject *)__pyx_ptype_3xfs_bstat, __pyx_kp_st_xflags); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_1);
  __Pyx_GIVEREF(__pyx_1);
  __pyx_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_3xfs_bstat->tp_dict, __pyx_kp_st_xflags, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_3xfs_bstat);

  /* "/usr/lib/pymodules/python2.6/Cython/Includes/stdlib.pxd":2
 * 
 * cdef extern from "stdlib.h" nogil:             # <<<<<<<<<<<<<<
 *     void free(void *ptr)
 *     void *malloc(size_t size)
 */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_1);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("xfs");
  Py_DECREF(__pyx_m); __pyx_m = 0;
  __pyx_L0:;
  __Pyx_FinishRefcountContext();
  #if PY_MAJOR_VERSION < 3
  return;
  #else
  return __pyx_m;
  #endif
}

static const char *__pyx_filenames[] = {
  "xfs.pyx",
};

/* Runtime support code */

static void __pyx_init_filenames(void) {
  __pyx_f = __pyx_filenames;
}

static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AS_STRING(kw_name));
        #endif
}

static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *number, *more_or_less;

    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    number = (num_expected == 1) ? "" : "s";
    PyErr_Format(PyExc_TypeError,
        #if PY_VERSION_HEX < 0x02050000
            "%s() takes %s %d positional argument%s (%d given)",
        #else
            "%s() takes %s %zd positional argument%s (%zd given)",
        #endif
        func_name, more_or_less, num_expected, number, num_found);
}

static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;

    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
        } else {
            #if PY_MAJOR_VERSION < 3
            if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) {
            #else
            if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) {
            #endif
                goto invalid_keyword_type;
            } else {
                for (name = first_kw_arg; *name; name++) {
                    #if PY_MAJOR_VERSION >= 3
                    if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
                        PyUnicode_Compare(**name, key) == 0) break;
                    #else
                    if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
                        _PyString_Eq(**name, key)) break;
                    #endif
                }
                if (*name) {
                    values[name-argnames] = value;
                } else {
                    /* unexpected keyword found */
                    for (name=argnames; name != first_kw_arg; name++) {
                        if (**name == key) goto arg_passed_twice;
                        #if PY_MAJOR_VERSION >= 3
                        if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
                            PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice;
                        #else
                        if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
                            _PyString_Eq(**name, key)) goto arg_passed_twice;
                        #endif
                    }
                    if (kwds2) {
                        if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
                    } else {
                        goto invalid_keyword;
                    }
                }
            }
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, **name);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%s() got an unexpected keyword argument '%s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    if (!type) {
        PyErr_Format(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (obj == Py_None || PyObject_TypeCheck(obj, type))
        return 1;
    PyErr_Format(PyExc_TypeError, "Cannot convert %s to %s",
        Py_TYPE(obj)->tp_name, type->tp_name);
    return 0;
}

static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) {
    PyObject *__import__ = 0;
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    __import__ = __Pyx_GetAttrString(__pyx_b, "__import__");
    if (!__import__)
        goto bad;
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    module = PyObject_CallFunctionObjArgs(__import__,
        name, global_dict, empty_dict, list, NULL);
bad:
    Py_XDECREF(empty_list);
    Py_XDECREF(__import__);
    Py_XDECREF(empty_dict);
    return module;
}

static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
    PyObject *result;
    result = PyObject_GetAttr(dict, name);
    if (!result)
        PyErr_SetObject(PyExc_NameError, name);
    return result;
}

static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
    Py_XINCREF(type);
    Py_XINCREF(value);
    Py_XINCREF(tb);
    /* First, check the traceback argument, replacing None with NULL. */
    if (tb == Py_None) {
        Py_DECREF(tb);
        tb = 0;
    }
    else if (tb != NULL && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto raise_error;
    }
    /* Next, replace a missing value with None */
    if (value == NULL) {
        value = Py_None;
        Py_INCREF(value);
    }
    #if PY_VERSION_HEX < 0x02050000
    if (!PyClass_Check(type))
    #else
    if (!PyType_Check(type))
    #endif
    {
        /* Raising an instance.  The value should be a dummy. */
        if (value != Py_None) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        /* Normalize to raise <class>, <instance> */
        Py_DECREF(value);
        value = type;
        #if PY_VERSION_HEX < 0x02050000
            if (PyInstance_Check(type)) {
                type = (PyObject*) ((PyInstanceObject*)type)->in_class;
                Py_INCREF(type);
            }
            else {
                type = 0;
                PyErr_SetString(PyExc_TypeError,
                    "raise: exception must be an old-style class or instance");
                goto raise_error;
            }
        #else
            type = (PyObject*) Py_TYPE(type);
            Py_INCREF(type);
            if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
                PyErr_SetString(PyExc_TypeError,
                    "raise: exception class must be a subclass of BaseException");
                goto raise_error;
            }
        #endif
    }
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}

static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();

#if PY_MAJOR_VERSION >= 3
    /* Note: this is a temporary work-around to prevent crashes in Python 3.0 */
    if ((tstate->exc_type != NULL) & (tstate->exc_type != Py_None)) {
        tmp_type = tstate->exc_type;
        tmp_value = tstate->exc_value;
        tmp_tb = tstate->exc_traceback;
        PyErr_NormalizeException(&type, &value, &tb);
        PyErr_NormalizeException(&tmp_type, &tmp_value, &tmp_tb);
        tstate->exc_type = 0;
        tstate->exc_value = 0;
        tstate->exc_traceback = 0;
        PyException_SetContext(value, tmp_value);
        Py_DECREF(tmp_type);
        Py_XDECREF(tmp_tb);
    }
#endif

    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}

static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
    PyThreadState *tstate = PyThreadState_GET();
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;

    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
}


static INLINE int __Pyx_StrEq(const char *s1, const char *s2) {
     while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
     return *s1 == *s2;
}

static INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) {
    if (sizeof(unsigned char) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(unsigned char)val)) {
            if (unlikely(val == -1 && PyErr_Occurred()))
                return (unsigned char)-1;
            if (unlikely(val < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to unsigned char");
                return (unsigned char)-1;
            }
            PyErr_SetString(PyExc_OverflowError,
                           "value too large to convert to unsigned char");
            return (unsigned char)-1;
        }
        return (unsigned char)val;
    }
    return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x);
}

static INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) {
    if (sizeof(unsigned short) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(unsigned short)val)) {
            if (unlikely(val == -1 && PyErr_Occurred()))
                return (unsigned short)-1;
            if (unlikely(val < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to unsigned short");
                return (unsigned short)-1;
            }
            PyErr_SetString(PyExc_OverflowError,
                           "value too large to convert to unsigned short");
            return (unsigned short)-1;
        }
        return (unsigned short)val;
    }
    return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x);
}

static INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) {
    if (sizeof(unsigned int) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(unsigned int)val)) {
            if (unlikely(val == -1 && PyErr_Occurred()))
                return (unsigned int)-1;
            if (unlikely(val < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to unsigned int");
                return (unsigned int)-1;
            }
            PyErr_SetString(PyExc_OverflowError,
                           "value too large to convert to unsigned int");
            return (unsigned int)-1;
        }
        return (unsigned int)val;
    }
    return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x);
}

static INLINE char __Pyx_PyInt_AsChar(PyObject* x) {
    if (sizeof(char) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(char)val)) {
            if (unlikely(val == -1 && PyErr_Occurred()))
                return (char)-1;
            PyErr_SetString(PyExc_OverflowError,
                           "value too large to convert to char");
            return (char)-1;
        }
        return (char)val;
    }
    return (char)__Pyx_PyInt_AsLong(x);
}

static INLINE short __Pyx_PyInt_AsShort(PyObject* x) {
    if (sizeof(short) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(short)val)) {
            if (unlikely(val == -1 && PyErr_Occurred()))
                return (short)-1;
            PyErr_SetString(PyExc_OverflowError,
                           "value too large to convert to short");
            return (short)-1;
        }
        return (short)val;
    }
    return (short)__Pyx_PyInt_AsLong(x);
}

static INLINE int __Pyx_PyInt_AsInt(PyObject* x) {
    if (sizeof(int) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(int)val)) {
            if (unlikely(val == -1 && PyErr_Occurred()))
                return (int)-1;
            PyErr_SetString(PyExc_OverflowError,
                           "value too large to convert to int");
            return (int)-1;
        }
        return (int)val;
    }
    return (int)__Pyx_PyInt_AsLong(x);
}

static INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) {
    if (sizeof(signed char) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(signed char)val)) {
            if (unlikely(val == -1 && PyErr_Occurred()))
                return (signed char)-1;
            PyErr_SetString(PyExc_OverflowError,
                           "value too large to convert to signed char");
            return (signed char)-1;
        }
        return (signed char)val;
    }
    return (signed char)__Pyx_PyInt_AsSignedLong(x);
}

static INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) {
    if (sizeof(signed short) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(signed short)val)) {
            if (unlikely(val == -1 && PyErr_Occurred()))
                return (signed short)-1;
            PyErr_SetString(PyExc_OverflowError,
                           "value too large to convert to signed short");
            return (signed short)-1;
        }
        return (signed short)val;
    }
    return (signed short)__Pyx_PyInt_AsSignedLong(x);
}

static INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) {
    if (sizeof(signed int) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(signed int)val)) {
            if (unlikely(val == -1 && PyErr_Occurred()))
                return (signed int)-1;
            PyErr_SetString(PyExc_OverflowError,
                           "value too large to convert to signed int");
            return (signed int)-1;
        }
        return (signed int)val;
    }
    return (signed int)__Pyx_PyInt_AsSignedLong(x);
}

static INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) {
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_CheckExact(x) || PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        if (unlikely(val < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to unsigned long");
            return (unsigned long)-1;
        }
        return (unsigned long)val;
    } else
#endif
    if (likely(PyLong_CheckExact(x) || PyLong_Check(x))) {
        if (unlikely(Py_SIZE(x) < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to unsigned long");
            return (unsigned long)-1;
        }
        return PyLong_AsUnsignedLong(x);
    } else {
        unsigned long val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (unsigned long)-1;
        val = __Pyx_PyInt_AsUnsignedLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_CheckExact(x) || PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        if (unlikely(val < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to unsigned PY_LONG_LONG");
            return (unsigned PY_LONG_LONG)-1;
        }
        return (unsigned PY_LONG_LONG)val;
    } else
#endif
    if (likely(PyLong_CheckExact(x) || PyLong_Check(x))) {
        if (unlikely(Py_SIZE(x) < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to unsigned PY_LONG_LONG");
            return (unsigned PY_LONG_LONG)-1;
        }
        return PyLong_AsUnsignedLongLong(x);
    } else {
        unsigned PY_LONG_LONG val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (unsigned PY_LONG_LONG)-1;
        val = __Pyx_PyInt_AsUnsignedLongLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_CheckExact(x) || PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        return (long)val;
    } else
#endif
    if (likely(PyLong_CheckExact(x) || PyLong_Check(x))) {
        return PyLong_AsLong(x);
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (long)-1;
        val = __Pyx_PyInt_AsLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_CheckExact(x) || PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        return (PY_LONG_LONG)val;
    } else
#endif
    if (likely(PyLong_CheckExact(x) || PyLong_Check(x))) {
        return PyLong_AsLongLong(x);
    } else {
        PY_LONG_LONG val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (PY_LONG_LONG)-1;
        val = __Pyx_PyInt_AsLongLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_CheckExact(x) || PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        return (signed long)val;
    } else
#endif
    if (likely(PyLong_CheckExact(x) || PyLong_Check(x))) {
        return PyLong_AsLong(x);
    } else {
        signed long val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (signed long)-1;
        val = __Pyx_PyInt_AsSignedLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) {
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_CheckExact(x) || PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        return (signed PY_LONG_LONG)val;
    } else
#endif
    if (likely(PyLong_CheckExact(x) || PyLong_Check(x))) {
        return PyLong_AsLongLong(x);
    } else {
        signed PY_LONG_LONG val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (signed PY_LONG_LONG)-1;
        val = __Pyx_PyInt_AsSignedLongLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

#include "compile.h"
#include "frameobject.h"
#include "traceback.h"

static void __Pyx_AddTraceback(const char *funcname) {
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    PyObject *py_globals = 0;
    PyObject *empty_string = 0;
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;

    #if PY_MAJOR_VERSION < 3
    py_srcfile = PyString_FromString(__pyx_filename);
    #else
    py_srcfile = PyUnicode_FromString(__pyx_filename);
    #endif
    if (!py_srcfile) goto bad;
    if (__pyx_clineno) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        #else
        py_funcname = PyUnicode_FromString(funcname);
        #endif
    }
    if (!py_funcname) goto bad;
    py_globals = PyModule_GetDict(__pyx_m);
    if (!py_globals) goto bad;
    #if PY_MAJOR_VERSION < 3
    empty_string = PyString_FromStringAndSize("", 0);
    #else
    empty_string = PyBytes_FromStringAndSize("", 0);
    #endif
    if (!empty_string) goto bad;
    py_code = PyCode_New(
        0,            /*int argcount,*/
        #if PY_MAJOR_VERSION >= 3
        0,            /*int kwonlyargcount,*/
        #endif
        0,            /*int nlocals,*/
        0,            /*int stacksize,*/
        0,            /*int flags,*/
        empty_string, /*PyObject *code,*/
        __pyx_empty_tuple,  /*PyObject *consts,*/
        __pyx_empty_tuple,  /*PyObject *names,*/
        __pyx_empty_tuple,  /*PyObject *varnames,*/
        __pyx_empty_tuple,  /*PyObject *freevars,*/
        __pyx_empty_tuple,  /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        __pyx_lineno,   /*int firstlineno,*/
        empty_string  /*PyObject *lnotab*/
    );
    if (!py_code) goto bad;
    py_frame = PyFrame_New(
        PyThreadState_GET(), /*PyThreadState *tstate,*/
        py_code,             /*PyCodeObject *code,*/
        py_globals,          /*PyObject *globals,*/
        0                    /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    py_frame->f_lineno = __pyx_lineno;
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
    Py_XDECREF(empty_string);
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        if (t->is_unicode && (!t->is_identifier)) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        #else  /* Python 3+ has unicode identifiers */
        if (t->is_identifier || (t->is_unicode && t->intern)) {
            *t->p = PyUnicode_InternFromString(t->s);
        } else if (t->is_unicode) {
            *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        ++t;
    }
    return 0;
}

/* Type Conversion Functions */

static INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   if (x == Py_True) return 1;
   else if ((x == Py_False) | (x == Py_None)) return 0;
   else return PyObject_IsTrue(x);
}

static INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
  PyNumberMethods *m;
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_VERSION_HEX < 0x03000000
  if (PyInt_Check(x) || PyLong_Check(x))
#else
  if (PyLong_Check(x))
#endif
    return Py_INCREF(x), x;
  m = Py_TYPE(x)->tp_as_number;
#if PY_VERSION_HEX < 0x03000000
  if (m && m->nb_int) {
    name = "int";
    res = PyNumber_Int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = PyNumber_Long(x);
  }
#else
  if (m && m->nb_int) {
    name = "int";
    res = PyNumber_Long(x);
  }
#endif
  if (res) {
#if PY_VERSION_HEX < 0x03000000
    if (!PyInt_Check(res) && !PyLong_Check(res)) {
#else
    if (!PyLong_Check(res)) {
#endif
      PyErr_Format(PyExc_TypeError,
                   "__%s__ returned non-%s (type %.200s)",
                   name, name, Py_TYPE(res)->tp_name);
      Py_DECREF(res);
      return NULL;
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}

static INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject* x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}

static INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
#if PY_VERSION_HEX < 0x02050000
   if (ival <= LONG_MAX)
       return PyInt_FromLong((long)ival);
   else {
       unsigned char *bytes = (unsigned char *) &ival;
       int one = 1; int little = (int)*(unsigned char*)&one;
       return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0);
   }
#else
   return PyInt_FromSize_t(ival);
#endif
}

static INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
   unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
   if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
       return (size_t)-1;
   } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
       PyErr_SetString(PyExc_OverflowError,
                       "value too large to convert to size_t");
       return (size_t)-1;
   }
   return (size_t)val;
}


