Skip to content

GenericList

GenericList

Description

The generic linked list. Not meant to be directly used by user code.

Usage example (Cross-references)

Usage examples (Cross-references)
    #include <Misra/Std/Log.h>
    
    void deinit_list(GenericList *list, u64 item_size) {
        if (!list || !item_size) {
            LOG_ERROR("invalid arguments");
    
    
    void insert_into_list(GenericList *list, void *item_data, u64 item_size, u64 idx) {
        if (!list || !item_size || !item_data) {
            LOG_FATAL("invalid arguments.");
    }
    
    void remove_range_list(GenericList *list, void *removed_data, u64 item_size, u64 start, u64 count) {
        if (!list || !item_size) {
            LOG_FATAL("invalid arguments.");
    
    
    void qsort_list(GenericList *list, u64 item_size, GenericCompare comp) {
        if (!list || !item_size) {
            LOG_FATAL("invalid arguments.");
    
    
    void swap_list(GenericList *list, u64 item_size, u64 idx1, u64 idx2) {
        if (!list || !item_size) {
            LOG_FATAL("invalid arguments.");
    
    
    void reverse_list(GenericList *list, u64 item_size) {
        if (!list || !item_size) {
            LOG_FATAL("invalid arguments.");
    
    
    void push_arr_list(GenericList *list, u64 item_size, void *arr, u64 count) {
        if (!list || !arr || !item_size) {
            LOG_FATAL("invalid arguments.");
    
    
    void merge_list(GenericList *list1, u64 item_size, GenericList *list2) {
        if (!list1 || !item_size || !list2) {
            LOG_FATAL("invalid arguments.");
    
    
    void clear_list(GenericList *list, u64 item_size) {
        if (!list || !item_size) {
            LOG_FATAL("invalid arguments.");
    
    
    GenericListNode *node_at_list(GenericList *list, u64 item_size, u64 idx) {
        if (!list || !item_size) {
            LOG_FATAL("invalid arguments.");
    
    
    void *item_ptr_at_list(GenericList *list, u64 item_size, u64 idx) {
        if (!list || !item_size) {
            LOG_FATAL("invalid arguments.");
    }
    
    void validate_list(const GenericList *l) {
        if (!(l)) {
            LOG_FATAL("List pointer is NULL.");
    }
    
    GenericListNode *get_node_random_access(GenericList *list, GenericListNode *node, u64 nidx, i64 ridx) {
        if (!list || !node) {
            LOG_FATAL("Invalid arguments");
        u64               length;
        u64               __magic;
    } GenericList;
    
    ///
    /// Cast any list to a generic list
    ///
    #define GENERIC_LIST(list) ((GenericList *)(void *)(list))
    
    ///
    /// FAILURE: `abort` with an error message.
    ///
    #define ValidateList(l) validate_list((const GenericList *)GENERIC_LIST(l))
    
    #endif // MISRA_STD_CONTAINER_LIST_TYPE_H
Last updated on