| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
SDL3.Sys.Endian
Contents
Description
Functions for reading and writing endian-specific values.
FFI conventions
Unsuffixed aliases are unsafe foreign imports; aliases suffixed Safe are safe. Functions whose callbacks fire during the call export only the Safe alias (the genuine unsafe import stays reachable under SDL3.Sys.Bindgen.Endian.Unsafe); functions curated unsafe-only export only the unsuffixed one. Each alias's documentation records its flavor and rationale.
The C shims are functions this package defines in C over what the FFI cannot call directly (variadic functions, function-like macros), each named after what it wraps; the same flavor rules apply. Their raw imports live under SDL3.Sys.Bindgen.EndianShims.
Full conventions: SDL3.Sys.
Synopsis
- module SDL3.Sys.Bindgen.Endian
- swapFloat :: Float -> IO Float
- swap16 :: Word16 -> IO Word16
- swap32 :: Word32 -> IO Word32
- swap64 :: Word64 -> IO Word64
- swap16LE :: Word16 -> IO Word16
- swap32LE :: Word32 -> IO Word32
- swap64LE :: Word64 -> IO Word64
- swapFloatLE :: Float -> IO Float
- swap16BE :: Word16 -> IO Word16
- swap32BE :: Word32 -> IO Word32
- swap64BE :: Word64 -> IO Word64
- swapFloatBE :: Float -> IO Float
Documentation
module SDL3.Sys.Bindgen.Endian
Function aliases
Byte-swap a floating point number.
This will always byte-swap the value, whether it's currently in the native byteorder of the system or not. You should use swapFloatLE or swapFloatBE instead, in most cases.
Note that this is a forced-inline function in a header, and not a public API function available in the SDL library (which is to say, the code is embedded in the calling program and the linker and dynamic loader will not be able to find this function inside SDL itself).
- Returns
- x, with its bytes in the opposite endian order.
- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
SDL_SwapFloat. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
SDL_SwapFloat, defined atSDL3/SDL_endian.h 408:24
Since: 3.2.0
C shims
Byte-swap an unsigned 16-bit number.
The SDL_Swap16 macro as a function. It always byte-swaps the value, whatever the system's byte order; swap16LE or swap16BE are what you want in most cases.
- Returns
x, with its bytes in the opposite endian order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_Swap16. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_Swap16, defined atsdl3-bindgen-sys/SDL_endian_shims.h 38:26
Since: 3.2.0
Byte-swap an unsigned 32-bit number.
The SDL_Swap32 macro as a function. It always byte-swaps the value, whatever the system's byte order; swap32LE or swap32BE are what you want in most cases.
- Returns
x, with its bytes in the opposite endian order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_Swap32. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_Swap32, defined atsdl3-bindgen-sys/SDL_endian_shims.h 57:26
Since: 3.2.0
Byte-swap an unsigned 64-bit number.
The SDL_Swap64 macro as a function. It always byte-swaps the value, whatever the system's byte order; swap64LE or swap64BE are what you want in most cases.
- Returns
x, with its bytes in the opposite endian order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_Swap64. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_Swap64, defined atsdl3-bindgen-sys/SDL_endian_shims.h 76:26
Since: 3.2.0
Swap a 16-bit value from littleendian to native byte order.
The SDL_Swap16LE macro as a function. If this is running on a littleendian system, x is returned unchanged.
- Returns
xin native byte order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_Swap16LE. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_Swap16LE, defined atsdl3-bindgen-sys/SDL_endian_shims.h 94:26
Since: 3.2.0
Swap a 32-bit value from littleendian to native byte order.
The SDL_Swap32LE macro as a function. If this is running on a littleendian system, x is returned unchanged.
- Returns
xin native byte order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_Swap32LE. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_Swap32LE, defined atsdl3-bindgen-sys/SDL_endian_shims.h 112:26
Since: 3.2.0
Swap a 64-bit value from littleendian to native byte order.
The SDL_Swap64LE macro as a function. If this is running on a littleendian system, x is returned unchanged.
- Returns
xin native byte order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_Swap64LE. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_Swap64LE, defined atsdl3-bindgen-sys/SDL_endian_shims.h 130:26
Since: 3.2.0
Swap a floating point value from littleendian to native byte order.
The SDL_SwapFloatLE macro as a function. If this is running on a littleendian system, x is returned unchanged.
- Returns
xin native byte order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_SwapFloatLE. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_SwapFloatLE, defined atsdl3-bindgen-sys/SDL_endian_shims.h 148:25
Since: 3.2.0
Swap a 16-bit value from bigendian to native byte order.
The SDL_Swap16BE macro as a function. If this is running on a bigendian system, x is returned unchanged.
- Returns
xin native byte order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_Swap16BE. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_Swap16BE, defined atsdl3-bindgen-sys/SDL_endian_shims.h 166:26
Since: 3.2.0
Swap a 32-bit value from bigendian to native byte order.
The SDL_Swap32BE macro as a function. If this is running on a bigendian system, x is returned unchanged.
- Returns
xin native byte order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_Swap32BE. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_Swap32BE, defined atsdl3-bindgen-sys/SDL_endian_shims.h 184:26
Since: 3.2.0
Swap a 64-bit value from bigendian to native byte order.
The SDL_Swap64BE macro as a function. If this is running on a bigendian system, x is returned unchanged.
- Returns
xin native byte order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_Swap64BE. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_Swap64BE, defined atsdl3-bindgen-sys/SDL_endian_shims.h 202:26
Since: 3.2.0
Swap a floating point value from bigendian to native byte order.
The SDL_SwapFloatBE macro as a function. If this is running on a bigendian system, x is returned unchanged.
- Returns
xin native byte order.- Thread safety
- It is safe to call this function from any thread.
sdl3-bindgen-sys notes
- FFI safety
- Unsafe foreign import of
lithon_SDL_SwapFloatBE. The safe import is not exported : pure bit manipulation on an immediate value; cannot block, lock, or call back. - Scalars
- The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
- C declaration
lithon_SDL_SwapFloatBE, defined atsdl3-bindgen-sys/SDL_endian_shims.h 220:25
Since: 3.2.0