public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ramkumar Ramachandra <artagnon@gmail.com>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>,
	Tom Zanussi <tom.zanussi@linux.intel.com>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH v3 4/5] perf/Perf-Trace-Util: regenerate Context.c
Date: Tue,  9 Jul 2013 15:30:32 +0530	[thread overview]
Message-ID: <1373364033-7918-5-git-send-email-artagnon@gmail.com> (raw)
In-Reply-To: <1373364033-7918-1-git-send-email-artagnon@gmail.com>

>From Context.xs, using the procedure described in the README.

Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
 tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 211 ++++++++++++++++++----
 1 file changed, 171 insertions(+), 40 deletions(-)

diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
index 790ceba..a2dfdf1 100644
--- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
+++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c
@@ -1,8 +1,8 @@
 /*
- * This file was generated automatically by ExtUtils::ParseXS version 2.18_02 from the
+ * This file was generated automatically by ExtUtils::ParseXS version 3.18 from the
  * contents of Context.xs. Do not edit this file, edit Context.xs instead.
  *
- *	ANY CHANGES MADE HERE WILL BE LOST! 
+ *    ANY CHANGES MADE HERE WILL BE LOST!
  *
  */
 
@@ -34,25 +34,159 @@
 #include "../../../perf.h"
 #include "../../../util/trace-event.h"
 
+#line 38 "Context.c"
 #ifndef PERL_UNUSED_VAR
 #  define PERL_UNUSED_VAR(var) if (0) var = var
 #endif
 
-#line 42 "Context.c"
+#ifndef dVAR
+#  define dVAR		dNOOP
+#endif
+
+
+/* This stuff is not part of the API! You have been warned. */
+#ifndef PERL_VERSION_DECIMAL
+#  define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s)
+#endif
+#ifndef PERL_DECIMAL_VERSION
+#  define PERL_DECIMAL_VERSION \
+	  PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)
+#endif
+#ifndef PERL_VERSION_GE
+#  define PERL_VERSION_GE(r,v,s) \
+	  (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s))
+#endif
+#ifndef PERL_VERSION_LE
+#  define PERL_VERSION_LE(r,v,s) \
+	  (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s))
+#endif
+
+/* XS_INTERNAL is the explicit static-linkage variant of the default
+ * XS macro.
+ *
+ * XS_EXTERNAL is the same as XS_INTERNAL except it does not include
+ * "STATIC", ie. it exports XSUB symbols. You probably don't want that
+ * for anything but the BOOT XSUB.
+ *
+ * See XSUB.h in core!
+ */
+
+
+/* TODO: This might be compatible further back than 5.10.0. */
+#if PERL_VERSION_GE(5, 10, 0) && PERL_VERSION_LE(5, 15, 1)
+#  undef XS_EXTERNAL
+#  undef XS_INTERNAL
+#  if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
+#    define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name)
+#    define XS_INTERNAL(name) STATIC XSPROTO(name)
+#  endif
+#  if defined(__SYMBIAN32__)
+#    define XS_EXTERNAL(name) EXPORT_C XSPROTO(name)
+#    define XS_INTERNAL(name) EXPORT_C STATIC XSPROTO(name)
+#  endif
+#  ifndef XS_EXTERNAL
+#    if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
+#      define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__)
+#      define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__)
+#    else
+#      ifdef __cplusplus
+#        define XS_EXTERNAL(name) extern "C" XSPROTO(name)
+#        define XS_INTERNAL(name) static XSPROTO(name)
+#      else
+#        define XS_EXTERNAL(name) XSPROTO(name)
+#        define XS_INTERNAL(name) STATIC XSPROTO(name)
+#      endif
+#    endif
+#  endif
+#endif
+
+/* perl >= 5.10.0 && perl <= 5.15.1 */
+
+
+/* The XS_EXTERNAL macro is used for functions that must not be static
+ * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL
+ * macro defined, the best we can do is assume XS is the same.
+ * Dito for XS_INTERNAL.
+ */
+#ifndef XS_EXTERNAL
+#  define XS_EXTERNAL(name) XS(name)
+#endif
+#ifndef XS_INTERNAL
+#  define XS_INTERNAL(name) XS(name)
+#endif
+
+/* Now, finally, after all this mess, we want an ExtUtils::ParseXS
+ * internal macro that we're free to redefine for varying linkage due
+ * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use
+ * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to!
+ */
+
+#undef XS_EUPXS
+#if defined(PERL_EUPXS_ALWAYS_EXPORT)
+#  define XS_EUPXS(name) XS_EXTERNAL(name)
+#else
+   /* default to internal */
+#  define XS_EUPXS(name) XS_INTERNAL(name)
+#endif
+
+#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
+#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)
+
+/* prototype to pass -Wmissing-prototypes */
+STATIC void
+S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params);
 
-XS(XS_Perf__Trace__Context_common_pc); /* prototype to pass -Wmissing-prototypes */
-XS(XS_Perf__Trace__Context_common_pc)
+STATIC void
+S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
 {
-#ifdef dVAR
-    dVAR; dXSARGS;
+    const GV *const gv = CvGV(cv);
+
+    PERL_ARGS_ASSERT_CROAK_XS_USAGE;
+
+    if (gv) {
+        const char *const gvname = GvNAME(gv);
+        const HV *const stash = GvSTASH(gv);
+        const char *const hvname = stash ? HvNAME(stash) : NULL;
+
+        if (hvname)
+            Perl_croak(aTHX_ "Usage: %s::%s(%s)", hvname, gvname, params);
+        else
+            Perl_croak(aTHX_ "Usage: %s(%s)", gvname, params);
+    } else {
+        /* Pants. I don't think that it should be possible to get here. */
+        Perl_croak(aTHX_ "Usage: CODE(0x%"UVxf")(%s)", PTR2UV(cv), params);
+    }
+}
+#undef  PERL_ARGS_ASSERT_CROAK_XS_USAGE
+
+#ifdef PERL_IMPLICIT_CONTEXT
+#define croak_xs_usage(a,b)    S_croak_xs_usage(aTHX_ a,b)
 #else
-    dXSARGS;
+#define croak_xs_usage        S_croak_xs_usage
 #endif
+
+#endif
+
+/* NOTE: the prototype of newXSproto() is different in versions of perls,
+ * so we define a portable version of newXSproto()
+ */
+#ifdef newXS_flags
+#define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0)
+#else
+#define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
+#endif /* !defined(newXS_flags) */
+
+#line 180 "Context.c"
+
+XS_EUPXS(XS_Perf__Trace__Context_common_pc); /* prototype to pass -Wmissing-prototypes */
+XS_EUPXS(XS_Perf__Trace__Context_common_pc)
+{
+    dVAR; dXSARGS;
     if (items != 1)
-       Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_pc", "context");
-    PERL_UNUSED_VAR(cv); /* -W */
+       croak_xs_usage(cv,  "context");
     {
-	struct scripting_context *	context = INT2PTR(struct scripting_context *,SvIV(ST(0)));
+	struct scripting_context *	context = INT2PTR(struct scripting_context *,SvIV(ST(0)))
+;
 	int	RETVAL;
 	dXSTARG;
 
@@ -63,19 +197,15 @@ XS(XS_Perf__Trace__Context_common_pc)
 }
 
 
-XS(XS_Perf__Trace__Context_common_flags); /* prototype to pass -Wmissing-prototypes */
-XS(XS_Perf__Trace__Context_common_flags)
+XS_EUPXS(XS_Perf__Trace__Context_common_flags); /* prototype to pass -Wmissing-prototypes */
+XS_EUPXS(XS_Perf__Trace__Context_common_flags)
 {
-#ifdef dVAR
     dVAR; dXSARGS;
-#else
-    dXSARGS;
-#endif
     if (items != 1)
-       Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_flags", "context");
-    PERL_UNUSED_VAR(cv); /* -W */
+       croak_xs_usage(cv,  "context");
     {
-	struct scripting_context *	context = INT2PTR(struct scripting_context *,SvIV(ST(0)));
+	struct scripting_context *	context = INT2PTR(struct scripting_context *,SvIV(ST(0)))
+;
 	int	RETVAL;
 	dXSTARG;
 
@@ -86,19 +216,15 @@ XS(XS_Perf__Trace__Context_common_flags)
 }
 
 
-XS(XS_Perf__Trace__Context_common_lock_depth); /* prototype to pass -Wmissing-prototypes */
-XS(XS_Perf__Trace__Context_common_lock_depth)
+XS_EUPXS(XS_Perf__Trace__Context_common_lock_depth); /* prototype to pass -Wmissing-prototypes */
+XS_EUPXS(XS_Perf__Trace__Context_common_lock_depth)
 {
-#ifdef dVAR
     dVAR; dXSARGS;
-#else
-    dXSARGS;
-#endif
     if (items != 1)
-       Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_lock_depth", "context");
-    PERL_UNUSED_VAR(cv); /* -W */
+       croak_xs_usage(cv,  "context");
     {
-	struct scripting_context *	context = INT2PTR(struct scripting_context *,SvIV(ST(0)));
+	struct scripting_context *	context = INT2PTR(struct scripting_context *,SvIV(ST(0)))
+;
 	int	RETVAL;
 	dXSTARG;
 
@@ -111,25 +237,30 @@ XS(XS_Perf__Trace__Context_common_lock_depth)
 #ifdef __cplusplus
 extern "C"
 #endif
-XS(boot_Perf__Trace__Context); /* prototype to pass -Wmissing-prototypes */
-XS(boot_Perf__Trace__Context)
+XS_EXTERNAL(boot_Perf__Trace__Context); /* prototype to pass -Wmissing-prototypes */
+XS_EXTERNAL(boot_Perf__Trace__Context)
 {
-#ifdef dVAR
     dVAR; dXSARGS;
+#if (PERL_REVISION == 5 && PERL_VERSION < 9)
+    char* file = __FILE__;
 #else
-    dXSARGS;
-#endif
     const char* file = __FILE__;
+#endif
 
     PERL_UNUSED_VAR(cv); /* -W */
     PERL_UNUSED_VAR(items); /* -W */
-    XS_VERSION_BOOTCHECK ;
+#ifdef XS_APIVERSION_BOOTCHECK
+    XS_APIVERSION_BOOTCHECK;
+#endif
+    XS_VERSION_BOOTCHECK;
 
-        newXSproto("Perf::Trace::Context::common_pc", XS_Perf__Trace__Context_common_pc, file, "$");
-        newXSproto("Perf::Trace::Context::common_flags", XS_Perf__Trace__Context_common_flags, file, "$");
-        newXSproto("Perf::Trace::Context::common_lock_depth", XS_Perf__Trace__Context_common_lock_depth, file, "$");
-    if (PL_unitcheckav)
-         call_list(PL_scopestack_ix, PL_unitcheckav);
+        (void)newXSproto_portable("Perf::Trace::Context::common_pc", XS_Perf__Trace__Context_common_pc, file, "$");
+        (void)newXSproto_portable("Perf::Trace::Context::common_flags", XS_Perf__Trace__Context_common_flags, file, "$");
+        (void)newXSproto_portable("Perf::Trace::Context::common_lock_depth", XS_Perf__Trace__Context_common_lock_depth, file, "$");
+#if (PERL_REVISION == 5 && PERL_VERSION >= 9)
+  if (PL_unitcheckav)
+       call_list(PL_scopestack_ix, PL_unitcheckav);
+#endif
     XSRETURN_YES;
 }
 
-- 
1.8.3.2.736.g869de25


  parent reply	other threads:[~2013-07-09 10:04 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-09 10:00 [PATCH v3 0/5] Minor perf build fixes Ramkumar Ramachandra
2013-07-09 10:00 ` [PATCH v3 1/5] perf/Makefile: do not open-code shell-sq Ramkumar Ramachandra
2013-07-09 10:00 ` [PATCH v3 2/5] perf/Perf-Trace-Util: fix broken include in Context.xs Ramkumar Ramachandra
2013-07-12  8:52   ` [tip:perf/urgent] perf script: Fix " tip-bot for Ramkumar Ramachandra
2013-07-09 10:00 ` [PATCH v3 3/5] perf: squelch warnings from perl.h to compile-pass Ramkumar Ramachandra
     [not found]   ` <20130710171640.GA2758@ghostprotocols.net>
2013-07-10 17:22     ` Ramkumar Ramachandra
2013-07-09 10:00 ` Ramkumar Ramachandra [this message]
2013-07-09 10:00 ` [PATCH v3 5/5] perf/Perf-Trace-Util: add .gitignore Ramkumar Ramachandra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1373364033-7918-5-git-send-email-artagnon@gmail.com \
    --to=artagnon@gmail.com \
    --cc=acme@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namhyung@kernel.org \
    --cc=tom.zanussi@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox