From dbd0e654c8993cb35ef89a66b899289b9426e190 Mon Sep 17 00:00:00 2001 From: mitmitmitm Date: Wed, 23 Nov 2022 12:28:40 +0100 Subject: [PATCH] OpenAPI: Add functions OpenAPI_list_clear and OpenAPI_list_insert_prev --- lib/sbi/openapi/include/list.h | 3 ++ lib/sbi/openapi/src/list.c | 31 +++++++++++++++++++ .../templates/list.c.mustache | 31 +++++++++++++++++++ .../templates/list.h.mustache | 3 ++ 4 files changed, 68 insertions(+) diff --git a/lib/sbi/openapi/include/list.h b/lib/sbi/openapi/include/list.h index 425e3e665..b8690be77 100644 --- a/lib/sbi/openapi/include/list.h +++ b/lib/sbi/openapi/include/list.h @@ -29,8 +29,11 @@ typedef struct OpenAPI_list_s { OpenAPI_list_t *OpenAPI_list_create(void); void OpenAPI_list_free(OpenAPI_list_t *listToFree); +void OpenAPI_list_clear(OpenAPI_list_t *list); void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList); +void OpenAPI_list_insert_prev( + OpenAPI_list_t *list, OpenAPI_lnode_t *lnode, void *dataToAddInList); OpenAPI_lnode_t *OpenAPI_list_find(OpenAPI_list_t *list, long indexOfElement); void OpenAPI_list_remove( OpenAPI_list_t *list, OpenAPI_lnode_t *elementToRemove); diff --git a/lib/sbi/openapi/src/list.c b/lib/sbi/openapi/src/list.c index 415f384ac..c009e8a1a 100644 --- a/lib/sbi/openapi/src/list.c +++ b/lib/sbi/openapi/src/list.c @@ -101,6 +101,16 @@ void OpenAPI_list_free(OpenAPI_list_t *list) } } +void OpenAPI_list_clear(OpenAPI_list_t *list) +{ + if (list) { + OpenAPI_list_iterate_forward(list, OpenAPI_lnode_free, NULL); + list->first = NULL; + list->last = NULL; + list->count = 0; + } +} + void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList) { OpenAPI_lnode_t *newListEntry = listEntry_create(dataToAddInList); @@ -128,6 +138,27 @@ void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList) list->count++; } +void OpenAPI_list_insert_prev(OpenAPI_list_t *list, OpenAPI_lnode_t *lnode, + void *dataToAddInList) +{ + OpenAPI_lnode_t *newListEntry = listEntry_create(dataToAddInList); + if (newListEntry == NULL) { + ogs_assert_if_reached(); + return; + } else if (lnode->prev == NULL) { + list->first = newListEntry; + lnode->prev = newListEntry; + newListEntry->prev = NULL; + newListEntry->next = lnode; + } else { + lnode->prev->next = newListEntry; + newListEntry->prev = lnode->prev; + newListEntry->next = lnode; + lnode->prev = newListEntry; + } + list->count++; +} + void OpenAPI_list_remove(OpenAPI_list_t *list, OpenAPI_lnode_t *elementToRemove) { OpenAPI_lnode_t *elementBeforeElementToRemove = elementToRemove->prev; diff --git a/lib/sbi/support/20210629/openapi-generator/templates/list.c.mustache b/lib/sbi/support/20210629/openapi-generator/templates/list.c.mustache index 415f384ac..c009e8a1a 100644 --- a/lib/sbi/support/20210629/openapi-generator/templates/list.c.mustache +++ b/lib/sbi/support/20210629/openapi-generator/templates/list.c.mustache @@ -101,6 +101,16 @@ void OpenAPI_list_free(OpenAPI_list_t *list) } } +void OpenAPI_list_clear(OpenAPI_list_t *list) +{ + if (list) { + OpenAPI_list_iterate_forward(list, OpenAPI_lnode_free, NULL); + list->first = NULL; + list->last = NULL; + list->count = 0; + } +} + void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList) { OpenAPI_lnode_t *newListEntry = listEntry_create(dataToAddInList); @@ -128,6 +138,27 @@ void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList) list->count++; } +void OpenAPI_list_insert_prev(OpenAPI_list_t *list, OpenAPI_lnode_t *lnode, + void *dataToAddInList) +{ + OpenAPI_lnode_t *newListEntry = listEntry_create(dataToAddInList); + if (newListEntry == NULL) { + ogs_assert_if_reached(); + return; + } else if (lnode->prev == NULL) { + list->first = newListEntry; + lnode->prev = newListEntry; + newListEntry->prev = NULL; + newListEntry->next = lnode; + } else { + lnode->prev->next = newListEntry; + newListEntry->prev = lnode->prev; + newListEntry->next = lnode; + lnode->prev = newListEntry; + } + list->count++; +} + void OpenAPI_list_remove(OpenAPI_list_t *list, OpenAPI_lnode_t *elementToRemove) { OpenAPI_lnode_t *elementBeforeElementToRemove = elementToRemove->prev; diff --git a/lib/sbi/support/20210629/openapi-generator/templates/list.h.mustache b/lib/sbi/support/20210629/openapi-generator/templates/list.h.mustache index 425e3e665..b8690be77 100644 --- a/lib/sbi/support/20210629/openapi-generator/templates/list.h.mustache +++ b/lib/sbi/support/20210629/openapi-generator/templates/list.h.mustache @@ -29,8 +29,11 @@ typedef struct OpenAPI_list_s { OpenAPI_list_t *OpenAPI_list_create(void); void OpenAPI_list_free(OpenAPI_list_t *listToFree); +void OpenAPI_list_clear(OpenAPI_list_t *list); void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList); +void OpenAPI_list_insert_prev( + OpenAPI_list_t *list, OpenAPI_lnode_t *lnode, void *dataToAddInList); OpenAPI_lnode_t *OpenAPI_list_find(OpenAPI_list_t *list, long indexOfElement); void OpenAPI_list_remove( OpenAPI_list_t *list, OpenAPI_lnode_t *elementToRemove);