Browse code

fmunmap

aCaB authored on 2009/08/20 09:19:57
Showing 2 changed files
... ...
@@ -24,16 +24,19 @@
24 24
 #include "clamav-config.h"
25 25
 #endif
26 26
 
27
+/* THIS IS FUCKED UP AND BREAKS MMAP
28
+#define _XOPEN_SOURCE 500
29
+*/
30
+
27 31
 #include <sys/types.h>
28 32
 #include <sys/stat.h>
29 33
 #include <string.h>
30
-#include <sys/mman.h>
31 34
 #include <unistd.h>
35
+#include <sys/mman.h>
32 36
 
33 37
 #include "others.h"
34 38
 #include "cltypes.h"
35 39
 
36
-
37 40
 #define FM_MASK_SCORE 0x3fff
38 41
 #define FM_MASK_PAGED 0x4000
39 42
 #define FM_MASK_SEEN 0x8000
... ...
@@ -171,3 +174,9 @@ void *fmap_need(struct F_MAP *m, size_t at, size_t len) {
171 171
     return (void *)ret;
172 172
 }
173 173
 
174
+
175
+void fmunmap(struct F_MAP *m) {
176
+    void *p = (void *)m;
177
+    size_t len = m->pages * m->pgsz + m->hdrsz;
178
+    munmap(p, len);
179
+}
... ...
@@ -18,8 +18,12 @@
18 18
  *  MA 02110-1301, USA.
19 19
  */
20 20
 
21
+#ifndef __FMAP_H
22
+#define __FMAP_H
21 23
 
22 24
 struct F_MAP;
23 25
 
24 26
 struct F_MAP *fmap(int fd, off_t offset, size_t len);
27
+void *fmunmap(struct F_MAP *m, size_t len);
25 28
 
29
+#endif