Skip to content
8 changes: 4 additions & 4 deletions src/library_sigs.js
Original file line number Diff line number Diff line change
Expand Up @@ -424,20 +424,20 @@ sigs = {
_wasmfs_opfs_get_child__sig: 'vpippp',
_wasmfs_opfs_get_entries__sig: 'vpipp',
_wasmfs_opfs_get_size_access__sig: 'vpip',
_wasmfs_opfs_get_size_blob__sig: 'ii',
_wasmfs_opfs_get_size_blob__sig: 'ji',
_wasmfs_opfs_get_size_file__sig: 'vpip',
_wasmfs_opfs_init_root_directory__sig: 'vp',
_wasmfs_opfs_insert_directory__sig: 'vpipp',
_wasmfs_opfs_insert_file__sig: 'vpipp',
_wasmfs_opfs_move_file__sig: 'vpiipp',
_wasmfs_opfs_open_access__sig: 'vpip',
_wasmfs_opfs_open_blob__sig: 'vpip',
_wasmfs_opfs_read_access__sig: 'iipii',
_wasmfs_opfs_read_blob__sig: 'ipipiip',
_wasmfs_opfs_read_access__sig: 'iipij',
_wasmfs_opfs_read_blob__sig: 'ipipijp',
_wasmfs_opfs_remove_child__sig: 'vpipp',
_wasmfs_opfs_set_size_access__sig: 'vpijp',
_wasmfs_opfs_set_size_file__sig: 'vpijp',
_wasmfs_opfs_write_access__sig: 'iipii',
_wasmfs_opfs_write_access__sig: 'iipij',
_wasmfs_stdin_get_char__sig: 'i',
_wasmfs_thread_utils_heartbeat__sig: 'vp',
alBuffer3f__sig: 'viifff',
Expand Down
6 changes: 5 additions & 1 deletion src/library_wasmfs_opfs.js
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ addToLibrary({
wasmfsOPFSBlobs.free(blobID);
},

_wasmfs_opfs_read_access__i53abi: true,
_wasmfs_opfs_read_access__deps: ['$wasmfsOPFSAccessHandles'],
_wasmfs_opfs_read_access: {{{ asyncIf(!PTHREADS) }}} function(accessID, bufPtr, len, pos) {
let accessHandle = wasmfsOPFSAccessHandles.get(accessID);
Expand All @@ -334,6 +335,7 @@ addToLibrary({
}
},

_wasmfs_opfs_read_blob__i53abi: true,
_wasmfs_opfs_read_blob__deps: ['$wasmfsOPFSBlobs', '$wasmfsOPFSProxyFinish'],
_wasmfs_opfs_read_blob: async function(ctx, blobID, bufPtr, len, pos, nreadPtr) {
let blob = wasmfsOPFSBlobs.get(blobID);
Expand Down Expand Up @@ -363,6 +365,7 @@ addToLibrary({
wasmfsOPFSProxyFinish(ctx);
},

_wasmfs_opfs_write_access__i53abi: true,
_wasmfs_opfs_write_access__deps: ['$wasmfsOPFSAccessHandles'],
_wasmfs_opfs_write_access: {{{ asyncIf(!PTHREADS) }}} function(accessID, bufPtr, len, pos) {
let accessHandle = wasmfsOPFSAccessHandles.get(accessID);
Expand Down Expand Up @@ -393,10 +396,11 @@ addToLibrary({
wasmfsOPFSProxyFinish(ctx);
},

_wasmfs_opfs_get_size_blob__i53abi: true,
_wasmfs_opfs_get_size_blob__deps: ['$wasmfsOPFSBlobs'],
_wasmfs_opfs_get_size_blob: (blobID) => {
// This cannot fail.
return wasmfsOPFSBlobs.get(blobID).size;
return wasmfsOPFSBlobs.get(blobID).size;
},

_wasmfs_opfs_get_size_file__deps: ['$wasmfsOPFSFileHandles', '$wasmfsOPFSProxyFinish'],
Expand Down
9 changes: 4 additions & 5 deletions system/lib/wasmfs/backends/opfs_backend.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,28 +67,27 @@ void _wasmfs_opfs_free_directory(int dir_id);
int _wasmfs_opfs_read_access(int access_id,
uint8_t* buf,
uint32_t len,
uint32_t pos);
off_t pos);

int _wasmfs_opfs_read_blob(em_proxying_ctx* ctx,
int blob_id,
uint8_t* buf,
uint32_t len,
uint32_t pos,
off_t pos,
int32_t* nread);

// Synchronous write. Return the number of bytes written.
int _wasmfs_opfs_write_access(int access_id,
const uint8_t* buf,
uint32_t len,
uint32_t pos);
off_t pos);

// Get the size via an AccessHandle.
void _wasmfs_opfs_get_size_access(em_proxying_ctx* ctx,
int access_id,
off_t* size);

// TODO: return 64-byte off_t.
uint32_t _wasmfs_opfs_get_size_blob(int blob_id);
off_t _wasmfs_opfs_get_size_blob(int blob_id);

// Get the size of a file handle via a File Blob.
void _wasmfs_opfs_get_size_file(em_proxying_ctx* ctx, int file_id, off_t* size);
Expand Down
Loading