From owner-freebsd-hackers Wed Jul 31 11:32:27 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id LAA15357 for hackers-outgoing; Wed, 31 Jul 1996 11:32:27 -0700 (PDT) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id LAA15337; Wed, 31 Jul 1996 11:32:23 -0700 (PDT) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id LAA02458; Wed, 31 Jul 1996 11:29:45 -0700 From: Terry Lambert Message-Id: <199607311829.LAA02458@phaeton.artisoft.com> Subject: Re: anyone working on upgrading the msdosfs to NetBSD levels? To: rnordier@iafrica.com (Robert Nordier) Date: Wed, 31 Jul 1996 11:29:44 -0700 (MST) Cc: jkh@time.cdrom.com, pst@shockwave.com, hackers@freebsd.org, current@freebsd.org In-Reply-To: <199607221808.UAA00225@eac.iafrica.com> from "Robert Nordier" at Jul 22, 96 08:08:11 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > The FAT fs primitives are done and tested and I'm currently working > on VFAT support. Before you get too far on that, I have the algorithm it uses to avoid short name name space collisions. It's not pretty, but it works, and I think that was all Microsoft really cared about. Unfortunately, since the struct nameidata is not yet treated as an opaque object in a lot of places, it's not possible to do the lookup in multiple name spaces correctly in the vfs_lookup.c, where it belongs. I'm also not sure about the long name space storage which is in ISO-10646/16 (16 bit Unicode), since it is not possible to pass Unicode across the lookup interface (this will be a problem for any NTFS as well -- Linux is unfortunately way ahead of BSD here). The long names are case sensitive on storage and case insensitive on lookup. I don't know how you could emulate this for a DOS client (for instance) reading for a BSD mounted FS mapped to a DOS drive letter by the emulator. My opinion is that lookup changes are required, including adding a bit priority vector and name space identifier parameter to the VOP_LOOKUP. I can't help with the Unicode stuff given the current state of the BSD VFS; my suggestion is to punt, and treat the high byte as zero in all cases, converting it to ISO-8859-1 (Latin 1). This will damage utility for anyone outside the Latin 1 scope, but that can't be helped without the underlying VFS changes (appologies to non-Latin 1 using countries up front). If you get to where you need to work on name collision, let me know, and I can describe the algorithm in a couple of pages. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.