| 264 | } |
| 265 | |
| 266 | static unsigned int index_header_check(void) |
| 267 | { |
| 268 | struct td_list_head *tmp; |
| 269 | struct td_list_head *next; |
| 270 | unsigned int nbr=0; |
| 271 | /* Initialize file_check_list from file_check_plist */ |
| 272 | /*@ |
| 273 | @ loop invariant \valid_read(tmp); |
| 274 | @ loop invariant \valid_read(next); |
| 275 | @*/ |
| 276 | td_list_for_each_prev_safe(tmp, next, &file_check_plist.list) |
| 277 | { |
| 278 | file_check_t *current_check; |
| 279 | current_check=td_list_entry(tmp, file_check_t, list); |
| 280 | /*@ assert valid_file_check_node(current_check); */ |
| 281 | /* dettach current_check from file_check_plist */ |
| 282 | td_list_del(tmp); |
| 283 | /*@ assert \initialized(¤t_check->offset) && \initialized(¤t_check->length); */ |
| 284 | index_header_check_aux(current_check); |
| 285 | nbr++; |
| 286 | } |
| 287 | return nbr; |
| 288 | } |
| 289 | |
| 290 | void free_header_check(void) |
| 291 | { |
no test coverage detected