| Index: ppapi/generators/test_gen_pnacl/test_interfaces.idl
|
| diff --git a/ppapi/generators/test_gen_pnacl/test_interfaces.idl b/ppapi/generators/test_gen_pnacl/test_interfaces.idl
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..731fce0941c2618467e6a56f16f3fb94fc9761c9
|
| --- /dev/null
|
| +++ b/ppapi/generators/test_gen_pnacl/test_interfaces.idl
|
| @@ -0,0 +1,150 @@
|
| +/*
|
| + * 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 __attribute__((pnaclcall)) int32_t
|
| + * Pnacl_M15_PPB_Iface_struct_wrap_foo1(int32_t a, struct some_struct b) {
|
| + * const struct PPB_Iface_struct_wrap *iface =
|
| + * Pnacl_WrapperInfo_PPB_Iface_struct_wrap.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 __attribute__((pnaclcall)) int32_t
|
| + * Pnacl_M15_PPB_Iface_union_wrap_foo1(int32_t a, union some_union b) {
|
| + * const struct PPB_Iface_union_wrap *iface =
|
| + * Pnacl_WrapperInfo_PPB_Iface_union_wrap.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 __attribute__((pnaclcall))
|
| + * 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 __attribute__((pnaclcall))
|
| + * struct some_struct Pnacl_M13_PPB_SomeWrap_foo2(int32_t a) {
|
| + * const struct PPB_SomeWrap_0_0 *iface =
|
| + * Pnacl_WrapperInfo_PPB_SomeWrap_0_0.real_iface;
|
| + * return 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 (__attribute__((pnaclcall)) *temp_fp)(struct some_struct a) =
|
| + * ((int32_t (__attribute__((pnaclcall)) *)(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;
|
| + * struct some_struct (__attribute__((pnaclcall)) *temp_fp)(int32_t a) =
|
| + * ((struct some_struct (__attribute__((pnaclcall)) *)(int32_t a))iface->foo2);
|
| + * return temp_fp(a);
|
| + * }
|
| + *
|
| + * 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;
|
| + * struct some_struct (__attribute__((pnaclcall)) *temp_fp)(int32_t a) =
|
| + * ((struct some_struct (__attribute__((pnaclcall)) *)(int32_t a))iface->foo2);
|
| + * return temp_fp(a);
|
| + * }
|
| + *
|
| + * 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 (__attribute__((pnaclcall)) *temp_fp)(const struct some_struct a[]) =
|
| + * ((int32_t (__attribute__((pnaclcall)) *)(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);
|
| +};
|
|
|