@k13engineering/linux-fuse 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/abi.d.ts +1133 -5
- package/dist/lib/abi.js +705 -535
- package/dist/lib/constants.d.ts +5 -3
- package/dist/lib/constants.js +10 -8
- package/dist/lib/convenience.js +344 -344
- package/dist/lib/dirent.js +24 -8
- package/dist/lib/filesystem.d.ts +41 -0
- package/dist/lib/filesystem.js +344 -0
- package/dist/lib/fuse-lowlevel.d.ts +3 -1
- package/dist/lib/fuse-lowlevel.js +17 -4
- package/dist/lib/index.d.ts +4 -33
- package/dist/lib/index.js +13 -284
- package/dist/lib/kernel.d.ts +9 -0
- package/dist/lib/kernel.js +21 -0
- package/dist/lib/linux-fuse.d.ts +21 -0
- package/dist/lib/linux-fuse.js +38 -0
- package/dist/lib/linux.d.ts +3 -1
- package/dist/lib/linux.js +16 -9
- package/dist/lib/message.js +6 -0
- package/dist/lib/mount.d.ts +5 -2
- package/dist/lib/mount.js +16 -4
- package/dist/lib/protocol.d.ts +6 -0
- package/dist/lib/protocol.js +861 -830
- package/dist/lib/server.js +33 -0
- package/dist/lib/syscalls.d.ts +66 -38
- package/dist/lib/syscalls.js +281 -198
- package/package.json +4 -4
package/dist/lib/convenience.js
CHANGED
|
@@ -68,30 +68,55 @@ const createConvenienceRequestHandler = ({
|
|
|
68
68
|
// eslint-disable-next-line max-statements, complexity
|
|
69
69
|
const handleRequest/*: TRequestHandler["handleRequest"]*/ = async ({ request }) => {
|
|
70
70
|
switch (request.opcode) {
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
case "INIT": {
|
|
72
|
+
const response = await serverInterface.init(request);
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
return {
|
|
75
|
+
...response,
|
|
76
|
+
unique: request.unique,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
case "FORGET": {
|
|
81
|
+
await serverInterface.forget(request);
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
case "BATCH_FORGET": {
|
|
86
|
+
await serverInterface.batchForget(request);
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
case "GETATTR": {
|
|
91
|
+
|
|
92
|
+
switch (request.getattrMode) {
|
|
93
|
+
case "node": {
|
|
94
|
+
const response = await serverInterface.getattr(request);
|
|
89
95
|
|
|
90
|
-
|
|
96
|
+
return {
|
|
97
|
+
...response,
|
|
98
|
+
unique: request.unique,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
91
101
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
102
|
+
case "fileHandle": {
|
|
103
|
+
const response = await serverInterface.fgetattr(request);
|
|
104
|
+
|
|
105
|
+
return {
|
|
106
|
+
...response,
|
|
107
|
+
unique: request.unique,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
default: {
|
|
112
|
+
// @ts-expect-error exhaustive check
|
|
113
|
+
throw Error(`unsupported getattr mode: ${request.getattrMode}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
case "SETATTR": {
|
|
119
|
+
const response = await serverInterface.setattr(request);
|
|
95
120
|
|
|
96
121
|
return {
|
|
97
122
|
...response,
|
|
@@ -99,8 +124,8 @@ const createConvenienceRequestHandler = ({
|
|
|
99
124
|
};
|
|
100
125
|
}
|
|
101
126
|
|
|
102
|
-
case "
|
|
103
|
-
const response = await serverInterface.
|
|
127
|
+
case "LISTXATTR": {
|
|
128
|
+
const response = await serverInterface.listxattr(request);
|
|
104
129
|
|
|
105
130
|
return {
|
|
106
131
|
...response,
|
|
@@ -108,414 +133,389 @@ const createConvenienceRequestHandler = ({
|
|
|
108
133
|
};
|
|
109
134
|
}
|
|
110
135
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
throw Error(`unsupported getattr mode: ${request.getattrMode}`);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
case "SETATTR": {
|
|
119
|
-
const response = await serverInterface.setattr(request);
|
|
120
|
-
|
|
121
|
-
return {
|
|
122
|
-
...response,
|
|
123
|
-
unique: request.unique,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
case "LISTXATTR": {
|
|
128
|
-
const response = await serverInterface.listxattr(request);
|
|
129
|
-
|
|
130
|
-
return {
|
|
131
|
-
...response,
|
|
132
|
-
unique: request.unique,
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
case "GETXATTR": {
|
|
137
|
-
const response = await serverInterface.getxattr(request);
|
|
136
|
+
case "GETXATTR": {
|
|
137
|
+
const response = await serverInterface.getxattr(request);
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
139
|
+
return {
|
|
140
|
+
...response,
|
|
141
|
+
unique: request.unique,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
case "READLINK": {
|
|
146
|
+
const response = await serverInterface.readlink(request);
|
|
147
147
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
148
|
+
return {
|
|
149
|
+
...response,
|
|
150
|
+
unique: request.unique,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
153
|
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
case "SYMLINK": {
|
|
155
|
+
const response = await serverInterface.symlink(request);
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
157
|
+
return {
|
|
158
|
+
...response,
|
|
159
|
+
unique: request.unique,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
162
|
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
case "MKNOD": {
|
|
164
|
+
const response = await serverInterface.mknod(request);
|
|
165
165
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
166
|
+
return {
|
|
167
|
+
...response,
|
|
168
|
+
unique: request.unique,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
171
|
|
|
172
|
-
|
|
173
|
-
|
|
172
|
+
case "MKDIR": {
|
|
173
|
+
const response = await serverInterface.mkdir(request);
|
|
174
174
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
175
|
+
return {
|
|
176
|
+
...response,
|
|
177
|
+
unique: request.unique,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
180
|
|
|
181
|
-
|
|
182
|
-
|
|
181
|
+
case "UNLINK": {
|
|
182
|
+
const response = await serverInterface.unlink(request);
|
|
183
183
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
184
|
+
return {
|
|
185
|
+
...response,
|
|
186
|
+
unique: request.unique,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
189
|
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
case "RMDIR": {
|
|
191
|
+
const response = await serverInterface.rmdir(request);
|
|
192
192
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
193
|
+
return {
|
|
194
|
+
...response,
|
|
195
|
+
unique: request.unique,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
198
|
|
|
199
|
-
|
|
200
|
-
|
|
199
|
+
case "RENAME": {
|
|
200
|
+
const response = await serverInterface.rename(request);
|
|
201
201
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
202
|
+
return {
|
|
203
|
+
...response,
|
|
204
|
+
unique: request.unique,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
207
|
|
|
208
|
-
|
|
209
|
-
|
|
208
|
+
case "LINK": {
|
|
209
|
+
const response = await serverInterface.link(request);
|
|
210
210
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
211
|
+
return {
|
|
212
|
+
...response,
|
|
213
|
+
unique: request.unique,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
216
|
|
|
217
|
-
|
|
218
|
-
|
|
217
|
+
case "OPENDIR": {
|
|
218
|
+
const response = await serverInterface.opendir(request);
|
|
219
219
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
220
|
+
return {
|
|
221
|
+
...response,
|
|
222
|
+
unique: request.unique,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
225
|
|
|
226
|
-
|
|
227
|
-
|
|
226
|
+
case "READDIR": {
|
|
227
|
+
const response = await serverInterface.readdir(request);
|
|
228
228
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
229
|
+
return {
|
|
230
|
+
...response,
|
|
231
|
+
unique: request.unique,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
234
|
|
|
235
|
-
|
|
236
|
-
|
|
235
|
+
case "RELEASE": {
|
|
236
|
+
const response = await serverInterface.release(request);
|
|
237
237
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
238
|
+
return {
|
|
239
|
+
...response,
|
|
240
|
+
unique: request.unique,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
243
|
|
|
244
|
-
|
|
245
|
-
|
|
244
|
+
case "RELEASEDIR": {
|
|
245
|
+
const response = await serverInterface.releasedir(request);
|
|
246
246
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
247
|
+
return {
|
|
248
|
+
...response,
|
|
249
|
+
unique: request.unique,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
252
|
|
|
253
|
-
|
|
254
|
-
|
|
253
|
+
case "FSYNCDIR": {
|
|
254
|
+
const response = await serverInterface.fsyncdir(request);
|
|
255
255
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
256
|
+
return {
|
|
257
|
+
...response,
|
|
258
|
+
unique: request.unique,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
261
|
|
|
262
|
-
|
|
263
|
-
|
|
262
|
+
case "STATFS": {
|
|
263
|
+
const response = await serverInterface.statfs(request);
|
|
264
264
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
265
|
+
return {
|
|
266
|
+
...response,
|
|
267
|
+
unique: request.unique,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
270
|
|
|
271
|
-
|
|
272
|
-
|
|
271
|
+
case "LOOKUP": {
|
|
272
|
+
const response = await serverInterface.lookup(request);
|
|
273
273
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
274
|
+
return {
|
|
275
|
+
...response,
|
|
276
|
+
unique: request.unique,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
279
|
|
|
280
|
-
|
|
281
|
-
|
|
280
|
+
case "OPEN": {
|
|
281
|
+
const response = await serverInterface.open(request);
|
|
282
282
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
283
|
+
return {
|
|
284
|
+
...response,
|
|
285
|
+
unique: request.unique,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
288
|
|
|
289
|
-
|
|
290
|
-
|
|
289
|
+
case "READ": {
|
|
290
|
+
const response = await serverInterface.read(request);
|
|
291
291
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
292
|
+
return {
|
|
293
|
+
...response,
|
|
294
|
+
unique: request.unique,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
297
|
|
|
298
|
-
|
|
299
|
-
|
|
298
|
+
case "WRITE": {
|
|
299
|
+
const response = await serverInterface.write(request);
|
|
300
300
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
301
|
+
return {
|
|
302
|
+
...response,
|
|
303
|
+
unique: request.unique,
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
306
|
|
|
307
|
-
|
|
308
|
-
|
|
307
|
+
case "FLUSH": {
|
|
308
|
+
const response = await serverInterface.flush(request);
|
|
309
309
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
310
|
+
return {
|
|
311
|
+
...response,
|
|
312
|
+
unique: request.unique,
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
315
|
|
|
316
|
-
|
|
317
|
-
|
|
316
|
+
case "FSYNC": {
|
|
317
|
+
const response = await serverInterface.fsync(request);
|
|
318
318
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
319
|
+
return {
|
|
320
|
+
...response,
|
|
321
|
+
unique: request.unique,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
324
|
|
|
325
|
-
|
|
326
|
-
|
|
325
|
+
case "ACCESS": {
|
|
326
|
+
const response = await serverInterface.access(request);
|
|
327
327
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
328
|
+
return {
|
|
329
|
+
...response,
|
|
330
|
+
unique: request.unique,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
333
|
|
|
334
|
-
|
|
335
|
-
|
|
334
|
+
case "SETXATTR": {
|
|
335
|
+
const response = await serverInterface.setxattr(request);
|
|
336
336
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
337
|
+
return {
|
|
338
|
+
...response,
|
|
339
|
+
unique: request.unique,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
342
|
|
|
343
|
-
|
|
344
|
-
|
|
343
|
+
case "REMOVEXATTR": {
|
|
344
|
+
const response = await serverInterface.removexattr(request);
|
|
345
345
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
346
|
+
return {
|
|
347
|
+
...response,
|
|
348
|
+
unique: request.unique,
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
351
|
|
|
352
|
-
|
|
353
|
-
|
|
352
|
+
case "CREATE": {
|
|
353
|
+
const response = await serverInterface.create(request);
|
|
354
354
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
355
|
+
return {
|
|
356
|
+
...response,
|
|
357
|
+
unique: request.unique,
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
360
|
|
|
361
|
-
|
|
362
|
-
|
|
361
|
+
case "DESTROY": {
|
|
362
|
+
const response = await serverInterface.destroy(request);
|
|
363
363
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
364
|
+
return {
|
|
365
|
+
...response,
|
|
366
|
+
unique: request.unique,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
369
|
|
|
370
|
-
|
|
371
|
-
|
|
370
|
+
case "GETLK": {
|
|
371
|
+
const response = await serverInterface.getlk(request);
|
|
372
372
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
373
|
+
return {
|
|
374
|
+
...response,
|
|
375
|
+
unique: request.unique,
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
378
|
|
|
379
|
-
|
|
380
|
-
|
|
379
|
+
case "SETLK": {
|
|
380
|
+
const response = await serverInterface.setlk(request);
|
|
381
381
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
382
|
+
return {
|
|
383
|
+
...response,
|
|
384
|
+
unique: request.unique,
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
387
|
|
|
388
|
-
|
|
389
|
-
|
|
388
|
+
case "SETLKW": {
|
|
389
|
+
const response = await serverInterface.setlkw(request);
|
|
390
390
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
391
|
+
return {
|
|
392
|
+
...response,
|
|
393
|
+
unique: request.unique,
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
396
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
397
|
+
case "INTERRUPT": {
|
|
398
|
+
await serverInterface.interrupt(request);
|
|
399
|
+
return undefined;
|
|
400
|
+
}
|
|
401
401
|
|
|
402
|
-
|
|
403
|
-
|
|
402
|
+
case "BMAP": {
|
|
403
|
+
const response = await serverInterface.bmap(request);
|
|
404
404
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
405
|
+
return {
|
|
406
|
+
...response,
|
|
407
|
+
unique: request.unique,
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
410
|
|
|
411
|
-
|
|
412
|
-
|
|
411
|
+
case "IOCTL": {
|
|
412
|
+
const response = await serverInterface.ioctl(request);
|
|
413
413
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
414
|
+
return {
|
|
415
|
+
...response,
|
|
416
|
+
unique: request.unique,
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
419
|
|
|
420
|
-
|
|
421
|
-
|
|
420
|
+
case "POLL": {
|
|
421
|
+
const response = await serverInterface.poll(request);
|
|
422
422
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
423
|
+
return {
|
|
424
|
+
...response,
|
|
425
|
+
unique: request.unique,
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
428
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
429
|
+
case "NOTIFY_REPLY": {
|
|
430
|
+
await serverInterface.notifyReply(request);
|
|
431
|
+
return undefined;
|
|
432
|
+
}
|
|
433
433
|
|
|
434
|
-
|
|
435
|
-
|
|
434
|
+
case "FALLOCATE": {
|
|
435
|
+
const response = await serverInterface.fallocate(request);
|
|
436
436
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
437
|
+
return {
|
|
438
|
+
...response,
|
|
439
|
+
unique: request.unique,
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
442
|
|
|
443
|
-
|
|
444
|
-
|
|
443
|
+
case "READDIRPLUS": {
|
|
444
|
+
const response = await serverInterface.readdirplus(request);
|
|
445
445
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
446
|
+
return {
|
|
447
|
+
...response,
|
|
448
|
+
unique: request.unique,
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
451
|
|
|
452
|
-
|
|
453
|
-
|
|
452
|
+
case "LSEEK": {
|
|
453
|
+
const response = await serverInterface.lseek(request);
|
|
454
454
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
455
|
+
return {
|
|
456
|
+
...response,
|
|
457
|
+
unique: request.unique,
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
460
|
|
|
461
|
-
|
|
462
|
-
|
|
461
|
+
case "COPY_FILE_RANGE": {
|
|
462
|
+
const response = await serverInterface.copyFileRange(request);
|
|
463
463
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
464
|
+
return {
|
|
465
|
+
...response,
|
|
466
|
+
unique: request.unique,
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
469
|
|
|
470
|
-
|
|
471
|
-
|
|
470
|
+
case "SETUPMAPPING": {
|
|
471
|
+
const response = await serverInterface.setupMapping(request);
|
|
472
472
|
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
473
|
+
return {
|
|
474
|
+
...response,
|
|
475
|
+
unique: request.unique,
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
478
|
|
|
479
|
-
|
|
480
|
-
|
|
479
|
+
case "REMOVEMAPPING": {
|
|
480
|
+
const response = await serverInterface.removeMapping(request);
|
|
481
481
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
482
|
+
return {
|
|
483
|
+
...response,
|
|
484
|
+
unique: request.unique,
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
487
|
|
|
488
|
-
|
|
489
|
-
|
|
488
|
+
case "SYNCFS": {
|
|
489
|
+
const response = await serverInterface.syncfs(request);
|
|
490
490
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
491
|
+
return {
|
|
492
|
+
...response,
|
|
493
|
+
unique: request.unique,
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
496
|
|
|
497
|
-
|
|
498
|
-
|
|
497
|
+
case "TMPFILE": {
|
|
498
|
+
const response = await serverInterface.tmpfile(request);
|
|
499
499
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
500
|
+
return {
|
|
501
|
+
...response,
|
|
502
|
+
unique: request.unique,
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
505
|
|
|
506
|
-
|
|
507
|
-
|
|
506
|
+
case "STATX": {
|
|
507
|
+
const response = await serverInterface.statx(request);
|
|
508
508
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
509
|
+
return {
|
|
510
|
+
...response,
|
|
511
|
+
unique: request.unique,
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
514
|
|
|
515
|
-
|
|
515
|
+
default: {
|
|
516
516
|
// @ts-expect-error exhaustive check
|
|
517
|
-
|
|
518
|
-
|
|
517
|
+
throw Error(`unsupported opcode: ${request.opcode}`);
|
|
518
|
+
}
|
|
519
519
|
}
|
|
520
520
|
};
|
|
521
521
|
|