ReiserFS Support (Read-only for now) |
ReiserFS Support (Read-only for now) |
|
d11wtq
InsanelyMac Protégé
|
![]() |
Feb 26 2006, 11:21 PM Post #1
|
|
I'm just looking at what BSD are doing to port ReiserFS support to BSD. The source is extremely small so I'm hoping that it can be ported to OS X. I for one have a few Linux drives which I cannot read from within OSx86 so this is something I'm desparate for.
I'll have a stab at the myself but I'm not a C developer, although I can do little bits so it may take me a long time and be scrappy/wrong. I have the docs from developer.apple about porting *UNIX* apps to OS X (yes, yes I know) so I'm hoping most of the principles still apply to BSD. The required source (unless I'm wrong), is: mount_reiserfs.c CODE /*- * Copyright (c) 2005 Jean-S?bastien P?dron * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $FreeBSD: src/sbin/mount_reiserfs/mount_reiserfs.c,v 1.3 2005/06/10 09:51:42 delphij Exp $ */ #include <sys/param.h> #include <sys/mount.h> #include <sys/uio.h> #include <err.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sysexits.h> #include <unistd.h> #include "mntopts.h" struct mntopt mopts[] = { MOPT_STDOPTS, MOPT_END }; void usage(void); int main(int argc, char *argv[]) { struct iovec *iov; int ch, mntflags, iovlen; char *dev, *dir, mntpath[MAXPATHLEN]; mntflags = 0; while ((ch = getopt(argc, argv, "o:")) != -1) { switch(ch) { case 'o': getmntopts(optarg, mopts, &mntflags, 0); break; case '?': default: usage(); } } argc -= optind; argv += optind; if (argc != 2) usage(); dev = argv[0]; dir = argv[1]; /* * Resolve the mountpoint with realpath(3) and remove unnecessary * slashes from the devicename if there are any. */ (void)checkpath(dir, mntpath); (void)rmslashes(dev, dev); /* Read-only support for now */ mntflags |= MNT_RDONLY; /* Prepare the options vector for nmount(). build_iovec() is declared * in mntopts.h. */ iov = NULL; iovlen = 0; build_iovec(&iov, &iovlen, "fstype", "reiserfs", -1); build_iovec(&iov, &iovlen, "fspath", mntpath, -1); build_iovec(&iov, &iovlen, "from", dev, -1); if (nmount(iov, iovlen, mntflags) < 0) err(EX_OSERR, "%s", dev); exit(0); } void usage(void) { fprintf(stderr, "usage: mount_reiserfs [-o options] special node\n"); exit(EX_USAGE); } mntopts.h CODE /* $NetBSD: mntopts.h,v 1.7 2006/02/12 01:32:06 chs Exp $ */ /*- * Copyright (c) 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)mntopts.h 8.7 (Berkeley) 3/29/95 */ #ifndef _MNTOPTS_H_ #define _MNTOPTS_H_ struct mntopt { const char *m_option; /* option name */ int m_inverse; /* if a negative option, eg "dev" */ int m_flag; /* bit to set, eg. MNT_RDONLY */ int m_altloc; /* 1 => set bit in altflags */ }; /* User-visible MNT_ flags. */ #define MOPT_ASYNC { "async", 0, MNT_ASYNC, 0 } #define MOPT_NOCOREDUMP { "coredump", 1, MNT_NOCOREDUMP, 0 } #define MOPT_NODEV { "dev", 1, MNT_NODEV, 0 } #define MOPT_NODEVMTIME { "devmtime", 1, MNT_NODEVMTIME, 0 } #define MOPT_NOEXEC { "exec", 1, MNT_NOEXEC, 0 } #define MOPT_NOSUID { "suid", 1, MNT_NOSUID, 0 } #define MOPT_RDONLY { "rdonly", 0, MNT_RDONLY, 0 } #define MOPT_SYNC { "sync", 0, MNT_SYNCHRONOUS, 0 } #define MOPT_UNION { "union", 0, MNT_UNION, 0 } #define MOPT_USERQUOTA { "userquota", 0, 0, 0 } #define MOPT_GROUPQUOTA { "groupquota", 0, 0, 0 } #define MOPT_NOATIME { "atime", 1, MNT_NOATIME, 0 } #define MOPT_SYMPERM { "symperm", 0, MNT_SYMPERM, 0 } #define MOPT_SOFTDEP { "softdep", 0, MNT_SOFTDEP, 0 } #define MOPT_IGNORE { "hidden", 0, MNT_IGNORE, 0 } /* Control flags. */ #define MOPT_FORCE { "force", 0, MNT_FORCE, 0 } #define MOPT_UPDATE { "update", 0, MNT_UPDATE, 0 } #define MOPT_RELOAD { "reload", 0, MNT_RELOAD, 0 } #define MOPT_GETARGS { "getargs", 0, MNT_GETARGS, 0 } /* Support for old-style "ro", "rw" flags. */ #define MOPT_RO { "ro", 0, MNT_RDONLY, 0 } #define MOPT_RW { "rw", 1, MNT_RDONLY, 0 } /* This is parsed by mount(8), but is ignored by specific mount_*(8)s. */ #define MOPT_AUTO { "auto", 0, 0, 0 } #define MOPT_FSTAB_COMPAT \ MOPT_RO, \ MOPT_RW, \ MOPT_AUTO /* Standard options which all mounts can understand. */ #define MOPT_STDOPTS \ MOPT_USERQUOTA, \ MOPT_GROUPQUOTA, \ MOPT_FSTAB_COMPAT, \ MOPT_NOCOREDUMP, \ MOPT_NODEV, \ MOPT_NOEXEC, \ MOPT_NOSUID, \ MOPT_RDONLY, \ MOPT_UNION, \ MOPT_IGNORE, \ MOPT_SYMPERM __BEGIN_DECLS typedef struct mntoptparse *mntoptparse_t; mntoptparse_t getmntopts(const char *, const struct mntopt *, int *, int *); const char *getmntoptstr(mntoptparse_t, const char *); long getmntoptnum(mntoptparse_t, const char *); void freemntopts(mntoptparse_t); extern int getmnt_silent; __END_DECLS #endif /* _MNTOPTS_H_ */ If anyone wants to help me out, or wants to tell me I'm going about this all wrong do so please Thanks, d11 |
d11wtq ReiserFS Support (Read-only for now) Feb 26 2006, 11:21 PM
d11wtq *Yawn*
I'm going to bed cos I'm really ti... Feb 27 2006, 01:50 AM
domino It would be great if you or someone can get this t... Feb 27 2006, 02:33 AM
jtillwick Been almost a year. Any progress here? Jan 23 2007, 07:16 AM
AiFiLTr0 Any progress? Apr 30 2007, 11:00 AM
webs I work on it
I have just one problem with the nm... May 3 2007, 02:44 PM
OoOoOoO maybe it's will be easy to make fuse driver?
... May 3 2007, 04:55 PM
webs Hmm, why not. I will look how to make a Fuse drive... May 3 2007, 04:56 PM
Corwin06 Bump! Any news? I'm going to need to buy a... Jul 21 2007, 05:14 PM
albertz I am just curious, what is the state here? Apr 28 2009, 08:23 PM
DVSoftware Since i could not find working reiserfs driver for... Aug 10 2009, 12:51 PM ![]() |
|
Lo-Fi Version | Time is now: 9th September 2010 - 07:34 AM |