---
title: "hv_vcpu_set_sme_p_reg(_:_:_:_:)"
framework: Hypervisor
role: symbol
role_heading: Function
platforms: [macOS 15.2+]
path: "hypervisor/hv_vcpu_set_sme_p_reg(_:_:_:_:)"
---

# hv_vcpu_set_sme_p_reg(_:_:_:_:)

Sets the value of a vCPU P predicate register in streaming Scalable Vector Extension (SVE) mode.

## Declaration

```swift
func hv_vcpu_set_sme_p_reg(_ vcpu: hv_vcpu_t, _ reg: hv_sme_p_reg_t, _ value: UnsafePointer<UInt8>, _ length: Int) -> hv_return_t
```

## Parameters

- `vcpu`: The ID of the vCPU instance.
- `reg`: The ID of the P predicate register.
- `value`: The pointer to the register value to set.
- `length`: The length of the P register value., in bytes.

## Return Value

Return Value HV_SUCCESS on success, an error code otherwise.

## Discussion

Discussion important: You need to call this on the owning thread This method returns an error if PSTATE.ZA is 0 (For example, if.za_storage_enabled is false), or if the provided value storage isn’t [maximum SVL bytes x maximum SVL bytes]. This method doesn’t require streaming SVE mode to be in an enabled state.

## See Also

### Functions

- [hv_sme_config_get_max_svl_bytes(_:)](hypervisor/hv_sme_config_get_max_svl_bytes(_:).md)
- [hv_vcpu_apic_ctrl(_:_:)](hypervisor/hv_vcpu_apic_ctrl(_:_:).md)
- [hv_vcpu_apic_get_state(_:_:)](hypervisor/hv_vcpu_apic_get_state(_:_:).md)
- [hv_vcpu_apic_lsc_enter_imm32(_:_:_:_:_:_:_:)](hypervisor/hv_vcpu_apic_lsc_enter_imm32(_:_:_:_:_:_:_:).md)
- [hv_vcpu_apic_lsc_enter_r32(_:_:_:_:_:_:_:_:)](hypervisor/hv_vcpu_apic_lsc_enter_r32(_:_:_:_:_:_:_:_:).md)
- [hv_vcpu_apic_lsc_invalidate(_:)](hypervisor/hv_vcpu_apic_lsc_invalidate(_:).md)
- [hv_vcpu_apic_put_state(_:_:)](hypervisor/hv_vcpu_apic_put_state(_:_:).md)
- [hv_vcpu_apic_read(_:_:_:)](hypervisor/hv_vcpu_apic_read(_:_:_:).md)
- [hv_vcpu_apic_trigger_lvt(_:_:)](hypervisor/hv_vcpu_apic_trigger_lvt(_:_:).md)
- [hv_vcpu_apic_write(_:_:_:_:)](hypervisor/hv_vcpu_apic_write(_:_:_:_:).md)
- [hv_vcpu_exit_apic_access_read(_:_:)](hypervisor/hv_vcpu_exit_apic_access_read(_:_:).md)
- [hv_vcpu_exit_info(_:_:)](hypervisor/hv_vcpu_exit_info(_:_:).md)
- [hv_vcpu_exit_init_ap(_:_:_:)](hypervisor/hv_vcpu_exit_init_ap(_:_:_:).md)
- [hv_vcpu_exit_inject_excp(_:_:_:_:_:)](hypervisor/hv_vcpu_exit_inject_excp(_:_:_:_:_:).md)
- [hv_vcpu_exit_ioapic_eoi(_:_:)](hypervisor/hv_vcpu_exit_ioapic_eoi(_:_:).md)
