This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
patch is silly when creating new files: don't run
[perl5.git] / perlapi.c
CommitLineData
1c846c1f 1/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
51371543
GS
2 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
3 perlvars.h and thrdvar.h. Any changes made here will be lost!
4*/
5
6#include "EXTERN.h"
7#include "perl.h"
8#include "perlapi.h"
9
acfe0abc 10#if defined (MULTIPLICITY)
51371543
GS
11
12/* accessor functions for Perl variables (provides binary compatibility) */
13START_EXTERN_C
14
15#undef PERLVAR
16#undef PERLVARA
17#undef PERLVARI
18#undef PERLVARIC
6f4183fe 19
6f4183fe
GS
20#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHX) \
21 { return &(aTHX->v); }
22#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHX) \
23 { return &(aTHX->v); }
6f4183fe 24
51371543 25#define PERLVARI(v,t,i) PERLVAR(v,t)
c5be433b 26#define PERLVARIC(v,t,i) PERLVAR(v, const t)
51371543
GS
27
28#include "thrdvar.h"
29#include "intrpvar.h"
c5be433b
GS
30
31#undef PERLVAR
32#undef PERLVARA
acfe0abc 33#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHX) \
c5be433b 34 { return &(PL_##v); }
acfe0abc 35#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHX) \
c5be433b 36 { return &(PL_##v); }
34f7a5fe 37#undef PERLVARIC
acfe0abc 38#define PERLVARIC(v,t,i) const t* Perl_##v##_ptr(pTHX) \
34f7a5fe 39 { return (const t *)&(PL_##v); }
51371543
GS
40#include "perlvars.h"
41
42#undef PERLVAR
43#undef PERLVARA
44#undef PERLVARI
45#undef PERLVARIC
46
51371543
GS
47END_EXTERN_C
48
acfe0abc 49#endif /* MULTIPLICITY */