History log of /fuchsia/zircon/system/ulib/mini-process/subprocess.c
Revision Date Author Comments
# fd7c237c 26-Aug-2018 Roland McGrath <mcgrathr@google.com>

[build] Add USE_PROFILE=true to compile for profiling/code coverage

This enables building user space libraries, applications and tests
with profiling instrumentation which is needed for collecting code
coverage. The USE_PROFILE=true make command line argument uses the
default build directory build-CPU-profile.

Test: CQ and manual builds with USE_PROFILE=true
Change-Id: I68e2d59bbdfce672cb6bbbf94d21995eacb16fb5


# 21f42445 02-Jul-2018 Carlos Pizano <cpu@google.com>

[zircon] Exempt ZX_INFO_HANDLE_VALID from policy

.. from policy check. In other words the syscall
zx_object_get_info(handle, ZX_INFO_HANDLE_VALID, nullptr, 0..)
should not generate an exception even if the job policy has
ZX_POL_BAD_HANDLE enforced.

The intention here is to allow developers to write debugging
aids that don't cause a fatal crash, without having to tweak
the job policy.

This was so at some point but lacking a test it regressed.

TEST= handle-info-test
policy-test (new test)

Change-Id: I9ec0f93c3fe5cd998b11adffdbf2fc2e1054c248


# 53a24913 21-Jun-2018 Adam Barth <abarth@chromium.org>

[syscalls] Remove read_status from zx_channel_call

This parameter no longer has a purpose. Also, remove ZX_ERR_CALL_FAILED.
This status code no longer has a purpose.

Test: No behavior change
Change-Id: I71945ea9d1d6d591a20476106df1e598dfaf97b1


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 7fe87420 31-Jul-2017 Abdulla Kamar <abdulla@google.com>

[magenta][policy] Remove MX_POL_NEW_GUEST.

We're moving from a job policy to resources, so first step is to
remove the policy. The next CL will add the appropriate resource
wiring.

Change-Id: I2e5de85c202cbb1fc4543863e2cb52e1bd525c81


# 60e9e6c0 25-Jul-2017 Abdulla Kamar <abdulla@google.com>

[magenta] Add syscalls for the hypervisor.

This change adds 7 syscalls for the hypervisor:
* guest_create - create a guest
* guest_set_trap - sets a trap within a guest
* vcpu_create - create a VCPU
* vcpu_resume - resume execution of a VCPU
* vcpu_interrupt - issue an interrupt on a VCPU
* vcpu_read_state - read the state of a VCPU
* vcpu_write_state - write the state of a VCPU

This formalizes the hypervisor ops that were previously used by
promoting them to first-class syscalls.

Change-Id: I5d8e3772b98ae423faa39d21a6ef2901e940ffd9


# dfc94dd6 26-Jul-2017 Mark Seaborn <mseaborn@google.com>

Revert "[mini-process] Move the subprocess's code into a separate ELF object"

This reverts commit 606773c3fc9595b82166f4389261dc45f2cf1216.

I am reverting this because it broke core-tests, when run via
"run-magenta ... -c 'userboot=bin/core-tests'". The bots did not
catch that because they don't currently run core-tests (see IN-35).

Change-Id: I9949ec809648b0254f2ae376156ca0528e781fb8


# f6a04df2 26-Jul-2017 Mark Seaborn <mseaborn@google.com>

Revert "[ulib][mini-process] Compile all subprocess code without sanitizers"

This reverts commit 911349d56a1797170b2aaedf22858e2331f3967d.

This is so that I can revert an earlier commit that this was based on,
606773c3fc9595b82166f4389261dc45f2cf1216, which broke core-tests (when
run via "run-magenta ... -c 'userboot=bin/core-tests'").

Change-Id: Idf54a2943ae8e891b6ed6d18b6575c5e31bdac51


# 911349d5 25-Jul-2017 Roland McGrath <mcgrathr@google.com>

[ulib][mini-process] Compile all subprocess code without sanitizers

Disabling all the sanitizer stuff on the command line covers more than
the attributes in the code can and is more robust to code chagens.

Change-Id: I544349a67ec6a7a6e9299999a8595f9d7ed0d486


# c962df52 23-Jul-2017 Abdulla Kamar <abdulla@google.com>

[magenta][policy] Add MX_POL_NEW_GUEST.

Add MX_POL_NEW_GUEST to control creation of guests of the hypervisor.

Change-Id: Ib83df93f11fcef23ebcf298b1c865fcebcddef46


# 606773c3 25-Jul-2017 Mark Seaborn <mseaborn@google.com>

[mini-process] Move the subprocess's code into a separate ELF object

Before this change, the code for minipr_thread_loop() was copied from
the parent process into the child process. That was a hack that
assumed that the function was no bigger than kSizeLimit bytes. If
minipr_thread_loop() contained any calls to external functions (maybe
inserted by the compiler), that could cause crashes at run time.

Clean this up by moving that code to a separate ELF file (an
executable/library) and by ELF-loading that. This means that any
problems of having external references will be caught at link time.
This also makes it possible to split up the subprocess code into
multiple functions.

Change-Id: I1ecd19ae5457c3753080fd1695e0acde2d5af08b


# f4a09ffb 25-Jul-2017 Mark Seaborn <mseaborn@google.com>

[mini-process] Split the subprocess's code into a separate file

mini-process.c contained mostly code that runs in a parent process,
plus one function that runs in a subprocess. Split the latter into a
separate .c file. This involves moving some structs to a header.

This is a step towards moving the subprocess's code into a separate
ELF executable.

Change-Id: I02d23b7fdcc128d7f273a02d407f90ee1766a2c5