Commit graph

162 commits

Author SHA1 Message Date
Fabian
fcdd110cb7 Clean up some tests 2024-09-12 21:31:40 -06:00
Neal Shah
f3339aa78e
migrate 9pfs to use TextEncoder to fix 3 byte utf bug (#1139) 2024-08-29 23:42:46 +02:00
Fabian
fada8a0fab no useless return 2024-07-24 16:23:42 +02:00
Fabian
5435c2f8c4 s/==/=== 2024-07-13 18:27:32 +02:00
Fabian
60c35e36ce consistent style (space after keyword) 2024-07-13 18:27:32 +02:00
Fabian
1c7432d5ae no single quotes please 2024-07-13 18:27:32 +02:00
Fabian
5ac77727b7 fix #1073 2024-07-13 18:27:32 +02:00
Join.G
a0ef1ccd16 The line is unnecessary. 2024-06-10 04:18:45 -06:00
Fabian
b91e26cbce 9pfs: adapt buffer size to client msize (improves performance one recent versions of linux) 2024-04-26 15:06:47 +09:00
Fabian
afdac896d0 9pfs: set S_IFREG for regular files (fix Invalid argument on linux 6.6+, fix #996) 2024-04-26 15:06:47 +09:00
Fabian
c3c58e003e minor: allow dead code elimination 2024-04-26 15:06:47 +09:00
hello-smile6
b96665285b
Allow sharing files with guest using UI, even with custom profile (#702)
The 9p filesystem is always accessible by the guest, even if the UI is hidden. This will make the file picker UI be shown when needed
2022-07-14 10:26:13 +02:00
Fabian
4fa37f354f fix: 9p: limit read size to replybuffer size (fix Linux 5.15) 2022-02-17 17:38:01 +01:00
Ryo Ota
df94bd595a fix typo 2021-09-23 19:30:13 +02:00
Fabian
5f86008338 Dead code (Unmarshall2) 2021-04-03 21:10:49 -05:00
Fabian
b052280c37 Dead code (closure-base.js) 2021-04-03 21:10:49 -05:00
Fabian
ea4c0e3c91 Compile without /usr/include 2021-01-03 22:43:03 -06:00
Fabian
497f618cab Merge branch 'wasm' into master 2021-01-03 02:07:20 -06:00
Fabian
ac9d248c85 9p stats: Show file in progress after parallel operation finishes 2020-12-31 19:14:34 -06:00
Fabian
6b38af941e Reduce size of filesystem state 2020-12-31 19:14:33 -06:00
Fabian
b34d4d95b7 Add zstd 2020-12-31 19:14:33 -06:00
Fabian
cd3f48c0a3 Simplify recursive state handling (don't require get_state for set_state) 2020-12-31 19:14:32 -06:00
Fabian
b96f984963 Use softfloat f80 for x87 fpu
This fixes several long-standing issues with x87 float emulation, in particular:

- 80 bit precision floats, fixing Haiku after its switch to musl libc (hrev53728)
- the precision bit in the x87 control word
- fucom and fucomi (unordered comparisons)
- aliasing of x87 and mmx registers
- rounding during conversion to integers

Operations that are not implemented in softfloat were implemented by
converting to f64 (sine, pow, ln, etc.) and thus operate with lower
precision.

Softfloat has been combined into a single file using a script [0] and checked into the repository.

[0] 57df21e2eb/contrib/single_file_libs/combine.sh
2020-12-31 19:14:32 -06:00
Fabian
acb8ad5423 Avoid console.assert (doesn't throw) 2020-12-31 19:14:30 -06:00
Fabian
d5c9b29942 Upgrade jshint 2020-12-31 19:14:29 -06:00
Fabian
b0a34e7a86 fs: assert that sha256 is present 2020-12-31 19:14:29 -06:00
Ernest Wong
3dde97f14a Filesystem: Work on entire buffer when writing to file
The Uint8Array that stores the file data is usually larger than the file
size itself, to improve the amortized complexity of resizing the array.

When we previously switched over to using FileStorages, the method
fs#Write() was modified to retrieve only the subarray of the Uint8Array
that contains the file (i.e. excluding the unused padding at the end),
so appending to a file always tries to resize the array even though the
ArrayBuffer that backs it has enough space for the new data.
2020-08-30 19:37:15 -05:00
Ernest Wong
4651e28177 Fix type annotations for async functions 2020-08-30 19:37:15 -05:00
Ernest Wong
ad16fb0656 Filesystem: Add missing awaits to async function calls 2020-08-30 19:37:15 -05:00
Ernest Wong
840415a052 Filestorage: (minor) Improve naming can_uncache() -> uncache() 2020-08-30 19:37:15 -05:00
Ernest Wong
2f4520619a Filesystem: Tidy naming of STATUS_ON_SERVER to ON_STORAGE 2020-08-30 19:37:15 -05:00
Ernest Wong
c625bba498 Filestorage: Implement cache cleanup - avoid memory growth 2020-08-30 19:37:15 -05:00
Ernest Wong
04d2b72248 9p: Simplify read - OpenInode is not asynchronous 2020-08-30 19:37:15 -05:00
Ernest Wong
62c880b415 Filestorage: Integrate chunking and revert unnecessary chunking
- Integrate new FileStorage interface with lib/filesystem.js
- Simplify the FileStorage interface with the intention that it only
serves read-only files.
2020-08-30 19:37:15 -05:00
Ernest Wong
c029944965 Filesystem: Distinguish server file via inode status.
Also make file_storage a mandatory argument to FS.
2020-08-30 19:37:15 -05:00
Ernest Wong
6a06a7108a Tidy: file_storage snake case and interface naming convention 2020-08-30 19:37:15 -05:00
Fabian
639ec0019b Commit a temporary workaround 2020-08-30 19:37:15 -05:00
Fabian
d2f86799e9 Simplify load_from_json: Accept json object directly, don't run asynchronously 2020-08-30 19:37:14 -05:00
Fabian
eb93fa5db7 Filesystem: Temporarily cache inode data until storage is chunked properly 2020-08-30 19:37:14 -05:00
Fabian
fe5a1f5322 Fix error case in read_dir/read_file 2020-08-30 19:37:14 -05:00
Fabian
028e131ddb Rename OnJSONLoaded & small refactor 2020-08-30 19:37:14 -05:00
Fabian
3f79814e05 Detect initrd/bzimage in 9p filesystem and load before boot 2020-08-30 19:37:14 -05:00
Fabian
b83ed1b7c1 Minor 2020-08-30 19:29:54 -05:00
Fabian
dd929f52c5 9p: Add create event, add file name to the read event 2020-08-30 19:29:54 -05:00
Fabian
fbdb4a28ea Remove all uses of "for in" 2020-08-30 19:29:54 -05:00
Fabian
3b86889a99 Throw proper error 2020-08-30 19:29:54 -05:00
Ernest Wong
44d54facb7 Filesystem: Remove remnants of file loader 2020-08-30 19:29:54 -05:00
Ernest Wong
c1729b7daf Filesystem: Don't modify local copy of filedata after set_data
While the original code would've worked for MemoryFileStorage, it will
not work for FileStorages that clone the data before saving (e.g.
IndexedDBFileStorage) as local changes won't be reflected onto the
storage class.
2020-08-30 19:29:54 -05:00
Ernest Wong
0a67e3532f Filesystem: Introduce FileStorage class for server-loaded files 2020-08-30 19:29:54 -05:00
Ernest Wong
595d6dca55 Filesystem: Refactor inodedata accesses to async methods
The "// jshint ignore:line" comments are pretty messy, so squint your eyes.
They're systematically placed, so we can regex it out when jshint's
new version finally arrives.

Using async/await instead of callbacks due to callback hell, and it also
helps minimising the diff)
2020-08-30 19:29:54 -05:00