fix path to local svn
[perl-fuse.git] / Fuse.xs
diff --git a/Fuse.xs b/Fuse.xs
index 8cfa88b..e6c293b 100644 (file)
--- a/Fuse.xs
+++ b/Fuse.xs
@@ -17,14 +17,14 @@ static inline void create_perl_context() {
                }
        }
 }
-#  define FUSE_CONTEXT_PRE create_perl_context(); {
+#  define FUSE_CONTEXT_PRE create_perl_context(); { dSP
 #  define FUSE_CONTEXT_POST }
 #  define FUSE_USE_ITHREADS
 # else
 #  error "Sorry, I don't know how to handle ithreads on this architecture."
 # endif
 #else
-# define FUSE_CONTEXT_PRE
+# define FUSE_CONTEXT_PRE dSP
 # define FUSE_CONTEXT_POST
 #endif
 #include <fuse.h>
@@ -42,7 +42,6 @@ SV *_PLfuse_callbacks[N_CALLBACKS];
 int _PLfuse_getattr(const char *file, struct stat *result) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("getattr begin: %s\n",file);
        ENTER;
        SAVETMPS;
@@ -86,7 +85,6 @@ int _PLfuse_getattr(const char *file, struct stat *result) {
 int _PLfuse_readlink(const char *file,char *buf,size_t buflen) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        if(buflen < 1)
                return EINVAL;
        DEBUGf("readlink begin\n");
@@ -127,7 +125,6 @@ int _PLfuse_readlink(const char *file,char *buf,size_t buflen) {
 int _PLfuse_getdir(const char *file, fuse_dirh_t dirh, fuse_dirfil_t dirfil) {
        int prv, rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("getdir begin\n");
        ENTER;
        SAVETMPS;
@@ -155,7 +152,6 @@ int _PLfuse_getdir(const char *file, fuse_dirh_t dirh, fuse_dirfil_t dirfil) {
 int _PLfuse_mknod (const char *file, mode_t mode, dev_t dev) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("mknod begin\n");
        ENTER;
        SAVETMPS;
@@ -181,7 +177,6 @@ int _PLfuse_mknod (const char *file, mode_t mode, dev_t dev) {
 int _PLfuse_mkdir (const char *file, mode_t mode) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("mkdir begin\n");
        ENTER;
        SAVETMPS;
@@ -207,7 +202,6 @@ int _PLfuse_mkdir (const char *file, mode_t mode) {
 int _PLfuse_unlink (const char *file) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("unlink begin\n");
        ENTER;
        SAVETMPS;
@@ -231,7 +225,6 @@ int _PLfuse_unlink (const char *file) {
 int _PLfuse_rmdir (const char *file) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("rmdir begin\n");
        ENTER;
        SAVETMPS;
@@ -255,7 +248,6 @@ int _PLfuse_rmdir (const char *file) {
 int _PLfuse_symlink (const char *file, const char *new) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("symlink begin\n");
        ENTER;
        SAVETMPS;
@@ -280,7 +272,6 @@ int _PLfuse_symlink (const char *file, const char *new) {
 int _PLfuse_rename (const char *file, const char *new) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("rename begin\n");
        ENTER;
        SAVETMPS;
@@ -305,7 +296,6 @@ int _PLfuse_rename (const char *file, const char *new) {
 int _PLfuse_link (const char *file, const char *new) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("link begin\n");
        ENTER;
        SAVETMPS;
@@ -330,7 +320,6 @@ int _PLfuse_link (const char *file, const char *new) {
 int _PLfuse_chmod (const char *file, mode_t mode) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("chmod begin\n");
        ENTER;
        SAVETMPS;
@@ -355,7 +344,6 @@ int _PLfuse_chmod (const char *file, mode_t mode) {
 int _PLfuse_chown (const char *file, uid_t uid, gid_t gid) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("chown begin\n");
        ENTER;
        SAVETMPS;
@@ -381,7 +369,6 @@ int _PLfuse_chown (const char *file, uid_t uid, gid_t gid) {
 int _PLfuse_truncate (const char *file, off_t off) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("truncate begin\n");
        ENTER;
        SAVETMPS;
@@ -406,7 +393,6 @@ int _PLfuse_truncate (const char *file, off_t off) {
 int _PLfuse_utime (const char *file, struct utimbuf *uti) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("utime begin\n");
        ENTER;
        SAVETMPS;
@@ -433,7 +419,6 @@ int _PLfuse_open (const char *file, struct fuse_file_info *fi) {
        int rv;
        int flags = fi->flags;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("open begin\n");
        ENTER;
        SAVETMPS;
@@ -458,7 +443,6 @@ int _PLfuse_open (const char *file, struct fuse_file_info *fi) {
 int _PLfuse_read (const char *file, char *buf, size_t buflen, off_t off, struct fuse_file_info *fi) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("read begin\n");
        ENTER;
        SAVETMPS;
@@ -498,7 +482,6 @@ int _PLfuse_read (const char *file, char *buf, size_t buflen, off_t off, struct
 int _PLfuse_write (const char *file, const char *buf, size_t buflen, off_t off, struct fuse_file_info *fi) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("write begin\n");
        ENTER;
        SAVETMPS;
@@ -524,7 +507,6 @@ int _PLfuse_write (const char *file, const char *buf, size_t buflen, off_t off,
 int _PLfuse_statfs (const char *file, struct statvfs *st) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("statfs begin\n");
        ENTER;
        SAVETMPS;
@@ -570,7 +552,6 @@ int _PLfuse_statfs (const char *file, struct statvfs *st) {
 int _PLfuse_flush (const char *file, struct fuse_file_info *fi) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("flush begin\n");
        ENTER;
        SAVETMPS;
@@ -595,7 +576,6 @@ int _PLfuse_release (const char *file, struct fuse_file_info *fi) {
        int rv;
        int flags = fi->flags;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("release begin\n");
        ENTER;
        SAVETMPS;
@@ -621,7 +601,6 @@ int _PLfuse_fsync (const char *file, int datasync, struct fuse_file_info *fi) {
        int rv;
        int flags = fi->flags;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("fsync begin\n");
        ENTER;
        SAVETMPS;
@@ -646,7 +625,6 @@ int _PLfuse_fsync (const char *file, int datasync, struct fuse_file_info *fi) {
 int _PLfuse_setxattr (const char *file, const char *name, const char *buf, size_t buflen, int flags) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("setxattr begin\n");
        ENTER;
        SAVETMPS;
@@ -673,7 +651,6 @@ int _PLfuse_setxattr (const char *file, const char *name, const char *buf, size_
 int _PLfuse_getxattr (const char *file, const char *name, char *buf, size_t buflen) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("getxattr begin\n");
        ENTER;
        SAVETMPS;
@@ -717,7 +694,6 @@ int _PLfuse_getxattr (const char *file, const char *name, char *buf, size_t bufl
 int _PLfuse_listxattr (const char *file, char *list, size_t size) {
        int prv, rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("listxattr begin\n");
        ENTER;
        SAVETMPS;
@@ -782,7 +758,6 @@ int _PLfuse_listxattr (const char *file, char *list, size_t size) {
 int _PLfuse_removexattr (const char *file, const char *name) {
        int rv;
        FUSE_CONTEXT_PRE;
-       dSP;
        DEBUGf("removexattr begin\n");
        ENTER;
        SAVETMPS;
@@ -859,7 +834,7 @@ perl_fuse_main(...)
        threaded = SvIV(ST(1));
        if(threaded) {
 #ifdef FUSE_USE_ITHREADS
-               master_interp = PERL_GET_INTERP;
+               master_interp = PERL_GET_CONTEXT;
 #else
                fprintf(stderr,"FUSE warning: Your script has requested multithreaded "
                               "mode, but your perl was not built with -Dusethreads.  "
@@ -916,7 +891,7 @@ perl_fuse_main(...)
        }
 
        if(threaded) {
-               fuse_loop_mt(fuse_new(fd,&fargs,&fops,sizeof(fops)/sizeof(void*)));
+               fuse_loop_mt(fuse_new(fd,&fargs,&fops,sizeof(fops)));
        } else
-               fuse_loop(fuse_new(fd,&fargs,&fops,sizeof(fops)/sizeof(void*)));
+               fuse_loop(fuse_new(fd,&fargs,&fops,sizeof(fops)));
        fuse_opt_free_args(&fargs);