{-# LINE 1 "src/Bindings/HDF5/Raw/H5E.hsc" #-}



module Bindings.HDF5.Raw.H5E where

import Data.Int
import Data.Word
import Foreign.C.String
import Foreign.C.Types
import Foreign.Marshal.Alloc
import Control.Monad
import Foreign.Ptr
import Foreign.Storable

import Foreign.LibFFI

import Bindings.HDF5.Raw.H5
import Bindings.HDF5.Raw.H5I
import Foreign.Ptr.Conventions

-- |Value for the default error stack
h5e_DEFAULT :: HId_t
h5e_DEFAULT :: HId_t
h5e_DEFAULT = Int64 -> HId_t
HId_t (Int64
0)

{-# LINE 23 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Different kinds of error information
newtype H5E_type_t = H5E_type_t Word32 deriving (Storable, Show)

{-# LINE 26 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
h5e_MAJOR :: H5E_type_t
h5e_MAJOR = H5E_type_t (0)

{-# LINE 27 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
h5e_MINOR :: H5E_type_t
h5e_MINOR = H5E_type_t (1)

{-# LINE 28 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Information about an error; element of error stack

{-# LINE 31 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- | class ID

{-# LINE 34 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- | major error ID

{-# LINE 37 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- | minor error number

{-# LINE 40 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- | line in file where error occurs

{-# LINE 43 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- | function in which error occurred

{-# LINE 46 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- | file in which error occurred

{-# LINE 49 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- | optional supplied description

{-# LINE 52 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
data H5E_error2_t = H5E_error2_t{
  h5e_error2_t'cls_id :: HId_t,
  h5e_error2_t'maj_num :: HId_t,
  h5e_error2_t'min_num :: HId_t,
  h5e_error2_t'line :: CUInt,
  h5e_error2_t'func_name :: CString,
  h5e_error2_t'file_name :: CString,
  h5e_error2_t'desc :: CString
} deriving (Eq,Show)
p'H5E_error2_t'cls_id :: Ptr H5E_error2_t -> Ptr HId_t
p'H5E_error2_t'cls_id Ptr H5E_error2_t
p = Ptr H5E_error2_t -> Int -> Ptr HId_t
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error2_t
p Int
0
p'H5E_error2_t'cls_id :: Ptr (H5E_error2_t) -> Ptr (HId_t)
p'H5E_error2_t'maj_num :: Ptr H5E_error2_t -> Ptr HId_t
p'H5E_error2_t'maj_num Ptr H5E_error2_t
p = Ptr H5E_error2_t -> Int -> Ptr HId_t
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error2_t
p Int
8
p'H5E_error2_t'maj_num :: Ptr (H5E_error2_t) -> Ptr (HId_t)
p'H5E_error2_t'min_num :: Ptr H5E_error2_t -> Ptr HId_t
p'H5E_error2_t'min_num Ptr H5E_error2_t
p = Ptr H5E_error2_t -> Int -> Ptr HId_t
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error2_t
p Int
16
p'H5E_error2_t'min_num :: Ptr (H5E_error2_t) -> Ptr (HId_t)
p'H5E_error2_t'line p = plusPtr p 24
p'H5E_error2_t'line :: Ptr (H5E_error2_t) -> Ptr (CUInt)
p'H5E_error2_t'func_name :: Ptr H5E_error2_t -> Ptr CString
p'H5E_error2_t'func_name Ptr H5E_error2_t
p = Ptr H5E_error2_t -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error2_t
p Int
32
p'H5E_error2_t'func_name :: Ptr (H5E_error2_t) -> Ptr (CString)
p'H5E_error2_t'file_name :: Ptr H5E_error2_t -> Ptr CString
p'H5E_error2_t'file_name Ptr H5E_error2_t
p = Ptr H5E_error2_t -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error2_t
p Int
40
p'H5E_error2_t'file_name :: Ptr (H5E_error2_t) -> Ptr (CString)
p'H5E_error2_t'desc p = plusPtr p 48
p'H5E_error2_t'desc :: Ptr (H5E_error2_t) -> Ptr (CString)
instance Storable H5E_error2_t where
  sizeOf _ = 56
  alignment _ = 8
  peek _p = do
    v0 <- peekByteOff _p 0
    v1 <- peekByteOff _p 8
    v2 <- peekByteOff _p 16
    v3 <- peekByteOff _p 24
    v4 <- peekByteOff _p 32
    v5 <- peekByteOff _p 40
    v6 <- peekByteOff _p 48
    return $ H5E_error2_t v0 v1 v2 v3 v4 v5 v6
  poke _p (H5E_error2_t v0 v1 v2 v3 v4 v5 v6) = do
    pokeByteOff _p 0 v0
    pokeByteOff _p 8 v1
    pokeByteOff _p 16 v2
    pokeByteOff _p 24 v3
    pokeByteOff _p 32 v4
    pokeByteOff _p 40 v5
    pokeByteOff _p 48 v6
    return ()

{-# LINE 53 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |HDF5 error class
foreign import ccall "inline_H5E_ERR_CLS" h5e_ERR_CLS
  :: HId_t

{-# LINE 56 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- * Major error codes

-- |Dataset
foreign import ccall "inline_H5E_DATASET" h5e_DATASET
  :: HId_t

{-# LINE 61 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Function entry/exit
foreign import ccall "inline_H5E_FUNC" h5e_FUNC
  :: HId_t

{-# LINE 64 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Data storage
foreign import ccall "inline_H5E_STORAGE" h5e_STORAGE
  :: HId_t

{-# LINE 67 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |File accessibility
foreign import ccall "inline_H5E_FILE" h5e_FILE
  :: HId_t

{-# LINE 70 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Shared Object Header Messages
foreign import ccall "inline_H5E_SOHM" h5e_SOHM
  :: HId_t

{-# LINE 73 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Symbol table
foreign import ccall "inline_H5E_SYM" h5e_SYM
  :: HId_t

{-# LINE 76 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Plugin for dynamically loaded library
foreign import ccall "inline_H5E_PLUGIN" h5e_PLUGIN
  :: HId_t

{-# LINE 79 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Virtual File Layer
foreign import ccall "inline_H5E_VFL" h5e_VFL
  :: HId_t

{-# LINE 82 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Internal error (too specific to document in detail)
foreign import ccall "inline_H5E_INTERNAL" h5e_INTERNAL
  :: HId_t

{-# LINE 85 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |B-Tree node
foreign import ccall "inline_H5E_BTREE" h5e_BTREE
  :: HId_t

{-# LINE 88 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |References
foreign import ccall "inline_H5E_REFERENCE" h5e_REFERENCE
  :: HId_t

{-# LINE 91 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Dataspace
foreign import ccall "inline_H5E_DATASPACE" h5e_DATASPACE
  :: HId_t

{-# LINE 94 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Resource unavailable
foreign import ccall "inline_H5E_RESOURCE" h5e_RESOURCE
  :: HId_t

{-# LINE 97 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Property lists
foreign import ccall "inline_H5E_PLIST" h5e_PLIST
  :: HId_t

{-# LINE 100 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Links
foreign import ccall "inline_H5E_LINK" h5e_LINK
  :: HId_t

{-# LINE 103 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Datatype
foreign import ccall "inline_H5E_DATATYPE" h5e_DATATYPE
  :: HId_t

{-# LINE 106 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Reference Counted Strings
foreign import ccall "inline_H5E_RS" h5e_RS
  :: HId_t

{-# LINE 109 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Heap
foreign import ccall "inline_H5E_HEAP" h5e_HEAP
  :: HId_t

{-# LINE 112 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Object header
foreign import ccall "inline_H5E_OHDR" h5e_OHDR
  :: HId_t

{-# LINE 115 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Attribute
foreign import ccall "inline_H5E_ATTR" h5e_ATTR
  :: HId_t

{-# LINE 118 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |No error
foreign import ccall "inline_H5E_NONE_MAJOR" h5e_NONE_MAJOR
  :: HId_t

{-# LINE 121 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Low-level I/O
foreign import ccall "inline_H5E_IO" h5e_IO
  :: HId_t

{-# LINE 124 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Skip Lists
foreign import ccall "inline_H5E_SLIST" h5e_SLIST
  :: HId_t

{-# LINE 127 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |External file list
foreign import ccall "inline_H5E_EFL" h5e_EFL
  :: HId_t

{-# LINE 130 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Ternary Search Trees
foreign import ccall "inline_H5E_TST" h5e_TST
  :: HId_t

{-# LINE 133 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Invalid arguments to routine
foreign import ccall "inline_H5E_ARGS" h5e_ARGS
  :: HId_t

{-# LINE 136 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Error API
foreign import ccall "inline_H5E_ERROR" h5e_ERROR
  :: HId_t

{-# LINE 139 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Data filters
foreign import ccall "inline_H5E_PLINE" h5e_PLINE
  :: HId_t

{-# LINE 142 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Free Space Manager
foreign import ccall "inline_H5E_FSPACE" h5e_FSPACE
  :: HId_t

{-# LINE 145 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Object cache
foreign import ccall "inline_H5E_CACHE" h5e_CACHE
  :: HId_t

{-# LINE 148 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- * Minor error codes

-- ** Generic low-level file I/O errors

-- |Seek failed
foreign import ccall "inline_H5E_SEEKERROR" h5e_SEEKERROR
  :: HId_t

{-# LINE 155 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Read failed
foreign import ccall "inline_H5E_READERROR" h5e_READERROR
  :: HId_t

{-# LINE 158 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Write failed
foreign import ccall "inline_H5E_WRITEERROR" h5e_WRITEERROR
  :: HId_t

{-# LINE 161 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Close failed
foreign import ccall "inline_H5E_CLOSEERROR" h5e_CLOSEERROR
  :: HId_t

{-# LINE 164 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Address overflowed
foreign import ccall "inline_H5E_OVERFLOW" h5e_OVERFLOW
  :: HId_t

{-# LINE 167 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |File control (fcntl) failed
foreign import ccall "inline_H5E_FCNTL" h5e_FCNTL
  :: HId_t

{-# LINE 170 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Resource errors

-- |No space available for allocation
foreign import ccall "inline_H5E_NOSPACE" h5e_NOSPACE
  :: HId_t

{-# LINE 175 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Can't allocate space
foreign import ccall "inline_H5E_CANTALLOC" h5e_CANTALLOC
  :: HId_t

{-# LINE 178 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Unable to copy object
foreign import ccall "inline_H5E_CANTCOPY" h5e_CANTCOPY
  :: HId_t

{-# LINE 181 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Unable to free object
foreign import ccall "inline_H5E_CANTFREE" h5e_CANTFREE
  :: HId_t

{-# LINE 184 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Object already exists
foreign import ccall "inline_H5E_ALREADYEXISTS" h5e_ALREADYEXISTS
  :: HId_t

{-# LINE 187 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Unable to lock object
foreign import ccall "inline_H5E_CANTLOCK" h5e_CANTLOCK
  :: HId_t

{-# LINE 190 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Unable to unlock object
foreign import ccall "inline_H5E_CANTUNLOCK" h5e_CANTUNLOCK
  :: HId_t

{-# LINE 193 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Unable to garbage collect
foreign import ccall "inline_H5E_CANTGC" h5e_CANTGC
  :: HId_t

{-# LINE 196 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Unable to compute size
foreign import ccall "inline_H5E_CANTGETSIZE" h5e_CANTGETSIZE
  :: HId_t

{-# LINE 199 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Object is already open
foreign import ccall "inline_H5E_OBJOPEN" h5e_OBJOPEN
  :: HId_t

{-# LINE 202 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Heap errors
foreign import ccall "inline_H5E_CANTRESTORE" h5e_CANTRESTORE
  :: HId_t

{-# LINE 205 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTCOMPUTE" h5e_CANTCOMPUTE
  :: HId_t

{-# LINE 206 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTEXTEND" h5e_CANTEXTEND
  :: HId_t

{-# LINE 207 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTATTACH" h5e_CANTATTACH
  :: HId_t

{-# LINE 208 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTUPDATE" h5e_CANTUPDATE
  :: HId_t

{-# LINE 209 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTOPERATE" h5e_CANTOPERATE
  :: HId_t

{-# LINE 210 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Function entry/exit interface errors
foreign import ccall "inline_H5E_CANTINIT" h5e_CANTINIT
  :: HId_t

{-# LINE 213 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_ALREADYINIT" h5e_ALREADYINIT
  :: HId_t

{-# LINE 214 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTRELEASE" h5e_CANTRELEASE
  :: HId_t

{-# LINE 215 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Property list errors
foreign import ccall "inline_H5E_CANTGET" h5e_CANTGET
  :: HId_t

{-# LINE 218 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTSET" h5e_CANTSET
  :: HId_t

{-# LINE 219 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_DUPCLASS" h5e_DUPCLASS
  :: HId_t

{-# LINE 220 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

foreign import ccall "inline_H5E_SETDISALLOWED" h5e_SETDISALLOWED
  :: HId_t

{-# LINE 222 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Free space errors
foreign import ccall "inline_H5E_CANTMERGE" h5e_CANTMERGE
  :: HId_t

{-# LINE 225 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTREVIVE" h5e_CANTREVIVE
  :: HId_t

{-# LINE 226 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTSHRINK" h5e_CANTSHRINK
  :: HId_t

{-# LINE 227 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Object header related errors
foreign import ccall "inline_H5E_LINKCOUNT" h5e_LINKCOUNT
  :: HId_t

{-# LINE 230 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_VERSION" h5e_VERSION
  :: HId_t

{-# LINE 231 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_ALIGNMENT" h5e_ALIGNMENT
  :: HId_t

{-# LINE 232 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_BADMESG" h5e_BADMESG
  :: HId_t

{-# LINE 233 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTDELETE" h5e_CANTDELETE
  :: HId_t

{-# LINE 234 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_BADITER" h5e_BADITER
  :: HId_t

{-# LINE 235 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTPACK" h5e_CANTPACK
  :: HId_t

{-# LINE 236 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTRESET" h5e_CANTRESET
  :: HId_t

{-# LINE 237 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTRENAME" h5e_CANTRENAME
  :: HId_t

{-# LINE 238 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** System level errors
foreign import ccall "inline_H5E_SYSERRSTR" h5e_SYSERRSTR
  :: HId_t

{-# LINE 241 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** I/O pipeline errors
foreign import ccall "inline_H5E_NOFILTER" h5e_NOFILTER
  :: HId_t

{-# LINE 244 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CALLBACK" h5e_CALLBACK
  :: HId_t

{-# LINE 245 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANAPPLY" h5e_CANAPPLY
  :: HId_t

{-# LINE 246 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_SETLOCAL" h5e_SETLOCAL
  :: HId_t

{-# LINE 247 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_NOENCODER" h5e_NOENCODER
  :: HId_t

{-# LINE 248 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTFILTER" h5e_CANTFILTER
  :: HId_t

{-# LINE 249 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Group related errors
foreign import ccall "inline_H5E_CANTOPENOBJ" h5e_CANTOPENOBJ
  :: HId_t

{-# LINE 252 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTCLOSEOBJ" h5e_CANTCLOSEOBJ
  :: HId_t

{-# LINE 253 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_COMPLEN" h5e_COMPLEN
  :: HId_t

{-# LINE 254 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_PATH" h5e_PATH
  :: HId_t

{-# LINE 255 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** No error
foreign import ccall "inline_H5E_NONE_MINOR" h5e_NONE_MINOR
  :: HId_t

{-# LINE 258 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Plugin errors
foreign import ccall "inline_H5E_OPENERROR" h5e_OPENERROR
  :: HId_t

{-# LINE 261 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** File accessibility errors
foreign import ccall "inline_H5E_FILEEXISTS" h5e_FILEEXISTS
  :: HId_t

{-# LINE 264 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_FILEOPEN" h5e_FILEOPEN
  :: HId_t

{-# LINE 265 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTCREATE" h5e_CANTCREATE
  :: HId_t

{-# LINE 266 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTOPENFILE" h5e_CANTOPENFILE
  :: HId_t

{-# LINE 267 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTCLOSEFILE" h5e_CANTCLOSEFILE
  :: HId_t

{-# LINE 268 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_NOTHDF5" h5e_NOTHDF5
  :: HId_t

{-# LINE 269 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_BADFILE" h5e_BADFILE
  :: HId_t

{-# LINE 270 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_TRUNCATED" h5e_TRUNCATED
  :: HId_t

{-# LINE 271 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_MOUNT" h5e_MOUNT
  :: HId_t

{-# LINE 272 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Object atom related errors
foreign import ccall "inline_H5E_BADGROUP" h5e_BADGROUP
  :: HId_t

{-# LINE 275 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTREGISTER" h5e_CANTREGISTER
  :: HId_t

{-# LINE 276 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTINC" h5e_CANTINC
  :: HId_t

{-# LINE 277 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTDEC" h5e_CANTDEC
  :: HId_t

{-# LINE 278 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_NOIDS" h5e_NOIDS
  :: HId_t

{-# LINE 279 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Cache related errors
foreign import ccall "inline_H5E_CANTFLUSH" h5e_CANTFLUSH
  :: HId_t

{-# LINE 282 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTSERIALIZE" h5e_CANTSERIALIZE
  :: HId_t

{-# LINE 283 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTLOAD" h5e_CANTLOAD
  :: HId_t

{-# LINE 284 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_PROTECT" h5e_PROTECT
  :: HId_t

{-# LINE 285 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_NOTCACHED" h5e_NOTCACHED
  :: HId_t

{-# LINE 286 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_SYSTEM" h5e_SYSTEM
  :: HId_t

{-# LINE 287 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTINS" h5e_CANTINS
  :: HId_t

{-# LINE 288 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTPROTECT" h5e_CANTPROTECT
  :: HId_t

{-# LINE 289 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTUNPROTECT" h5e_CANTUNPROTECT
  :: HId_t

{-# LINE 290 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTPIN" h5e_CANTPIN
  :: HId_t

{-# LINE 291 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTUNPIN" h5e_CANTUNPIN
  :: HId_t

{-# LINE 292 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTMARKDIRTY" h5e_CANTMARKDIRTY
  :: HId_t

{-# LINE 293 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTDIRTY" h5e_CANTDIRTY
  :: HId_t

{-# LINE 294 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTEXPUNGE" h5e_CANTEXPUNGE
  :: HId_t

{-# LINE 295 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTRESIZE" h5e_CANTRESIZE
  :: HId_t

{-# LINE 296 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Link related errors
foreign import ccall "inline_H5E_TRAVERSE" h5e_TRAVERSE
  :: HId_t

{-# LINE 299 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_NLINKS" h5e_NLINKS
  :: HId_t

{-# LINE 300 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_NOTREGISTERED" h5e_NOTREGISTERED
  :: HId_t

{-# LINE 301 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTMOVE" h5e_CANTMOVE
  :: HId_t

{-# LINE 302 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTSORT" h5e_CANTSORT
  :: HId_t

{-# LINE 303 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Parallel MPI errors
foreign import ccall "inline_H5E_MPI" h5e_MPI
  :: HId_t

{-# LINE 306 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_MPIERRSTR" h5e_MPIERRSTR
  :: HId_t

{-# LINE 307 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTRECV" h5e_CANTRECV
  :: HId_t

{-# LINE 308 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Dataspace errors
foreign import ccall "inline_H5E_CANTCLIP" h5e_CANTCLIP
  :: HId_t

{-# LINE 311 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTCOUNT" h5e_CANTCOUNT
  :: HId_t

{-# LINE 312 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTSELECT" h5e_CANTSELECT
  :: HId_t

{-# LINE 313 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTNEXT" h5e_CANTNEXT
  :: HId_t

{-# LINE 314 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_BADSELECT" h5e_BADSELECT
  :: HId_t

{-# LINE 315 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTCOMPARE" h5e_CANTCOMPARE
  :: HId_t

{-# LINE 316 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Argument errors
foreign import ccall "inline_H5E_UNINITIALIZED" h5e_UNINITIALIZED
  :: HId_t

{-# LINE 319 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_UNSUPPORTED" h5e_UNSUPPORTED
  :: HId_t

{-# LINE 320 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_BADTYPE" h5e_BADTYPE
  :: HId_t

{-# LINE 321 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_BADRANGE" h5e_BADRANGE
  :: HId_t

{-# LINE 322 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_BADVALUE" h5e_BADVALUE
  :: HId_t

{-# LINE 323 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** B-tree related errors
foreign import ccall "inline_H5E_NOTFOUND" h5e_NOTFOUND
  :: HId_t

{-# LINE 326 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_EXISTS" h5e_EXISTS
  :: HId_t

{-# LINE 327 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTENCODE" h5e_CANTENCODE
  :: HId_t

{-# LINE 328 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTDECODE" h5e_CANTDECODE
  :: HId_t

{-# LINE 329 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTSPLIT" h5e_CANTSPLIT
  :: HId_t

{-# LINE 330 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTREDISTRIBUTE" h5e_CANTREDISTRIBUTE
  :: HId_t

{-# LINE 331 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTSWAP" h5e_CANTSWAP
  :: HId_t

{-# LINE 332 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTINSERT" h5e_CANTINSERT
  :: HId_t

{-# LINE 333 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTLIST" h5e_CANTLIST
  :: HId_t

{-# LINE 334 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTMODIFY" h5e_CANTMODIFY
  :: HId_t

{-# LINE 335 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_CANTREMOVE" h5e_CANTREMOVE
  :: HId_t

{-# LINE 336 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- ** Datatype conversion errors
foreign import ccall "inline_H5E_CANTCONVERT" h5e_CANTCONVERT
  :: HId_t

{-# LINE 339 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
foreign import ccall "inline_H5E_BADSIZE" h5e_BADSIZE
  :: HId_t

{-# LINE 340 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

newtype H5E_TRY_STATE
    = H5E_TRY_STATE (Either (H5E_auto1_t ()) (H5E_auto2_t ()), InOut ())

h5e_BEGIN_TRY :: IO H5E_TRY_STATE
h5e_BEGIN_TRY :: IO H5E_TRY_STATE
h5e_BEGIN_TRY = do
    CUInt
isV2 <- (Ptr CUInt -> IO CUInt) -> IO CUInt
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr CUInt -> IO CUInt) -> IO CUInt)
-> (Ptr CUInt -> IO CUInt) -> IO CUInt
forall a b. (a -> b) -> a -> b
$ \Ptr CUInt
isV2 -> do
        IO HErr_t -> IO ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$ HId_t -> Out CUInt -> IO HErr_t
h5e_auto_is_v2 HId_t
h5e_DEFAULT (Ptr CUInt -> Out CUInt
forall a. Ptr a -> Out a
Out Ptr CUInt
isV2)
        Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CUInt
isV2

    (Ptr (InOut ()) -> IO H5E_TRY_STATE) -> IO H5E_TRY_STATE
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr (InOut ()) -> IO H5E_TRY_STATE) -> IO H5E_TRY_STATE)
-> (Ptr (InOut ()) -> IO H5E_TRY_STATE) -> IO H5E_TRY_STATE
forall a b. (a -> b) -> a -> b
$ \Ptr (InOut ())
cdata -> if CUInt
isV2 CUInt -> CUInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CUInt
0
        then (Ptr (H5E_auto2_t ()) -> IO H5E_TRY_STATE) -> IO H5E_TRY_STATE
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr (H5E_auto2_t ()) -> IO H5E_TRY_STATE) -> IO H5E_TRY_STATE)
-> (Ptr (H5E_auto2_t ()) -> IO H5E_TRY_STATE) -> IO H5E_TRY_STATE
forall a b. (a -> b) -> a -> b
$ \Ptr (H5E_auto2_t ())
func -> do
            IO HErr_t -> IO ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$ HId_t -> Out (H5E_auto2_t ()) -> Out (InOut ()) -> IO HErr_t
forall a.
HId_t -> Out (H5E_auto2_t a) -> Out (InOut a) -> IO HErr_t
h5e_get_auto2 HId_t
h5e_DEFAULT (Ptr (H5E_auto2_t ()) -> Out (H5E_auto2_t ())
forall a. Ptr a -> Out a
Out Ptr (H5E_auto2_t ())
func) (Ptr (InOut ()) -> Out (InOut ())
forall a. Ptr a -> Out a
Out Ptr (InOut ())
cdata)
            IO HErr_t -> IO ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$ HId_t -> H5E_auto2_t Any -> InOut Any -> IO HErr_t
forall a. HId_t -> H5E_auto2_t a -> InOut a -> IO HErr_t
h5e_set_auto2 HId_t
h5e_DEFAULT H5E_auto2_t Any
forall a. FunPtr a
nullFunPtr (Ptr Any -> InOut Any
forall a. Ptr a -> InOut a
InOut Ptr Any
forall a. Ptr a
nullPtr)

            H5E_auto2_t ()
func_ <- Ptr (H5E_auto2_t ()) -> IO (H5E_auto2_t ())
forall a. Storable a => Ptr a -> IO a
peek Ptr (H5E_auto2_t ())
func
            InOut ()
cdata_ <- Ptr (InOut ()) -> IO (InOut ())
forall a. Storable a => Ptr a -> IO a
peek Ptr (InOut ())
cdata
            H5E_TRY_STATE -> IO H5E_TRY_STATE
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ((Either (H5E_auto1_t ()) (H5E_auto2_t ()), InOut ())
-> H5E_TRY_STATE
H5E_TRY_STATE (H5E_auto2_t () -> Either (H5E_auto1_t ()) (H5E_auto2_t ())
forall a b. b -> Either a b
Right H5E_auto2_t ()
func_, InOut ()
cdata_))
        else (Ptr (H5E_auto1_t ()) -> IO H5E_TRY_STATE) -> IO H5E_TRY_STATE
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr (H5E_auto1_t ()) -> IO H5E_TRY_STATE) -> IO H5E_TRY_STATE)
-> (Ptr (H5E_auto1_t ()) -> IO H5E_TRY_STATE) -> IO H5E_TRY_STATE
forall a b. (a -> b) -> a -> b
$ \Ptr (H5E_auto1_t ())
func -> do
            IO HErr_t -> IO ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$ Out (H5E_auto1_t ()) -> Out (InOut ()) -> IO HErr_t
forall a. Out (H5E_auto1_t a) -> Out (InOut a) -> IO HErr_t
h5e_get_auto1 (Ptr (H5E_auto1_t ()) -> Out (H5E_auto1_t ())
forall a. Ptr a -> Out a
Out Ptr (H5E_auto1_t ())
func) (Ptr (InOut ()) -> Out (InOut ())
forall a. Ptr a -> Out a
Out Ptr (InOut ())
cdata)
            IO HErr_t -> IO ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$ H5E_auto1_t Any -> InOut Any -> IO HErr_t
forall a. H5E_auto1_t a -> InOut a -> IO HErr_t
h5e_set_auto1 H5E_auto1_t Any
forall a. FunPtr a
nullFunPtr (Ptr Any -> InOut Any
forall a. Ptr a -> InOut a
InOut Ptr Any
forall a. Ptr a
nullPtr)

            H5E_auto1_t ()
func_ <- Ptr (H5E_auto1_t ()) -> IO (H5E_auto1_t ())
forall a. Storable a => Ptr a -> IO a
peek Ptr (H5E_auto1_t ())
func
            InOut ()
cdata_ <- Ptr (InOut ()) -> IO (InOut ())
forall a. Storable a => Ptr a -> IO a
peek Ptr (InOut ())
cdata
            H5E_TRY_STATE -> IO H5E_TRY_STATE
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ((Either (H5E_auto1_t ()) (H5E_auto2_t ()), InOut ())
-> H5E_TRY_STATE
H5E_TRY_STATE (H5E_auto1_t () -> Either (H5E_auto1_t ()) (H5E_auto2_t ())
forall a b. a -> Either a b
Left H5E_auto1_t ()
func_, InOut ()
cdata_))

h5e_END_TRY :: H5E_TRY_STATE -> IO HErr_t
h5e_END_TRY :: H5E_TRY_STATE -> IO HErr_t
h5e_END_TRY (H5E_TRY_STATE (Right H5E_auto2_t ()
func, InOut ()
cdata)) = HId_t -> H5E_auto2_t () -> InOut () -> IO HErr_t
forall a. HId_t -> H5E_auto2_t a -> InOut a -> IO HErr_t
h5e_set_auto2 HId_t
h5e_DEFAULT H5E_auto2_t ()
func InOut ()
cdata
h5e_END_TRY (H5E_TRY_STATE (Left  H5E_auto1_t ()
func, InOut ()
cdata)) = H5E_auto1_t () -> InOut () -> IO HErr_t
forall a. H5E_auto1_t a -> InOut a -> IO HErr_t
h5e_set_auto1 H5E_auto1_t ()
func InOut ()
cdata

-- |This is not a standard HDF5 function or macro, but rather a wrapper
-- to the paired macros H5E_BEGIN_TRY and H5E_END_TRY, wrapping a simple action.
h5e_try :: IO a -> IO a
h5e_try :: forall a. IO a -> IO a
h5e_try IO a
action = do
    H5E_TRY_STATE
tryState <- IO H5E_TRY_STATE
h5e_BEGIN_TRY
    a
result <- IO a
action
    IO HErr_t -> IO ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (IO HErr_t -> IO ()) -> IO HErr_t -> IO ()
forall a b. (a -> b) -> a -> b
$ H5E_TRY_STATE -> IO HErr_t
h5e_END_TRY H5E_TRY_STATE
tryState
    a -> IO a
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return a
result

-- TODO: wrap these up in an exported header file (something like "Bindings.HDF5.Raw.H5E.h") as macros for use in haskell code, or maybe as TH macros
-- /*
--  * Public API Convenience Macros for Error reporting - Documented
--  */
-- /* Use the Standard C __FILE__ & __LINE__ macros instead of typing them in */
-- #define H5Epush_sim(func, cls, maj, min, str) H5Epush2(H5E_DEFAULT, __FILE__, func, __LINE__, cls, maj, min, str)
--
-- /*
--  * Public API Convenience Macros for Error reporting - Undocumented
--  */
-- /* Use the Standard C __FILE__ & __LINE__ macros instead of typing them in */
-- /*  And return after pushing error onto stack */
-- #define H5Epush_ret(func, cls, maj, min, str, ret) {			      \
--     H5Epush2(H5E_DEFAULT, __FILE__, func, __LINE__, cls, maj, min, str);      \
--     return(ret);							      \
-- }
--
-- /* Use the Standard C __FILE__ & __LINE__ macros instead of typing them in
--  * And goto a label after pushing error onto stack.
--  */
-- #define H5Epush_goto(func, cls, maj, min, str, label) {			      \
--     H5Epush2(H5E_DEFAULT, __FILE__, func, __LINE__, cls, maj, min, str);      \
--     goto label;								      \
-- }

-- |Error stack traversal direction
newtype H5E_direction_t = H5E_direction_t Word32 deriving (Ptr H5E_direction_t -> IO H5E_direction_t
Ptr H5E_direction_t -> Int -> IO H5E_direction_t
Ptr H5E_direction_t -> Int -> H5E_direction_t -> IO ()
Ptr H5E_direction_t -> H5E_direction_t -> IO ()
H5E_direction_t -> Int
(H5E_direction_t -> Int)
-> (H5E_direction_t -> Int)
-> (Ptr H5E_direction_t -> Int -> IO H5E_direction_t)
-> (Ptr H5E_direction_t -> Int -> H5E_direction_t -> IO ())
-> (forall b. Ptr b -> Int -> IO H5E_direction_t)
-> (forall b. Ptr b -> Int -> H5E_direction_t -> IO ())
-> (Ptr H5E_direction_t -> IO H5E_direction_t)
-> (Ptr H5E_direction_t -> H5E_direction_t -> IO ())
-> Storable H5E_direction_t
forall b. Ptr b -> Int -> IO H5E_direction_t
forall b. Ptr b -> Int -> H5E_direction_t -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: H5E_direction_t -> Int
sizeOf :: H5E_direction_t -> Int
$calignment :: H5E_direction_t -> Int
alignment :: H5E_direction_t -> Int
$cpeekElemOff :: Ptr H5E_direction_t -> Int -> IO H5E_direction_t
peekElemOff :: Ptr H5E_direction_t -> Int -> IO H5E_direction_t
$cpokeElemOff :: Ptr H5E_direction_t -> Int -> H5E_direction_t -> IO ()
pokeElemOff :: Ptr H5E_direction_t -> Int -> H5E_direction_t -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO H5E_direction_t
peekByteOff :: forall b. Ptr b -> Int -> IO H5E_direction_t
$cpokeByteOff :: forall b. Ptr b -> Int -> H5E_direction_t -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> H5E_direction_t -> IO ()
$cpeek :: Ptr H5E_direction_t -> IO H5E_direction_t
peek :: Ptr H5E_direction_t -> IO H5E_direction_t
$cpoke :: Ptr H5E_direction_t -> H5E_direction_t -> IO ()
poke :: Ptr H5E_direction_t -> H5E_direction_t -> IO ()
Storable, Int -> H5E_direction_t -> ShowS
[H5E_direction_t] -> ShowS
H5E_direction_t -> String
(Int -> H5E_direction_t -> ShowS)
-> (H5E_direction_t -> String)
-> ([H5E_direction_t] -> ShowS)
-> Show H5E_direction_t
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> H5E_direction_t -> ShowS
showsPrec :: Int -> H5E_direction_t -> ShowS
$cshow :: H5E_direction_t -> String
show :: H5E_direction_t -> String
$cshowList :: [H5E_direction_t] -> ShowS
showList :: [H5E_direction_t] -> ShowS
Show)

{-# LINE 406 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |begin deep, end at API function
h5e_WALK_UPWARD :: H5E_direction_t
h5e_WALK_UPWARD :: H5E_direction_t
h5e_WALK_UPWARD = Word32 -> H5E_direction_t
H5E_direction_t (Word32
0)

{-# LINE 409 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |begin at API function, end deep
h5e_WALK_DOWNWARD :: H5E_direction_t
h5e_WALK_DOWNWARD :: H5E_direction_t
h5e_WALK_DOWNWARD = Word32 -> H5E_direction_t
H5E_direction_t (Word32
1)

{-# LINE 412 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- * Error stack traversal callback function types

-- |Callback type for 'h5e_walk2'
--
-- > typedef herr_t (*H5E_walk2_t)(unsigned n, const H5E_error2_t *err_desc,
-- >     void *client_data);
type H5E_walk2_t a = FunPtr (CUInt -> In H5E_error2_t -> InOut a -> IO HErr_t)

-- |Callback type for 'h5e_set_auto2'
--
-- > typedef herr_t (*H5E_auto2_t)(hid_t estack, void *client_data);
type H5E_auto2_t a = FunPtr (HId_t -> InOut a -> IO HErr_t)

-- * Public API functions

-- |Registers an error class.
--
-- Returns non-negative value as class ID on success / negative on failure
--
-- > hid_t  H5Eregister_class(const char *cls_name, const char *lib_name,
-- >     const char *version);
foreign import ccall "H5Eregister_class" h5e_register_class
  :: CString -> CString -> CString -> IO HId_t
foreign import ccall "&H5Eregister_class" p_H5Eregister_class
  :: FunPtr (CString -> CString -> CString -> IO HId_t)

{-# LINE 435 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Closes an error class.
--
-- Returns non-negative value on success / negative on failure
--
-- > herr_t H5Eunregister_class(hid_t class_id);
foreign import ccall "H5Eunregister_class" h5e_unregister_class
  :: HId_t -> IO HErr_t
foreign import ccall "&H5Eunregister_class" p_H5Eunregister_class
  :: FunPtr (HId_t -> IO HErr_t)

{-# LINE 442 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Closes a major or minor error.
--
-- Returns non-negative value on success / negative on failure
--
-- > herr_t H5Eclose_msg(hid_t err_id);
foreign import ccall "H5Eclose_msg" h5e_close_msg
  :: HId_t -> IO HErr_t
foreign import ccall "&H5Eclose_msg" p_H5Eclose_msg
  :: FunPtr (HId_t -> IO HErr_t)

{-# LINE 449 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Creates a major or minor error, returns an ID.
--
-- Returns non-negative value on success / negative on failure
--
-- > hid_t  H5Ecreate_msg(hid_t cls, H5E_type_t msg_type, const char *msg);
foreign import ccall "H5Ecreate_msg" h5e_create_msg
  :: HId_t -> H5E_type_t -> CString -> IO HId_t
foreign import ccall "&H5Ecreate_msg" p_H5Ecreate_msg
  :: FunPtr (HId_t -> H5E_type_t -> CString -> IO HId_t)

{-# LINE 456 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Creates a new, empty, error stack.
--
-- Returns non-negative value as stack ID on success / negative on failure
--
-- > hid_t  H5Ecreate_stack(void);
foreign import ccall "H5Ecreate_stack" h5e_create_stack
  :: IO HId_t
foreign import ccall "&H5Ecreate_stack" p_H5Ecreate_stack
  :: FunPtr (IO HId_t)

{-# LINE 463 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Registers current error stack, returns object handle for it, clears it.
--
-- Returns non-negative value as stack ID on success / negative on failure
--
-- > hid_t  H5Eget_current_stack(void);
foreign import ccall "H5Eget_current_stack" h5e_get_current_stack
  :: IO HId_t
foreign import ccall "&H5Eget_current_stack" p_H5Eget_current_stack
  :: FunPtr (IO HId_t)

{-# LINE 470 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Closes an error stack.
--
-- Returns non-negative value on success / negative on failure
--
-- > herr_t H5Eclose_stack(hid_t stack_id);
foreign import ccall "H5Eclose_stack" h5e_close_stack
  :: HId_t -> IO HErr_t
foreign import ccall "&H5Eclose_stack" p_H5Eclose_stack
  :: FunPtr (HId_t -> IO HErr_t)

{-# LINE 477 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Retrieves error class name.
--
-- Returns non-negative for name length if succeeds(zero means no name);
-- otherwise returns negative value.
--
-- On successful return, 'name' will always be zero-terminated.
--
-- NB: The return value is the length of the name, not the length copied
-- to the buffer.
--
-- > ssize_t H5Eget_class_name(hid_t class_id, char *name, size_t size);
foreign import ccall "H5Eget_class_name" h5e_get_class_name
  :: HId_t -> OutArray CChar -> CSize -> IO CSSize
foreign import ccall "&H5Eget_class_name" p_H5Eget_class_name
  :: FunPtr (HId_t -> OutArray CChar -> CSize -> IO CSSize)

{-# LINE 490 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Replaces current stack with specified stack.  This closes the
-- stack ID also.
--
-- Returns non-negative value on success / negative on failure
--
-- > herr_t H5Eset_current_stack(hid_t err_stack_id);
foreign import ccall "H5Eset_current_stack" h5e_set_current_stack
  :: HId_t -> IO HErr_t
foreign import ccall "&H5Eset_current_stack" p_H5Eset_current_stack
  :: FunPtr (HId_t -> IO HErr_t)

{-# LINE 498 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- libffi to the rescue!  I have no idea how I'd wrap this without it, and there
-- doesn't appear to be a non-deprecated non-private non-varargs equivalent.
--
-- |Pushes a new error record onto error stack for the current
-- thread.  The error has major and minor IDs 'maj_id' and
-- 'min_id', the name of a function where the error was detected,
-- the name of the file where the error was detected, the
-- line within that file, and an error description string.  The
-- function name, file name, and error description strings must
-- be statically allocated.
--
-- Returns non-negative on success/Negative on failure.
--
-- > herr_t H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line,
-- >     hid_t cls_id, hid_t maj_id, hid_t min_id, const char *msg, ...);
--
-- (msg is a printf format string, the varargs are the format parameters)
h5e_push2 :: HId_t -> CString -> CString -> CUInt -> HId_t -> HId_t -> HId_t -> CString -> [Arg] -> IO HErr_t
h5e_push2 :: HId_t
-> CString
-> CString
-> CUInt
-> HId_t
-> HId_t
-> HId_t
-> CString
-> [Arg]
-> IO HErr_t
h5e_push2 HId_t
err_stack CString
file CString
func CUInt
line HId_t
cls_id HId_t
maj_id HId_t
min_id CString
fmt [] =
    HId_t
-> CString
-> CString
-> CUInt
-> HId_t
-> HId_t
-> HId_t
-> CString
-> IO HErr_t
h5e_push2_no_varargs HId_t
err_stack CString
file CString
func CUInt
line HId_t
cls_id HId_t
maj_id HId_t
min_id CString
fmt
h5e_push2 (HId_t Int64
err_stack) CString
file CString
func CUInt
line (HId_t Int64
cls_id) (HId_t Int64
maj_id) (HId_t Int64
min_id) CString
fmt [Arg]
varargs =
    FunPtr
  (HId_t
   -> CString
   -> CString
   -> CUInt
   -> HId_t
   -> HId_t
   -> HId_t
   -> CString
   -> IO HErr_t)
-> RetType HErr_t -> [Arg] -> IO HErr_t
forall a b. FunPtr a -> RetType b -> [Arg] -> IO b
callFFI FunPtr
  (HId_t
   -> CString
   -> CString
   -> CUInt
   -> HId_t
   -> HId_t
   -> HId_t
   -> CString
   -> IO HErr_t)
p_H5Epush2 RetType HErr_t
retHErr_t [Arg]
args
    where
        argHId_t :: Int64 -> Arg
argHId_t = Int64 -> Arg
argInt64
{-# LINE 523 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
        retHErr_t :: RetType HErr_t
retHErr_t = (Int32 -> HErr_t) -> RetType Int32 -> RetType HErr_t
forall a b. (a -> b) -> RetType a -> RetType b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Int32 -> HErr_t
HErr_t (RetType Int32
retInt32)
{-# LINE 524 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

        args :: [Arg]
args = Int64 -> Arg
argHId_t Int64
err_stack Arg -> [Arg] -> [Arg]
forall a. a -> [a] -> [a]
: CString -> Arg
forall a. Ptr a -> Arg
argPtr CString
file Arg -> [Arg] -> [Arg]
forall a. a -> [a] -> [a]
: CString -> Arg
forall a. Ptr a -> Arg
argPtr CString
func Arg -> [Arg] -> [Arg]
forall a. a -> [a] -> [a]
: CUInt -> Arg
argCUInt CUInt
line
             Arg -> [Arg] -> [Arg]
forall a. a -> [a] -> [a]
: Int64 -> Arg
argHId_t Int64
cls_id Arg -> [Arg] -> [Arg]
forall a. a -> [a] -> [a]
: Int64 -> Arg
argHId_t Int64
maj_id Arg -> [Arg] -> [Arg]
forall a. a -> [a] -> [a]
: Int64 -> Arg
argHId_t Int64
min_id Arg -> [Arg] -> [Arg]
forall a. a -> [a] -> [a]
: CString -> Arg
forall a. Ptr a -> Arg
argPtr CString
fmt
             Arg -> [Arg] -> [Arg]
forall a. a -> [a] -> [a]
: [Arg]
varargs

foreign import ccall "H5Epush2"
    h5e_push2_no_varargs :: HId_t -> CString -> CString -> CUInt -> HId_t -> HId_t -> HId_t -> CString -> IO HErr_t
foreign import ccall "&H5Epush2"
    p_H5Epush2 :: FunPtr (HId_t -> CString -> CString -> CUInt -> HId_t -> HId_t -> HId_t -> CString -> IO HErr_t)

-- |Deletes some error messages from the top of error stack.
--
-- Returns non-negative value on success / negative on failure
--
-- > herr_t H5Epop(hid_t err_stack, size_t count);
foreign import ccall "H5Epop" h5e_pop
  :: HId_t -> CSize -> IO HErr_t
foreign import ccall "&H5Epop" p_H5Epop
  :: FunPtr (HId_t -> CSize -> IO HErr_t)

{-# LINE 540 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Prints the error stack in some default way.  This is just a
-- convenience function for 'h5e_walk' with a function that
-- prints error messages.  Users are encouraged to write their
-- own more specific error handlers.
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Eprint2(hid_t err_stack, FILE *stream);
foreign import ccall "H5Eprint2" h5e_print2
  :: HId_t -> InOut CFile -> IO HErr_t
foreign import ccall "&H5Eprint2" p_H5Eprint2
  :: FunPtr (HId_t -> InOut CFile -> IO HErr_t)

{-# LINE 550 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Walks the error stack for the current thread and calls some
-- function for each error along the way.
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Ewalk2(hid_t err_stack, H5E_direction_t direction, H5E_walk2_t func,
-- >     void *client_data);
foreign import ccall "H5Ewalk2" h5e_walk2
  :: HId_t -> H5E_direction_t -> H5E_walk2_t a -> InOut a -> IO HErr_t
foreign import ccall "&H5Ewalk2" p_H5Ewalk2
  :: FunPtr (HId_t -> H5E_direction_t -> H5E_walk2_t a -> InOut a -> IO HErr_t)

{-# LINE 559 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Returns the current settings for the automatic error stack
-- traversal function and its data for specific error stack.
-- Either (or both) arguments may be null in which case the
-- value is not returned.
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Eget_auto2(hid_t estack_id, H5E_auto2_t *func, void **client_data);
--
-- NB: the @a@ type here should be existentially quantified, not universally, but
-- Haskell doesn't have a convenient way to say so in a foreign import.
foreign import ccall "H5Eget_auto2" h5e_get_auto2
  :: HId_t -> Out (H5E_auto2_t a) -> Out (InOut a) -> IO HErr_t
foreign import ccall "&H5Eget_auto2" p_H5Eget_auto2
  :: FunPtr (HId_t -> Out (H5E_auto2_t a) -> Out (InOut a) -> IO HErr_t)

{-# LINE 572 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Turns on or off automatic printing of errors for certain
-- error stack.  When turned on (non-null 'func' pointer) any
-- API function which returns an error indication will first
-- call 'func' passing it 'client_data' as an argument.
--
-- The default values before this function is called are
-- 'h5e_print2' with client data being the standard error stream,
-- 'stderr'.
--
-- Automatic stack traversal is always in the 'h5e_WALK_DOWNWARD'
-- direction.
--
-- > herr_t H5Eset_auto2(hid_t estack_id, H5E_auto2_t func, void *client_data);
foreign import ccall "H5Eset_auto2" h5e_set_auto2
  :: HId_t -> H5E_auto2_t a -> InOut a -> IO HErr_t
foreign import ccall "&H5Eset_auto2" p_H5Eset_auto2
  :: FunPtr (HId_t -> H5E_auto2_t a -> InOut a -> IO HErr_t)

{-# LINE 587 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Clears the error stack for the specified error stack.
--
-- Returns non-negative value on success / negative on failure
--
-- > herr_t H5Eclear2(hid_t err_stack);
foreign import ccall "H5Eclear2" h5e_clear2
  :: HId_t -> IO HErr_t
foreign import ccall "&H5Eclear2" p_H5Eclear2
  :: FunPtr (HId_t -> IO HErr_t)

{-# LINE 594 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- TODO: I think the type names mentioned here are wrong.  Sort them out.
-- |Determines if the error auto reporting function for an
-- error stack conforms to the 'H5E_auto_stack_t' typedef
-- or the 'H5E_auto_t' typedef.  The 'is_stack' parameter is set
-- to 1 for the first case and 0 for the latter case.
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Eauto_is_v2(hid_t err_stack, unsigned *is_stack);
foreign import ccall "H5Eauto_is_v2" h5e_auto_is_v2
  :: HId_t -> Out CUInt -> IO HErr_t
foreign import ccall "&H5Eauto_is_v2" p_H5Eauto_is_v2
  :: FunPtr (HId_t -> Out CUInt -> IO HErr_t)

{-# LINE 605 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Retrieves an error message.
--
-- Returns non-negative for message length if succeeds(zero means no message);
-- otherwise returns negative value.
--
-- > ssize_t H5Eget_msg(hid_t msg_id, H5E_type_t *type, char *msg,
-- >     size_t size);
foreign import ccall "H5Eget_msg" h5e_get_msg
  :: HId_t -> Out H5E_type_t -> OutArray CChar -> CSize -> IO CSSize
foreign import ccall "&H5Eget_msg" p_H5Eget_msg
  :: FunPtr (HId_t -> Out H5E_type_t -> OutArray CChar -> CSize -> IO CSSize)

{-# LINE 614 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Retrieves the number of error message.
--
-- Returns non-negative value on success / negative on failure
--
-- > ssize_t H5Eget_num(hid_t error_stack_id);
foreign import ccall "H5Eget_num" h5e_get_num
  :: HId_t -> IO CSSize
foreign import ccall "&H5Eget_num" p_H5Eget_num
  :: FunPtr (HId_t -> IO CSSize)

{-# LINE 621 "src/Bindings/HDF5/Raw/H5E.hsc" #-}


{-# LINE 623 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- * Deprecated symbols

newtype H5E_major_t = H5E_major_t Int64 deriving (Ptr H5E_major_t -> IO H5E_major_t
Ptr H5E_major_t -> Int -> IO H5E_major_t
Ptr H5E_major_t -> Int -> H5E_major_t -> IO ()
Ptr H5E_major_t -> H5E_major_t -> IO ()
H5E_major_t -> Int
(H5E_major_t -> Int)
-> (H5E_major_t -> Int)
-> (Ptr H5E_major_t -> Int -> IO H5E_major_t)
-> (Ptr H5E_major_t -> Int -> H5E_major_t -> IO ())
-> (forall b. Ptr b -> Int -> IO H5E_major_t)
-> (forall b. Ptr b -> Int -> H5E_major_t -> IO ())
-> (Ptr H5E_major_t -> IO H5E_major_t)
-> (Ptr H5E_major_t -> H5E_major_t -> IO ())
-> Storable H5E_major_t
forall b. Ptr b -> Int -> IO H5E_major_t
forall b. Ptr b -> Int -> H5E_major_t -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: H5E_major_t -> Int
sizeOf :: H5E_major_t -> Int
$calignment :: H5E_major_t -> Int
alignment :: H5E_major_t -> Int
$cpeekElemOff :: Ptr H5E_major_t -> Int -> IO H5E_major_t
peekElemOff :: Ptr H5E_major_t -> Int -> IO H5E_major_t
$cpokeElemOff :: Ptr H5E_major_t -> Int -> H5E_major_t -> IO ()
pokeElemOff :: Ptr H5E_major_t -> Int -> H5E_major_t -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO H5E_major_t
peekByteOff :: forall b. Ptr b -> Int -> IO H5E_major_t
$cpokeByteOff :: forall b. Ptr b -> Int -> H5E_major_t -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> H5E_major_t -> IO ()
$cpeek :: Ptr H5E_major_t -> IO H5E_major_t
peek :: Ptr H5E_major_t -> IO H5E_major_t
$cpoke :: Ptr H5E_major_t -> H5E_major_t -> IO ()
poke :: Ptr H5E_major_t -> H5E_major_t -> IO ()
Storable, Int -> H5E_major_t -> ShowS
[H5E_major_t] -> ShowS
H5E_major_t -> String
(Int -> H5E_major_t -> ShowS)
-> (H5E_major_t -> String)
-> ([H5E_major_t] -> ShowS)
-> Show H5E_major_t
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> H5E_major_t -> ShowS
showsPrec :: Int -> H5E_major_t -> ShowS
$cshow :: H5E_major_t -> String
show :: H5E_major_t -> String
$cshowList :: [H5E_major_t] -> ShowS
showList :: [H5E_major_t] -> ShowS
Show, H5E_major_t -> H5E_major_t -> Bool
(H5E_major_t -> H5E_major_t -> Bool)
-> (H5E_major_t -> H5E_major_t -> Bool) -> Eq H5E_major_t
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: H5E_major_t -> H5E_major_t -> Bool
== :: H5E_major_t -> H5E_major_t -> Bool
$c/= :: H5E_major_t -> H5E_major_t -> Bool
/= :: H5E_major_t -> H5E_major_t -> Bool
Eq)

{-# LINE 627 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
newtype H5E_minor_t = H5E_minor_t Int64 deriving (Storable, Show, Eq)

{-# LINE 628 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- | Information about an error element of error stack

{-# LINE 631 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |major error number

{-# LINE 634 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |minor error number

{-# LINE 637 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |function in which error occurred

{-# LINE 640 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |file in which error occurred

{-# LINE 643 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |line in file where error occurs

{-# LINE 646 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |optional supplied description

{-# LINE 649 "src/Bindings/HDF5/Raw/H5E.hsc" #-}
data H5E_error1_t = H5E_error1_t{
  h5e_error1_t'maj_num :: H5E_major_t,
  h5e_error1_t'min_num :: H5E_minor_t,
  h5e_error1_t'func_name :: CString,
  h5e_error1_t'file_name :: CString,
  h5e_error1_t'line :: CUInt,
  h5e_error1_t'desc :: CString
} deriving (Eq,Show)
p'H5E_error1_t'maj_num :: Ptr H5E_error1_t -> Ptr H5E_major_t
p'H5E_error1_t'maj_num Ptr H5E_error1_t
p = plusPtr p Int
0
p'H5E_error1_t'maj_num :: Ptr (H5E_error1_t) -> Ptr (H5E_major_t)
p'H5E_error1_t'min_num :: Ptr H5E_error1_t -> Ptr H5E_minor_t
p'H5E_error1_t'min_num Ptr H5E_error1_t
p = Ptr H5E_error1_t -> Int -> Ptr H5E_minor_t
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error1_t
p Int
8
p'H5E_error1_t'min_num :: Ptr (H5E_error1_t) -> Ptr (H5E_minor_t)
p'H5E_error1_t'func_name :: Ptr H5E_error1_t -> Ptr CString
p'H5E_error1_t'func_name Ptr H5E_error1_t
p = Ptr H5E_error1_t -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error1_t
p Int
16
p'H5E_error1_t'func_name :: Ptr (H5E_error1_t) -> Ptr (CString)
p'H5E_error1_t'file_name :: Ptr H5E_error1_t -> Ptr CString
p'H5E_error1_t'file_name Ptr H5E_error1_t
p = Ptr H5E_error1_t -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error1_t
p Int
24
p'H5E_error1_t'file_name :: Ptr (H5E_error1_t) -> Ptr (CString)
p'H5E_error1_t'line :: Ptr H5E_error1_t -> Ptr CUInt
p'H5E_error1_t'line Ptr H5E_error1_t
p = Ptr H5E_error1_t -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error1_t
p Int
32
p'H5E_error1_t'line :: Ptr (H5E_error1_t) -> Ptr (CUInt)
p'H5E_error1_t'desc :: Ptr H5E_error1_t -> Ptr CString
p'H5E_error1_t'desc Ptr H5E_error1_t
p = Ptr H5E_error1_t -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
plusPtr Ptr H5E_error1_t
p Int
40
p'H5E_error1_t'desc :: Ptr (H5E_error1_t) -> Ptr (CString)
instance Storable H5E_error1_t where
  sizeOf _ = 48
  alignment _ = 8
  peek _p = do
    v0 <- peekByteOff _p 0
    v1 <- peekByteOff _p 8
    v2 <- peekByteOff _p 16
    v3 <- peekByteOff _p 24
    v4 <- peekByteOff _p 32
    v5 <- peekByteOff _p 40
    return $ H5E_error1_t v0 v1 v2 v3 v4 v5
  poke _p (H5E_error1_t v0 v1 v2 v3 v4 v5) = do
    pokeByteOff _p 0 v0
    pokeByteOff _p 8 v1
    pokeByteOff _p 16 v2
    pokeByteOff _p 24 v3
    pokeByteOff _p 32 v4
    pokeByteOff _p 40 v5
    return ()

{-# LINE 650 "src/Bindings/HDF5/Raw/H5E.hsc" #-}


-- | Callback type for 'h5e_walk1'
--
-- > typedef herr_t (*H5E_walk1_t)(int n, H5E_error1_t *err_desc, void *client_data);
type H5E_walk1_t a = FunPtr (CInt -> In H5E_error1_t -> InOut a -> IO HErr_t)

-- | Callback type for 'h5e_set_auto1'
--
-- > typedef herr_t (*H5E_auto1_t)(void *client_data);
type H5E_auto1_t a = FunPtr (InOut a -> IO HErr_t)

-- ** Function prototypes

-- |This function is for backward compatbility.
-- Clears the error stack for the specified error stack.
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Eclear1(void);
foreign import ccall "H5Eclear1" h5e_clear1
  :: IO HErr_t
foreign import ccall "&H5Eclear1" p_H5Eclear1
  :: FunPtr (IO HErr_t)

{-# LINE 671 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |This function is for backward compatbility.
-- Returns the current settings for the automatic error stack
-- traversal function and its data for specific error stack.
-- Either (or both) arguments may be null in which case the
-- value is not returned.
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Eget_auto1(H5E_auto1_t *func, void **client_data);
--
-- NB: the @a@ type here should be existentially quantified, not universally, but
-- Haskell doesn't have a convenient way to say so in a foreign import.
foreign import ccall "H5Eget_auto1" h5e_get_auto1
  :: Out (H5E_auto1_t a) -> Out (InOut a) -> IO HErr_t
foreign import ccall "&H5Eget_auto1" p_H5Eget_auto1
  :: FunPtr (Out (H5E_auto1_t a) -> Out (InOut a) -> IO HErr_t)

{-# LINE 685 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |This function definition is for backward compatibility only.
-- It doesn't have error stack and error class as parameters.
-- The old definition of major and minor is casted as HID_T
-- in H5Epublic.h
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Epush1(const char *file, const char *func, unsigned line,
-- >     H5E_major_t maj, H5E_minor_t min, const char *str);
foreign import ccall "H5Epush1" h5e_push1
  :: CString -> CString -> CUInt -> H5E_major_t -> H5E_minor_t -> CString -> IO HErr_t
foreign import ccall "&H5Epush1" p_H5Epush1
  :: FunPtr (CString -> CString -> CUInt -> H5E_major_t -> H5E_minor_t -> CString -> IO HErr_t)

{-# LINE 696 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |This function is for backward compatbility.
-- Prints the error stack in some default way.  This is just a
-- convenience function for 'h5e_walk1' with a function that
-- prints error messages.  Users are encouraged to write there
-- own more specific error handlers.
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Eprint1(FILE *stream);
--
-- NB: The first parameter is declared as 'InOut' to match 'H5E_auto1_t',
-- but I'm quite sure it never modifies the passed value.
foreign import ccall "H5Eprint1" h5e_print1
  :: InOut CFile -> IO HErr_t
foreign import ccall "&H5Eprint1" p_H5Eprint1
  :: FunPtr (InOut CFile -> IO HErr_t)

{-# LINE 710 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |This function is for backward compatbility.
-- Turns on or off automatic printing of errors for certain
-- error stack.  When turned on (non-null 'func' pointer) any
-- API function which returns an error indication will first
-- call 'func' passing it 'client_data' as an argument.
--
-- The default values before this function is called are
-- 'h5e_print1' with client data being the standard error stream,
-- 'stderr'.
--
-- Automatic stack traversal is always in the 'h5e_WALK_DOWNWARD'
-- direction.
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Eset_auto1(H5E_auto1_t func, void *client_data);
foreign import ccall "H5Eset_auto1" h5e_set_auto1
  :: H5E_auto1_t a -> InOut a -> IO HErr_t
foreign import ccall "&H5Eset_auto1" p_H5Eset_auto1
  :: FunPtr (H5E_auto1_t a -> InOut a -> IO HErr_t)

{-# LINE 728 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |This function is for backward compatbility.
-- Walks the error stack for the current thread and calls some
-- function for each error along the way.
--
-- Returns non-negative on success / negative on failure
--
-- > herr_t H5Ewalk1(H5E_direction_t direction, H5E_walk1_t func,
-- >     void *client_data);
foreign import ccall "H5Ewalk1" h5e_walk1
  :: H5E_direction_t -> H5E_walk1_t a -> InOut a -> IO HErr_t
foreign import ccall "&H5Ewalk1" p_H5Ewalk1
  :: FunPtr (H5E_direction_t -> H5E_walk1_t a -> InOut a -> IO HErr_t)

{-# LINE 738 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Retrieves a major error message.
--
-- Returns message if succeeds, otherwise returns NULL.
--
-- > char *H5Eget_major(H5E_major_t maj);
foreign import ccall "H5Eget_major" h5e_get_major
  :: H5E_major_t -> IO CString
foreign import ccall "&H5Eget_major" p_H5Eget_major
  :: FunPtr (H5E_major_t -> IO CString)

{-# LINE 745 "src/Bindings/HDF5/Raw/H5E.hsc" #-}

-- |Retrieves a minor error message.
--
-- Returns message if succeeds, otherwise returns NULL.
--
-- > char *H5Eget_minor(H5E_minor_t min);
foreign import ccall "H5Eget_minor" h5e_get_minor
  :: H5E_minor_t -> IO CString
foreign import ccall "&H5Eget_minor" p_H5Eget_minor
  :: FunPtr (H5E_minor_t -> IO CString)

{-# LINE 752 "src/Bindings/HDF5/Raw/H5E.hsc" #-}


{-# LINE 754 "src/Bindings/HDF5/Raw/H5E.hsc" #-}