Commit graph

2749 commits

Author SHA1 Message Date
Fabian ae4733a25e Integration test: Boot from bzimage 2020-08-30 19:37:14 -05:00
Fabian 028e131ddb Rename OnJSONLoaded & small refactor 2020-08-30 19:37:14 -05:00
Fabian aea2409b1d Ignore filesystem base when state image is provided 2020-08-30 19:37:14 -05:00
Fabian e1ad19ed30 Update debian dockerfile (add mesa utils, networking tools, disable dhcpcd on boot) 2020-08-30 19:37:14 -05:00
Fabian 68c59d10a5 copy-to-sha256 and fs2json: Support for tar files, refactor debian-full script to not require root 2020-08-30 19:37:14 -05:00
Fabian af0f153640 Refactor using new filesystem function 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 23a2ac9c44 Default to synchronous execution for nasm tests 2020-08-30 19:37:14 -05:00
Fabian e94c30ef6f Don't wrap text in SyncBuffer 2020-08-30 19:37:14 -05:00
Fabian 58695b1ddb Quote variables properly 2020-08-30 19:37:14 -05:00
Fabian 9ffbba7bcd Use bzimage loader for debian-full, remove ugly build script for the 9p boot hard drive image 2020-08-30 19:37:14 -05:00
Fabian e1c6116a0f Implement Linux kernel boot protocol, accept bzimage/initrd as boot configuration 2020-08-30 19:37:14 -05:00
Fabian 04d282c298 Firmware port: Pretend to be qemu, implement all indexes used by seabios 2020-08-30 19:37:14 -05:00
Fabian 753fcb25c7 Simplify multiboot buffer during init 2020-08-30 19:37:14 -05:00
Fabian 148be53525 Try fixing nasmtests hang for gdb 8.2 2020-08-30 19:37:14 -05:00
Fabian e33c8a85ae Remove fluxbox theme 2020-08-30 19:37:14 -05:00
Fabian fe8d462b6c Update readme 2020-08-30 19:36:45 -05:00
Fabian 8d6baff91c Fix rustfmt 2020-08-30 19:29:54 -05:00
Fabian e149b9d372 Remove unused doc generation scripts 2020-08-30 19:29:54 -05:00
Fabian cb0ca91f58 Resolve some internal imports directly 2020-08-30 19:29:54 -05:00
Fabian 57b51d440d nodejs: Prefer perf_hooks module over custom shim for performance.now 2020-08-30 19:29:54 -05:00
Fabian 2ee68c960a Make --strip-debug configurable (for release builds) 2020-08-30 19:29:54 -05:00
Fabian 53bd41614f Fix minor problem with Rust port of call_interrupt_vector 2020-08-30 19:29:54 -05:00
Fabian 7796d9dcb4 Clean up wasm loading, remove unused code for emscripten 2020-08-30 19:29:54 -05:00
Fabian 618062299d Remove emscripten from docker test image 2020-08-30 19:29:54 -05:00
Fabian 5bcee471ca Remove old C code 2020-08-30 19:29:54 -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
Fabian a39d58d4e5 ne2k: Fix transfer of empty packet and start page after wrap-around 2020-08-30 19:29:54 -05:00
Fabian 28a6f1a84a Add pit.dump 2020-08-30 19:29:54 -05:00
Fabian efea556a10 Implement NetworkAdapter.change_proxy 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 6fe226eec9 Filestorage: Reuse write-to-indexeddb logic 2020-08-30 19:29:54 -05:00
Ernest Wong 27a825dce3 Filestorage: Preserve key names when writing into indexeddb 2020-08-30 19:29:54 -05:00
Ernest Wong a0c984dc8d Filesystem: Introduce IndexedDBFileStorage
Uses MemoryFileStorage as a fallback when:
- v86 is used in a browserless environment, e.g. NodeJS
- browser doesn't support indexedDB
- opening indexedDB fails
- existing database is a newer version
- existing database is an old version and is under use - blocking
current v86 instance to connect to it.
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
Ernest Wong 1a6f3cfef3 Compile from and to ECMASCRIPT_2017
- Want to use async/await features.
- We need modern web browsers to run Web Assembly anyway.
2020-08-30 19:29:54 -05:00
Amaan Cheval b6b55e5644 cpu: Refactor get_tss_stack_addr to simplify things 2020-08-30 19:29:54 -05:00
Amaan Cheval 0bf4e4faf6 cpu: Port get_tss_stack_addr to Rust 2020-08-30 19:29:54 -05:00
Amaan Cheval de8411f184 Minor: Inline has_error_code 2020-08-30 19:29:54 -05:00
Amaan Cheval 3b94c5f9d3 cpu: Refactor to use error_code: Option<i32> for call_interrupt_vector 2020-08-30 19:29:54 -05:00
Amaan Cheval ce090cfb4e cpu: Inline into InterruptDescriptor and clean call_interrupt_vector 2020-08-30 19:29:54 -05:00
Amaan Cheval f7f0f64f84 cpu: Use of_<T> functions to init descriptor and selector structs 2020-08-30 19:29:54 -05:00
Amaan Cheval ae70cb7e4f cpu: Minor refactor in call_interrupt_vector 2020-08-30 19:29:54 -05:00
Amaan Cheval 8ba3de34c1 cpu: Check for reserved zeros in interrupt descriptor
This lets us make our gate type validity check more readable
2020-08-30 19:29:54 -05:00
Amaan Cheval aa789d4129 cpu: Follow call_interrupt_vector's specification more closely 2020-08-30 19:29:54 -05:00