MCPcopy Create free account
hub / github.com/cgsecurity/testdisk / __td_list_add

Function __td_list_add

src/list.h:121–143  ·  view source on GitHub ↗

* Insert a new entry between two known consecutive entries. * * This is only for internal list manipulation where we know * the prev/next entries already! */ @ @ requires \valid(newe); @ requires \valid(prev); @ requires \valid(next); @ requires separation: \separated(newe, \union(prev,next)); @ requires prev == next || \separated(prev,next,newe); @ requires finite(prev); @ requi

Source from the content-addressed store, hash-verified

119 @ assigns next->prev,newe->next,newe->prev,prev->next;
120 @*/
121static inline void __td_list_add(struct td_list_head *newe,
122 struct td_list_head *prev,
123 struct td_list_head *next)
124{
125 /*@ assert finite(prev); */
126 /*@ assert finite(next); */
127 /*@ assert reachable_forward(prev->next,prev); */
128 /*@ assert reachable_forward(next->next,next); */
129 /*@ assert reachable_backward(prev->prev,prev); */
130 /*@ assert reachable_backward(next->prev,next); */
131
132 /*@ assert reachable_forward(next,prev); */
133 newe->next = next;
134 newe->prev = prev;
135 prev->next = newe;
136 next->prev = newe;
137 /*@ assert next->prev == newe; */
138 /*@ assert newe->next == next; */
139 /*@ assert newe->prev == prev; */
140 /*@ assert prev->next == newe; */
141 /*@ assert reachable_forward(prev,newe); */
142 /*@ assert reachable_backward(next,newe); */
143}
144
145/**
146 * td_list_add - add a new entry

Callers 6

td_list_add_sorted_sigFunction · 0.85
td_list_add_sorted_fccFunction · 0.85
td_list_add_sortedFunction · 0.85
td_list_for_eachFunction · 0.85
td_list_addFunction · 0.85
td_list_add_tailFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected