Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2388)

Unified Diff: ppapi/generators/test_gen_pnacl/test_interfaces.idl

Issue 8568025: Pnacl ppapi shim generator (from IDL), based on Noel's first cut. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/generators/pnacl_shim.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
+};
« no previous file with comments | « ppapi/generators/pnacl_shim.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698