1 /*
2  * Copyright (c) 2017 Intel Corporation
3  * SPDX-License-Identifier: BSD-2-Clause
4  */
5 
6 #ifndef GUFUNC_SCHEDULER
7 #define GUFUNC_SCHEDULER
8 
9 /* define int64_t and uint64_t for Visual Studio, where stdint only available > VS2008 */
10 #ifdef _MSC_VER
11     #define int64_t signed __int64
12     #define uint64_t unsigned __int64
13 #else
14     #include <stdint.h>
15 #endif
16 
17 #ifndef __SIZEOF_POINTER__
18     /* MSVC doesn't define __SIZEOF_POINTER__ */
19     #if defined(_WIN64)
20         #define intp int64_t
21         #define uintp uint64_t
22     #elif defined(_WIN32)
23         #define intp int
24         #define uintp unsigned
25     #else
26         #error "cannot determine size of intp"
27     #endif
28 #elif __SIZEOF_POINTER__ == 8
29     #define intp int64_t
30     #define uintp uint64_t
31 #else
32     #define intp int
33     #define uintp unsigned
34 #endif
35 
36 #ifdef __cplusplus
37 extern "C"
38 {
39 #endif
40 
41 void do_scheduling_signed(uintp num_dim, intp *starts, intp *ends, uintp num_threads, intp *sched, intp debug);
42 void do_scheduling_unsigned(uintp num_dim, intp *starts, intp *ends, uintp num_threads, uintp *sched, intp debug);
43 
44 #ifdef __cplusplus
45 }
46 #endif
47 
48 #endif
49