2
* Copyright 2008-2011 NVIDIA Corporation
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
8
* http://www.apache.org/licenses/LICENSE-2.0
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
25
// an oracle to tell us how to define uint64_t
26
template<int word_size = sizeof(int*)> struct divine_uint64_t;
30
struct divine_uint64_t<4>
32
typedef unsigned long long int type;
37
struct divine_uint64_t<8>
39
typedef unsigned long long int type;
42
typedef unsigned int uint32_t;
43
typedef divine_uint64_t<>::type uint64_t;
46
// an oracle to tell us how to define intptr_t
47
template<int word_size = sizeof(int*)> struct divine_intptr_t;
49
// use uint32_t on 32b platforms
51
struct divine_intptr_t<4>
53
typedef thrust::detail::uint32_t type;
56
// use uint64_t on 64b platforms
58
struct divine_intptr_t<8>
60
typedef thrust::detail::uint64_t type;
63
typedef divine_intptr_t<>::type intptr_t;
64
typedef thrust::detail::intptr_t uintptr_t;