halfs-0.2: Halfs/BuiltInFiles.hs
-----------------------------------------------------------------------------
-- |
-- Module : Halfs.BuiltInFiles
--
-- Maintainer : Isaac Jones <ijones@galois.com>
-- Stability : alpha
-- Portability : GHC
--
-- Several files are built-in and this module represents reading them.
module Halfs.BuiltInFiles (readInodeMapFile
,readBlockMapFile
) where
import Halfs.BasicIO (readInodeMapBin, readBlockMapBin)
import Halfs.Inode(Inode)
import Halfs.FSState (FSRead)
import Halfs.TheInodeMap (TheInodeMap(..))
import Halfs.TheBlockMap(TheBlockMap(..))
import Halfs.FileHandle (readFileFromInode)
-- |Reads it as a file.
readInodeMapFile :: Inode
-> FSRead TheInodeMap
readInodeMapFile inode
= readFileFromInode readInodeMapBin inode
-- |Reads it as a file.
readBlockMapFile :: Inode
-> FSRead TheBlockMap
readBlockMapFile bmInode'
= readFileFromInode readBlockMapBin bmInode'
{- Might be useful sometime:
readFileFromHandle :: (BinHandle -> FSRead a) -> FileHandle -> FSRead a
readFileFromHandle f (FileHandle{fhInode=i}) = readFileFromInode f i
-- |For assertion checking
justSame :: (Eq a) => a -> (b, a) -> Bool
justSame r (_, numRead) = r == numRead
-}