| /* |
| * Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| /** |
| * This file will test that the pnacl-generated wrapper functions match |
| * the comments in this IDL. |
| */ |
| |
| label Chrome { |
| M13 = 0.0, |
| M14 = 1.0, |
| M15 = 2.0 |
| }; |
| |
| describe { |
| void; |
| mem_t; |
| int32_t; |
| }; |
| |
| [passByValue, returnByValue] struct some_struct { |
| mem_t X; |
| int32_t Y; |
| }; |
| |
| struct some_struct2 { |
| mem_t X; |
| int32_t Y; |
| }; |
| |
| [union, passByValue, returnByValue] struct some_union { |
| mem_t X; |
| int32_t Y; |
| }; |
| |
| /* |
| * static int32_t |
| * Pnacl_M15_PPB_Iface_struct_wrap_foo1(int32_t a, struct some_struct* b) { |
| * const struct PPB_Iface_struct_wrap_2_0 *iface = |
| * Pnacl_WrapperInfo_PPB_Iface_struct_wrap_2_0.real_iface; |
| * return iface->foo1(a, *b); |
| * } |
| */ |
| [version=2.0] |
| interface PPB_Iface_struct_wrap { |
| int32_t foo1(int32_t a, [in] some_struct b); |
| }; |
| |
| /* |
| * static int32_t |
| * Pnacl_M15_PPB_Iface_union_wrap_foo1(int32_t a, union some_union* b) { |
| * const struct PPB_Iface_union_wrap_2_0 *iface = |
| * Pnacl_WrapperInfo_PPB_Iface_union_wrap_2_0.real_iface; |
| * return iface->foo1(a, *b); |
| * } |
| */ |
| [version=2.0] |
| interface PPB_Iface_union_wrap { |
| int32_t foo1(int32_t a, [in] some_union b); |
| }; |
| |
| |
| [version=2.0] |
| interface PPB_Iface_nowrap { |
| int32_t foo1(int32_t a, [in] some_struct2 b); |
| }; |
| |
| |
| /* |
| * static |
| * int32_t Pnacl_M13_PPB_SomeWrap_foo1(struct some_struct* a) { |
| * const struct PPB_SomeWrap_0_0 *iface = |
| * Pnacl_WrapperInfo_PPB_SomeWrap_0_0.real_iface; |
| * return iface->foo1(*a); |
| * } |
| * |
| * static |
| * void Pnacl_M13_PPB_SomeWrap_foo2(struct some_struct* _struct_result, |
| * int32_t a) { |
| * const struct PPB_SomeWrap_0_0 *iface = |
| * Pnacl_WrapperInfo_PPB_SomeWrap_0_0.real_iface; |
| * *_struct_result = iface->foo2(a); |
| * } |
| */ |
| [version=0.0] |
| interface PPB_SomeWrap { |
| int32_t foo1([in] some_struct a); |
| some_struct foo2([in] int32_t a); |
| |
| /* Not generating wrapper methods for PPB_SomeWrap_1_0 */ |
| [version=1.0] |
| int32_t foo1([in] some_struct[] a); |
| [version=1.0] |
| void foo2([in] int32_t a, [out] some_struct b); |
| |
| /* Not generating wrapper methods for PPB_SomeWrap */ |
| [version=2.0] |
| int32_t foo1([in] some_struct2 a); |
| }; |
| |
| |
| /* |
| * static int32_t Pnacl_M13_PPP_SomeWrap_foo1(struct some_struct a) { |
| * const struct PPP_SomeWrap_0_0 *iface = |
| * Pnacl_WrapperInfo_PPP_SomeWrap_0_0.real_iface; |
| * int32_t (*temp_fp)(struct some_struct* a) = |
| * ((int32_t (*)(struct some_struct* a))iface->foo1); |
| * return temp_fp(&a); |
| * } |
| * |
| * static struct some_struct Pnacl_M13_PPP_SomeWrap_foo2(int32_t a) { |
| * const struct PPP_SomeWrap_0_0 *iface = |
| * Pnacl_WrapperInfo_PPP_SomeWrap_0_0.real_iface; |
| * void (*temp_fp)(struct some_struct* _struct_result, int32_t a) = |
| * ((void (*)(struct some_struct* _struct_result, int32_t a))iface->foo2); |
| * struct some_struct _struct_result; |
| * temp_fp(&_struct_result, a); |
| * return _struct_result; |
| * } |
| * |
| * static struct some_struct Pnacl_M14_PPP_SomeWrap_foo2(int32_t a) { |
| * const struct PPP_SomeWrap_1_0 *iface = |
| * Pnacl_WrapperInfo_PPP_SomeWrap_1_0.real_iface; |
| * void (*temp_fp)(struct some_struct* _struct_result, int32_t a) = |
| * ((void (*)(struct some_struct* _struct_result, int32_t a))iface->foo2); |
| * struct some_struct _struct_result; |
| * temp_fp(&_struct_result, a); |
| * return _struct_result; |
| * } |
| * |
| * static int32_t Pnacl_M14_PPP_SomeWrap_foo1(const struct some_struct a[]) { |
| * const struct PPP_SomeWrap_1_0 *iface = |
| * Pnacl_WrapperInfo_PPP_SomeWrap_1_0.real_iface; |
| * int32_t (*temp_fp)(const struct some_struct a[]) = |
| * ((int32_t (*)(const struct some_struct a[]))iface->foo1); |
| * return temp_fp(a); |
| * } |
| */ |
| [version=0.0] |
| interface PPP_SomeWrap { |
| int32_t foo1([in] some_struct a); |
| some_struct foo2([in] int32_t a); |
| |
| [version=1.0] |
| int32_t foo1([in] some_struct[] a); |
| |
| /* Not generating wrapper interface for PPP_SomeWrap */ |
| [version=2.0] |
| int32_t foo1([in] some_struct2 a); |
| [version=2.0] |
| void foo2([in] int32_t a); |
| }; |
| |
| [no_interface_string] |
| interface PPP_NoIFString { |
| int32_t Dummy([in] some_struct a); |
| }; |
| |