[zircon][system] Extract scsilib from virtio into a common library
scsilib is a library to construct a Fuchsia block device on a SCSI
Direct Access Block Device. It implements some of the complex SCSI-3
probe sequence and is used by virtio-scsi.
For expediency it was originally written as part of virtio/scsi;
extract it to a common location so UMS and UASP and UFS could use it.
./scripts/run-zircon-x64 -- \
-drive if=none,id=hd,file=/tmp/blk.img \
-device virtio-scsi-pci,id=scsi \
-device scsi-hd,drive=hd,scsi-id=1,lun=1 \
-drive if=none,id=hd2,file=/tmp/blk2.img \
ID SIZE TYPE LABEL FLAGS DEVICE
000 16M /dev/sys/pci/00:02.0/virtio-scsi/scsi-disk-1-1/block
001 16M /dev/sys/pci/00:02.0/virtio-scsi/scsi-disk-2-1/block
[zx] Transition zx::channel::read and zx::channel::read_etc (part 2)
Transitions callers of zx::channel::read and zx::channel::read_etc to a
corrected argument order. The first step happened in a previous commit
which temporarily added method names during the transition,
zx::channel::rea2 and zx::channel::rea2_etc to reflect the new argument
This commit renames rea2 callers back to read, and changes the class method
definitions to the corrected order.
[fshost] Remove global job parameter
"zx::job::default_job()" was the only value used; insert
that directly to avoid using global variables.
If the usage of multiple distinct jobs is required in the future,
we can re-add this feature without using global variables.
[fshost] Reformat minfs on boot if corrupt
[scenic] Dump scenes improvements
Dump-scenes now displays all Resources, even if they aren't reachable
from a Compositor. This is of great help when debugging issues
where something hasn't been linked into the scene graph and you see a
blank area of the screen.
Test: Ran dump-scenes on sysUI
[devcoordinator] Encapsulate Device::children
This no longer exposes the underlying list outside of the child class
[wlan][brcmfmac] Convert brcmfmac driver from C to C++
TEST=Booted on vim2 and associated with GoogleGuest; booted AP mode and
connected from third device.
[gndoc] Update GN build arguments documentation
[debugger][x64] Added HW watchpoint test.
This creates a simple application to test that the low level thread
state API can be used to successfully trigger a HW watchpoint. This
binary is able to trigger a HW exception.
This binary is made for all archs though only the x64 side is implemented.
Ported the HW breakpoint binary to the same layout, having only the
arm64 side implemented.
TEST=Manual on NUC (x64).
[zircon][unittest] Rename ticks.c to ticks.cpp
Also added a cast so that it builds in c++.
Test: qemu time-test
[sdk] Move fuchsia.router.config to //sdk/fidl
Moving router manager fidl to proper location.
[scenic] Color correction implementation
Pipe through color correction matrices provided by a11y by creating a new fidl interface command function that takes in matrix preoffsets, coefficients and postoffsets, as well as a compositor id, and passes the data along through the session manager to the compositor's swapchain, which then passes the information along to the swapchain's display through the display manager
Tested = New FIDL command for passing color correction data to Scenic,
proper compositor is found based on the provided compositor ID, data
passed to the compositor's display can be retrieved and matches the
To Be Tested - (SCN_1375) E2E Pixel test to ensure that Zircon display
manager is properly reading and applying the values sent to it by
[scenic] Only use PaperRenderer2.
After this change, the legacy PaperRenderer "1" is not longer used,
and can be deleted from Escher.
[wlan][sme] Switch to inspect_log macro
Also log the `disconnect` case, which wasn't done previously.
Test: connect to local network and do a dump manually
[paver] Rework paver lib interface.
The paver lib was to be closer to the interface it will be once paving
is exposed as a fidl service. The next change will hook it up to the
paver service, and the last will switch the install-disk-image binary to
use the paver service, instead of of directly invoking the library
Tested: Paved NUC, astro, vim2, and pixelbook
[fdio] Convert remoteio.c to C++
This is in preparation of llcpp integration.
[thinfs] Add host tests to build system.
This commit adds the thinfs host tests to the build system, allowing
them to be run via `fx run-host-test`.
I had to leave out the `fs/msdosfs` tests because they rely on other
binaries, like `dd` and `mkfs`.
I have tested them on linux and they ran fine.
This is how I ran the tests:
$ fx run-host-tests thinfs_bitops_test
$ fx run-host-tests thinfs_block_fake_test
$ fx run-host-tests thinfs_block_file_test
$ fx run-host-tests thinfs_cache_test
$ fx run-host-tests thinfs_gpt_test
$ fx run-host-tests thinfs_mbr_test
$ fx run-host-tests thinfs_thinio_test
[pkg_resolver] Support static URI rewrite rules
This change adds support for loading and using statically configured URI
rewrite rules in the package resolver. Dynamic rewrite rules are
prioritized over static rewrite rules.
[fidl] Remove out-dated ERR_ guidance
[omaha-client] Small fix for rust doc.
Use //! instead of /// for crate/module level doc.
Test: fx rustdoc garnet/lib/rust/omaha_client --open
[debugger] Test that thread-specific breakpoint works.
This integration tests spawns a number of threads and verifies that only
the correct thread hits the breakpoint and all other continue untouched.
The actual logic was implemented in a previous CL.
Added a lot of debug statements in order to track down problems. As
usual, these are deactivated in normal running of the agent.
TEST=Integration :) (fx run-test debug_agent_tests)
[fidlc] Improved support for anonymous names
Since we have anonymous names which do not come from source files, e.g.
the name of the built-in uint32 type, we must handle absence of location
all the way down to how we report errors.
One benefit is the removal of the is_anonymous() method on Name:
callers should always assume that names could be anonymous, and this
should be hidden by the Name object model.
[zircon][tests] Extend timeouts in scheduler PI tests
Zircon's kernel-linked unit tests have a number of tests of the Priority
Inheritance implementation; the tests have short timeouts. Raise the
timeouts for threads exiting and for rendezvous, to allow the tests to
pass on Grunt Chromebooks (ex: HP Chromebook 14-db00030nr).
k ut pi and k ut all on HP Chromebook 14 no long panic:
$ k cpu features
[00297.995] 01189:01210> Vendor: AMD
[00297.995] 01189:01210> Microarch: Bulldozer
[00297.995] 01189:01210> F/M/S: 15/70/0
[00297.995] 01189:01210> patch_level: 6006705
[00297.995] 01189:01210> Brand: AMD A4-9120C RADEON R4, 5 COMPUTE CORES 2C+3G
[00297.995] 01189:01210> Features: fpu sse sse2 sse3 ssse3 sse4.1 sse4.2 mmx avx avx2 fxsr xsave mon aesni clflush
[00297.995] 01189:01210> fsgsbase smep rdrand syscall nx huge rdtscp invar_tsc
[00297.995] 01189:01210> Properties:
$ k ut pi
[00083.559] 00000:00000> pi : Running 6 tests...
[00083.719] 00000:00000> basic : PASSED (159574557 nSec)
[00083.731] 00000:00000> changing priority : PASSED (12076525 nSec)
[00085.736] 00000:00000> long chains : PASSED (2005062331 nSec)
[00085.947] 00000:00000> multiple waiters : PASSED (210688460 nSec)
[00086.093] 00000:00000> multiple owned queues : PASSED (146293419 nSec)
[00086.106] 00000:00000> cycles : PASSED (13520778 nSec)
[00086.106] 00000:00000> pi : All tests passed (6/6) in 2547229379 nSec
$ k ut all
[00107.835] 01189:01210> SUMMARY: Ran 35 test cases: 0 failed
[wlan-inspect][sme] Log join scan events
1. Connect to local network and dump inspect state
2. fx run-test wlan-inspect-tests
[magma][msd-img-rgx] Implement fuchsia.gpu.magma.Device
And mark this device as ZX_PROTOCOL_GPU so that it's exposed through
[mdns] Switch default port for mDNS responder to 5356
This uses the new configuration port setting to change the default port
to 5356 (from the default of 5353).
DX-1365 #done switch default for system responder
[kernel][sched] Disable fair scheduler until E2E tests stabilize.
Disable fair scheduler on arm64 and x64 to reduce uncertainty while
other E2E test blockers are addressed.
Test: Build arm64 and x64; Observe correct scheduler.
[virtcon] Make virtcon host a fidl service for sessions.
(Second attempt, previous try at:
reverted before due to race condition due to async fidl
the virtcon (virtual-console) binary used to provide new sessions
through a convoluted path through device coordinator. This will make it
expose a fidl service directly for clients to request a new session.
This removes device coordinator from the operational loop and will make
it easy for the virtual-console binary to stand on it's own once we have
something else to start it.
It is a little messy due to the virtcon binary using the "port" library
heavily and fidl being built around the async_loop.
* Booted the following 3 times and verified that all three virtcons
appear and are interactive:
* qemu w/ KVM
* Tested qemu with virtcon.disable=true
* Tested qemu with zircon-only build (zircon/scripts/run-zircon-x64 -b
ZX-3403 # Get virtcon out of the way.
[omaha-client] Add omaha_client_ctl.
A commandline tool that talks to omaha client FIDL interface.
Test: fx shell omaha_client_ctl
Test: fx shell omaha_client_ctl get-channel
Test: fx shell omaha_client_ctl set-channel dev-channel
Test: fx shell omaha_client_ctl get-state
Test: fx shell omaha_client_ctl check-now
Test: fx shell omaha_client_ctl check-now --monitor
Test: fx shell omaha_client_ctl monitor
[A11y] updates node definition with extra semantic information.
This change addes missing semantic information into the semantic node,
part of the accessibility infrastructure.
Previously, the node missed some important information to represent a
semantic node correctly.
For example: attributes, states and actions that can be performed on a
node were missing.
This change introduces the missing fields into the node data
structure. All the rest is left almost untouched, with some minor
naming improvements and the removal of some redundancies (for example,
removing the extra data field in the node itself).
Another important and noticeable changes is the removal of the label field.
Labels describe the name of a semantic element, but a label of a
semantic node can be defined by another semantic node (please see the
aria spec 1.1 for examples).
With this in mind, the best way of labeling an element is via an
attribute pair <label, actual node label>, when it produces its own,
or by the attribute pair <labeled_by, node_id>, when another node is
responsible for that.
Hit testing logic is also removed, as this is not how we are going to
do this in the future. the field children_hit_test_order was removed,
as we figure out how hit testing will be done for accessibility.
* Installed on device.
* fx run-test a11y-tests
[debugger] Fix input scrolling.
The logic for the terminal size was broken and returned a size of 0 in
the success case which disabled scrolling.
[benchmarking] Remove runbenchmarks library
Now that all other layers have been converted over to use benchmarking
instead, we can remove runbenchmarks.
PT-73 # comment patch
[benchmarking] Invert input/trace foreground/background-ness
Run input as a background job and trace record as a foreground job.
This allows us to block on trace record, which ensures that the trace
file is written by the time we start trying to process it.
Unfortunately there's still a race between input and trace record
startup, however I strongly prefer that race over what we had before.
[gndoc] Update GN build arguments documentation
[componentmgr] Start eager children in parallel
[component_index] Fuzzy search interface
[devcoordinator] Fix bug in vfs_exit() logic
We were erroneously not running vfs_exit ever due to an incorrect check.
This patch also adds tests to verify vfs_exit runs on shutdown and
[fidlc] Properly report unknown protocols
[text] Move position manipulation functions into separate module
It's simpler to have it be detached from the details of text_state, and
I think we may want to reuse these functions in other bits of code down
[wayland][core] Use String::from_utf8_lossy.
When opening an image file, Firefox will set the window title to a
string that inculdes the image dimensions using what appears to be the
unicode multiplicaiton sign (code point 0x00d7). The specific encoding
supplied by Firefox does not appear to be valid UTF8.
Work around this by not panicing and simply truncating strings that are
not valid UTF8. PD-204 tracks finding a more proper solution here that
will allow us to move back to more strict UTF8 parsing.
Test: Opened image file in Firefox and observed no panic in the bridge.
[devcoordinator][devhost] Drive suspend from the coordinator
The coordinator now handles coordinating suspend on a device-by-device
basis, rather than just handling telling which devhosts to begin
suspending in which order.
[fidl][llcpp] Regenerate llcpp bindings code in fidl-llcpp-interop tests
These were not updated together with the change to generate move
constructors for unions. Regenerating them exposed an issue that all llcpp
unions become move-only, despite some having all copy constructible
payloads. This is tracked in FIDL-602.
[mdns] add 'port' property to config file
This CL adds a 'port' property to the config file schema so that mDNS
can be run on a port other than 5353.
TEST: No behavior change. Test for regressions:
$ avahi-browse -t _fuchsia._udp.
[ES-116] Re-enable Hack Filesystem Unit Test
Get rid of the ifdef to disable the test and run it to make sure it passes.
[fx build] Emulate -k 0 behavior across zircon and fuchsia builds
The `-k 0` switch would instruct the build to keep going in case of
errors. This patch emulates that behavior across two invocations of
ninja, for zircon and fuchsia.
TEST: run builds with errors and verify that the build continues and
also returns an error code
[rust] remove deprecated unsafe_many_futures macro
[wlan] Remove .clang-format for connectivity/wlan/drivers
clang-format is not currently enforced for this directory, so we remove
these custom options so we converge with Fuchsia style going forward.
[feedback] switch GetData() to fit::promise
* this allows us to integrate with asynchronous attachment providers (LogListener and Inspect) without having to run a second loop, which seems flaky
* we use a fit::bridge to control when and how to complete: success in Done() and failure in FIDL errors or timeout
TESTED=`fx run-test feedback_agent_tests`
TESTED=`fx run-test crashpad_agent_tests`
[amber] fix resource exhaustion during pkg install
The code was not correctly handling the closing of the request body, or
exiting the retry loop, leading to resource exhaustion for very large package
Bug: PKG-696 #done
[tel][qmi] Switch codegen to using a type instead of a raw size
fixes dBm to be a signed number