#ifndef PERLIO_UTIL_H #define PERLIO_UTIL_H #define PERL_NO_GET_CONTEXT #include #include #include #include #include "ppport.h" #define LayerFetch(layer, n) ((layer)->array[n].funcs) #define LayerFetchSafe(layer, n) ( ((n) >= 0 && (n) < (layer)->cur) \ ? (layer)->array[n].funcs : PERLIO_FUNCS_CAST(&PerlIO_unix) ) #define IOLflag(f, flag) (PerlIOBase((f))->flags & (flag)) #define IOLflag_on(f, flag) (PerlIOBase((f))->flags |= (flag)) #define IOLflag_off(f, flag) (PerlIOBase((f))->flags &= ~(flag)); PerlIO* PerlIOTee_teeout(pTHX_ const PerlIO* tee); #define perlio_inspect(f) PerlIOUtil_inspect(aTHX_ f, 0) SV* PerlIOUtil_inspect(pTHX_ PerlIO* f, int level); PerlIO* PerlIOUtil_openn(pTHX_ PerlIO_funcs* tab, PerlIO_list_t* layers, IV n, const char* mode, int fd, int imode, int perm, PerlIO* f, int narg, SV** args); void PerlIOUtil_warnif(pTHX_ const U32 category, const char* fmt, ...) __attribute__format__(__printf__,pTHX_2,pTHX_3); IV PerlIOUtil_useless_pushed(pTHX_ PerlIO* fp, const char* mode, SV* arg, PerlIO_funcs* tab); extern PERLIO_FUNCS_DECL(PerlIO_flock); extern PERLIO_FUNCS_DECL(PerlIO_creat); extern PERLIO_FUNCS_DECL(PerlIO_excl); extern PERLIO_FUNCS_DECL(PerlIO_tee); extern PERLIO_FUNCS_DECL(PerlIO_dir); extern PERLIO_FUNCS_DECL(PerlIO_reverse); #endif /*PERLIO_UTIL_H*/