#if defined(PERL_IMPLICIT_SYS)
#ifndef USE_PERLIO
+#ifndef NETWARE
# define USE_PERLIO
#endif
#endif
+#endif
#ifndef USE_PERLIO
# define USE_STDIO
#define PerlIO PerlIO
#define PERLIO_LAYERS 1
-extern void PerlIO_define_layer (PerlIO_funcs *tab);
-extern SV * PerlIO_find_layer (const char *name, STRLEN len);
-extern PerlIO * PerlIO_push (PerlIO *f,PerlIO_funcs *tab,const char *mode);
-extern void PerlIO_pop (PerlIO *f);
+extern void PerlIO_define_layer (pTHX_ PerlIO_funcs *tab);
+extern PerlIO_funcs *PerlIO_find_layer (pTHX_ const char *name, STRLEN len, int load);
+extern PerlIO * PerlIO_push (pTHX_ PerlIO *f,PerlIO_funcs *tab,const char *mode,SV *arg);
+extern void PerlIO_pop (pTHX_ PerlIO *f);
#endif /* PerlIO */
#ifndef PERLIO_NOT_STDIO
#define PERLIO_NOT_STDIO 1
#endif
+#else
+#ifndef PERLIO_NOT_STDIO
+#define PERLIO_NOT_STDIO 0
+#endif
#endif
#ifdef PERLIO_NOT_STDIO
/* --------------------- Now prototypes for functions --------------- */
+START_EXTERN_C
+
#ifndef NEXT30_NO_ATTRIBUTE
#ifndef HASATTRIBUTE /* disable GNU-cc attribute checking? */
#ifdef __attribute__ /* Avoid possible redefinition errors */
#ifndef PerlIO_open
extern PerlIO * PerlIO_open (const char *,const char *);
#endif
+#ifndef PerlIO_openn
+extern PerlIO * PerlIO_openn (pTHX_ const char *layers, const char *mode,int fd,int imode,int perm,PerlIO *old,int narg,SV **arg);
+#endif
#ifndef PerlIO_close
extern int PerlIO_close (PerlIO *);
#endif
#ifndef PerlIO_read
extern SSize_t PerlIO_read (PerlIO *,void *,Size_t);
#endif
+#ifndef PerlIO_unread
+extern SSize_t PerlIO_unread (PerlIO *,const void *,Size_t);
+#endif
#ifndef PerlIO_write
extern SSize_t PerlIO_write (PerlIO *,const void *,Size_t);
#endif
extern PerlIO * PerlIO_stderr (void);
#endif
#ifndef PerlIO_getpos
-extern int PerlIO_getpos (PerlIO *,Fpos_t *);
+extern int PerlIO_getpos (PerlIO *,SV *);
#endif
#ifndef PerlIO_setpos
-extern int PerlIO_setpos (PerlIO *,const Fpos_t *);
+extern int PerlIO_setpos (PerlIO *,SV *);
#endif
#ifndef PerlIO_fdupopen
-#define PerlIO_fdupopen(f) (f)
-/* extern PerlIO * PerlIO_fdupopen (PerlIO *); */
+extern PerlIO * PerlIO_fdupopen (pTHX_ PerlIO *);
+#endif
+#if !defined(PerlIO_modestr) && !defined(PERLIO_IS_STDIO)
+extern char *PerlIO_modestr (PerlIO *,char *buf);
#endif
#ifndef PerlIO_isutf8
extern int PerlIO_isutf8 (PerlIO *);
#ifndef PerlIO_binmode
extern int PerlIO_binmode (pTHX_ PerlIO *f, int iotype, int omode, const char *names);
#endif
+#ifndef PerlIO_getname
+extern char * PerlIO_getname (PerlIO *, char *);
+#endif
+
+extern void PerlIO_destruct(pTHX);
+
+#ifndef PERLIO_IS_STDIO
+
+extern void PerlIO_cleanup(void);
extern void PerlIO_debug(const char *fmt,...);
+#endif
+
+END_EXTERN_C
+
#endif /* _PERLIO_H */