summaryrefslogtreecommitdiffhomepage
path: root/src/logic/sfrt_map_input.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/logic/sfrt_map_input.c')
-rw-r--r--src/logic/sfrt_map_input.c60
1 files changed, 0 insertions, 60 deletions
diff --git a/src/logic/sfrt_map_input.c b/src/logic/sfrt_map_input.c
deleted file mode 100644
index aba0427..0000000
--- a/src/logic/sfrt_map_input.c
+++ /dev/null
@@ -1,60 +0,0 @@
-#include <stdint.h>
-#include <stdbool.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <sofort/sofort.h>
-#include "sofort_driver_impl.h"
-#include "sofort_errinfo_impl.h"
-
-int sfrt_map_input(
- const struct sfrt_driver_ctx * dctx,
- int fd,
- const char * path,
- int prot,
- struct sfrt_input * map)
-{
- int ret;
- struct stat st;
- bool fnew;
- int fdcwd;
-
- fdcwd = sfrt_driver_fdcwd(dctx);
-
- if ((fnew = (fd < 0)))
- fd = openat(fdcwd,path,O_RDONLY|O_CLOEXEC);
-
- if (fd < 0)
- return SFRT_SYSTEM_ERROR(dctx);
-
- if ((ret = fstat(fd,&st) < 0) && fnew)
- close(fd);
-
- else if ((st.st_size == 0) && fnew)
- close(fd);
-
- if (ret < 0)
- return SFRT_SYSTEM_ERROR(dctx);
-
- else if (st.st_size == 0)
- return SFRT_CUSTOM_ERROR(
- dctx,SFRT_ERR_SOURCE_SIZE_ZERO);
-
- map->size = st.st_size;
- map->addr = mmap(0,map->size,prot,MAP_PRIVATE,fd,0);
-
- if (fnew)
- close(fd);
-
- return (map->addr == MAP_FAILED)
- ? SFRT_SYSTEM_ERROR(dctx)
- : 0;
-}
-
-int sfrt_unmap_input(struct sfrt_input * map)
-{
- return munmap(map->addr,map->size);
-}