1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// From ppb_file_mapping.idl modified Mon Jan 27 11:00:43 2014. 6 7#include "ppapi/c/pp_completion_callback.h" 8#include "ppapi/c/pp_errors.h" 9#include "ppapi/c/ppb_file_mapping.h" 10#include "ppapi/shared_impl/tracked_callback.h" 11#include "ppapi/thunk/enter.h" 12#include "ppapi/thunk/ppapi_thunk_export.h" 13#include "ppapi/thunk/ppb_file_mapping_api.h" 14 15namespace ppapi { 16namespace thunk { 17 18namespace { 19 20int32_t Map(PP_Instance instance, 21 PP_Resource file_io, 22 int64_t length, 23 uint32_t map_protection, 24 uint32_t map_flags, 25 int64_t offset, 26 void** address, 27 struct PP_CompletionCallback callback) { 28 VLOG(4) << "PPB_FileMapping::Map()"; 29 EnterInstanceAPI<PPB_FileMapping_API> enter(instance, callback); 30 if (enter.failed()) 31 return enter.retval(); 32 return enter.SetResult(enter.functions()->Map(instance, 33 file_io, 34 length, 35 map_protection, 36 map_flags, 37 offset, 38 address, 39 enter.callback())); 40} 41 42int32_t Unmap(PP_Instance instance, 43 const void* address, 44 int64_t length, 45 struct PP_CompletionCallback callback) { 46 VLOG(4) << "PPB_FileMapping::Unmap()"; 47 EnterInstanceAPI<PPB_FileMapping_API> enter(instance, callback); 48 if (enter.failed()) 49 return enter.retval(); 50 return enter.SetResult(enter.functions()->Unmap(instance, 51 address, 52 length, 53 enter.callback())); 54} 55 56int64_t GetMapPageSize(PP_Instance instance) { 57 VLOG(4) << "PPB_FileMapping::GetMapPageSize()"; 58 EnterInstanceAPI<PPB_FileMapping_API> enter(instance); 59 if (enter.failed()) 60 return 0; 61 return enter.functions()->GetMapPageSize(instance); 62} 63 64const PPB_FileMapping_0_1 g_ppb_filemapping_thunk_0_1 = { 65 &Map, 66 &Unmap, 67 &GetMapPageSize 68}; 69 70} // namespace 71 72PPAPI_THUNK_EXPORT const PPB_FileMapping_0_1* GetPPB_FileMapping_0_1_Thunk() { 73 return &g_ppb_filemapping_thunk_0_1; 74} 75 76} // namespace thunk 77} // namespace ppapi 78