From 240447e6a7aecd6c811406fe3eca035adb30ebf3 Mon Sep 17 00:00:00 2001 From: ax-6 Date: Thu, 15 Aug 2024 16:17:45 +0800 Subject: [PATCH] Updated some code in base library. Not complete. --- CMakeLists.txt | 1 + aqvm/base/CMakeLists.txt | 2 ++ aqvm/base/file/file.c | 8 ++++---- .../file/read_write_lock/read_write_lock.c | 2 +- aqvm/base/linked_list/linked_list.c | 6 +++--- aqvm/base/memory/CMakeLists.txt | 11 +++++++++++ aqvm/base/memory/memory.c | 18 ++++++++++++++++++ aqvm/base/memory/memory.h | 14 ++++++++++++++ aqvm/base/threading/file_lock/file_lock.c | 2 +- aqvm/base/threading/mutex/mutex.c | 2 +- aqvm/base/threading/mutex/unix/mutex.c | 2 +- aqvm/base/threading/mutex/windows/mutex.c | 2 +- aqvm/memory/memory.c | 2 +- 13 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 aqvm/base/memory/CMakeLists.txt create mode 100644 aqvm/base/memory/memory.c create mode 100644 aqvm/base/memory/memory.h diff --git a/CMakeLists.txt b/CMakeLists.txt index fc781f8..ec9c5ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ cmake_minimum_required(VERSION 3.10) project(AQ C) +enable_testing() include_directories(${PROJECT_SOURCE_DIR}) diff --git a/aqvm/base/CMakeLists.txt b/aqvm/base/CMakeLists.txt index d92d9ef..de07c72 100644 --- a/aqvm/base/CMakeLists.txt +++ b/aqvm/base/CMakeLists.txt @@ -11,6 +11,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/base.c) add_subdirectory(file) add_subdirectory(hash) add_subdirectory(io) +add_subdirectory(memory) add_subdirectory(linked_list) add_subdirectory(logging) add_subdirectory(process) @@ -22,6 +23,7 @@ add_library(AqvmBase STATIC ${SOURCES}) target_link_libraries(AqvmBase PRIVATE AqvmBaseFile) target_link_libraries(AqvmBase PRIVATE AqvmBaseHash) target_link_libraries(AqvmBase PRIVATE AqvmBaseIo) +target_link_libraries(AqvmBase PRIVATE AqvmBaseMemory) target_link_libraries(AqvmBase PRIVATE AqvmBaseLinkedList) target_link_libraries(AqvmBase PRIVATE AqvmBaseLogging) target_link_libraries(AqvmBase PRIVATE AqvmBaseProcess) diff --git a/aqvm/base/file/file.c b/aqvm/base/file/file.c index 1213dd1..356167b 100644 --- a/aqvm/base/file/file.c +++ b/aqvm/base/file/file.c @@ -219,12 +219,12 @@ struct AqvmBaseFile_File* AqvmBaseFile_fopen(const char* filename, } struct AqvmBaseFile_File* stream = - (struct AqvmBaseFile_File*)malloc(sizeof(struct AqvmBaseFile_File)); + (struct AqvmBaseFile_File*)AqvmBaseMemory_malloc(sizeof(struct AqvmBaseFile_File)); if (stream == NULL) { // TODO return NULL; } - stream->identifier = (AqvmBaseFileIdentifier_Identifier*)malloc( + stream->identifier = (AqvmBaseFileIdentifier_Identifier*)AqvmBaseMemory_malloc( sizeof(AqvmBaseFileIdentifier_Identifier)); if (stream->identifier == NULL) { // TODO @@ -507,7 +507,7 @@ int AqvmBaseFile_setvbuf(struct AqvmBaseFile_File* stream, char* buffer, struct AqvmBaseFile_File* AqvmBaseFile_tmpfile() { struct AqvmBaseFile_File* stream = - (struct AqvmBaseFile_File*)malloc(sizeof(struct AqvmBaseFile_File)); + (struct AqvmBaseFile_File*)AqvmBaseMemory_malloc(sizeof(struct AqvmBaseFile_File)); if (stream == NULL) { // TODO return NULL; @@ -519,7 +519,7 @@ struct AqvmBaseFile_File* AqvmBaseFile_tmpfile() { // TODO return NULL; } - stream->identifier = (AqvmBaseFileIdentifier_Identifier*)malloc( + stream->identifier = (AqvmBaseFileIdentifier_Identifier*)AqvmBaseMemory_malloc( sizeof(AqvmBaseFileIdentifier_Identifier)); if (stream->identifier == NULL) { // TODO diff --git a/aqvm/base/file/read_write_lock/read_write_lock.c b/aqvm/base/file/read_write_lock/read_write_lock.c index 99627f3..efee1e3 100644 --- a/aqvm/base/file/read_write_lock/read_write_lock.c +++ b/aqvm/base/file/read_write_lock/read_write_lock.c @@ -7,7 +7,7 @@ struct AqvmBaseFileReadWriteLock_ReadWriteLock* AqvmBaseFileReadWriteLock_CreateReadWriteLock() { struct AqvmBaseFileReadWriteLock_ReadWriteLock* read_write_lock = - (struct AqvmBaseFileReadWriteLock_ReadWriteLock*)malloc( + (struct AqvmBaseFileReadWriteLock_ReadWriteLock*)AqvmBaseMemory_malloc( sizeof(struct AqvmBaseFileReadWriteLock_ReadWriteLock)); if (read_write_lock == NULL) { // TODO diff --git a/aqvm/base/linked_list/linked_list.c b/aqvm/base/linked_list/linked_list.c index 65d75c1..6fe1f58 100644 --- a/aqvm/base/linked_list/linked_list.c +++ b/aqvm/base/linked_list/linked_list.c @@ -15,7 +15,7 @@ int AqvmBaseLinkedList_AddNode(struct AqvmBaseLinkedList_LinkedList* list, } struct AqvmBaseLinkedList_Node* new_node = - (struct AqvmBaseLinkedList_Node*)malloc( + (struct AqvmBaseLinkedList_Node*)AqvmBaseMemory_malloc( sizeof(struct AqvmBaseLinkedList_Node)); if (new_node == NULL) { // TODO @@ -113,7 +113,7 @@ int AqvmBaseLinkedList_InsertNode(struct AqvmBaseLinkedList_LinkedList* list, } struct AqvmBaseLinkedList_Node* insert_node = - (struct AqvmBaseLinkedList_Node*)malloc( + (struct AqvmBaseLinkedList_Node*)AqvmBaseMemory_malloc( sizeof(struct AqvmBaseLinkedList_Node)); if (insert_node == NULL) { // TODO @@ -140,7 +140,7 @@ int AqvmBaseLinkedList_PrependNode(struct AqvmBaseLinkedList_LinkedList* list, } struct AqvmBaseLinkedList_Node* new_node = - (struct AqvmBaseLinkedList_Node*)malloc( + (struct AqvmBaseLinkedList_Node*)AqvmBaseMemory_malloc( sizeof(struct AqvmBaseLinkedList_Node)); if (new_node == NULL) { // TODO diff --git a/aqvm/base/memory/CMakeLists.txt b/aqvm/base/memory/CMakeLists.txt new file mode 100644 index 0000000..e3466c4 --- /dev/null +++ b/aqvm/base/memory/CMakeLists.txt @@ -0,0 +1,11 @@ +# Copyright 2024 AQ author, All Rights Reserved. +# This program is licensed under the AQ License. You can find the AQ license in +# the root directory. + +cmake_minimum_required(VERSION 3.10) + +include_directories(${PROJECT_SOURCE_DIR}) + +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/memory.c) + +add_library(AqvmBaseMemory STATIC ${SOURCES}) \ No newline at end of file diff --git a/aqvm/base/memory/memory.c b/aqvm/base/memory/memory.c new file mode 100644 index 0000000..16f6310 --- /dev/null +++ b/aqvm/base/memory/memory.c @@ -0,0 +1,18 @@ +// Copyright 2024 AQ author, All Rights Reserved. +// This program is licensed under the AQ License. You can find the AQ license in +// the root directory. + +#include "aqvm/base/memory/memory.h" + +#include + +void* AqvmBaseMemory_AqvmBaseMemory_malloc(size_t size) { return AqvmBaseMemory_malloc(size); } + +int AqvmBaseMemory_free(void* ptr) { + if (ptr == NULL) { + // TODO + return -1; + } + free(ptr); + return 0; +} \ No newline at end of file diff --git a/aqvm/base/memory/memory.h b/aqvm/base/memory/memory.h new file mode 100644 index 0000000..3a09c0b --- /dev/null +++ b/aqvm/base/memory/memory.h @@ -0,0 +1,14 @@ +// Copyright 2024 AQ author, All Rights Reserved. +// This program is licensed under the AQ License. You can find the AQ license in +// the root directory. + +#ifndef AQ_AQVM_BASE_MEMORY_MEMORY_H_ +#define AQ_AQVM_BASE_MEMORY_MEMORY_H_ + +#include + +void* AqvmBaseMemory_AqvmBaseMemory_malloc(size_t size); + +int AqvmBaseMemory_free(void* ptr); + +#endif \ No newline at end of file diff --git a/aqvm/base/threading/file_lock/file_lock.c b/aqvm/base/threading/file_lock/file_lock.c index 04aeaad..99b6ffc 100644 --- a/aqvm/base/threading/file_lock/file_lock.c +++ b/aqvm/base/threading/file_lock/file_lock.c @@ -42,7 +42,7 @@ int AqvmBaseThreadingFileLock_AddFileLock(struct AqvmBaseFile_File* file) { file->lock = AqvmBaseThreadingFileLock_GetFileLock(file); if (file->lock == NULL) { struct AqvmBase_Pair* file_lock_pair = - (struct AqvmBase_Pair*)malloc(sizeof(struct AqvmBase_Pair)); + (struct AqvmBase_Pair*)AqvmBaseMemory_malloc(sizeof(struct AqvmBase_Pair)); if (file_lock_pair == NULL) { // TODO return -2; diff --git a/aqvm/base/threading/mutex/mutex.c b/aqvm/base/threading/mutex/mutex.c index a4fa4b9..a9b9904 100644 --- a/aqvm/base/threading/mutex/mutex.c +++ b/aqvm/base/threading/mutex/mutex.c @@ -11,7 +11,7 @@ AqvmBaseThreadingMutex_Mutex* AqvmBaseThreadingMutex_CreateMutex() { return AqvmBaseThreadingMutexWindows_CreateMutex(); #else // TODO(Threading): When Threading is developed, rewrite that code. - AqvmBaseThreadingMutex_Mutex* mutex = (AqvmBaseThreadingMutex_Mutex*)malloc( + AqvmBaseThreadingMutex_Mutex* mutex = (AqvmBaseThreadingMutex_Mutex*)AqvmBaseMemory_malloc( sizeof(AqvmBaseThreadingMutex_Mutex)); if (mutex == NULL) { // TODO diff --git a/aqvm/base/threading/mutex/unix/mutex.c b/aqvm/base/threading/mutex/unix/mutex.c index 0f472fd..a5b74e4 100644 --- a/aqvm/base/threading/mutex/unix/mutex.c +++ b/aqvm/base/threading/mutex/unix/mutex.c @@ -7,7 +7,7 @@ AqvmBaseThreadingMutexUnix_Mutex *AqvmBaseThreadingMutexUnix_CreateMutex() { AqvmBaseThreadingMutexUnix_Mutex *mutex = - (AqvmBaseThreadingMutexUnix_Mutex *)malloc( + (AqvmBaseThreadingMutexUnix_Mutex *)AqvmBaseMemory_malloc( sizeof(AqvmBaseThreadingMutexUnix_Mutex)); if (mutex == NULL) { // TODO diff --git a/aqvm/base/threading/mutex/windows/mutex.c b/aqvm/base/threading/mutex/windows/mutex.c index d139ee9..e2a7ef2 100644 --- a/aqvm/base/threading/mutex/windows/mutex.c +++ b/aqvm/base/threading/mutex/windows/mutex.c @@ -11,7 +11,7 @@ AqvmBaseThreadingMutexWindows_Mutex* AqvmBaseThreadingMutexWindows_CreateMutex() { AqvmBaseThreadingMutexWindows_Mutex* mutex = - (AqvmBaseThreadingMutexWindows_Mutex*)malloc( + (AqvmBaseThreadingMutexWindows_Mutex*)AqvmBaseMemory_malloc( sizeof(AqvmBaseThreadingMutexWindows_Mutex)); if (mutex == NULL) { // TODO diff --git a/aqvm/memory/memory.c b/aqvm/memory/memory.c index 2a16d66..42c9641 100644 --- a/aqvm/memory/memory.c +++ b/aqvm/memory/memory.c @@ -70,7 +70,7 @@ struct AqvmMemory_Memory* AqvmMemory_InitializeMemory(void* data, void* type, "Memory initialization started.", NULL); struct AqvmMemory_Memory* memory_ptr = - (struct AqvmMemory_Memory*)malloc(sizeof(struct AqvmMemory_Memory)); + (struct AqvmMemory_Memory*)AqvmBaseMemory_malloc(sizeof(struct AqvmMemory_Memory)); if (memory_ptr == NULL) { AqvmBaseLogging_OutputLog( "ERROR", "AqvmMemory_InitializeMemory_MemoryAllocationFailure",