15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/shared_impl/platform_file.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ppapi {
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TODO(piman/brettw): Change trusted interface to return a PP_FileHandle,
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// those casts are ugly.
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::PlatformFile IntToPlatformFile(int32_t handle) {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return reinterpret_cast<HANDLE>(static_cast<intptr_t>(handle));
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_POSIX)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return handle;
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#error Not implemented.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int32_t PlatformFileToInt(base::PlatformFile handle) {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return static_cast<int32_t>(reinterpret_cast<intptr_t>(handle));
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_POSIX)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return handle;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#error Not implemented.
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ppapi
32