# creates a C API file from proto.h
# takes one argument, the path to lib/CORE directory.
-# creates 2 files: "PerlCAPI.cpp" and "PerlCAPI.h".
+# creates 2 files: "perlCAPI.cpp" and "perlCAPI.h".
-my $hdrfile = "$ARGV[0]\\PerlCAPI.h";
-my $infile = '..\\proto.h';
-my $embedfile = '..\\embed.h';
+my $hdrfile = "$ARGV[0]/perlCAPI.h";
+my $infile = '../proto.h';
+my @embedsyms = ('../global.sym', '../pp.sym');
my $separateObj = 0;
my %skip_list;
my %embed;
-sub readembed(\%$) {
- my ($syms, $file) = @_;
+sub readsyms(\%@) {
+ my ($syms, @files) = @_;
my ($line, @words);
%$syms = ();
- local (*FILE, $_);
- open(FILE, "< $file")
- or die "$0: Can't open $file: $!\n";
- while ($line = <FILE>) {
- chop($line);
- if ($line =~ /^#define\s+\w+/) {
- $line =~ s/^#define\s+//;
- @words = split ' ', $line;
-# print "$words[0]\t$words[1]\n";
- $$syms{$words[0]} = $words[1];
+ foreach my $file (@files) {
+ local (*FILE, $_);
+ open(FILE, "< $file")
+ or die "$0: Can't open $file: $!\n";
+ while (<FILE>) {
+ s/[ \t]*#.*$//; # delete comments
+ if (/^\s*(\S+)\s*$/) {
+ my $sym = $1;
+ $$syms{$sym} = "Perl_$sym";
+ }
}
+ close(FILE);
}
- close(FILE);
}
-readembed %embed, $embedfile;
+readsyms %embed, @embedsyms;
sub skip_these {
my $list = shift;
}
skip_these [qw(
+yylex
cando
cast_ulong
my_chsize
debop
debstack
debstackptrs
+dump_fds
+dump_mstats
fprintf
find_threadsv
magic_mutexfree
+my_memcmp
+my_memset
my_pclose
my_popen
my_swap
safexrealloc
safexfree
Perl_GetVars
+malloced_size
)];
return 1;
}
-if (!open(OUTFILE, ">PerlCAPI.cpp")) {
- print "open of PerlCAPI.cpp failed: $!\n";
+if (!open(OUTFILE, ">perlCAPI.cpp")) {
+ print "open of perlCAPI.cpp failed: $!\n";
return 1;
}
@args = split(',', $args);
if ($args[$#args] =~ /\s*\.\.\.\s*/) {
if(($name eq "croak") or ($name eq "deb") or ($name eq "die")
- or ($name eq "form") or ($name eq "warn")) {
+ or ($name eq "form") or ($name eq "warn")
+ or ($name eq "warner")) {
print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0);
- $args[0] =~ /(\w+)\W*$/;
- $arg = $1;
+ for (@args) { $_ = $1 if /(\w+)\W*$/; }
+ $arg = $args[$#args-1];
+ my $start = '';
+ $start = join(', ',@args[0 .. ($#args - 2)]) if @args > 2;
+ $start .= ', ' if $start;
print OUTFILE <<ENDCODE;
#undef $name
pmsg = pPerl->Perl_mess($arg, &args);
New(0, pstr, strlen(pmsg)+1, char);
strcpy(pstr, pmsg);
-$return pPerl->Perl_$name(pstr);
+$return pPerl->Perl_$name($start pstr);
va_end(args);
}
ENDCODE
ENDCODE
print OUTFILE "#endif\n" unless ($separateObj == 0);
}
+ elsif($name eq "sv_catpvf_mg") {
+ print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0);
+ $args[0] =~ /(\w+)\W*$/;
+ $arg0 = $1;
+ $args[1] =~ /(\w+)\W*$/;
+ $arg1 = $1;
+ print OUTFILE <<ENDCODE;
+
+#undef $name
+#ifndef mg_set
+#define mg_set pPerl->Perl_mg_set
+#endif
+extern "C" $type $funcName ($args)
+{
+ va_list args;
+ va_start(args, $arg1);
+ pPerl->Perl_sv_vcatpvfn($arg0, $arg1, strlen($arg1), &args, NULL, 0, NULL);
+ va_end(args);
+ SvSETMAGIC(sv);
+}
+ENDCODE
+ print OUTFILE "#endif\n" unless ($separateObj == 0);
+ }
elsif($name eq "sv_setpvf") {
print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0);
$args[0] =~ /(\w+)\W*$/;
ENDCODE
print OUTFILE "#endif\n" unless ($separateObj == 0);
}
+ elsif($name eq "sv_setpvf_mg") {
+ print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0);
+ $args[0] =~ /(\w+)\W*$/;
+ $arg0 = $1;
+ $args[1] =~ /(\w+)\W*$/;
+ $arg1 = $1;
+ print OUTFILE <<ENDCODE;
+
+#undef $name
+#ifndef mg_set
+#define mg_set pPerl->Perl_mg_set
+#endif
+extern "C" $type $funcName ($args)
+{
+ va_list args;
+ va_start(args, $arg1);
+ pPerl->Perl_sv_vsetpvfn($arg0, $arg1, strlen($arg1), &args, NULL, 0, NULL);
+ va_end(args);
+ SvSETMAGIC(sv);
+}
+ENDCODE
+ print OUTFILE "#endif\n" unless ($separateObj == 0);
+ }
elsif($name eq "fprintf") {
print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0);
$args[0] =~ /(\w+)\W*$/;
print OUTFILE "#endif\n" unless ($separateObj == 0);
next;
}
+ # handle special case for perl_atexit
+ if ($name eq "perl_atexit") {
+ print OUTFILE <<ENDCODE;
+
+#undef $name
+extern "C" $type $name ($args)
+{
+ pPerl->perl_atexit(fn, ptr);
+}
+ENDCODE
+ print OUTFILE "#endif\n" unless ($separateObj == 0);
+ next;
+ }
+
+
+ if($name eq "byterun" and $args eq "struct bytestream bs") {
+ next;
+ }
# foo(void);
if ($args eq "void") {
#undef $name
extern "C" $type $funcName ($args)
{
-$return pPerl->$funcName
ENDCODE
-
+ print OUTFILE "$return pPerl->$funcName";
$doneone = 0;
foreach $arg (@args) {
if ($arg =~ /(\w+)\W*$/) {
sortstack
signalstack
mystrk
-dumplvl
oldlastpm
gensym
preambled
ors
opsave
eval_mutex
+strtab_mutex
orslen
ofmt
-mh
modcount
generation
DBcv
sortcxix
lastgotoprobe
regdummy
-regparse
+regcomp_parse
regxend
regcode
regnaughty
regflags
regseen
seen_zerolen
-rx
+regcomp_rx
extralen
colorset
colors
sublex_info
thrsv
threadnum
-piMem
-piENV
-piStdIO
-piLIO
-piDir
-piSock
-piProc
+PL_piMem
+PL_piENV
+PL_piStdIO
+PL_piLIO
+PL_piDir
+PL_piSock
+PL_piProc
cshname
threadsv_names
thread
malloc_mutex
svref_mutex
sv_mutex
+cred_mutex
nthreads_cond
eval_cond
cryptseen
cshlen
+watchaddr
+watchok
)];
sub readvars(\%$$) {
print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0);
print OUTFILE <<ENDCODE;
-extern "C" $type * _Perl_$name ()
+#undef PL_$name
+extern "C" $type * _PL_$name ()
{
- return (($type *)&pPerl->Perl_$name);
+ return (($type *)&pPerl->PL_$name);
}
ENDCODE
print HDRFILE <<ENDCODE;
-#undef Perl_$name
-$type * _Perl_$name ();
-#define Perl_$name (*_Perl_$name())
+#undef PL_$name
+$type * _PL_$name ();
+#define PL_$name (*_PL_$name())
ENDCODE
extern "C" {
+
+
+char ** _Perl_op_desc(void)
+{
+ return pPerl->Perl_get_op_descs();
+}
+
+char ** _Perl_op_name(void)
+{
+ return pPerl->Perl_get_op_names();
+}
+
+char * _Perl_no_modify(void)
+{
+ return pPerl->Perl_get_no_modify();
+}
+
+U32 * _Perl_opargs(void)
+{
+ return pPerl->Perl_get_opargs();
+}
+
void xs_handler(CV* cv, CPerlObj* p)
{
void(*func)(CV*);
{
}
-#undef piMem
-#undef piENV
-#undef piStdIO
-#undef piLIO
-#undef piDir
-#undef piSock
-#undef piProc
+#undef PL_piMem
+#undef PL_piENV
+#undef PL_piStdIO
+#undef PL_piLIO
+#undef PL_piDir
+#undef PL_piSock
+#undef PL_piProc
int * _win32_errno(void)
{
FILE* _win32_stdin(void)
{
- return (FILE*)pPerl->piStdIO->Stdin();
+ return (FILE*)pPerl->PL_piStdIO->Stdin();
}
FILE* _win32_stdout(void)
{
- return (FILE*)pPerl->piStdIO->Stdout();
+ return (FILE*)pPerl->PL_piStdIO->Stdout();
}
FILE* _win32_stderr(void)
{
- return (FILE*)pPerl->piStdIO->Stderr();
+ return (FILE*)pPerl->PL_piStdIO->Stderr();
}
int _win32_ferror(FILE *fp)
{
- return pPerl->piStdIO->Error((PerlIO*)fp, ErrorNo());
+ return pPerl->PL_piStdIO->Error((PerlIO*)fp, ErrorNo());
}
int _win32_feof(FILE *fp)
{
- return pPerl->piStdIO->Eof((PerlIO*)fp, ErrorNo());
+ return pPerl->PL_piStdIO->Eof((PerlIO*)fp, ErrorNo());
}
char* _win32_strerror(int e)
int _win32_vfprintf(FILE *pf, const char *format, va_list arg)
{
- return pPerl->piStdIO->Vprintf((PerlIO*)pf, ErrorNo(), format, arg);
+ return pPerl->PL_piStdIO->Vprintf((PerlIO*)pf, ErrorNo(), format, arg);
}
int _win32_vprintf(const char *format, va_list arg)
{
- return pPerl->piStdIO->Vprintf(pPerl->piStdIO->Stdout(), ErrorNo(), format, arg);
+ return pPerl->PL_piStdIO->Vprintf(pPerl->PL_piStdIO->Stdout(), ErrorNo(), format, arg);
}
int _win32_fprintf(FILE *pf, const char *format, ...)
size_t _win32_fread(void *buf, size_t size, size_t count, FILE *pf)
{
- return pPerl->piStdIO->Read((PerlIO*)pf, buf, (size*count), ErrorNo());
+ return pPerl->PL_piStdIO->Read((PerlIO*)pf, buf, (size*count), ErrorNo());
}
size_t _win32_fwrite(const void *buf, size_t size, size_t count, FILE *pf)
{
- return pPerl->piStdIO->Write((PerlIO*)pf, buf, (size*count), ErrorNo());
+ return pPerl->PL_piStdIO->Write((PerlIO*)pf, buf, (size*count), ErrorNo());
}
FILE* _win32_fopen(const char *path, const char *mode)
{
- return (FILE*)pPerl->piStdIO->Open(path, mode, ErrorNo());
+ return (FILE*)pPerl->PL_piStdIO->Open(path, mode, ErrorNo());
}
FILE* _win32_fdopen(int fh, const char *mode)
{
- return (FILE*)pPerl->piStdIO->Fdopen(fh, mode, ErrorNo());
+ return (FILE*)pPerl->PL_piStdIO->Fdopen(fh, mode, ErrorNo());
}
FILE* _win32_freopen(const char *path, const char *mode, FILE *pf)
{
- return (FILE*)pPerl->piStdIO->Reopen(path, mode, (PerlIO*)pf, ErrorNo());
+ return (FILE*)pPerl->PL_piStdIO->Reopen(path, mode, (PerlIO*)pf, ErrorNo());
}
int _win32_fclose(FILE *pf)
{
- return pPerl->piStdIO->Close((PerlIO*)pf, ErrorNo());
+ return pPerl->PL_piStdIO->Close((PerlIO*)pf, ErrorNo());
}
int _win32_fputs(const char *s,FILE *pf)
{
- return pPerl->piStdIO->Puts((PerlIO*)pf, s, ErrorNo());
+ return pPerl->PL_piStdIO->Puts((PerlIO*)pf, s, ErrorNo());
}
int _win32_fputc(int c,FILE *pf)
{
- return pPerl->piStdIO->Putc((PerlIO*)pf, c, ErrorNo());
+ return pPerl->PL_piStdIO->Putc((PerlIO*)pf, c, ErrorNo());
}
int _win32_ungetc(int c,FILE *pf)
{
- return pPerl->piStdIO->Ungetc((PerlIO*)pf, c, ErrorNo());
+ return pPerl->PL_piStdIO->Ungetc((PerlIO*)pf, c, ErrorNo());
}
int _win32_getc(FILE *pf)
{
- return pPerl->piStdIO->Getc((PerlIO*)pf, ErrorNo());
+ return pPerl->PL_piStdIO->Getc((PerlIO*)pf, ErrorNo());
}
int _win32_fileno(FILE *pf)
{
- return pPerl->piStdIO->Fileno((PerlIO*)pf, ErrorNo());
+ return pPerl->PL_piStdIO->Fileno((PerlIO*)pf, ErrorNo());
}
void _win32_clearerr(FILE *pf)
{
- pPerl->piStdIO->Clearerr((PerlIO*)pf, ErrorNo());
+ pPerl->PL_piStdIO->Clearerr((PerlIO*)pf, ErrorNo());
}
int _win32_fflush(FILE *pf)
{
- return pPerl->piStdIO->Flush((PerlIO*)pf, ErrorNo());
+ return pPerl->PL_piStdIO->Flush((PerlIO*)pf, ErrorNo());
}
long _win32_ftell(FILE *pf)
{
- return pPerl->piStdIO->Tell((PerlIO*)pf, ErrorNo());
+ return pPerl->PL_piStdIO->Tell((PerlIO*)pf, ErrorNo());
}
int _win32_fseek(FILE *pf,long offset,int origin)
{
- return pPerl->piStdIO->Seek((PerlIO*)pf, offset, origin, ErrorNo());
+ return pPerl->PL_piStdIO->Seek((PerlIO*)pf, offset, origin, ErrorNo());
}
int _win32_fgetpos(FILE *pf,fpos_t *p)
{
- return pPerl->piStdIO->Getpos((PerlIO*)pf, p, ErrorNo());
+ return pPerl->PL_piStdIO->Getpos((PerlIO*)pf, p, ErrorNo());
}
int _win32_fsetpos(FILE *pf,const fpos_t *p)
{
- return pPerl->piStdIO->Setpos((PerlIO*)pf, p, ErrorNo());
+ return pPerl->PL_piStdIO->Setpos((PerlIO*)pf, p, ErrorNo());
}
void _win32_rewind(FILE *pf)
{
- pPerl->piStdIO->Rewind((PerlIO*)pf, ErrorNo());
+ pPerl->PL_piStdIO->Rewind((PerlIO*)pf, ErrorNo());
}
FILE* _win32_tmpfile(void)
{
- return (FILE*)pPerl->piStdIO->Tmpfile(ErrorNo());
+ return (FILE*)pPerl->PL_piStdIO->Tmpfile(ErrorNo());
}
void _win32_setbuf(FILE *pf, char *buf)
{
- pPerl->piStdIO->SetBuf((PerlIO*)pf, buf, ErrorNo());
+ pPerl->PL_piStdIO->SetBuf((PerlIO*)pf, buf, ErrorNo());
}
int _win32_setvbuf(FILE *pf, char *buf, int type, size_t size)
{
- return pPerl->piStdIO->SetVBuf((PerlIO*)pf, buf, type, size, ErrorNo());
+ return pPerl->PL_piStdIO->SetVBuf((PerlIO*)pf, buf, type, size, ErrorNo());
+}
+
+char* _win32_fgets(char *s, int n, FILE *pf)
+{
+ return pPerl->PL_piStdIO->Gets((PerlIO*)pf, s, n, ErrorNo());
+}
+
+char* _win32_gets(char *s)
+{
+ return _win32_fgets(s, 80, (FILE*)pPerl->PL_piStdIO->Stdin());
}
int _win32_fgetc(FILE *pf)
{
- return pPerl->piStdIO->Getc((PerlIO*)pf, ErrorNo());
+ return pPerl->PL_piStdIO->Getc((PerlIO*)pf, ErrorNo());
}
int _win32_putc(int c, FILE *pf)
{
- return pPerl->piStdIO->Putc((PerlIO*)pf, c, ErrorNo());
+ return pPerl->PL_piStdIO->Putc((PerlIO*)pf, c, ErrorNo());
}
int _win32_puts(const char *s)
{
- return pPerl->piStdIO->Puts(pPerl->piStdIO->Stdout(), s, ErrorNo());
+ return pPerl->PL_piStdIO->Puts(pPerl->PL_piStdIO->Stdout(), s, ErrorNo());
}
int _win32_getchar(void)
{
- return pPerl->piStdIO->Getc(pPerl->piStdIO->Stdin(), ErrorNo());
+ return pPerl->PL_piStdIO->Getc(pPerl->PL_piStdIO->Stdin(), ErrorNo());
}
int _win32_putchar(int c)
{
- return pPerl->piStdIO->Putc(pPerl->piStdIO->Stdout(), c, ErrorNo());
+ return pPerl->PL_piStdIO->Putc(pPerl->PL_piStdIO->Stdout(), c, ErrorNo());
}
void* _win32_malloc(size_t size)
{
- return pPerl->piMem->Malloc(size);
+ return pPerl->PL_piMem->Malloc(size);
}
void* _win32_calloc(size_t numitems, size_t size)
{
- return pPerl->piMem->Malloc(numitems*size);
+ return pPerl->PL_piMem->Malloc(numitems*size);
}
void* _win32_realloc(void *block, size_t size)
{
- return pPerl->piMem->Realloc(block, size);
+ return pPerl->PL_piMem->Realloc(block, size);
}
void _win32_free(void *block)
{
- pPerl->piMem->Free(block);
+ pPerl->PL_piMem->Free(block);
}
void _win32_abort(void)
{
- pPerl->piProc->Abort();
+ pPerl->PL_piProc->Abort();
}
int _win32_pipe(int *phandles, unsigned int psize, int textmode)
{
- return pPerl->piProc->Pipe(phandles);
+ return pPerl->PL_piProc->Pipe(phandles);
}
FILE* _win32_popen(const char *command, const char *mode)
{
- return (FILE*)pPerl->piProc->Popen(command, mode);
+ return (FILE*)pPerl->PL_piProc->Popen(command, mode);
}
int _win32_pclose(FILE *pf)
{
- return pPerl->piProc->Pclose((PerlIO*)pf);
+ return pPerl->PL_piProc->Pclose((PerlIO*)pf);
}
unsigned _win32_sleep(unsigned int t)
{
- return pPerl->piProc->Sleep(t);
+ return pPerl->PL_piProc->Sleep(t);
}
int _win32_spawnvp(int mode, const char *cmdname, const char *const *argv)
{
- return pPerl->piProc->Spawnvp(mode, cmdname, argv);
+ return pPerl->PL_piProc->Spawnvp(mode, cmdname, argv);
}
int _win32_mkdir(const char *dir, int mode)
{
- return pPerl->piDir->Makedir(dir, mode, ErrorNo());
+ return pPerl->PL_piDir->Makedir(dir, mode, ErrorNo());
}
int _win32_rmdir(const char *dir)
{
- return pPerl->piDir->Rmdir(dir, ErrorNo());
+ return pPerl->PL_piDir->Rmdir(dir, ErrorNo());
}
int _win32_chdir(const char *dir)
{
- return pPerl->piDir->Chdir(dir, ErrorNo());
+ return pPerl->PL_piDir->Chdir(dir, ErrorNo());
}
#undef stat
int _win32_fstat(int fd,struct stat *sbufptr)
{
- return pPerl->piLIO->FileStat(fd, sbufptr, ErrorNo());
+ return pPerl->PL_piLIO->FileStat(fd, sbufptr, ErrorNo());
}
int _win32_stat(const char *name,struct stat *sbufptr)
{
- return pPerl->piLIO->NameStat(name, sbufptr, ErrorNo());
+ return pPerl->PL_piLIO->NameStat(name, sbufptr, ErrorNo());
+}
+
+int _win32_rename(const char *oname, const char *newname)
+{
+ return pPerl->PL_piLIO->Rename(oname, newname, ErrorNo());
}
int _win32_setmode(int fd, int mode)
{
- return pPerl->piLIO->Setmode(fd, mode, ErrorNo());
+ return pPerl->PL_piLIO->Setmode(fd, mode, ErrorNo());
}
long _win32_lseek(int fd, long offset, int origin)
{
- return pPerl->piLIO->Lseek(fd, offset, origin, ErrorNo());
+ return pPerl->PL_piLIO->Lseek(fd, offset, origin, ErrorNo());
}
long _win32_tell(int fd)
{
- return pPerl->piStdIO->Tell((PerlIO*)fd, ErrorNo());
+ return pPerl->PL_piStdIO->Tell((PerlIO*)fd, ErrorNo());
}
int _win32_dup(int fd)
{
- return pPerl->piLIO->Dup(fd, ErrorNo());
+ return pPerl->PL_piLIO->Dup(fd, ErrorNo());
}
int _win32_dup2(int h1, int h2)
{
- return pPerl->piLIO->Dup2(h1, h2, ErrorNo());
+ return pPerl->PL_piLIO->Dup2(h1, h2, ErrorNo());
}
int _win32_open(const char *path, int oflag,...)
{
- return pPerl->piLIO->Open(path, oflag, ErrorNo());
+ return pPerl->PL_piLIO->Open(path, oflag, ErrorNo());
}
int _win32_close(int fd)
{
- return pPerl->piLIO->Close(fd, ErrorNo());
+ return pPerl->PL_piLIO->Close(fd, ErrorNo());
}
int _win32_read(int fd, void *buf, unsigned int cnt)
{
- return pPerl->piLIO->Read(fd, buf, cnt, ErrorNo());
+ return pPerl->PL_piLIO->Read(fd, buf, cnt, ErrorNo());
}
int _win32_write(int fd, const void *buf, unsigned int cnt)
{
- return pPerl->piLIO->Write(fd, buf, cnt, ErrorNo());
+ return pPerl->PL_piLIO->Write(fd, buf, cnt, ErrorNo());
}
int _win32_times(struct tms *timebuf)
{
- return pPerl->piProc->Times(timebuf);
+ return pPerl->PL_piProc->Times(timebuf);
}
int _win32_ioctl(int i, unsigned int u, char *data)
{
- return pPerl->piLIO->IOCtl(i, u, data, ErrorNo());
+ return pPerl->PL_piLIO->IOCtl(i, u, data, ErrorNo());
}
int _win32_utime(const char *f, struct utimbuf *t)
{
- return pPerl->piLIO->Utime((char*)f, t, ErrorNo());
+ return pPerl->PL_piLIO->Utime((char*)f, t, ErrorNo());
+}
+
+int _win32_uname(struct utsname *name)
+{
+ return pPerl->PL_piENV->Uname(name, ErrorNo());
}
char* _win32_getenv(const char *name)
{
- return pPerl->piENV->Getenv(name, ErrorNo());
+ return pPerl->PL_piENV->Getenv(name, ErrorNo());
+}
+
+int _win32_putenv(const char *name)
+{
+ return pPerl->PL_piENV->Putenv(name, ErrorNo());
}
int _win32_open_osfhandle(long handle, int flags)
{
- return pPerl->piStdIO->OpenOSfhandle(handle, flags);
+ return pPerl->PL_piStdIO->OpenOSfhandle(handle, flags);
}
long _win32_get_osfhandle(int fd)
{
- return pPerl->piStdIO->GetOSfhandle(fd);
+ return pPerl->PL_piStdIO->GetOSfhandle(fd);
}
u_long _win32_htonl (u_long hostlong)
{
- return pPerl->piSock->Htonl(hostlong);
+ return pPerl->PL_piSock->Htonl(hostlong);
}
u_short _win32_htons (u_short hostshort)
{
- return pPerl->piSock->Htons(hostshort);
+ return pPerl->PL_piSock->Htons(hostshort);
}
u_long _win32_ntohl (u_long netlong)
{
- return pPerl->piSock->Ntohl(netlong);
+ return pPerl->PL_piSock->Ntohl(netlong);
}
u_short _win32_ntohs (u_short netshort)
{
- return pPerl->piSock->Ntohs(netshort);
+ return pPerl->PL_piSock->Ntohs(netshort);
}
unsigned long _win32_inet_addr (const char * cp)
{
- return pPerl->piSock->InetAddr(cp, ErrorNo());
+ return pPerl->PL_piSock->InetAddr(cp, ErrorNo());
}
char * _win32_inet_ntoa (struct in_addr in)
{
- return pPerl->piSock->InetNtoa(in, ErrorNo());
+ return pPerl->PL_piSock->InetNtoa(in, ErrorNo());
}
SOCKET _win32_socket (int af, int type, int protocol)
{
- return pPerl->piSock->Socket(af, type, protocol, ErrorNo());
+ return pPerl->PL_piSock->Socket(af, type, protocol, ErrorNo());
}
int _win32_bind (SOCKET s, const struct sockaddr *addr, int namelen)
{
- return pPerl->piSock->Bind(s, addr, namelen, ErrorNo());
+ return pPerl->PL_piSock->Bind(s, addr, namelen, ErrorNo());
}
int _win32_listen (SOCKET s, int backlog)
{
- return pPerl->piSock->Listen(s, backlog, ErrorNo());
+ return pPerl->PL_piSock->Listen(s, backlog, ErrorNo());
}
SOCKET _win32_accept (SOCKET s, struct sockaddr *addr, int *addrlen)
{
- return pPerl->piSock->Accept(s, addr, addrlen, ErrorNo());
+ return pPerl->PL_piSock->Accept(s, addr, addrlen, ErrorNo());
}
int _win32_connect (SOCKET s, const struct sockaddr *name, int namelen)
{
- return pPerl->piSock->Connect(s, name, namelen, ErrorNo());
+ return pPerl->PL_piSock->Connect(s, name, namelen, ErrorNo());
}
int _win32_send (SOCKET s, const char * buf, int len, int flags)
{
- return pPerl->piSock->Send(s, buf, len, flags, ErrorNo());
+ return pPerl->PL_piSock->Send(s, buf, len, flags, ErrorNo());
}
int _win32_sendto (SOCKET s, const char * buf, int len, int flags,
const struct sockaddr *to, int tolen)
{
- return pPerl->piSock->Sendto(s, buf, len, flags, to, tolen, ErrorNo());
+ return pPerl->PL_piSock->Sendto(s, buf, len, flags, to, tolen, ErrorNo());
}
int _win32_recv (SOCKET s, char * buf, int len, int flags)
{
- return 0;
+ return pPerl->PL_piSock->Recv(s, buf, len, flags, ErrorNo());
}
int _win32_recvfrom (SOCKET s, char * buf, int len, int flags,
struct sockaddr *from, int * fromlen)
{
- return pPerl->piSock->Recvfrom(s, buf, len, flags, from, fromlen, ErrorNo());
+ return pPerl->PL_piSock->Recvfrom(s, buf, len, flags, from, fromlen, ErrorNo());
}
int _win32_shutdown (SOCKET s, int how)
{
- return pPerl->piSock->Shutdown(s, how, ErrorNo());
+ return pPerl->PL_piSock->Shutdown(s, how, ErrorNo());
}
int _win32_closesocket (SOCKET s)
{
- return 0;
+ return pPerl->PL_piSock->Closesocket(s, ErrorNo());
}
int _win32_ioctlsocket (SOCKET s, long cmd, u_long *argp)
{
- return 0;
+ return pPerl->PL_piSock->Ioctlsocket(s, cmd, argp, ErrorNo());
}
int _win32_setsockopt (SOCKET s, int level, int optname,
const char * optval, int optlen)
{
- return pPerl->piSock->Setsockopt(s, level, optname, optval, optlen, ErrorNo());
+ return pPerl->PL_piSock->Setsockopt(s, level, optname, optval, optlen, ErrorNo());
}
int _win32_getsockopt (SOCKET s, int level, int optname, char * optval, int *optlen)
{
- return pPerl->piSock->Getsockopt(s, level, optname, optval, optlen, ErrorNo());
+ return pPerl->PL_piSock->Getsockopt(s, level, optname, optval, optlen, ErrorNo());
}
int _win32_getpeername (SOCKET s, struct sockaddr *name, int * namelen)
{
- return pPerl->piSock->Getpeername(s, name, namelen, ErrorNo());
+ return pPerl->PL_piSock->Getpeername(s, name, namelen, ErrorNo());
}
int _win32_getsockname (SOCKET s, struct sockaddr *name, int * namelen)
{
- return pPerl->piSock->Getsockname(s, name, namelen, ErrorNo());
+ return pPerl->PL_piSock->Getsockname(s, name, namelen, ErrorNo());
}
int _win32_gethostname (char * name, int namelen)
{
- return pPerl->piSock->Gethostname(name, namelen, ErrorNo());
+ return pPerl->PL_piSock->Gethostname(name, namelen, ErrorNo());
}
struct hostent * _win32_gethostbyname(const char * name)
{
- return pPerl->piSock->Gethostbyname(name, ErrorNo());
+ return pPerl->PL_piSock->Gethostbyname(name, ErrorNo());
}
struct hostent * _win32_gethostbyaddr(const char * addr, int len, int type)
{
- return pPerl->piSock->Gethostbyaddr(addr, len, type, ErrorNo());
+ return pPerl->PL_piSock->Gethostbyaddr(addr, len, type, ErrorNo());
}
struct protoent * _win32_getprotobyname(const char * name)
{
- return pPerl->piSock->Getprotobyname(name, ErrorNo());
+ return pPerl->PL_piSock->Getprotobyname(name, ErrorNo());
}
struct protoent * _win32_getprotobynumber(int proto)
{
- return pPerl->piSock->Getprotobynumber(proto, ErrorNo());
+ return pPerl->PL_piSock->Getprotobynumber(proto, ErrorNo());
}
struct servent * _win32_getservbyname(const char * name, const char * proto)
{
- return pPerl->piSock->Getservbyname(name, proto, ErrorNo());
+ return pPerl->PL_piSock->Getservbyname(name, proto, ErrorNo());
}
struct servent * _win32_getservbyport(int port, const char * proto)
{
- return pPerl->piSock->Getservbyport(port, proto, ErrorNo());
+ return pPerl->PL_piSock->Getservbyport(port, proto, ErrorNo());
}
int _win32_select (int nfds, Perl_fd_set *rfds, Perl_fd_set *wfds, Perl_fd_set *xfds,
const struct timeval *timeout)
{
- return pPerl->piSock->Select(nfds, (char*)rfds, (char*)wfds, (char*)xfds, timeout, ErrorNo());
+ return pPerl->PL_piSock->Select(nfds, (char*)rfds, (char*)wfds, (char*)xfds, timeout, ErrorNo());
}
void _win32_endnetent(void)
{
- pPerl->piSock->Endnetent(ErrorNo());
+ pPerl->PL_piSock->Endnetent(ErrorNo());
}
void _win32_endhostent(void)
{
- pPerl->piSock->Endhostent(ErrorNo());
+ pPerl->PL_piSock->Endhostent(ErrorNo());
}
void _win32_endprotoent(void)
{
- pPerl->piSock->Endprotoent(ErrorNo());
+ pPerl->PL_piSock->Endprotoent(ErrorNo());
}
void _win32_endservent(void)
{
- pPerl->piSock->Endservent(ErrorNo());
+ pPerl->PL_piSock->Endservent(ErrorNo());
}
struct netent * _win32_getnetent(void)
{
- return pPerl->piSock->Getnetent(ErrorNo());
+ return pPerl->PL_piSock->Getnetent(ErrorNo());
}
struct netent * _win32_getnetbyname(char *name)
{
- return pPerl->piSock->Getnetbyname(name, ErrorNo());
+ return pPerl->PL_piSock->Getnetbyname(name, ErrorNo());
}
struct netent * _win32_getnetbyaddr(long net, int type)
{
- return pPerl->piSock->Getnetbyaddr(net, type, ErrorNo());
+ return pPerl->PL_piSock->Getnetbyaddr(net, type, ErrorNo());
}
struct protoent *_win32_getprotoent(void)
{
- return pPerl->piSock->Getprotoent(ErrorNo());
+ return pPerl->PL_piSock->Getprotoent(ErrorNo());
}
struct servent *_win32_getservent(void)
{
- return pPerl->piSock->Getservent(ErrorNo());
+ return pPerl->PL_piSock->Getservent(ErrorNo());
}
void _win32_sethostent(int stayopen)
{
- pPerl->piSock->Sethostent(stayopen, ErrorNo());
+ pPerl->PL_piSock->Sethostent(stayopen, ErrorNo());
}
void _win32_setnetent(int stayopen)
{
- pPerl->piSock->Setnetent(stayopen, ErrorNo());
+ pPerl->PL_piSock->Setnetent(stayopen, ErrorNo());
}
void _win32_setprotoent(int stayopen)
{
- pPerl->piSock->Setprotoent(stayopen, ErrorNo());
+ pPerl->PL_piSock->Setprotoent(stayopen, ErrorNo());
}
void _win32_setservent(int stayopen)
{
- pPerl->piSock->Setservent(stayopen, ErrorNo());
+ pPerl->PL_piSock->Setservent(stayopen, ErrorNo());
}
} /* extern "C" */
EOCODE
print HDRFILE <<EOCODE;
+#undef Perl_op_desc
+char ** _Perl_op_desc ();
+#define Perl_op_desc (_Perl_op_desc())
+
+#undef Perl_op_name
+char ** _Perl_op_name ();
+#define Perl_op_name (_Perl_op_name())
+
+#undef Perl_no_modify
+char * _Perl_no_modify ();
+#define Perl_no_modify (_Perl_no_modify())
+
+#undef Perl_opargs
+U32 * _Perl_opargs ();
+#define Perl_opargs (_Perl_opargs())
+
+
#undef win32_errno
#undef win32_stdin
#undef win32_stdout
#undef win32_pipe
#undef win32_popen
#undef win32_pclose
+#undef win32_rename
#undef win32_setmode
#undef win32_lseek
#undef win32_tell
#undef win32_setbuf
#undef win32_setvbuf
#undef win32_fgetc
+#undef win32_fgets
+#undef win32_gets
#undef win32_putc
#undef win32_puts
#undef win32_getchar
#define win32_pipe _win32_pipe
#define win32_popen _win32_popen
#define win32_pclose _win32_pclose
+#define win32_rename _win32_rename
#define win32_setmode _win32_setmode
#define win32_lseek _win32_lseek
#define win32_tell _win32_tell
#define win32_setbuf _win32_setbuf
#define win32_setvbuf _win32_setvbuf
#define win32_fgetc _win32_fgetc
+#define win32_fgets _win32_fgets
+#define win32_gets _win32_gets
#define win32_putc _win32_putc
#define win32_puts _win32_puts
#define win32_getchar _win32_getchar
int _win32_pipe( int *phandles, unsigned int psize, int textmode );
FILE* _win32_popen( const char *command, const char *mode );
int _win32_pclose( FILE *pf);
+int _win32_rename( const char *oldname, const char *newname);
int _win32_setmode( int fd, int mode);
long _win32_lseek( int fd, long offset, int origin);
long _win32_tell( int fd);