<!--
{
  "documentType" : "article",
  "framework" : "Hypervisor",
  "identifier" : "/documentation/Hypervisor/apple-silicon",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Apple Silicon"
}
-->

# Apple Silicon

Create and run virtual machines on Apple silicon.

## Topics

### Virtual machine management

[`hv_vm_config_create()`](/documentation/Hypervisor/hv_vm_config_create())

Creates a virtual machine configuration object.

[`hv_vm_create(_:)`](/documentation/Hypervisor/hv_vm_create(_:))

Creates a VM instance for the current process.

[`hv_vm_destroy()`](/documentation/Hypervisor/hv_vm_destroy())

Destroys the VM instance associated with the current process.

[`OS_hv_vm_config`](/documentation/Hypervisor/OS_hv_vm_config)

Creates a virtual machine configuration object.

[`hv_vm_config_t`](/documentation/Hypervisor/hv_vm_config_t)

The type that defines a virtual-machine configuration.

### Resource management

[vCPU Management](/documentation/Hypervisor/vcpu-management)

Create and run virtual CPUs, and manage CPU-specific registers and features.

[Memory management](/documentation/Hypervisor/memory-management)

Map memory into the physical address space of the virtual machine.

### Timer functions

[`hv_vcpu_get_vtimer_mask(_:_:)`](/documentation/Hypervisor/hv_vcpu_get_vtimer_mask(_:_:))

Gets the virtual timer mask.

[`hv_vcpu_set_vtimer_mask(_:_:)`](/documentation/Hypervisor/hv_vcpu_set_vtimer_mask(_:_:))

Sets or clears the virtual timer mask.

[`hv_vcpu_get_vtimer_offset(_:_:)`](/documentation/Hypervisor/hv_vcpu_get_vtimer_offset(_:_:))

Returns the vTimer offset for the vCPU ID you specify.

[`hv_vcpu_set_vtimer_offset(_:_:)`](/documentation/Hypervisor/hv_vcpu_set_vtimer_offset(_:_:))

Sets the vTimer offset to a value that you provide.

### Common data types

[`hv_return_t`](/documentation/Hypervisor/hv_return_t)

The return type of framework functions.

[Hypervisor Errors](/documentation/Hypervisor/hypervisor-errors)

Return codes returned by framework functions.

### Nested virtualization

[`hv_vm_config_get_el2_supported(_:)`](/documentation/Hypervisor/hv_vm_config_get_el2_supported(_:))

Returns a status value that indicates whether the current platform supports Exception Level 2 (EL2).

[`hv_vm_config_get_el2_enabled(_:_:)`](/documentation/Hypervisor/hv_vm_config_get_el2_enabled(_:_:))

Return a status value that indicates whether the VM configuration enables support for Exception Level 2 (EL2).

[`hv_vm_config_set_el2_enabled(_:_:)`](/documentation/Hypervisor/hv_vm_config_set_el2_enabled(_:_:))

Sets whether the specified VM configuration enables support for Exception Level 2 (EL2).

### Generic interrupt controllers (GICs)

[GIC functions](/documentation/Hypervisor/gic-functions)

These functions and registers support the creation and operation of a generic interrupt controller.

[GIC registers](/documentation/Hypervisor/gic-registers)

These registers support the operation of a generic interrupt controller and its interface with the Hypervisor and virtual CPUs.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)