chore: first commit

This commit is contained in:
d0p1 🏳️‍⚧️ 2024-04-15 02:15:56 +00:00
commit 5381313b02
12 changed files with 190 additions and 0 deletions

27
.gitignore vendored Normal file
View file

@ -0,0 +1,27 @@
*.in
*.o
Makefile
*~
config.h
*.log
*.status
stamp-h1
*.cache
.deps
configure
depcomp
install-sh
missing
ar-lib
compile
aclocal.m4
*.a
*.exe
src/stpdfs-fuse
*.cmd
*.symvers
*.ko
*.mod
*.mod.*
*.order

1
Makefile.am Normal file
View file

@ -0,0 +1 @@
SUBDIRS = lib src module

6
Makefile.kernel Normal file
View file

@ -0,0 +1,6 @@
obj-m=$(module_DATA)
MI_OBJS = $(module_DATA)
all clean:
mv Makefile.automake Makefile
$(MAKE) $@

25
configure.ac Normal file
View file

@ -0,0 +1,25 @@
AC_INIT([StupidFS], [0.0])
AM_INIT_AUTOMAKE([foreign subdir-objects])
AC_CONFIG_MACRO_DIRS([m4])
AC_LANG(C)
AC_PROG_CC
AC_PROG_CPP
AM_PROG_AR
AC_PROG_INSTALL
AM_PROG_CC_C_O
PKG_CHECK_MODULES([FUSE], [fuse3])
AC_CHECK_INCLUDES_DEFAULT
AC_C_CONST
AC_C_INLINE
AC_CONFIG_FILES([Makefile
lib/Makefile
module/Makefile
src/Makefile])
AC_OUTPUT

0
lib/Makefile.am Normal file
View file

20
lib/stpdfs.h Normal file
View file

@ -0,0 +1,20 @@
#ifndef STPDFS_H
# define STPDFS_H 1
#define STPDFS_MAGIC 0x44505453
#define STPDFS_BLOCK_SIZE 512
struct stpdfs_superblock {
uint32_t magic;
uint32_t isize;
uint32_t fsize;
uint32_t free[100];
uint8_t nfree;
uint8_t flock;
uint8_t ilock;
uint8_t fmod;
uint32_t time[2];
} __attribute__((packed));
#endif /* !STPDFS_H */

20
module/Makefile.am Normal file
View file

@ -0,0 +1,20 @@
moduledir = @moduledir@
KBUILD_VERBOSE = 1
MOD_DEVDIR = $(PWD)
export module_DATA
EXTRA_PROGRAMS = stpdfs_module
stpdfs_module_SOURCES = module_stpdfs.c
module_DATA = module_stpdfs.o
$(module_DATA): $(stpdfs_module_SOURCES)
mv Makefile Makefile.automake
cp $(srcdir)/../Makefile.kernel Makefile
CPPFLAGS="" CFLAGS="" LDFLAGS="" \
$(MAKE) -C /lib/modules/$(shell uname -r)/build \
ARCH="x86" CC="gcc" M=$(PWD) modules\
KBUILD_VERBOSE=$(KBUILD_VERBOSE)
mv Makefile.automake Makefile
CLEANFILES = $(module_DATA) .$(module_DATA).flags $(module_DATA:.o=.mod.c) $(module_DATA:.o=.@kernelext@)

24
module/module_stpdfs.c Normal file
View file

@ -0,0 +1,24 @@
#include <linux/init.h>
#include <linux/module.h>
static int __init
stpdfs_mod_init(void)
{
printk("Hello, world!\n");
return 0;
}
module_init(stpdfs_mod_init);
static void __exit
stpdfs_mod_exit(void)
{
printk("Goodbye, world!\n");
}
module_exit(stpdfs_mod_exit);
MODULE_LICENSE("BSD3");
MODULE_AUTHOR("d0p1");
MODULE_DESCRIPTION("Stupid File System");
MODULE_VERSION("1.0");

6
src/Makefile.am Normal file
View file

@ -0,0 +1,6 @@
AM_CFLAGS = $(FUSE_CFLAGS)
LDADD = $(FUSE_LIBS)
bin_PROGRAMS = stpdfs-fuse
stpdfs_fuse_SOURCES = main.c

61
src/main.c Normal file
View file

@ -0,0 +1,61 @@
#include <stdlib.h>
#define FUSE_USE_VERSION 31
#include <fuse.h>
static void *
stpdfs_init(struct fuse_conn_info *conn,
struct fuse_config *config)
{
(void)conn;
return (NULL);
}
static int
stpdfs_getattr(const char *path, struct stat *stbuf,
struct fuse_file_info *fi)
{
return (0);
}
static int
stpdfs_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
off_t offset, struct fuse_file_info *fi,
enum fuse_readdir_flags flags)
{
return (0);
}
static int
stpdfs_open(const char *path, struct fuse_file_info *fi)
{
return (0);
}
static int
stpdfs_read(const char *path, char *buf, size_t size, off_t offset,
struct fuse_file_info *fi)
{
return (size);
}
static const struct fuse_operations stpdfs_oper = {
.init = stpdfs_init,
.getattr = stpdfs_getattr,
.readdir = stpdfs_readdir,
.open = stpdfs_open,
.read = stpdfs_read
};
int
main(int argc, char *argv[])
{
int ret;
struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
ret = fuse_main(args.argc, args.argv, &stpdfs_oper, NULL);
fuse_opt_free_args(&args);
return (ret);
}

0
win32/stpdfs.rc Normal file
View file

0
win32/stpdinit.c Normal file
View file