StarPU Handbook
starpu_stdlib.h
Go to the documentation of this file.
1 /* StarPU --- Runtime system for heterogeneous multicore architectures.
2  *
3  * Copyright (C) 2010-2013,2015 CNRS
4  * Copyright (C) 2010-2016 Université de Bordeaux
5  *
6  * StarPU is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or (at
9  * your option) any later version.
10  *
11  * StarPU is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  *
15  * See the GNU Lesser General Public License in COPYING.LGPL for more details.
16  */
17 
18 #ifndef __STARPU_STDLIB_H__
19 #define __STARPU_STDLIB_H__
20 
21 #include <starpu.h>
22 
23 #ifdef __cplusplus
24 extern "C"
25 {
26 #endif
27 
28 #define STARPU_MALLOC_PINNED ((1ULL)<<1)
29 #define STARPU_MALLOC_COUNT ((1ULL)<<2)
30 #define STARPU_MALLOC_NORECLAIM ((1ULL)<<3)
31 
32 #define STARPU_MEMORY_WAIT ((1ULL)<<4)
33 #define STARPU_MEMORY_OVERFLOW ((1ULL)<<5)
34 
35 #define STARPU_MALLOC_SIMULATION_FOLDED ((1ULL)<<6)
36 
37 void starpu_malloc_set_align(size_t align);
38 
39 int starpu_malloc(void **A, size_t dim) STARPU_ATTRIBUTE_ALLOC_SIZE(2);
40 int starpu_free(void *A);
41 
42 int starpu_malloc_flags(void **A, size_t dim, int flags) STARPU_ATTRIBUTE_ALLOC_SIZE(2);
43 int starpu_free_flags(void *A, size_t dim, int flags);
44 
45 int starpu_memory_pin(void *addr, size_t size);
46 int starpu_memory_unpin(void *addr, size_t size);
47 
48 starpu_ssize_t starpu_memory_get_total(unsigned node);
49 starpu_ssize_t starpu_memory_get_available(unsigned node);
50 void starpu_memory_wait_available(unsigned node, size_t size);
51 
59 int starpu_memory_allocate(unsigned node, size_t size, int flags);
60 
67 void starpu_memory_deallocate(unsigned node, size_t size);
68 
69 void starpu_sleep(float nb_sec);
70 
71 #ifdef __cplusplus
72 }
73 #endif
74 
75 #endif /* __STARPU_STDLIB_H__ */
int starpu_memory_pin(void *addr, size_t size)
int starpu_memory_unpin(void *addr, size_t size)
int starpu_free_flags(void *A, size_t dim, int flags)
int starpu_malloc(void **A, size_t dim) STARPU_ATTRIBUTE_ALLOC_SIZE(2)
starpu_ssize_t starpu_memory_get_available(unsigned node)
void starpu_sleep(float nb_sec)
int starpu_free(void *A)
int starpu_memory_allocate(unsigned node, size_t size, int flags)
void starpu_malloc_set_align(size_t align)
int starpu_malloc_flags(void **A, size_t dim, int flags) STARPU_ATTRIBUTE_ALLOC_SIZE(2)
starpu_ssize_t starpu_memory_get_total(unsigned node)
void starpu_memory_wait_available(unsigned node, size_t size)
void starpu_memory_deallocate(unsigned node, size_t size)