History log of /fuchsia/zircon/docs/syscalls/guest_set_trap.md
Revision Date Author Comments
# 99387274 23-Jul-2018 George Kulakowski <kulakowski@google.com>

[docs][syscalls] Add TODOs about documenting system call rights

ZX-2399 #comment

Test: no functional change
Change-Id: I1f285c677e2444fcf1d720d7ecbd9f490c303962


# 013973ad 26-Jun-2018 Doug Evans <dje@google.com>

[docs][syscalls] Clarify ZX_ERR_NO_MEMORY as eventually going away

Not touched:
vmo_op_range.md
vmo_set_size.md
vmo_write.md
The current text is ok for these.

ZX-2303 #comment patch

Tested: Just doc changes, read before/after.

Change-Id: I2c6e1039e2b205e9cc377b9888755fa7ac676c78


# b484762d 02-Mar-2018 Abdulla Kamar <abdulla@google.com>

[docs] Update docs for guest_set_trap

The behaviour of the various kinds of traps has now changed, so update
the docs to match.

Change-Id: Ifff8619c62b07ee83043c1027f8869540c2681f4


# 0cefa2db 01-Jan-2018 Alex Legg <alexlegg@google.com>

[hypervisor][x86] Add VCPU packet type

Capture START_UP IPIs and forward the instruction pointer and APIC ID to
userland so it can bring up another VCPU.

ZX-1246 #comment

Change-Id: I624d87eb6031492dc7125750e28de7c4a1c1662c


# b15008a1 13-Oct-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Require explicit trap for local APIC.

We no longer create the trap within the kernel, but require it to be set
from user-space. However, we specialise this trap, so that we map the
APIC page within the address space, allowing for hardware acceleration
when possible.

Change-Id: I91efcc4e91e94d3934278be64c01a7b1a695a8d8


# 3fd820fa 30-Sep-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Always set trap key in packet.

Now that we require that all traps be explicitly set, we always have a
key to propagate into any generated packet, not just those that will
be sent over a port.

Change-Id: I52e4e77232006b89eb6cbcd1478beccfe1fe6df4


# bc53e572 27-Sep-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Explicitly trap IO.

With this, we complete the requirement that you trap all things
explicitly.

Change-Id: I09dc8d83a7e003d867547ce786f5b65da5a8d563


# 703e20d2 20-Sep-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Add ZX_GUEST_TRAP_BELL.

This new trap type allows a trap to be generated when a memory region
is accessed. Unlike ZX_GUEST_TRAP_MEM, this does not attempt to fetch
the instruction that generated the access. We can also deliver the
trap asynchronously via a port, as we do not need to pause execution
of the VCPU that caused the trap.

In a follow up to this change, I'll begin explicitly marking all the
memory regions that require a trap, which will also allow us to
optimise our page-fault path.

Change-Id: I0505dfe79abf997b0544ff6136bb739e52f8ba96


# 56366b8e 19-Sep-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Fail if port is set for a mem-trap.

It is not valid for a port to be set with a mem-trap.

Change-Id: I232ae72d8f4d2ea2ea6779d91b130de8974c49c9


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

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 37904fb9 05-Sep-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Return failure if trap length is 0.

If guest_set_trap() is called with a len of 0, we should return
failure.

Change-Id: I996a942786376b793e9447e65a02d34042261cf6


# 2a6a0e8a 21-Aug-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Add key arg to mx_guest_set_trap.

This allows us to use mx_port_packet_t::key to distinguish packets for
different traps that have been set using the same port.

Change-Id: I407b3df8702022b8d4fefee53d25af63601ac1d2


# a81264ef 20-Aug-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Make guest traps use ports.

Ports are a much better fit for the hypervisor than FIFOs. To take
advantage of ports, we use our arena for PortPackets, rather than
relying on the system-wide arena. This also allows us to easily wait
and signal in response to packet availability in our own per-trap
arenas.

Change-Id: I8664f8438710e38abf96aefedc6ba446aaf04683


# 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