X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=66162e6ec937896bf0af75c126be86175a505108;hb=c9fcc6c44229e7c36dee08e5d883d12284a44f17;hp=5b5bb2f81c6f294eb92091548fdc50a6f9d3d59e;hpb=83ee9e095f68fdbdc131f9a00306fb151d58abe2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index 5b5bb2f..66162e6 100644 --- a/perl.h +++ b/perl.h @@ -1,6 +1,6 @@ /* perl.h * - * Copyright (c) 1987-1997, Larry Wall + * Copyright (c) 1987-2000, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -489,6 +489,10 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER)); # include #endif +#ifdef PERL_MICRO /* Last chance to export Perl_my_swap */ +# define MYSWAP +#endif + #if !defined(PERL_FOR_X2P) && !defined(WIN32) # include "embed.h" #endif @@ -529,6 +533,19 @@ Malloc_t Perl_realloc (Malloc_t where, MEM_SIZE nbytes); * that causes clashes with case-insensitive linkers */ Free_t Perl_mfree (Malloc_t where); +typedef struct perl_mstats perl_mstats_t; + +struct perl_mstats { + unsigned long *nfree; + unsigned long *ntotal; + long topbucket, topbucket_ev, topbucket_odd, totfree, total, total_chain; + long total_sbrk, sbrks, sbrk_good, sbrk_slack, start_slack, sbrked_remains; + long minbucket; + /* Level 1 info */ + unsigned long *bucket_mem_size; + unsigned long *bucket_available_size; +}; + # define safemalloc Perl_malloc # define safecalloc Perl_calloc # define saferealloc Perl_realloc @@ -804,6 +821,10 @@ Free_t Perl_mfree (Malloc_t where); * in the face of half-implementations.) */ +#ifdef I_SYSMODE +#include +#endif + #ifndef S_IFMT # ifdef _S_IFMT # define S_IFMT _S_IFMT @@ -898,6 +919,30 @@ Free_t Perl_mfree (Malloc_t where); # define S_ISGID 02000 #endif +#ifndef S_IRWXU +# define S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR) +#endif + +#ifndef S_IRWXG +# define S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP) +#endif + +#ifndef S_IRWXO +# define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH) +#endif + +#ifndef S_IREAD +# define S_IREAD S_IRUSR +#endif + +#ifndef S_IWRITE +# define S_IWRITE S_IWUSR +#endif + +#ifndef S_IEXEC +# define S_IEXEC S_IXUSR +#endif + #ifdef ff_next # undef ff_next #endif @@ -1712,7 +1757,7 @@ typedef pthread_key_t perl_key; # endif #endif -#if defined(CYGWIN) +#if defined(__CYGWIN__) /* USEMYBINMODE * This symbol, if defined, indicates that the program should * use the routine my_binmode(FILE *fp, char iotype) to insure @@ -1888,8 +1933,6 @@ struct ptr_tbl { #define U_V(what) (cast_uv((NV)(what))) #endif -/* Mention NV_PRESERVES_UV so that Configure picks it up. */ - /* These do not care about the fractional part, only about the range. */ #define NV_WITHIN_IV(nv) (I_V(nv) >= IV_MIN && I_V(nv) <= IV_MAX) #define NV_WITHIN_UV(nv) ((nv)>=0.0 && U_V(nv) >= UV_MIN && U_V(nv) <= UV_MAX) @@ -2044,9 +2087,9 @@ char *crypt (const char*, const char*); # ifndef getenv char *getenv (const char*); # endif /* !getenv */ -#ifndef EPOC +# if !defined(EPOC) && !(defined(__hpux) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64) Off_t lseek (int,Off_t,int); -#endif +# endif # endif /* !DONT_DECLARE_STD */ char *getlogin (void); #endif /* !__cplusplus */ @@ -3014,25 +3057,26 @@ typedef struct am_table_short AMTS; #endif /* !USE_LOCALE_NUMERIC */ -#if !defined(Atol) && defined(USE_LONG_LONG) && defined(HAS_LONG_LONG) +#if !defined(Atol) && defined(IV_IS_QUAD) && QUADKIND == QUAD_IS_LONG_LONG # if !defined(Atol) && defined(HAS_STRTOLL) # define Atol(s) strtoll(s, (char**)NULL, 10) # endif # if !defined(Atol) && defined(HAS_ATOLL) # define Atol atoll # endif -#endif /* is there atoq() anywhere? */ +#endif #if !defined(Atol) # define Atol atol /* we assume atol being available anywhere */ #endif -#if !defined(Strtoul) && defined(USE_LONG_LONG) && defined(HAS_LONG_LONG) \ - && defined(HAS_STRTOULL) -# define Strtoul strtoull +#if !defined(Strtoul) && defined(UV_IS_QUAD) && QUADKIND == QUAD_IS_LONG_LONG +# if !defined(Strtoul) && defined(HAS_STRTOULL) +# define Strtoul strtoull +# endif #endif /* is there atouq() anywhere? */ -#if !defined(Strtoul) && defined(USE_64_BITS) && defined(HAS_STRTOUQ) +#if !defined(Strtoul) && defined(HAS_STRTOUQ) # define Strtoul strtouq #endif #if !defined(Strtoul) @@ -3124,6 +3168,22 @@ typedef struct am_table_short AMTS; # endif #endif +#ifdef I_FCNTL +# include +#endif + +#ifdef I_SYS_FILE +# include +#endif + +#ifndef O_RDONLY +/* Assume UNIX defaults */ +# define O_RDONLY 0000 +# define O_WRONLY 0001 +# define O_RDWR 0002 +# define O_CREAT 0100 +#endif + #ifdef IAMSUID #ifdef I_SYS_STATVFS @@ -3171,4 +3231,27 @@ typedef struct am_table_short AMTS; #include "patchlevel.h" #undef PERL_PATCHLEVEL_H_IMPLICIT +/* Mention + + NV_PRESERVES_UV + + HAS_ICONV + I_ICONV + + HAS_MKSTEMP + HAS_MKSTEMPS + HAS_MKDTEMP + + HAS_GETCWD + + HAS-MMAP + HAS_MPROTECT + HAS_MSYNC + HAS_MADVSISE + HAS_MUNMAP + I_SYSMMAN + Mmap_t + + so that Configure picks them up. */ + #endif /* Include guard */