1
2
3
4
5
6
7
8
9
10
11
|
#include <xvfs-core.h>
#include <string.h>
#include <tcl.h>
#define XVFS_ROOT_MOUNTPOINT "//xvfs:/"
struct xvfs_tclfs_instance_info {
struct Xvfs_FSInfo *fsInfo;
Tcl_Obj *mountpoint;
};
|
>
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <xvfs-core.h>
#include <string.h>
#include <tcl.h>
#if defined(XVFS_MODE_SERVER) || defined(XVFS_MODE_STANDALONE) || defined(XVFS_MODE_FLEXIBLE)
#define XVFS_ROOT_MOUNTPOINT "//xvfs:/"
struct xvfs_tclfs_instance_info {
struct Xvfs_FSInfo *fsInfo;
Tcl_Obj *mountpoint;
};
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
const char *pathStr;
pathStr = xvfs_relativePath(path, instanceInfo);
fprintf(stderr, "Called open(%s)!\n", pathStr);
return(NULL);
}
#if XVFS_MODE == standalone
/*
* Tcl_Filesystem handlers for the standalone implementation
*/
static struct xvfs_tclfs_instance_info xvfs_tclfs_standalone_info;
static int xvfs_tclfs_standalone_pathInFilesystem(Tcl_Obj *path, ClientData *dataPtr) {
return(xvfs_tclfs_pathInFilesystem(path, dataPtr, &xvfs_tclfs_standalone_info));
}
|
>
|
|
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
const char *pathStr;
pathStr = xvfs_relativePath(path, instanceInfo);
fprintf(stderr, "Called open(%s)!\n", pathStr);
return(NULL);
}
#endif /* XVFS_MODE_SERVER || XVFS_MODE_STANDALONE || XVFS_MODE_FLEIXBLE */
#if defined(XVFS_MODE_STANDALONE)
/*
* Tcl_Filesystem handlers for the standalone implementation
*/
static struct xvfs_tclfs_instance_info xvfs_tclfs_standalone_info;
static int xvfs_tclfs_standalone_pathInFilesystem(Tcl_Obj *path, ClientData *dataPtr) {
return(xvfs_tclfs_pathInFilesystem(path, dataPtr, &xvfs_tclfs_standalone_info));
}
|
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
if (!xvfs_tclfs_Info) {
if (interp) {
Tcl_SetResult(interp, "Unable to allocate Tcl_Filesystem object", NULL);
}
return(TCL_ERROR);
}
xvfs_tclfs_Info->typeName = strdup("xvfs");
xvfs_tclfs_Info->structureLength = sizeof(*xvfs_tclfs_Info);
xvfs_tclfs_Info->version = TCL_FILESYSTEM_VERSION_1;
xvfs_tclfs_Info->pathInFilesystemProc = xvfs_tclfs_standalone_pathInFilesystem;
xvfs_tclfs_Info->dupInternalRepProc = NULL;
xvfs_tclfs_Info->freeInternalRepProc = NULL;
xvfs_tclfs_Info->internalToNormalizedProc = NULL;
xvfs_tclfs_Info->createInternalRepProc = NULL;
|
|
|
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
if (!xvfs_tclfs_Info) {
if (interp) {
Tcl_SetResult(interp, "Unable to allocate Tcl_Filesystem object", NULL);
}
return(TCL_ERROR);
}
xvfs_tclfs_Info->typeName = "xvfs";
xvfs_tclfs_Info->structureLength = sizeof(*xvfs_tclfs_Info);
xvfs_tclfs_Info->version = TCL_FILESYSTEM_VERSION_1;
xvfs_tclfs_Info->pathInFilesystemProc = xvfs_tclfs_standalone_pathInFilesystem;
xvfs_tclfs_Info->dupInternalRepProc = NULL;
xvfs_tclfs_Info->freeInternalRepProc = NULL;
xvfs_tclfs_Info->internalToNormalizedProc = NULL;
xvfs_tclfs_Info->createInternalRepProc = NULL;
|
186
187
188
189
190
191
192
193
194
195
196
197
|
}
return(tcl_ret);
}
return(TCL_OK);
}
#else
int Xvfs_Register(Tcl_Interp *interp, struct Xvfs_FSInfo *fsInfo) {
return(TCL_ERROR);
}
#endif
|
|
>
>
|
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
}
return(tcl_ret);
}
return(TCL_OK);
}
#endif
#if defined(XVFS_MODE_SERVER)
int Xvfs_Register(Tcl_Interp *interp, struct Xvfs_FSInfo *fsInfo) {
return(TCL_ERROR);
}
#endif
|