List

Table of Contents

List

Description

Double linked list. FIELDS: - head : Reference to head node of linked list. - tail : Reference to tail node of linked list. - copy_init : A user-provided type-specific method to initialize copies of types. - copy_deinit : A user-provided type-specific method deinitialize already created copies of types. - length : Length of this linked list.

Usage example (Cross-references)

    #include <Misra/Std/Container/List.h>
    #include <Misra/Std/Log.h>
    
    if (start + count > list->length) {
    LOG_FATAL("List range out of bounds.");
    }
    void validate_list(const GenericList *l) {
    if (!(l)) {
    LOG_FATAL("List pointer is NULL.");
    }
    if ((l)->__magic != MISRA_LIST_MAGIC) {
    int total_deadend_tests = sizeof(deadend_tests) / sizeof(deadend_tests[0]);
    
    typedef List(int) LI;
    LI li = ListInit();
    ListForeach(&li, i) {
    #include <Misra/Std/Container/Str.h>
    #include <Misra/Std/Container/Vec.h>
    #include <Misra/Std/Container/List.h>
    #include <Misra/Std/Container/BitVec.h>
    
    // clang-format off
    #include "List/Type.h"
    #include "List/Init.h"
    #include "List/Insert.h"
    // clang-format off
    #include "List/Type.h"
    #include "List/Init.h"
    #include "List/Insert.h"
    #include "List/Remove.h"
    #include "List/Type.h"
    #include "List/Init.h"
    #include "List/Insert.h"
    #include "List/Remove.h"
    #include "List/Access.h"
    #include "List/Init.h"
    #include "List/Insert.h"
    #include "List/Remove.h"
    #include "List/Access.h"
    #include "List/Foreach.h"
    #include "List/Insert.h"
    #include "List/Remove.h"
    #include "List/Access.h"
    #include "List/Foreach.h"
    #include "List/Ops.h"
    #include "List/Remove.h"
    #include "List/Access.h"
    #include "List/Foreach.h"
    #include "List/Ops.h"
    #include "List/Private.h"
    #include "List/Access.h"
    #include "List/Foreach.h"
    #include "List/Ops.h"
    #include "List/Private.h"
    // clang-format on
    #include "List/Foreach.h"
    #include "List/Ops.h"
    #include "List/Private.h"
    // clang-format on
    #define MISRA_STD_CONTAINER_LIST_PRIVATE_H
    
    #include <Misra/Std/Container/List/Type.h>
    
    void             deinit_list(GenericList *list, u64 item_size);
    #include "../Harness.h"
    #include "ListInt.h"
    #include <Misra/Std/Container/List.h>
    #include <Misra/Std/Log.h>
    #define FUZZ_LIST_INT_H
    
    #include <Misra/Std/Container/List.h>
    #include <Misra/Types.h>
    
    // List(i32) typedef
    typedef List(i32) IntList;
    
    // List(i32) function enumeration

Share :