18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This file was generated automatically by ExtUtils::ParseXS version 2.18_02 from the
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * contents of Context.xs. Do not edit this file, edit Context.xs instead.
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt *	ANY CHANGES MADE HERE WILL BE LOST!
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt *
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#line 1 "Context.xs"
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Context.xs.  XS interfaces for perf script.
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (C) 2009 Tom Zanussi <tzanussi@gmail.com>
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  This program is free software; you can redistribute it and/or modify
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  it under the terms of the GNU General Public License as published by
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  the Free Software Foundation; either version 2 of the License, or
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  (at your option) any later version.
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  This program is distributed in the hope that it will be useful,
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  but WITHOUT ANY WARRANTY; without even the implied warranty of
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  GNU General Public License for more details.
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  You should have received a copy of the GNU General Public License
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  along with this program; if not, write to the Free Software
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "EXTERN.h"
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "perl.h"
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "XSUB.h"
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "../../../perf.h"
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "../../../util/trace-event.h"
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef PERL_UNUSED_VAR
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#  define PERL_UNUSED_VAR(var) if (0) var = var
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#line 42 "Context.c"
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtXS(XS_Perf__Trace__Context_common_pc); /* prototype to pass -Wmissing-prototypes */
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtXS(XS_Perf__Trace__Context_common_pc)
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef dVAR
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    dVAR; dXSARGS;
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#else
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    dXSARGS;
508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif
518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    if (items != 1)
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt       Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_pc", "context");
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    PERL_UNUSED_VAR(cv); /* -W */
548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    {
558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	struct scripting_context *	context = INT2PTR(struct scripting_context *,SvIV(ST(0)));
568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int	RETVAL;
578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	dXSTARG;
588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	RETVAL = common_pc(context);
608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	XSprePUSH; PUSHi((IV)RETVAL);
618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    }
628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    XSRETURN(1);
638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
668d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtXS(XS_Perf__Trace__Context_common_flags); /* prototype to pass -Wmissing-prototypes */
678d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtXS(XS_Perf__Trace__Context_common_flags)
688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef dVAR
708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    dVAR; dXSARGS;
718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#else
72    dXSARGS;
73#endif
74    if (items != 1)
75       Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_flags", "context");
76    PERL_UNUSED_VAR(cv); /* -W */
77    {
78	struct scripting_context *	context = INT2PTR(struct scripting_context *,SvIV(ST(0)));
79	int	RETVAL;
80	dXSTARG;
81
82	RETVAL = common_flags(context);
83	XSprePUSH; PUSHi((IV)RETVAL);
84    }
85    XSRETURN(1);
86}
87
88
89XS(XS_Perf__Trace__Context_common_lock_depth); /* prototype to pass -Wmissing-prototypes */
90XS(XS_Perf__Trace__Context_common_lock_depth)
91{
92#ifdef dVAR
93    dVAR; dXSARGS;
94#else
95    dXSARGS;
96#endif
97    if (items != 1)
98       Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_lock_depth", "context");
99    PERL_UNUSED_VAR(cv); /* -W */
100    {
101	struct scripting_context *	context = INT2PTR(struct scripting_context *,SvIV(ST(0)));
102	int	RETVAL;
103	dXSTARG;
104
105	RETVAL = common_lock_depth(context);
106	XSprePUSH; PUSHi((IV)RETVAL);
107    }
108    XSRETURN(1);
109}
110
111#ifdef __cplusplus
112extern "C"
113#endif
114XS(boot_Perf__Trace__Context); /* prototype to pass -Wmissing-prototypes */
115XS(boot_Perf__Trace__Context)
116{
117#ifdef dVAR
118    dVAR; dXSARGS;
119#else
120    dXSARGS;
121#endif
122    const char* file = __FILE__;
123
124    PERL_UNUSED_VAR(cv); /* -W */
125    PERL_UNUSED_VAR(items); /* -W */
126    XS_VERSION_BOOTCHECK ;
127
128        newXSproto("Perf::Trace::Context::common_pc", XS_Perf__Trace__Context_common_pc, file, "$");
129        newXSproto("Perf::Trace::Context::common_flags", XS_Perf__Trace__Context_common_flags, file, "$");
130        newXSproto("Perf::Trace::Context::common_lock_depth", XS_Perf__Trace__Context_common_lock_depth, file, "$");
131    if (PL_unitcheckav)
132         call_list(PL_scopestack_ix, PL_unitcheckav);
133    XSRETURN_YES;
134}
135
136