change array to linked list
This commit is contained in:
parent
2622ccaafc
commit
05dbd9577c
@ -1,5 +1,5 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
project(Atop C)
|
||||
project(vperf C)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
|
||||
@ -11,11 +11,15 @@ set(SOURCES_CODE
|
||||
src/SystemInfo.h
|
||||
src/ProcessInfo.c
|
||||
src/ProcessInfo.h
|
||||
src/list.c
|
||||
src/list.h
|
||||
src/list_iterator.c
|
||||
src/list_node.c
|
||||
src/server.c
|
||||
src/server.h
|
||||
include/cJSON.c
|
||||
include/cJSON.h)
|
||||
|
||||
find_package (Threads)
|
||||
add_executable(Atop ${SOURCES_CODE})
|
||||
target_link_libraries (Atop ${CMAKE_THREAD_LIBS_INIT})
|
||||
add_executable(vperf ${SOURCES_CODE})
|
||||
target_link_libraries (vperf ${CMAKE_THREAD_LIBS_INIT})
|
||||
@ -103,6 +103,18 @@
|
||||
<Unit filename="/home/iain/Desktop/vperf/src/filter.h">
|
||||
<Option target="Atop"/>
|
||||
</Unit>
|
||||
<Unit filename="/home/iain/Desktop/vperf/src/list.c">
|
||||
<Option target="Atop"/>
|
||||
</Unit>
|
||||
<Unit filename="/home/iain/Desktop/vperf/src/list.h">
|
||||
<Option target="Atop"/>
|
||||
</Unit>
|
||||
<Unit filename="/home/iain/Desktop/vperf/src/list_iterator.c">
|
||||
<Option target="Atop"/>
|
||||
</Unit>
|
||||
<Unit filename="/home/iain/Desktop/vperf/src/list_node.c">
|
||||
<Option target="Atop"/>
|
||||
</Unit>
|
||||
<Unit filename="/home/iain/Desktop/vperf/src/server.c">
|
||||
<Option target="Atop"/>
|
||||
</Unit>
|
||||
|
||||
@ -136,7 +136,7 @@ CMAKE_PROJECT_DESCRIPTION:STATIC=
|
||||
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_NAME:STATIC=Atop
|
||||
CMAKE_PROJECT_NAME:STATIC=vperf
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
|
||||
@ -206,6 +206,12 @@ ProcessorCount_cmd_nproc:FILEPATH=/usr/bin/nproc
|
||||
//Path to a program.
|
||||
ProcessorCount_cmd_sysctl:FILEPATH=/usr/sbin/sysctl
|
||||
|
||||
//Value Computed by CMake
|
||||
vperf_BINARY_DIR:STATIC=/home/iain/Desktop/vperf/cmake-build-debug
|
||||
|
||||
//Value Computed by CMake
|
||||
vperf_SOURCE_DIR:STATIC=/home/iain/Desktop/vperf
|
||||
|
||||
|
||||
########################
|
||||
# INTERNAL cache entries
|
||||
|
||||
@ -9,6 +9,9 @@ set(CMAKE_DEPENDS_CHECK_C
|
||||
"/home/iain/Desktop/vperf/src/ProcessInfo.c" "/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/Atop.dir/src/ProcessInfo.c.o"
|
||||
"/home/iain/Desktop/vperf/src/SystemInfo.c" "/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/Atop.dir/src/SystemInfo.c.o"
|
||||
"/home/iain/Desktop/vperf/src/filter.c" "/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/Atop.dir/src/filter.c.o"
|
||||
"/home/iain/Desktop/vperf/src/list.c" "/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/Atop.dir/src/list.c.o"
|
||||
"/home/iain/Desktop/vperf/src/list_iterator.c" "/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/Atop.dir/src/list_iterator.c.o"
|
||||
"/home/iain/Desktop/vperf/src/list_node.c" "/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/Atop.dir/src/list_node.c.o"
|
||||
"/home/iain/Desktop/vperf/src/server.c" "/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/Atop.dir/src/server.c.o"
|
||||
)
|
||||
set(CMAKE_C_COMPILER_ID "GNU")
|
||||
|
||||
@ -128,9 +128,48 @@ CMakeFiles/Atop.dir/src/ProcessInfo.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Atop.dir/src/ProcessInfo.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/iain/Desktop/vperf/src/ProcessInfo.c -o CMakeFiles/Atop.dir/src/ProcessInfo.c.s
|
||||
|
||||
CMakeFiles/Atop.dir/src/list.c.o: CMakeFiles/Atop.dir/flags.make
|
||||
CMakeFiles/Atop.dir/src/list.c.o: ../src/list.c
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building C object CMakeFiles/Atop.dir/src/list.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/Atop.dir/src/list.c.o -c /home/iain/Desktop/vperf/src/list.c
|
||||
|
||||
CMakeFiles/Atop.dir/src/list.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Atop.dir/src/list.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/iain/Desktop/vperf/src/list.c > CMakeFiles/Atop.dir/src/list.c.i
|
||||
|
||||
CMakeFiles/Atop.dir/src/list.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Atop.dir/src/list.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/iain/Desktop/vperf/src/list.c -o CMakeFiles/Atop.dir/src/list.c.s
|
||||
|
||||
CMakeFiles/Atop.dir/src/list_iterator.c.o: CMakeFiles/Atop.dir/flags.make
|
||||
CMakeFiles/Atop.dir/src/list_iterator.c.o: ../src/list_iterator.c
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building C object CMakeFiles/Atop.dir/src/list_iterator.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/Atop.dir/src/list_iterator.c.o -c /home/iain/Desktop/vperf/src/list_iterator.c
|
||||
|
||||
CMakeFiles/Atop.dir/src/list_iterator.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Atop.dir/src/list_iterator.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/iain/Desktop/vperf/src/list_iterator.c > CMakeFiles/Atop.dir/src/list_iterator.c.i
|
||||
|
||||
CMakeFiles/Atop.dir/src/list_iterator.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Atop.dir/src/list_iterator.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/iain/Desktop/vperf/src/list_iterator.c -o CMakeFiles/Atop.dir/src/list_iterator.c.s
|
||||
|
||||
CMakeFiles/Atop.dir/src/list_node.c.o: CMakeFiles/Atop.dir/flags.make
|
||||
CMakeFiles/Atop.dir/src/list_node.c.o: ../src/list_node.c
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building C object CMakeFiles/Atop.dir/src/list_node.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/Atop.dir/src/list_node.c.o -c /home/iain/Desktop/vperf/src/list_node.c
|
||||
|
||||
CMakeFiles/Atop.dir/src/list_node.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Atop.dir/src/list_node.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/iain/Desktop/vperf/src/list_node.c > CMakeFiles/Atop.dir/src/list_node.c.i
|
||||
|
||||
CMakeFiles/Atop.dir/src/list_node.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Atop.dir/src/list_node.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/iain/Desktop/vperf/src/list_node.c -o CMakeFiles/Atop.dir/src/list_node.c.s
|
||||
|
||||
CMakeFiles/Atop.dir/src/server.c.o: CMakeFiles/Atop.dir/flags.make
|
||||
CMakeFiles/Atop.dir/src/server.c.o: ../src/server.c
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building C object CMakeFiles/Atop.dir/src/server.c.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building C object CMakeFiles/Atop.dir/src/server.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/Atop.dir/src/server.c.o -c /home/iain/Desktop/vperf/src/server.c
|
||||
|
||||
CMakeFiles/Atop.dir/src/server.c.i: cmake_force
|
||||
@ -143,7 +182,7 @@ CMakeFiles/Atop.dir/src/server.c.s: cmake_force
|
||||
|
||||
CMakeFiles/Atop.dir/include/cJSON.c.o: CMakeFiles/Atop.dir/flags.make
|
||||
CMakeFiles/Atop.dir/include/cJSON.c.o: ../include/cJSON.c
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building C object CMakeFiles/Atop.dir/include/cJSON.c.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building C object CMakeFiles/Atop.dir/include/cJSON.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/Atop.dir/include/cJSON.c.o -c /home/iain/Desktop/vperf/include/cJSON.c
|
||||
|
||||
CMakeFiles/Atop.dir/include/cJSON.c.i: cmake_force
|
||||
@ -160,6 +199,9 @@ Atop_OBJECTS = \
|
||||
"CMakeFiles/Atop.dir/src/filter.c.o" \
|
||||
"CMakeFiles/Atop.dir/src/SystemInfo.c.o" \
|
||||
"CMakeFiles/Atop.dir/src/ProcessInfo.c.o" \
|
||||
"CMakeFiles/Atop.dir/src/list.c.o" \
|
||||
"CMakeFiles/Atop.dir/src/list_iterator.c.o" \
|
||||
"CMakeFiles/Atop.dir/src/list_node.c.o" \
|
||||
"CMakeFiles/Atop.dir/src/server.c.o" \
|
||||
"CMakeFiles/Atop.dir/include/cJSON.c.o"
|
||||
|
||||
@ -170,11 +212,14 @@ Atop: CMakeFiles/Atop.dir/main.c.o
|
||||
Atop: CMakeFiles/Atop.dir/src/filter.c.o
|
||||
Atop: CMakeFiles/Atop.dir/src/SystemInfo.c.o
|
||||
Atop: CMakeFiles/Atop.dir/src/ProcessInfo.c.o
|
||||
Atop: CMakeFiles/Atop.dir/src/list.c.o
|
||||
Atop: CMakeFiles/Atop.dir/src/list_iterator.c.o
|
||||
Atop: CMakeFiles/Atop.dir/src/list_node.c.o
|
||||
Atop: CMakeFiles/Atop.dir/src/server.c.o
|
||||
Atop: CMakeFiles/Atop.dir/include/cJSON.c.o
|
||||
Atop: CMakeFiles/Atop.dir/build.make
|
||||
Atop: CMakeFiles/Atop.dir/link.txt
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Linking C executable Atop"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Linking C executable Atop"
|
||||
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/Atop.dir/link.txt --verbose=$(VERBOSE)
|
||||
|
||||
# Rule to build all files generated by this target.
|
||||
|
||||
@ -6,6 +6,9 @@ file(REMOVE_RECURSE
|
||||
"CMakeFiles/Atop.dir/src/ProcessInfo.c.o"
|
||||
"CMakeFiles/Atop.dir/src/SystemInfo.c.o"
|
||||
"CMakeFiles/Atop.dir/src/filter.c.o"
|
||||
"CMakeFiles/Atop.dir/src/list.c.o"
|
||||
"CMakeFiles/Atop.dir/src/list_iterator.c.o"
|
||||
"CMakeFiles/Atop.dir/src/list_node.c.o"
|
||||
"CMakeFiles/Atop.dir/src/server.c.o"
|
||||
)
|
||||
|
||||
|
||||
@ -8,10 +8,12 @@ CMakeFiles/Atop.dir/main.c.o: ../main.c
|
||||
CMakeFiles/Atop.dir/main.c.o: ../src/ProcessInfo.h
|
||||
CMakeFiles/Atop.dir/main.c.o: ../src/SystemInfo.h
|
||||
CMakeFiles/Atop.dir/main.c.o: ../src/filter.h
|
||||
CMakeFiles/Atop.dir/main.c.o: ../src/list.h
|
||||
CMakeFiles/Atop.dir/main.c.o: ../src/server.h
|
||||
|
||||
CMakeFiles/Atop.dir/src/ProcessInfo.c.o: ../src/ProcessInfo.c
|
||||
CMakeFiles/Atop.dir/src/ProcessInfo.c.o: ../src/ProcessInfo.h
|
||||
CMakeFiles/Atop.dir/src/ProcessInfo.c.o: ../src/list.h
|
||||
|
||||
CMakeFiles/Atop.dir/src/SystemInfo.c.o: ../src/SystemInfo.c
|
||||
CMakeFiles/Atop.dir/src/SystemInfo.c.o: ../src/SystemInfo.h
|
||||
@ -19,6 +21,16 @@ CMakeFiles/Atop.dir/src/SystemInfo.c.o: ../src/SystemInfo.h
|
||||
CMakeFiles/Atop.dir/src/filter.c.o: ../src/ProcessInfo.h
|
||||
CMakeFiles/Atop.dir/src/filter.c.o: ../src/filter.c
|
||||
CMakeFiles/Atop.dir/src/filter.c.o: ../src/filter.h
|
||||
CMakeFiles/Atop.dir/src/filter.c.o: ../src/list.h
|
||||
|
||||
CMakeFiles/Atop.dir/src/list.c.o: ../src/list.c
|
||||
CMakeFiles/Atop.dir/src/list.c.o: ../src/list.h
|
||||
|
||||
CMakeFiles/Atop.dir/src/list_iterator.c.o: ../src/list.h
|
||||
CMakeFiles/Atop.dir/src/list_iterator.c.o: ../src/list_iterator.c
|
||||
|
||||
CMakeFiles/Atop.dir/src/list_node.c.o: ../src/list.h
|
||||
CMakeFiles/Atop.dir/src/list_node.c.o: ../src/list_node.c
|
||||
|
||||
CMakeFiles/Atop.dir/src/server.c.o: ../src/server.c
|
||||
CMakeFiles/Atop.dir/src/server.c.o: ../src/server.h
|
||||
|
||||
@ -1 +1 @@
|
||||
/usr/bin/cc -g -rdynamic CMakeFiles/Atop.dir/main.c.o CMakeFiles/Atop.dir/src/filter.c.o CMakeFiles/Atop.dir/src/SystemInfo.c.o CMakeFiles/Atop.dir/src/ProcessInfo.c.o CMakeFiles/Atop.dir/src/server.c.o CMakeFiles/Atop.dir/include/cJSON.c.o -o Atop -lpthread
|
||||
/usr/bin/cc -g -rdynamic CMakeFiles/Atop.dir/main.c.o CMakeFiles/Atop.dir/src/filter.c.o CMakeFiles/Atop.dir/src/SystemInfo.c.o CMakeFiles/Atop.dir/src/ProcessInfo.c.o CMakeFiles/Atop.dir/src/list.c.o CMakeFiles/Atop.dir/src/list_iterator.c.o CMakeFiles/Atop.dir/src/list_node.c.o CMakeFiles/Atop.dir/src/server.c.o CMakeFiles/Atop.dir/include/cJSON.c.o -o Atop -lpthread
|
||||
|
||||
@ -5,4 +5,7 @@ CMAKE_PROGRESS_4 = 4
|
||||
CMAKE_PROGRESS_5 = 5
|
||||
CMAKE_PROGRESS_6 = 6
|
||||
CMAKE_PROGRESS_7 = 7
|
||||
CMAKE_PROGRESS_8 = 8
|
||||
CMAKE_PROGRESS_9 = 9
|
||||
CMAKE_PROGRESS_10 = 10
|
||||
|
||||
|
||||
@ -10,78 +10,25 @@ set(CMAKE_MAKEFILE_DEPENDS
|
||||
"../CMakeLists.txt"
|
||||
"CMakeFiles/3.19.2/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/3.19.2/CMakeSystem.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeCCompiler.cmake.in"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeCCompilerABI.c"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeCInformation.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeCommonLanguageInclude.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeCompilerIdDetection.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeDetermineCCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeDetermineCompileFeatures.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeDetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeDetermineCompilerABI.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeDetermineCompilerId.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeDetermineSystem.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeFindBinUtils.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeFindCodeBlocks.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeGenericSystem.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeInitializeConfigs.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeLanguageInformation.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeParseImplicitIncludeInfo.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeParseImplicitLinkInfo.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeSystem.cmake.in"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeSystemSpecificInformation.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeSystemSpecificInitialize.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeTestCCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeTestCompilerCommon.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CMakeUnixFindMake.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CheckCSourceCompiles.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CheckFunctionExists.c"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CheckIncludeFile.c.in"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CheckIncludeFile.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/CheckLibraryExists.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/ADSP-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Borland-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Clang-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Cray-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/GHS-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/GNU-C.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/GNU-FindBinUtils.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/GNU.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/HP-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/IAR-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Intel-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/MSVC-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/PGI-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/PathScale-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/SCO-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/TI-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/Watcom-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/XL-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/FindPackageHandleStandardArgs.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/FindPackageMessage.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/FindThreads.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Internal/CheckSourceCompiles.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Internal/FeatureTesting.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Platform/Linux-GNU-C.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Platform/Linux-GNU.cmake"
|
||||
"/home/iain/bin/clion-2021.1.2/bin/cmake/linux/share/cmake-3.19/Modules/Platform/Linux.cmake"
|
||||
@ -97,13 +44,10 @@ set(CMAKE_MAKEFILE_OUTPUTS
|
||||
|
||||
# Byproducts of CMake generate step:
|
||||
set(CMAKE_MAKEFILE_PRODUCTS
|
||||
"CMakeFiles/3.19.2/CMakeSystem.cmake"
|
||||
"CMakeFiles/3.19.2/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/3.19.2/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/CMakeDirectoryInformation.cmake"
|
||||
)
|
||||
|
||||
# Dependency information for all targets:
|
||||
set(CMAKE_DEPEND_INFO_FILES
|
||||
"CMakeFiles/Atop.dir/DependInfo.cmake"
|
||||
"CMakeFiles/vperf.dir/DependInfo.cmake"
|
||||
)
|
||||
|
||||
@ -72,7 +72,7 @@ CMAKE_BINARY_DIR = /home/iain/Desktop/vperf/cmake-build-debug
|
||||
# Directory level rules for the build root directory
|
||||
|
||||
# The main recursive "all" target.
|
||||
all: CMakeFiles/Atop.dir/all
|
||||
all: CMakeFiles/vperf.dir/all
|
||||
|
||||
.PHONY : all
|
||||
|
||||
@ -82,36 +82,36 @@ preinstall:
|
||||
.PHONY : preinstall
|
||||
|
||||
# The main recursive "clean" target.
|
||||
clean: CMakeFiles/Atop.dir/clean
|
||||
clean: CMakeFiles/vperf.dir/clean
|
||||
|
||||
.PHONY : clean
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for target CMakeFiles/Atop.dir
|
||||
# Target rules for target CMakeFiles/vperf.dir
|
||||
|
||||
# All Build rule for target.
|
||||
CMakeFiles/Atop.dir/all:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/depend
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/build
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=1,2,3,4,5,6,7 "Built target Atop"
|
||||
.PHONY : CMakeFiles/Atop.dir/all
|
||||
CMakeFiles/vperf.dir/all:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/depend
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/build
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10 "Built target vperf"
|
||||
.PHONY : CMakeFiles/vperf.dir/all
|
||||
|
||||
# Build rule for subdir invocation for target.
|
||||
CMakeFiles/Atop.dir/rule: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles 7
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/Atop.dir/all
|
||||
CMakeFiles/vperf.dir/rule: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles 10
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/vperf.dir/all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles 0
|
||||
.PHONY : CMakeFiles/Atop.dir/rule
|
||||
.PHONY : CMakeFiles/vperf.dir/rule
|
||||
|
||||
# Convenience name for target.
|
||||
Atop: CMakeFiles/Atop.dir/rule
|
||||
vperf: CMakeFiles/vperf.dir/rule
|
||||
|
||||
.PHONY : Atop
|
||||
.PHONY : vperf
|
||||
|
||||
# clean rule for target.
|
||||
CMakeFiles/Atop.dir/clean:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/clean
|
||||
.PHONY : CMakeFiles/Atop.dir/clean
|
||||
CMakeFiles/vperf.dir/clean:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/clean
|
||||
.PHONY : CMakeFiles/vperf.dir/clean
|
||||
|
||||
#=============================================================================
|
||||
# Special targets to cleanup operation of make.
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/rebuild_cache.dir
|
||||
/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/edit_cache.dir
|
||||
/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/Atop.dir
|
||||
/home/iain/Desktop/vperf/cmake-build-debug/CMakeFiles/vperf.dir
|
||||
|
||||
@ -7,21 +7,6 @@ CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
|
||||
CMake that the project does not need compatibility with older versions.
|
||||
|
||||
|
||||
-- The C compiler identification is GNU 9.3.0
|
||||
-- Detecting C compiler ABI info
|
||||
-- Detecting C compiler ABI info - done
|
||||
-- Check for working C compiler: /usr/bin/cc - skipped
|
||||
-- Detecting C compile features
|
||||
-- Detecting C compile features - done
|
||||
-- Looking for pthread.h
|
||||
-- Looking for pthread.h - found
|
||||
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
|
||||
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
|
||||
-- Looking for pthread_create in pthreads
|
||||
-- Looking for pthread_create in pthreads - not found
|
||||
-- Looking for pthread_create in pthread
|
||||
-- Looking for pthread_create in pthread - found
|
||||
-- Found Threads: TRUE
|
||||
-- Configuring done
|
||||
-- Generating done
|
||||
-- Build files have been written to: /home/iain/Desktop/vperf/cmake-build-debug
|
||||
|
||||
@ -1 +1 @@
|
||||
7
|
||||
10
|
||||
|
||||
@ -130,17 +130,17 @@ depend:
|
||||
.PHONY : depend
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for targets named Atop
|
||||
# Target rules for targets named vperf
|
||||
|
||||
# Build rule for target.
|
||||
Atop: cmake_check_build_system
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 Atop
|
||||
.PHONY : Atop
|
||||
vperf: cmake_check_build_system
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 vperf
|
||||
.PHONY : vperf
|
||||
|
||||
# fast build rule for target.
|
||||
Atop/fast:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/build
|
||||
.PHONY : Atop/fast
|
||||
vperf/fast:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/build
|
||||
.PHONY : vperf/fast
|
||||
|
||||
include/cJSON.o: include/cJSON.c.o
|
||||
|
||||
@ -148,7 +148,7 @@ include/cJSON.o: include/cJSON.c.o
|
||||
|
||||
# target to build an object file
|
||||
include/cJSON.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/include/cJSON.c.o
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/include/cJSON.c.o
|
||||
.PHONY : include/cJSON.c.o
|
||||
|
||||
include/cJSON.i: include/cJSON.c.i
|
||||
@ -157,7 +157,7 @@ include/cJSON.i: include/cJSON.c.i
|
||||
|
||||
# target to preprocess a source file
|
||||
include/cJSON.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/include/cJSON.c.i
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/include/cJSON.c.i
|
||||
.PHONY : include/cJSON.c.i
|
||||
|
||||
include/cJSON.s: include/cJSON.c.s
|
||||
@ -166,7 +166,7 @@ include/cJSON.s: include/cJSON.c.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
include/cJSON.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/include/cJSON.c.s
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/include/cJSON.c.s
|
||||
.PHONY : include/cJSON.c.s
|
||||
|
||||
main.o: main.c.o
|
||||
@ -175,7 +175,7 @@ main.o: main.c.o
|
||||
|
||||
# target to build an object file
|
||||
main.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/main.c.o
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/main.c.o
|
||||
.PHONY : main.c.o
|
||||
|
||||
main.i: main.c.i
|
||||
@ -184,7 +184,7 @@ main.i: main.c.i
|
||||
|
||||
# target to preprocess a source file
|
||||
main.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/main.c.i
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/main.c.i
|
||||
.PHONY : main.c.i
|
||||
|
||||
main.s: main.c.s
|
||||
@ -193,7 +193,7 @@ main.s: main.c.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
main.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/main.c.s
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/main.c.s
|
||||
.PHONY : main.c.s
|
||||
|
||||
src/ProcessInfo.o: src/ProcessInfo.c.o
|
||||
@ -202,7 +202,7 @@ src/ProcessInfo.o: src/ProcessInfo.c.o
|
||||
|
||||
# target to build an object file
|
||||
src/ProcessInfo.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/ProcessInfo.c.o
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/ProcessInfo.c.o
|
||||
.PHONY : src/ProcessInfo.c.o
|
||||
|
||||
src/ProcessInfo.i: src/ProcessInfo.c.i
|
||||
@ -211,7 +211,7 @@ src/ProcessInfo.i: src/ProcessInfo.c.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/ProcessInfo.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/ProcessInfo.c.i
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/ProcessInfo.c.i
|
||||
.PHONY : src/ProcessInfo.c.i
|
||||
|
||||
src/ProcessInfo.s: src/ProcessInfo.c.s
|
||||
@ -220,7 +220,7 @@ src/ProcessInfo.s: src/ProcessInfo.c.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/ProcessInfo.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/ProcessInfo.c.s
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/ProcessInfo.c.s
|
||||
.PHONY : src/ProcessInfo.c.s
|
||||
|
||||
src/SystemInfo.o: src/SystemInfo.c.o
|
||||
@ -229,7 +229,7 @@ src/SystemInfo.o: src/SystemInfo.c.o
|
||||
|
||||
# target to build an object file
|
||||
src/SystemInfo.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/SystemInfo.c.o
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/SystemInfo.c.o
|
||||
.PHONY : src/SystemInfo.c.o
|
||||
|
||||
src/SystemInfo.i: src/SystemInfo.c.i
|
||||
@ -238,7 +238,7 @@ src/SystemInfo.i: src/SystemInfo.c.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/SystemInfo.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/SystemInfo.c.i
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/SystemInfo.c.i
|
||||
.PHONY : src/SystemInfo.c.i
|
||||
|
||||
src/SystemInfo.s: src/SystemInfo.c.s
|
||||
@ -247,7 +247,7 @@ src/SystemInfo.s: src/SystemInfo.c.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/SystemInfo.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/SystemInfo.c.s
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/SystemInfo.c.s
|
||||
.PHONY : src/SystemInfo.c.s
|
||||
|
||||
src/filter.o: src/filter.c.o
|
||||
@ -256,7 +256,7 @@ src/filter.o: src/filter.c.o
|
||||
|
||||
# target to build an object file
|
||||
src/filter.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/filter.c.o
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/filter.c.o
|
||||
.PHONY : src/filter.c.o
|
||||
|
||||
src/filter.i: src/filter.c.i
|
||||
@ -265,7 +265,7 @@ src/filter.i: src/filter.c.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/filter.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/filter.c.i
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/filter.c.i
|
||||
.PHONY : src/filter.c.i
|
||||
|
||||
src/filter.s: src/filter.c.s
|
||||
@ -274,16 +274,97 @@ src/filter.s: src/filter.c.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/filter.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/filter.c.s
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/filter.c.s
|
||||
.PHONY : src/filter.c.s
|
||||
|
||||
src/list.o: src/list.c.o
|
||||
|
||||
.PHONY : src/list.o
|
||||
|
||||
# target to build an object file
|
||||
src/list.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/list.c.o
|
||||
.PHONY : src/list.c.o
|
||||
|
||||
src/list.i: src/list.c.i
|
||||
|
||||
.PHONY : src/list.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/list.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/list.c.i
|
||||
.PHONY : src/list.c.i
|
||||
|
||||
src/list.s: src/list.c.s
|
||||
|
||||
.PHONY : src/list.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/list.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/list.c.s
|
||||
.PHONY : src/list.c.s
|
||||
|
||||
src/list_iterator.o: src/list_iterator.c.o
|
||||
|
||||
.PHONY : src/list_iterator.o
|
||||
|
||||
# target to build an object file
|
||||
src/list_iterator.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/list_iterator.c.o
|
||||
.PHONY : src/list_iterator.c.o
|
||||
|
||||
src/list_iterator.i: src/list_iterator.c.i
|
||||
|
||||
.PHONY : src/list_iterator.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/list_iterator.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/list_iterator.c.i
|
||||
.PHONY : src/list_iterator.c.i
|
||||
|
||||
src/list_iterator.s: src/list_iterator.c.s
|
||||
|
||||
.PHONY : src/list_iterator.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/list_iterator.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/list_iterator.c.s
|
||||
.PHONY : src/list_iterator.c.s
|
||||
|
||||
src/list_node.o: src/list_node.c.o
|
||||
|
||||
.PHONY : src/list_node.o
|
||||
|
||||
# target to build an object file
|
||||
src/list_node.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/list_node.c.o
|
||||
.PHONY : src/list_node.c.o
|
||||
|
||||
src/list_node.i: src/list_node.c.i
|
||||
|
||||
.PHONY : src/list_node.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/list_node.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/list_node.c.i
|
||||
.PHONY : src/list_node.c.i
|
||||
|
||||
src/list_node.s: src/list_node.c.s
|
||||
|
||||
.PHONY : src/list_node.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/list_node.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/list_node.c.s
|
||||
.PHONY : src/list_node.c.s
|
||||
|
||||
src/server.o: src/server.c.o
|
||||
|
||||
.PHONY : src/server.o
|
||||
|
||||
# target to build an object file
|
||||
src/server.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/server.c.o
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/server.c.o
|
||||
.PHONY : src/server.c.o
|
||||
|
||||
src/server.i: src/server.c.i
|
||||
@ -292,7 +373,7 @@ src/server.i: src/server.c.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/server.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/server.c.i
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/server.c.i
|
||||
.PHONY : src/server.c.i
|
||||
|
||||
src/server.s: src/server.c.s
|
||||
@ -301,7 +382,7 @@ src/server.s: src/server.c.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/server.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Atop.dir/build.make CMakeFiles/Atop.dir/src/server.c.s
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/vperf.dir/build.make CMakeFiles/vperf.dir/src/server.c.s
|
||||
.PHONY : src/server.c.s
|
||||
|
||||
# Help Target
|
||||
@ -312,7 +393,7 @@ help:
|
||||
@echo "... depend"
|
||||
@echo "... edit_cache"
|
||||
@echo "... rebuild_cache"
|
||||
@echo "... Atop"
|
||||
@echo "... vperf"
|
||||
@echo "... include/cJSON.o"
|
||||
@echo "... include/cJSON.i"
|
||||
@echo "... include/cJSON.s"
|
||||
@ -328,6 +409,15 @@ help:
|
||||
@echo "... src/filter.o"
|
||||
@echo "... src/filter.i"
|
||||
@echo "... src/filter.s"
|
||||
@echo "... src/list.o"
|
||||
@echo "... src/list.i"
|
||||
@echo "... src/list.s"
|
||||
@echo "... src/list_iterator.o"
|
||||
@echo "... src/list_iterator.i"
|
||||
@echo "... src/list_iterator.s"
|
||||
@echo "... src/list_node.o"
|
||||
@echo "... src/list_node.i"
|
||||
@echo "... src/list_node.s"
|
||||
@echo "... src/server.o"
|
||||
@echo "... src/server.i"
|
||||
@echo "... src/server.s"
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
Start testing: Jul 21 21:35 CST
|
||||
Start testing: Jul 23 19:24 CST
|
||||
----------------------------------------------------------
|
||||
End testing: Jul 21 21:35 CST
|
||||
End testing: Jul 23 19:24 CST
|
||||
|
||||
4
main.c
4
main.c
@ -12,7 +12,7 @@ int main() {
|
||||
int rc;
|
||||
pthread_t unix_domain_server;
|
||||
|
||||
freeProcInfoList();
|
||||
initProcList();
|
||||
|
||||
//init
|
||||
//get /data/data/dir
|
||||
@ -24,7 +24,7 @@ int main() {
|
||||
while (1) {
|
||||
i++;
|
||||
printf("\nloop:%d\n", i);
|
||||
usleep(600000 / UPDATE_FREQUENCY * 0.98);
|
||||
usleep(60000000 / UPDATE_FREQUENCY * 0.98);
|
||||
//monitor Global_Info and decicde to kill some process
|
||||
updateSystemInfo();
|
||||
//monitor Proc_List
|
||||
|
||||
@ -17,53 +17,54 @@
|
||||
#define STAT_VSZ 22
|
||||
#define STAT_RSS 23
|
||||
|
||||
extern Proc_Info Proc_List[LIMIT_PROCESS_NUMBER];
|
||||
//Global Process Info Node List
|
||||
list_t Proc_List;
|
||||
|
||||
inline void freeProcInfo(Proc_Info *proc) {
|
||||
void printProcInfo(Proc_Info *pProcInfo) {
|
||||
printf("PID:%d,name:%s,point:%d\n", pProcInfo->pid, pProcInfo->name, pProcInfo->point);
|
||||
int i;
|
||||
proc->pid = 0;
|
||||
proc->point = 0;
|
||||
strcpy(proc->name, "");
|
||||
printf("cpu:");
|
||||
for (i = 0; i < UPDATE_FREQUENCY; i++) {
|
||||
proc->cpuInfo[i].utime = 0;
|
||||
proc->cpuInfo[i].stime = 0;
|
||||
proc->memInfo[i].vsz = 0;
|
||||
proc->memInfo[i].vsz = 0;
|
||||
printf("s=%ld u=%ld,", pProcInfo->cpuInfo[i].stime, pProcInfo->cpuInfo[i].utime);
|
||||
}
|
||||
|
||||
return;
|
||||
printf("\n");
|
||||
printf("mem:");
|
||||
for (i = 0; i < UPDATE_FREQUENCY; i++) {
|
||||
printf("vsz=%ld rss=%ld,", pProcInfo->memInfo[i].vsz, pProcInfo->memInfo[i].rss);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void freeProcInfoList() {
|
||||
int i;
|
||||
for (i = 0; i < LIMIT_PROCESS_NUMBER; i++) {
|
||||
freeProcInfo(&Proc_List[i]);
|
||||
}
|
||||
return;
|
||||
struct Proc_Info_ *newProcInfo(unsigned int pid, char name[LIMIT_PROCESS_Name_Length]) {
|
||||
struct Proc_Info_ *proc;
|
||||
proc = (struct Proc_Info_ *) malloc(sizeof(struct Proc_Info_));
|
||||
memset(proc, 0, sizeof(struct Proc_Info_));
|
||||
proc->pid = pid;
|
||||
strcpy(proc->name, name);
|
||||
#if defined(LOG)
|
||||
printf("newProcInfoNode-Create:");
|
||||
printProcInfo(proc);
|
||||
#endif
|
||||
return proc;
|
||||
}
|
||||
|
||||
//not found,return -1
|
||||
//found,return id
|
||||
int foundProcNode(unsigned int pid) {
|
||||
int i;
|
||||
for (i = 0; i < LIMIT_PROCESS_NUMBER; i++) {
|
||||
if ((Proc_List + i)->pid == pid) {
|
||||
return i;
|
||||
}
|
||||
list_node_t *node;
|
||||
list_iterator_t *it = list_iterator_new(&Proc_List, LIST_HEAD);
|
||||
|
||||
while ((node = list_iterator_next(it))) {
|
||||
struct Proc_Info_ *proc_node;
|
||||
proc_node = (struct Proc_Info_ *) node->val;
|
||||
if (proc_node->pid == pid) {
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int foundFreeProcNode() {
|
||||
int i;
|
||||
i = foundProcNode(0);
|
||||
if (i == -1) {
|
||||
perror("No free procInfo node in procList");
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
int setFreeProcNode(unsigned int pid) {
|
||||
int setProcNode(unsigned int pid) {
|
||||
//found PID name
|
||||
char buf[BUFFER_SIZE_PROC_STATUS] = {0};
|
||||
char PID_name[LIMIT_PROCESS_Name_Length] = {0};
|
||||
@ -81,19 +82,16 @@ int setFreeProcNode(unsigned int pid) {
|
||||
sscanf(buf, "Name: %s", PID_name);
|
||||
fclose(fp);
|
||||
|
||||
//compare PID name with whitelist
|
||||
//compare PID name with whitelist and regex
|
||||
|
||||
//check PID in ProcList
|
||||
if (foundProcNode(pid) != -1) {
|
||||
if (foundProcNode(pid) == 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
//found free Proc Node
|
||||
int i = foundFreeProcNode();
|
||||
|
||||
//set Proc Info
|
||||
Proc_List[i].pid = pid;
|
||||
strcpy(Proc_List[i].name, PID_name);
|
||||
struct Proc_Info_ *proc = newProcInfo(pid, PID_name);
|
||||
list_rpush(&Proc_List, (void *) list_node_new(proc));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -107,7 +105,7 @@ int monitorProcDirChange() {
|
||||
perror("scandir /proc");
|
||||
else {
|
||||
while (n--) {
|
||||
printf("%s\n", namelist[n]->d_name);
|
||||
//printf("%s\n", namelist[n]->d_name);
|
||||
free(namelist[n]);
|
||||
}
|
||||
free(namelist);
|
||||
@ -222,36 +220,47 @@ int updateProcInfo(Proc_Info *proc) {
|
||||
proc->cpuInfo[proc->point].utime = utime;
|
||||
proc->cpuInfo[proc->point].stime = stime;
|
||||
proc->memInfo[proc->point].vsz = vsz;
|
||||
proc->memInfo[proc->point].rss = rss * 4;
|
||||
proc->memInfo[proc->point].rss = rss * 4 * 1024;
|
||||
fclose(fd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void initProcList() {
|
||||
list_t *pProc_List = list_new();
|
||||
Proc_List = *pProc_List;
|
||||
}
|
||||
|
||||
void updateProcList() {
|
||||
#if defined(LOG)
|
||||
printf("/****** Proc Info ******/\n");
|
||||
monitorProcDirChange();
|
||||
int i;
|
||||
for (i = 0; i < LIMIT_PROCESS_NUMBER; i++) {
|
||||
printf("id=%d,", Proc_List[i].pid);
|
||||
}
|
||||
printf("\n");
|
||||
setFreeProcNode(1);
|
||||
|
||||
setProcNode(1);
|
||||
setProcNode(150361);
|
||||
#endif
|
||||
|
||||
char file_path[64] = {0};
|
||||
int currentProcNode;
|
||||
for (currentProcNode = 0; currentProcNode < LIMIT_PROCESS_NUMBER; currentProcNode++) {
|
||||
//check PID
|
||||
if (Proc_List[currentProcNode].pid != 0) {
|
||||
if (updateProcInfo(&Proc_List[currentProcNode]) == -1) {
|
||||
struct Proc_Info_ *proc_node;
|
||||
list_node_t *node;
|
||||
list_iterator_t *it = list_iterator_new(&Proc_List, LIST_HEAD);
|
||||
|
||||
while ((node = list_iterator_next(it))) {
|
||||
proc_node = (struct Proc_Info_ *) node->val;
|
||||
printProcInfo(proc_node);
|
||||
if (updateProcInfo(proc_node) == -1) {
|
||||
//check path exist
|
||||
sprintf(file_path, "/proc/%d", Proc_List[currentProcNode].pid);
|
||||
sprintf(file_path, "/proc/%d", proc_node->pid);
|
||||
if (access(file_path, F_OK)) {
|
||||
freeProcInfo(&Proc_List[currentProcNode]);
|
||||
}
|
||||
list_node_t *node_to_delete = node;
|
||||
printf("remove proc list node due to cannot access /proc/PID");
|
||||
node = list_iterator_next(it);
|
||||
list_remove(&Proc_List, node_to_delete);
|
||||
free(proc_node);
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
@ -9,6 +9,8 @@
|
||||
#define LIMIT_PROCESS_NUMBER 64 //max monitor 64 process
|
||||
#define LIMIT_PROCESS_Name_Length 128
|
||||
|
||||
#include "list.h"
|
||||
|
||||
//proc/PID/stat
|
||||
typedef struct Proc_CPU_Time_ {
|
||||
unsigned long utime; //user time
|
||||
@ -29,10 +31,6 @@ typedef struct Proc_Info_ {
|
||||
Proc_Mem memInfo[UPDATE_FREQUENCY];
|
||||
} Proc_Info;
|
||||
|
||||
void freeProcInfo(Proc_Info *proc);
|
||||
|
||||
void freeProcInfoList();
|
||||
|
||||
//kill this process
|
||||
void findProcListByMem();
|
||||
|
||||
@ -41,6 +39,6 @@ void findProcListByCPU();
|
||||
|
||||
void updateProcList();
|
||||
|
||||
Proc_Info Proc_List[LIMIT_PROCESS_NUMBER]; //max monitor 64 process
|
||||
void initProcList();
|
||||
|
||||
#endif //ATOP_PROCESSINFO_H
|
||||
|
||||
182
src/list.c
Normal file
182
src/list.c
Normal file
@ -0,0 +1,182 @@
|
||||
|
||||
#include "list.h"
|
||||
|
||||
/*
|
||||
* Allocate a new list_t. NULL on failure.
|
||||
*/
|
||||
|
||||
list_t *list_new(void) {
|
||||
list_t *self;
|
||||
if (!(self = LIST_MALLOC(sizeof(list_t))))
|
||||
return NULL;
|
||||
self->head = NULL;
|
||||
self->tail = NULL;
|
||||
self->free = NULL;
|
||||
self->match = NULL;
|
||||
self->len = 0;
|
||||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
* Free the list.
|
||||
*/
|
||||
|
||||
void list_destroy(list_t *self) {
|
||||
unsigned int len = self->len;
|
||||
list_node_t *next;
|
||||
list_node_t *curr = self->head;
|
||||
|
||||
while (len--) {
|
||||
next = curr->next;
|
||||
if (self->free) self->free(curr->val);
|
||||
LIST_FREE(curr);
|
||||
curr = next;
|
||||
}
|
||||
|
||||
LIST_FREE(self);
|
||||
}
|
||||
|
||||
/*
|
||||
* Append the given node to the list
|
||||
* and return the node, NULL on failure.
|
||||
*/
|
||||
|
||||
list_node_t *list_rpush(list_t *self, list_node_t *node) {
|
||||
if (!node) return NULL;
|
||||
if (self->len) {
|
||||
node->prev = self->tail;
|
||||
node->next = NULL;
|
||||
self->tail->next = node;
|
||||
self->tail = node;
|
||||
} else {
|
||||
self->head = self->tail = node;
|
||||
node->prev = node->next = NULL;
|
||||
}
|
||||
|
||||
++self->len;
|
||||
return node;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return / detach the last node in the list, or NULL.
|
||||
*/
|
||||
|
||||
list_node_t *list_rpop(list_t *self) {
|
||||
if (!self->len) return NULL;
|
||||
|
||||
list_node_t *node = self->tail;
|
||||
|
||||
if (--self->len) {
|
||||
(self->tail = node->prev)->next = NULL;
|
||||
} else {
|
||||
self->tail = self->head = NULL;
|
||||
}
|
||||
|
||||
node->next = node->prev = NULL;
|
||||
return node;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return / detach the first node in the list, or NULL.
|
||||
*/
|
||||
|
||||
list_node_t *list_lpop(list_t *self) {
|
||||
if (!self->len) return NULL;
|
||||
|
||||
list_node_t *node = self->head;
|
||||
|
||||
if (--self->len) {
|
||||
(self->head = node->next)->prev = NULL;
|
||||
} else {
|
||||
self->head = self->tail = NULL;
|
||||
}
|
||||
|
||||
node->next = node->prev = NULL;
|
||||
return node;
|
||||
}
|
||||
|
||||
/*
|
||||
* Prepend the given node to the list
|
||||
* and return the node, NULL on failure.
|
||||
*/
|
||||
|
||||
list_node_t *list_lpush(list_t *self, list_node_t *node) {
|
||||
if (!node) return NULL;
|
||||
|
||||
if (self->len) {
|
||||
node->next = self->head;
|
||||
node->prev = NULL;
|
||||
self->head->prev = node;
|
||||
self->head = node;
|
||||
} else {
|
||||
self->head = self->tail = node;
|
||||
node->prev = node->next = NULL;
|
||||
}
|
||||
|
||||
++self->len;
|
||||
return node;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the node associated to val or NULL.
|
||||
*/
|
||||
|
||||
list_node_t *list_find(list_t *self, void *val) {
|
||||
list_iterator_t *it = list_iterator_new(self, LIST_HEAD);
|
||||
list_node_t *node;
|
||||
|
||||
while ((node = list_iterator_next(it))) {
|
||||
if (self->match) {
|
||||
if (self->match(val, node->val)) {
|
||||
list_iterator_destroy(it);
|
||||
return node;
|
||||
}
|
||||
} else {
|
||||
if (val == node->val) {
|
||||
list_iterator_destroy(it);
|
||||
return node;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
list_iterator_destroy(it);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the node at the given index or NULL.
|
||||
*/
|
||||
|
||||
list_node_t *list_at(list_t *self, int index) {
|
||||
list_direction_t direction = LIST_HEAD;
|
||||
|
||||
if (index < 0) {
|
||||
direction = LIST_TAIL;
|
||||
index = ~index;
|
||||
}
|
||||
|
||||
if ((unsigned) index < self->len) {
|
||||
list_iterator_t *it = list_iterator_new(self, direction);
|
||||
list_node_t *node = list_iterator_next(it);
|
||||
while (index--) node = list_iterator_next(it);
|
||||
list_iterator_destroy(it);
|
||||
return node;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Remove the given node from the list, freeing it and it's value.
|
||||
*/
|
||||
|
||||
void list_remove(list_t *self, list_node_t *node) {
|
||||
node->prev ? (node->prev->next = node->next) : (self->head = node->next);
|
||||
|
||||
node->next ? (node->next->prev = node->prev) : (self->tail = node->prev);
|
||||
|
||||
if (self->free) self->free(node->val);
|
||||
|
||||
LIST_FREE(node);
|
||||
--self->len;
|
||||
}
|
||||
130
src/list.h
Normal file
130
src/list.h
Normal file
@ -0,0 +1,130 @@
|
||||
|
||||
//
|
||||
// list.h
|
||||
//
|
||||
// Copyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
//
|
||||
|
||||
#ifndef __CLIBS_LIST_H__
|
||||
#define __CLIBS_LIST_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
// Library version
|
||||
|
||||
#define LIST_VERSION "0.2.0"
|
||||
|
||||
// Memory management macros
|
||||
#ifdef LIST_CONFIG_H
|
||||
#define _STR(x) #x
|
||||
#define STR(x) _STR(x)
|
||||
#include STR(LIST_CONFIG_H)
|
||||
#undef _STR
|
||||
#undef STR
|
||||
#endif
|
||||
|
||||
#ifndef LIST_MALLOC
|
||||
#define LIST_MALLOC malloc
|
||||
#endif
|
||||
|
||||
#ifndef LIST_FREE
|
||||
#define LIST_FREE free
|
||||
#endif
|
||||
|
||||
/*
|
||||
* list_t iterator direction.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
LIST_HEAD
|
||||
, LIST_TAIL
|
||||
} list_direction_t;
|
||||
|
||||
/*
|
||||
* list_t node struct.
|
||||
*/
|
||||
|
||||
typedef struct list_node {
|
||||
struct list_node *prev;
|
||||
struct list_node *next;
|
||||
void *val;
|
||||
} list_node_t;
|
||||
|
||||
/*
|
||||
* list_t struct.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
list_node_t *head;
|
||||
list_node_t *tail;
|
||||
unsigned int len;
|
||||
void (*free)(void *val);
|
||||
int (*match)(void *a, void *b);
|
||||
} list_t;
|
||||
|
||||
/*
|
||||
* list_t iterator struct.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
list_node_t *next;
|
||||
list_direction_t direction;
|
||||
} list_iterator_t;
|
||||
|
||||
// Node prototypes.
|
||||
|
||||
list_node_t *
|
||||
list_node_new(void *val);
|
||||
|
||||
// list_t prototypes.
|
||||
|
||||
list_t *
|
||||
list_new(void);
|
||||
|
||||
list_node_t *
|
||||
list_rpush(list_t *self, list_node_t *node);
|
||||
|
||||
list_node_t *
|
||||
list_lpush(list_t *self, list_node_t *node);
|
||||
|
||||
list_node_t *
|
||||
list_find(list_t *self, void *val);
|
||||
|
||||
list_node_t *
|
||||
list_at(list_t *self, int index);
|
||||
|
||||
list_node_t *
|
||||
list_rpop(list_t *self);
|
||||
|
||||
list_node_t *
|
||||
list_lpop(list_t *self);
|
||||
|
||||
void
|
||||
list_remove(list_t *self, list_node_t *node);
|
||||
|
||||
void
|
||||
list_destroy(list_t *self);
|
||||
|
||||
// list_t iterator prototypes.
|
||||
|
||||
list_iterator_t *
|
||||
list_iterator_new(list_t *list, list_direction_t direction);
|
||||
|
||||
list_iterator_t *
|
||||
list_iterator_new_from_node(list_node_t *node, list_direction_t direction);
|
||||
|
||||
list_node_t *
|
||||
list_iterator_next(list_iterator_t *self);
|
||||
|
||||
void
|
||||
list_iterator_destroy(list_iterator_t *self);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __CLIBS_LIST_H__ */
|
||||
61
src/list_iterator.c
Normal file
61
src/list_iterator.c
Normal file
@ -0,0 +1,61 @@
|
||||
|
||||
//
|
||||
// iterator.c
|
||||
//
|
||||
// Copyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
//
|
||||
|
||||
#include "list.h"
|
||||
|
||||
/*
|
||||
* Allocate a new list_iterator_t. NULL on failure.
|
||||
* Accepts a direction, which may be LIST_HEAD or LIST_TAIL.
|
||||
*/
|
||||
|
||||
list_iterator_t *
|
||||
list_iterator_new(list_t *list, list_direction_t direction) {
|
||||
list_node_t *node = direction == LIST_HEAD
|
||||
? list->head
|
||||
: list->tail;
|
||||
return list_iterator_new_from_node(node, direction);
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate a new list_iterator_t with the given start
|
||||
* node. NULL on failure.
|
||||
*/
|
||||
|
||||
list_iterator_t *
|
||||
list_iterator_new_from_node(list_node_t *node, list_direction_t direction) {
|
||||
list_iterator_t *self;
|
||||
if (!(self = LIST_MALLOC(sizeof(list_iterator_t))))
|
||||
return NULL;
|
||||
self->next = node;
|
||||
self->direction = direction;
|
||||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the next list_node_t or NULL when no more
|
||||
* nodes remain in the list.
|
||||
*/
|
||||
|
||||
list_node_t *list_iterator_next(list_iterator_t *self) {
|
||||
list_node_t *curr = self->next;
|
||||
if (curr) {
|
||||
self->next = self->direction == LIST_HEAD
|
||||
? curr->next
|
||||
: curr->prev;
|
||||
}
|
||||
return curr;
|
||||
}
|
||||
|
||||
/*
|
||||
* Free the list iterator.
|
||||
*/
|
||||
|
||||
void
|
||||
list_iterator_destroy(list_iterator_t *self) {
|
||||
LIST_FREE(self);
|
||||
self = NULL;
|
||||
}
|
||||
23
src/list_node.c
Normal file
23
src/list_node.c
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
//
|
||||
// node.c
|
||||
//
|
||||
// Copyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
//
|
||||
|
||||
#include "list.h"
|
||||
|
||||
/*
|
||||
* Allocates a new list_node_t. NULL on failure.
|
||||
*/
|
||||
|
||||
list_node_t *
|
||||
list_node_new(void *val) {
|
||||
list_node_t *self;
|
||||
if (!(self = LIST_MALLOC(sizeof(list_node_t))))
|
||||
return NULL;
|
||||
self->prev = NULL;
|
||||
self->next = NULL;
|
||||
self->val = val;
|
||||
return self;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user