bindings-bfd-0.1.3: src/Bindings/Bfd/Misc.hs
-- This file is part of Bindings-bfd.
--
-- Copyright (C) 2010 Michael Nelson
--
-- Bindings-bfd is free software: you can redistribute it and/or modify
-- it under the terms of the GNU Lesser General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- Bindings-bfd is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU Lesser General Public License for more details.
-- You should have received a copy of the GNU Lesser General Public License
-- along with Bindings-bfd. If not, see <http://www.gnu.org/licenses/>.
module Bindings.Bfd.Misc where
import Data.Bits
import Foreign.C
import Foreign.Ptr
type Bool' = CUInt
type Vma = Int
type Vma' = CULong
type Size = Int
type Size' = CULong
type File = Ptr File'
data File' = File'
type FilePtr = Int
type FilePtr' = CULong
alignToPower
:: Vma
-> Int
-> Vma
alignToPower vma power = (vma + mask) .&. (complement $ mask)
where
mask = shiftL 1 power - 1
foreign import ccall unsafe "stdio.h fdopen" c_fdopen
:: CInt
-> CString
-> IO File
foreign import ccall unsafe "stdio.h fflush" c_fflush
:: File
-> IO CInt