Searched refs:fault (Results 1 - 25 of 26) sorted by relevance

12

/seL4-test-master/projects/sel4_projects_libs/libsel4vm/src/arch/arm/
H A Dguest_vcpu_fault_arch.c9 #include "fault.h"
13 fault_t *fault = vcpu->vcpu_arch.fault; local
14 return fault->addr;
19 fault_t *fault = vcpu->vcpu_arch.fault; local
20 return fault->ip;
25 fault_t *fault = vcpu->vcpu_arch.fault; local
26 return fault_get_data(fault);
31 fault_t *fault = vcpu->vcpu_arch.fault; local
37 fault_t *fault = vcpu->vcpu_arch.fault; local
43 fault_t *fault = vcpu->vcpu_arch.fault; local
49 fault_t *fault = vcpu->vcpu_arch.fault; local
[all...]
H A Dmem_abort.c17 #include "fault.h"
20 static int unhandled_memory_fault(vm_t *vm, vm_vcpu_t *vcpu, fault_t *fault) argument
22 uintptr_t addr = fault_get_address(fault);
23 size_t fault_size = fault_get_width_size(fault);
30 restart_fault(fault);
33 return ignore_fault(fault);
35 print_fault(fault);
36 abandon_fault(fault);
44 int handle_page_fault(vm_t *vm, vm_vcpu_t *vcpu, fault_t *fault) argument
47 uintptr_t addr = fault_get_address(fault);
85 fault_t *fault; local
[all...]
H A Dfault.h15 typedef struct fault fault_t;
34 * Data structure representating a fault
36 struct fault { struct
37 /// The vcpu associated with the fault
41 /// VM registers at the time of the fault
44 /// The IPA address of the fault
46 /// The IPA address of the fault at the current stage
48 /// The IPA of the instruction which caused the fault
54 /// type of fault
56 /// For multiple str/ldr and 32 bit access, the fault i
[all...]
H A Dfault.c11 #include "fault.h"
240 /* Save processor mode in fault struct */
269 fault_t *fault; local
271 fault = (fault_t *)calloc(1, sizeof(*fault));
272 if (fault != NULL) {
273 fault->vcpu = vcpu;
275 err = vka_cspace_alloc_path(vcpu->vm->vka, &fault->reply_cap);
277 free(fault);
278 fault
284 new_vcpu_fault(fault_t *fault, uint32_t hsr) argument
302 new_memory_fault(fault_t *fault) argument
354 abandon_fault(fault_t *fault) argument
363 restart_fault(fault_t *fault) argument
376 ignore_fault(fault_t *fault) argument
396 advance_fault(fault_t *fault) argument
452 print_fault(fault_t *fault) argument
627 fault_get_width_size(fault_t *fault) argument
[all...]
H A Dguest_arm_context.c12 #include "fault.h"
16 if (!fault_handled(vcpu->vcpu_arch.fault)) {
17 /* If we are in a fault set its context directly as this will be
19 fault_set_ctx(vcpu->vcpu_arch.fault, &context);
35 if (!fault_handled(vcpu->vcpu_arch.fault)) {
36 /* If we are in a fault use and modify its cached context */
38 regs = fault_get_ctx(vcpu->vcpu_arch.fault);
60 if (!fault_handled(vcpu->vcpu_arch.fault)) {
61 /* If we are in a fault use its cached context */
63 regs = fault_get_ctx(vcpu->vcpu_arch.fault);
[all...]
H A Dvm.c25 #include "fault.h"
128 printf("======= Unhandled VCPU fault from [%s] =======\n", vcpu->vm->vm_name);
140 fault_t *fault; local
141 fault = vcpu->vcpu_arch.fault;
144 /* Pass the vcpu fault to library user in case they can handle it */
145 err = new_vcpu_fault(fault, hsr);
147 ZF_LOGE("Failed to create new fault");
162 ZF_LOGE("Unknown fault from [%s]", vcpu->vm->vm_name);
208 ZF_LOGE("Failed to register fault callbac
[all...]
H A Dboot.c27 #include "fault.h"
82 /* Copy it to the cspace of the VM for fault IPC */
102 vcpu->vcpu_arch.fault = fault_init(vcpu);
103 assert(vcpu->vcpu_arch.fault);
/seL4-test-master/projects/sel4_projects_libs/libsel4vm/arch_include/arm/sel4vm/arch/
H A Dguest_vm_arch.h17 typedef struct fault fault_t;
31 * @param {fault_t *} fault Current VCPU fault
33 * @param {void *} unhandled_vcpu_callback_cookie A cookie to supply to the vcpu fault handler
36 fault_t *fault; member in struct:vm_vcpu_arch
46 * @param {void *} A cookie to supply to the vcpu fault handler
/seL4-test-master/projects/sel4_projects_libs/libsel4vm/src/sel4_arch/arm_hyp/
H A Dfault.c12 #include "fault.h"
78 * Returns a seL4_VCPUReg if the fault affects a banked register. Otherwise
79 * seL4_VCPUReg_Num is returned. It uses the fault to look up what mode the
159 void fault_print_data(fault_t *fault) argument
162 data = fault_get_data(fault) & fault_get_data_mask(fault);
163 switch (fault_get_width(fault)) {
/seL4-test-master/projects/seL4_libs/libsel4utils/src/
H A Dthread.c233 seL4_Fault_t fault = seL4_getFault(tag); local
235 switch (seL4_Fault_get_seL4_FaultType(fault)) {
242 seL4_Fault_VMFault_get_PrefetchFault(fault) ? "prefetch fault" : "fault",
243 (void *)seL4_Fault_VMFault_get_IP(fault),
244 (void *)seL4_Fault_VMFault_get_Addr(fault),
245 (void *)seL4_Fault_VMFault_get_FSR(fault),
254 seL4_Fault_UnknownSyscall_get_Syscall(fault),
255 (void *) seL4_Fault_UnknownSyscall_get_FaultIP(fault),
[all...]
/seL4-test-master/projects/sel4_projects_libs/libsel4vm/src/sel4_arch/aarch64/
H A Dfault.c10 #include "fault.h"
133 void fault_print_data(fault_t *fault) argument
136 data = fault_get_data(fault) & fault_get_data_mask(fault);
137 switch (fault_get_width(fault)) {
/seL4-test-master/projects/sel4_projects_libs/libsel4vm/src/arch/arm/vgic/
H A Dvgic.c56 #include "../fault.h"
637 fault_t *fault = vcpu->vcpu_arch.fault; local
640 int offset = fault_get_address(fault) - d->pstart;
773 err = ignore_fault(fault);
776 uint32_t mask = fault_get_data_mask(fault);
777 fault_set_data(fault, reg & mask);
778 err = advance_fault(fault);
792 fault_t *fault = vcpu->vcpu_arch.fault; local
[all...]
/seL4-test-master/projects/sel4_projects_libs/libsel4vm/src/arch/x86/
H A Dvm.c98 /* The interrupt state is a subset of the fault state */
147 int fault; local
154 fault = seL4_VMEnter(&badge);
157 if (fault == SEL4_VMENTER_RESULT_FAULT) {
158 /* We in a fault */
160 /* Update the guest state from a fault */
167 /* update the guest state from a non fault */
176 fault = SEL4_VMENTER_RESULT_NOTIF;
179 if (fault == SEL4_VMENTER_RESULT_NOTIF) {
/seL4-test-master/kernel/src/api/
H A Dfaults.c120 seL4_Fault_t fault = receiver->tcbFault; local
122 switch (seL4_Fault_get_seL4_FaultType(fault)) {
143 if (seL4_Fault_DebugException_get_exceptionReason(fault) != seL4_SingleStep) {
187 return Arch_handleFaultReply(receiver, sender, seL4_Fault_get_seL4_FaultType(fault));
/seL4-test-master/kernel/manual/parts/
H A Dthreads.tex304 The standard exception handler is used when a fault is triggered by a thread
306 thread raises a fault due to an unmapped virtual memory page, the thread cannot
308 fault that would trigger the standard exception handler while it is set to a
312 should be trusted not to fault at all.
322 timeout fault handler, a fault will not be raised and the thread will continue
327 not have a timeout fault handler, servers may, allowing single-threaded,
330 completing the request. Timeout fault handlers can access server reply objects
335 available budget returned, another timeout fault will be generated if the
336 nested server also has a timeout fault handle
[all...]
H A Dio.tex137 \obj{IOSpace} and \obj{VSpace} fault handling differ significantly.
143 aborted; the device driver must correct the cause of the fault and retry
204 SMMU fault. Faults are reported through registers in the SMMU that can be
218 SMMU fault handling and also perform explicit TLB maintenance.
239 SMMU fault handling is delegated to user level via invocations that allow fault
241 SMMU fault interrupts can be handled the same as other platform level interrupts.
352 software should use the fault handling mechanisms to resolve them.
447 \label{sec:smmuv2-fault-handling}
453 \item Invalid context fault
[all...]
H A Dvspace.tex338 See \autoref{sec:vm-fault}.
H A Dobjects.tex172 \obj{Endpoint} or \obj{Notification} capabilities, raising a fault (see
200 object capabilities, raising a fault (see section \ref{sec:faults}) when
/seL4-test-master/kernel/src/kernel/
H A Dfaulthandler.c56 seL4_Fault_t fault = current_fault; local
60 handleDoubleFault(tptr, fault);
109 printf("null fault");
112 printf("cap fault in %s phase at address %p",
117 printf("vm fault on %s at address %p with status %p",
133 printf("Timeout fault for 0x%x\n", (unsigned int) seL4_Fault_Timeout_get_badge(f));
137 printf("unknown fault");
146 /* The second fault, ex2, is stored in the global current_fault */
152 printf("Found thread has no fault handler while trying to handle:\n");
/seL4-test-master/projects/sel4test/apps/sel4test-tests/src/tests/
H A Dframes.c96 /* Wait for a VM fault originating on the given EP the return the virtual
98 * received was not a VM fault.
113 /* Function that generates a fault. If we're mapped XN we should instruction
114 * fault at the start of the function. If not we should data fault on 0x42.
116 static int fault(seL4_Word arg1, seL4_Word arg2, seL4_Word arg3, seL4_Word arg4) function
147 memcpy(dest, (void *)fault, 100);
152 /* First setup a fault endpoint.
159 /* Then setup the thread that will, itself, fault. */
170 /* Now a fault handle
[all...]
/seL4-test-master/kernel/libsel4/sel4_arch_include/ia32/sel4/sel4_arch/
H A Dsyscalls.h789 seL4_Word fault; local
794 x86_sys_send_recv(seL4_SysVMEnter, 0, &badge, 0, &fault, &mr0, MCS_COND(0, &mr1));
800 if (!fault && sender) {
803 return fault;
/seL4-test-master/kernel/libsel4/sel4_arch_include/x86_64/sel4/sel4_arch/
H A Dsyscalls.h558 seL4_Word fault; local
565 x64_sys_send_recv(seL4_SysVMEnter, 0, &badge, 0, &fault, &mr0, &mr1, &mr2, &mr3, 0);
571 if (!fault && sender) {
574 return fault;
/seL4-test-master/kernel/src/arch/arm/32/kernel/
H A Dvspace.c1261 word_t addr, fault; local
1267 fault = getHSR() & 0x3ffffff;
1270 fault = getDFSR();
1275 * We have to test the fault-status bits in the IFSR/DFSR to determine
1281 if (isDebugFault(fault)) {
1286 current_fault = seL4_Fault_VMFault_new(addr, fault, false);
1291 word_t pc, fault; local
1298 fault = getHSR() & 0x3ffffff;
1300 fault = getIFSR();
1304 if (isDebugFault(fault)) {
[all...]
/seL4-test-master/kernel/src/arch/arm/64/kernel/
H A Dvspace.c933 word_t addr, fault; local
936 fault = getDFSR();
944 current_fault = seL4_Fault_VMFault_new(addr, fault, false);
949 word_t pc, fault; local
952 fault = getIFSR();
959 current_fault = seL4_Fault_VMFault_new(pc, fault, true);
964 fail("Invalid VM fault type");
/seL4-test-master/kernel/src/arch/x86/kernel/
H A Dvspace.c567 uint32_t fault; local
570 fault = getRegister(thread, Error);
574 current_fault = seL4_Fault_VMFault_new(addr, fault, false);
578 current_fault = seL4_Fault_VMFault_new(addr, fault, true);
582 fail("Invalid VM fault type");

Completed in 163 milliseconds

12