File: primitive-memops.h

package info (click to toggle)
haskell-primitive 0.9.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 356 kB
  • sloc: haskell: 4,436; ansic: 72; makefile: 2
file content (25 lines) | stat: -rw-r--r-- 1,181 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef haskell_primitive_memops_h
#define haskell_primitive_memops_h

// N.B. GHC RTS headers want to come first, lest things break on Windows.
#include <HsFFI.h>

#include <stdlib.h>
#include <stddef.h>

void hsprimitive_memcpy(void *dst, ptrdiff_t doff, void *src, ptrdiff_t soff, size_t len);
void hsprimitive_memmove(void *dst, ptrdiff_t doff, void *src, ptrdiff_t soff, size_t len);
int  hsprimitive_memcmp(HsWord8 *s1, HsWord8 *s2, size_t n);
int  hsprimitive_memcmp_offset(HsWord8 *s1, HsInt off1, HsWord8 *s2, HsInt off2, size_t n);

void hsprimitive_memset_Word8(HsWord8 *, ptrdiff_t, size_t, HsWord8);
void hsprimitive_memset_Word16(HsWord16 *, ptrdiff_t, size_t, HsWord16);
void hsprimitive_memset_Word32(HsWord32 *, ptrdiff_t, size_t, HsWord32);
void hsprimitive_memset_Word64(HsWord64 *, ptrdiff_t, size_t, HsWord64);
void hsprimitive_memset_Word(HsWord *, ptrdiff_t, size_t, HsWord);
void hsprimitive_memset_Ptr(HsPtr *, ptrdiff_t, size_t, HsPtr);
void hsprimitive_memset_Float(HsFloat *, ptrdiff_t, size_t, HsFloat);
void hsprimitive_memset_Double(HsDouble *, ptrdiff_t, size_t, HsDouble);
void hsprimitive_memset_Char(HsChar *, ptrdiff_t, size_t, HsChar);

#endif