summaryrefslogtreecommitdiff
path: root/filesystems/fuse-lzofs/patches/patch-ab
diff options
context:
space:
mode:
authorxtraeme <xtraeme>2007-02-20 23:00:08 +0000
committerxtraeme <xtraeme>2007-02-20 23:00:08 +0000
commitc3d09ade8a7b8090c3e2cf55e52b44963d487144 (patch)
tree0f7d2beffaf101c07db95f4f8160e60a9f5441e8 /filesystems/fuse-lzofs/patches/patch-ab
parent8920a655f710c6eb5b5277d85922dfb93117766d (diff)
downloadpkgsrc-c3d09ade8a7b8090c3e2cf55e52b44963d487144.tar.gz
Initial import of fuse-lzofs-20060306.
LZOlayer Filesystem is a filesystem which allows you to use transparently compressed files, just as they would be normal files. Both read and write operations are possible, along with other most common system calls. It consumes little memory in my opinion, because files are divided into blocks, which can be decompressed separetly. In other words, if you (or an application) would like to read byte 4,500,000 in a file sized 5,000,000 bytes, it only decompresses a block which constain wanted data. Write operation is based on a packet gathering and after reaching its limit it 'syncs' the data. It allows it's user to write/modify files pretty fast, despite the fact it's block divided. LZOlayer FileSystem was meant to support only LZO compression algorythm, because it has extremely low compression/decompression time. However, currently it supports LZO and ZLIB (but only one at the run-time!) compression algorythms.
Diffstat (limited to 'filesystems/fuse-lzofs/patches/patch-ab')
-rw-r--r--filesystems/fuse-lzofs/patches/patch-ab87
1 files changed, 87 insertions, 0 deletions
diff --git a/filesystems/fuse-lzofs/patches/patch-ab b/filesystems/fuse-lzofs/patches/patch-ab
new file mode 100644
index 00000000000..e28ac1c7c67
--- /dev/null
+++ b/filesystems/fuse-lzofs/patches/patch-ab
@@ -0,0 +1,87 @@
+$NetBSD: patch-ab,v 1.1.1.1 2007/02/20 23:00:08 xtraeme Exp $
+
+--- LZOlayer_fs.c.orig 2007-02-18 16:38:19.000000000 +0100
++++ LZOlayer_fs.c 2007-02-18 16:43:03.000000000 +0100
+@@ -21,6 +21,15 @@
+ #define __USE_UNIX98
+ #include <unistd.h>
+ #include <zlib.h>
++#ifndef __NetBSD__
++#define ordwr O_RDWR|O_LARGEFILE
++#define ordonly O_RDONLY|O_LARGEFILE
++#define owronly O_WRONLY|O_LARGEFILE
++#else
++#define ordwr O_RDWR
++#define ordonly O_RDONLY
++#define owronly O_WRONLY
++#endif
+
+ #include "minilzo.h"
+ #define HEAP_ALLOC(var, size) \
+@@ -124,7 +133,7 @@
+
+ if (S_ISREG(stbuf->st_mode))
+ {
+- int fd = open(xPath, O_RDONLY|O_LARGEFILE);
++ int fd = open(xPath, ordonly);
+ read(fd, &stbuf->st_size, sizeof(off_t));
+ close(fd);
+ }
+@@ -166,7 +175,7 @@
+ {
+ char *xPath = LZOlayer_makePath(path);
+
+- int fd = open(xPath, O_RDONLY|O_LARGEFILE);
++ int fd = open(xPath, ordonly);
+ off_t outLen = 0;
+ read(fd, &outLen, sizeof(off_t));
+ close(fd);
+@@ -193,7 +202,7 @@
+ char *xPath = filePtr->path;
+
+ int done = 0;
+- int fd = open(xPath, O_RDONLY|O_LARGEFILE);
++ int fd = open(xPath, ordonly);
+
+ while(1)
+ {
+@@ -249,7 +258,7 @@
+ off_t block_start = (float)filePtr->packets[min_offset].offset / (float)block_size;
+
+ char *xPath = filePtr->path;
+- int fd = open(xPath, O_RDWR|O_LARGEFILE);
++ int fd = open(xPath, ordwr);
+ LZOlayer_block_seek(fd, block_start);
+
+ off_t alloc_size = (filePtr->size-(block_start*block_size)
+@@ -315,10 +324,10 @@
+ {
+ LZOlayer_packet_sync(path, fi);
+
+- int fd = open(filePtr->path, O_WRONLY|O_LARGEFILE);
++ int fd = open(filePtr->path, owronly);
+ if(fd == -1)
+ {
+- open(filePtr->path, O_CREAT|O_WRONLY|O_LARGEFILE);
++ open(filePtr->path, O_CREAT|owronly);
+ chown(filePtr->path, fuse_get_context()->uid, fuse_get_context()->gid);
+ }
+ // old open/create for write
+@@ -365,7 +374,7 @@
+ }
+ else
+ {
+- int fd = open(xPath, O_WRONLY|O_LARGEFILE);
++ int fd = open(xPath, owronly);
+ off_t null = 0;
+ write(fd, &null, sizeof(off_t));
+ write(fd, &null, sizeof(off_t));
+@@ -383,7 +392,7 @@
+ {
+ char *xPath = LZOlayer_makePath(path);
+
+- int fd = open(xPath, O_RDWR|O_LARGEFILE);
++ int fd = open(xPath, ordwr);
+ off_t file_size = 0;
+ read(fd, &file_size, sizeof(off_t));
+