Added source files initialization.
Now source files handling is delegated to functions defined in `sourcefs.c` file. By encapsulating methods for managing the underlying source files structure we ensure that all code changes to the source file protection strategy will be localized to `sourcefs.c` file. Also changed Makefile to use more sane way of handling options and build flags.
This commit is contained in:
parent
424543cd99
commit
e48cbc62f1
35
Makefile
35
Makefile
@ -1,24 +1,35 @@
|
|||||||
|
SHELL=/bin/bash
|
||||||
|
|
||||||
CC := gcc
|
CC := gcc
|
||||||
CXX := g++
|
CXX := g++
|
||||||
|
|
||||||
O_LDFLAGS :=
|
CFLAGS := -I/usr/include/fuse -D_FILE_OFFSET_BITS=64
|
||||||
O_CFLAGS := -O3
|
LDFLAGS := -lfuse3 -pthread
|
||||||
|
|
||||||
O_LDFLAGS_DEBUG :=
|
ifdef DEBUG
|
||||||
O_CFLAGS_DEBUG := -pedantic -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-declarations -Wmissing-include-dirs -Wnoexcept -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default -Wundef -Wno-unused -Weffc++
|
CFLAGS += -O0 -pedantic -Wall -Wextra -Wcast-align \
|
||||||
|
-Wcast-qual -Wdisabled-optimization -Wformat=2 \
|
||||||
I_LDFLAGS := -lfuse3 -pthread
|
-Winit-self -Wlogical-op -Wmissing-declarations \
|
||||||
I_CFLAGS := -I/usr/include/fuse -D_FILE_OFFSET_BITS=64
|
-Wmissing-include-dirs -Wredundant-decls -Wshadow \
|
||||||
|
-Wsign-conversion -Wstrict-overflow=5 \
|
||||||
|
-Wswitch-default -Wundef -Wno-unused
|
||||||
|
LDFLAGS +=
|
||||||
|
else
|
||||||
|
CFLAGS += -O3
|
||||||
|
LDFLAGS +=
|
||||||
|
endif
|
||||||
|
|
||||||
SOURCES_DIR := ./sources
|
SOURCES_DIR := ./sources
|
||||||
BUILD_DIR := ./build
|
BUILD_DIR := ./build
|
||||||
|
|
||||||
build: $(SOURCES_DIR)/main.cpp
|
build: $(BUILD_DIR)/main.o $(BUILD_DIR)/sourcefs.o
|
||||||
$(CC) $(O_CFLAGS) $(I_CFLAGS) $(SOURCES_DIR)/main.cpp $(O_LDFLAGS) $(I_LDFLAGS) -o $(BUILD_DIR)/icfs
|
$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $(BUILD_DIR)/icfs
|
||||||
|
|
||||||
dev-build: $(SOURCES_DIR)/main.cpp
|
$(BUILD_DIR)/main.o: $(SOURCES_DIR)/main.c
|
||||||
$(CC) $(O_CFLAGS_DEBUG) $(I_CFLAGS) $(SOURCES_DIR)/main.cpp $(O_LDFLAGS_DEBUG) $(I_LDFLAGS) -o $(BUILD_DIR)/icfs
|
$(CC) $(CFLAGS) -c $< $(LDFLAGS) -o $(BUILD_DIR)/main.o
|
||||||
|
|
||||||
|
$(BUILD_DIR)/sourcefs.o: $(SOURCES_DIR)/sourcefs.c $(SOURCES_DIR)/sourcefs.h
|
||||||
|
$(CC) $(CFLAGS) -c $< $(LDFLAGS) -o $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm $(BUILD_DIR)/icfs
|
rm $(BUILD_DIR)/*
|
||||||
|
@ -16,6 +16,7 @@ static void *icfs_init(struct fuse_conn_info *conn, struct fuse_config *cfg) {
|
|||||||
(void)conn; /* Explicit way to tell we ignore these arguments. */
|
(void)conn; /* Explicit way to tell we ignore these arguments. */
|
||||||
(void)cfg; /* This also silences the compiler warnings. */
|
(void)cfg; /* This also silences the compiler warnings. */
|
||||||
|
|
||||||
|
source_init(mountpoint);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
21
sources/sourcefs.c
Normal file
21
sources/sourcefs.c
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#define _GNU_SOURCE
|
||||||
|
|
||||||
|
#include "sourcefs.h"
|
||||||
|
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
static struct source_files_handle {
|
||||||
|
int root_fd;
|
||||||
|
} handle;
|
||||||
|
|
||||||
|
int source_init(const char *root_path) {
|
||||||
|
int root_fd = open(root_path, O_PATH);
|
||||||
|
|
||||||
|
if (root_fd == -1) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
handle.root_fd = root_fd;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
14
sources/sourcefs.h
Normal file
14
sources/sourcefs.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#ifndef SOURCEFS_H
|
||||||
|
#define SOURCEFS_H
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes the source file handling.
|
||||||
|
*
|
||||||
|
* @param root_path The root of the source files folder.
|
||||||
|
* @return 0 on success, 1 on failure.
|
||||||
|
*/
|
||||||
|
int source_init(const char *root_path);
|
||||||
|
|
||||||
|
#endif // !SOURCEFS_H
|
Loading…
Reference in New Issue
Block a user