Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com Message-ID: <019501c0df1f$c3dffaf0$0200a8c0@lifelesswks> From: "Robert Collins" To: "DJ Delorie" , References: <20010517164155 DOT A25918 AT redhat DOT com> <200105172101 DOT RAA22405 AT envy DOT delorie DOT com> Subject: Re: [cgf AT redhat DOT com: fhandler redesign] Date: Fri, 18 May 2001 08:21:46 +1000 MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-OriginalArrivalTime: 17 May 2001 22:15:01.0157 (UTC) FILETIME=[D0CE5550:01C0DF1E] ----- Original Message ----- From: "DJ Delorie" To: Sent: Friday, May 18, 2001 7:01 AM Subject: Re: [cgf AT redhat DOT com: fhandler redesign] > > There's actually four layers we should have: > > 1. The physical device/file. Two programs could be writing to > different parts or instances of the device simultaneously. I think > NT takes care of this for us, but virtual devices we create we'd > need to think about this. I can't think of examples, though, so we > can probably leave it up to the #2 layer to figure out how/where to > deal with this, rather than have it as an explicit layer. FIFO's come to mind. The clipboard is potentially in this case as well. > 2. The "file". This is where the file pointer and other state (baud > rate, foreground color, whatnot) are kept, for example. > > 3. The "file descriptor". This is the int (and whatever state is > behind it) that open() returns. There are a few things that are > descriptor-specific, like blocking or opened/closed. > > 4. The filesystem. While independent of the other three, we should > consider how this fits into the system so that we can do things > like mounting EXT3 volumes, or NFS, or faking /dev, /proc, and > /proc/registry. I'd like to suggest we implement ext3/nfs and other filesystems via real win32 IFS handlers. It's a bit more effort, but we'll get the win32 process cleanup, and allow non-cygwin process's to access the fs. (Imagine the complaints otherwise: I mounted my linux partition, but when I use ActiveState Perl It cannot access the files....) Rob