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