Commit graph

3157 commits

Author SHA1 Message Date
Tobias Reinhard
a470fec6d0 Added automatic deletion of void casts (used to suppress warnings) and linked to filed VeriFast issue 335. 2022-11-13 14:46:17 -05:00
Tobias Reinhard
1e2acf6139 Linked const pointer rewrite to filed VeriFast issue 333. 2022-11-13 14:35:02 -05:00
Tobias Reinhard
7c9711cb88 Reverted manual VF rewrites concerning const pointers. Respective rewrites are applied during preprocessing. 2022-11-11 15:44:23 -05:00
Tobias Reinhard
0a31349be3 Added automatic rewrite to remove const qualifiers occurring before a star. 2022-11-11 15:37:24 -05:00
Tobias Reinhard
49f0dc1f04 Added preprocessing out dir to .gitignore. 2022-11-11 15:11:44 -05:00
Tobias Reinhard
e33d940357 Stopped tracking preprocecssing output. 2022-11-11 15:09:27 -05:00
Tobias Reinhard
d746a27233 Added missing task-ISR lock invariant to post condition of acquision lemma. 2022-11-11 15:07:01 -05:00
Tobias Reinhard
29e14be203 Verified minimal contract for xTaskGetCurrentTaskHandle. 2022-11-10 14:36:04 -05:00
Tobias Reinhard
63d8c5afa8 Rewrote side-effectful assertion such that VeriFast can process it. 2022-11-10 12:51:20 -05:00
Tobias Reinhard
7e75d7aa8f Refined lock predicates and contracts for lock macros to match expected locking discipline. 2022-11-10 12:50:48 -05:00
Tobias Reinhard
3d4ad64692 Switched to new verification target vTaskSwitchContext. 2022-11-07 14:42:11 -05:00
Tobias Reinhard
9fa8c76447 Paused partial proof for xTaskCreate. 2022-11-07 14:40:08 -05:00
Tobias Reinhard
c4f5c09a81 Altered config to ensure that we don't accidentally rely on a concrete small number of cores. 2022-11-07 14:34:54 -05:00
Tobias Reinhard
91eb6eefaa Included reference to core ID in interrupt predicates and added distinction between global and core local variables. 2022-11-07 14:21:42 -05:00
Tobias Reinhard
06d2611aa9 Made config macros from FreeRTOSConfig.h available to VeriFast proof. 2022-11-04 16:16:08 -04:00
Tobias Reinhard
8897e3fe6e Added specification for enabling and disabling interrupts. 2022-11-04 15:49:24 -04:00
Tobias Reinhard
66d71c5b47 Started to verify taskENTER_CRITICAL. 2022-11-04 14:23:39 -04:00
Tobias Reinhard
1e4e650650 Removed duplicate macro definition. 2022-11-04 14:22:54 -04:00
Tobias Reinhard
25dda73ef9 Started to define predicates encapsulating access permissions to global variables. 2022-11-04 14:22:11 -04:00
Tobias Reinhard
ac798f9fb5 Added contract for portDISABLE_INTERRUPTS and dummy contracts for lock acquiring macros. 2022-11-04 14:20:58 -04:00
Tobias Reinhard
5c9750eac4 Verified vListInitialiseItem. 2022-11-04 11:24:25 -04:00
Tobias Reinhard
94e0f21574 Added rewrite to remove const qualifiers from pointers. 2022-11-04 11:15:15 -04:00
Tobias Reinhard
2404a2f253 Added flag to skip very expensive part of the proof for prvInitialiseNewTask.
When the symbol `VERIFAST_SKIP_BITVECTOR_PROOF__STACK_ALIGNMENT` is defined in the preprocessor script, we skip the verification of the stack alignment. This part of the proof involves bit vector arithmetic and hence takes long to verify.
2022-11-03 15:40:12 -04:00
Tobias Reinhard
01c19a2099 Renamed preprocessed file such that name is legal C identifier.
This is necessary for VeriFast to refer to the file as module.
2022-11-03 13:16:10 -04:00
Tobias Reinhard
e064c380d7 Added name tags to assembly dummy macros. 2022-11-03 12:04:57 -04:00
Tobias Reinhard
97c2583eb3 Verified prvInitialiseNewTask. 2022-11-02 16:09:16 -04:00
Tobias Reinhard
0e84d8906f Updated stack depth requirements in preconditions to match precondition of pxPortInitialiseStack 2022-11-02 14:16:29 -04:00
Tobias Reinhard
249d220ed7 Verified pxPortInitialiseStack for new version of stack predicate. 2022-11-02 14:02:42 -04:00
Tobias Reinhard
f793c96031 Adapted part of pxPortInitialiseStack proof to new stack predicate. 2022-11-02 12:09:15 -04:00
Tobias Reinhard
800a7204bc Adapted first half of prvInitialiseNewTask to new stack predicate. 2022-11-01 16:06:53 -04:00
Tobias Reinhard
af090b252d Added new stack predicate that reflects the forced alignment of the stack pointer. 2022-11-01 15:24:42 -04:00
Tobias Reinhard
ead381f413 Verified alignment check of stack top pointer. 2022-10-28 13:59:45 -04:00
Tobias Reinhard
eedbfe3255 Typo. 2022-10-28 13:26:17 -04:00
Tobias Reinhard
06b924d818 Verified alignment properties of stack top pointer. 2022-10-28 13:24:01 -04:00
Tobias Reinhard
5260817972 Added comment on VF command line options to startup script 2022-10-27 19:23:17 -04:00
Tobias Reinhard
551d1da628 Renamed TCB_p predicate into uninit_TCB_p. 2022-10-27 12:58:18 -04:00
Tobias Reinhard
e238d791ab Moved stack predicate and lemmas to separate header. 2022-10-27 12:51:24 -04:00
Tobias Reinhard
2bcdc31ff8 Deleted deprecated version of pointer size axiom. 2022-10-27 12:45:38 -04:00
Tobias Reinhard
2b82220cec Refined stack predicate, validated it and verified pxPortInitialiseStack impl from RP2040 port. 2022-10-27 12:43:10 -04:00
Tobias Reinhard
b185c29a7b Typo. 2022-10-26 10:30:05 -04:00
Tobias Reinhard
b5f0b2f74d Added snippet from RP2040 port.c to verification code base to allow verification of contract from portable.h 2022-10-26 10:08:29 -04:00
Tobias Reinhard
8bb4f13ae5 Introduced new type-safe macro for unsigned pdFALSE and pdTRUE. 2022-10-26 09:14:11 -04:00
Tobias Reinhard
d3813796b3 Justified memset-ing pxNewTCB->ucNotifyState in prvInitialiseNewTask. 2022-10-26 08:33:47 -04:00
Tobias Reinhard
a78bc21b26 Simplified proof state in prvInitialiseNewTask. 2022-10-26 08:11:47 -04:00
Tobias Reinhard
40931d229d Justified memset of TCB fields in prvInitialiseNewTask.
Fields: `pxNewTCB->ucNotifyState` and `pxNewTCB->ulNotifiedValue`
2022-10-25 16:56:28 -04:00
Tobias Reinhard
8a8f0ab9b1 Proved memory safety of name-writing loop in prvInitialiseNewTask. 2022-10-25 14:57:26 -04:00
Tobias Reinhard
82be7cb23a Temporarily eliminated runtime assertion. 2022-10-25 14:40:50 -04:00
Tobias Reinhard
8b958c7834 Axiomatized knowledge about RP2040 architecture and added tmp workaround for over/underflows. 2022-10-25 14:34:01 -04:00
Tobias Reinhard
06bc0fbb2d Resolved VF reporting type errors for memset call and disproved some overflows and underflows. 2022-10-25 13:58:06 -04:00
Tobias Reinhard
1042ea8cf8 Refined task control block predicate TCB_p such that it can be used to justify memset-ing the stack. 2022-10-25 13:22:10 -04:00