Fix benchmark_debug_syscall_start

The lowest syscall number is -8, which doesnt' fit in 3 bits -> change
to 4.
Also, we were storing the -ve number, which also doesn't fit into 3
bits -> invert it when we store it.
This commit is contained in:
Anna Lyons 2016-10-20 15:05:17 +11:00
parent 1c50cec9e8
commit 49f26d5c84
2 changed files with 3 additions and 3 deletions

View file

@ -60,7 +60,7 @@ benchmark_debug_syscall_start(word_t cptr, word_t msgInfo, word_t syscall)
seL4_MessageInfo_t info = messageInfoFromWord_raw(msgInfo);
lookupCapAndSlot_ret_t lu_ret = lookupCapAndSlot(NODE_STATE(ksCurThread), cptr);
ksKernelEntry.path = Entry_Syscall;
ksKernelEntry.syscall_no = syscall;
ksKernelEntry.syscall_no = -syscall;
ksKernelEntry.cap_type = cap_get_capType(lu_ret.cap);
ksKernelEntry.invocation_tag = seL4_MessageInfo_get_label(info);
}

View file

@ -43,10 +43,10 @@ typedef struct PACKED kernel_entry {
};
/* Tracked kernel entry info filled from outside this file */
struct {
seL4_Word syscall_no: 3;
seL4_Word syscall_no: 4;
seL4_Word cap_type: 5;
seL4_Word is_fastpath: 1;
seL4_Word invocation_tag: 20;
seL4_Word invocation_tag: 19;
};
};
} kernel_entry_t;