0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/** $Id$ */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/** @file
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * VBoxSF - OS/2 Shared Folder IFS, Internal Header.
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/*
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * Copyright (c) 2007 knut st. osmundsen <bird-src-spam@anduin.net>
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync *
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * Permission is hereby granted, free of charge, to any person
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * obtaining a copy of this software and associated documentation
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * files (the "Software"), to deal in the Software without
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * restriction, including without limitation the rights to use,
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * copy, modify, merge, publish, distribute, sublicense, and/or sell
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * copies of the Software, and to permit persons to whom the
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * Software is furnished to do so, subject to the following
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * conditions:
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync *
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * The above copyright notice and this permission notice shall be
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * included in all copies or substantial portions of the Software.
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync *
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * OTHER DEALINGS IN THE SOFTWARE.
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#ifndef ___VBoxSFInternal_h___
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#define ___VBoxSFInternal_h___
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#define INCL_BASE
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#define INCL_ERROR
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#include <os2.h>
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#include <os2ddk/bsekee.h>
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#include <os2ddk/devhlp.h>
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#include <os2ddk/unikern.h>
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#include <os2ddk/fsd.h>
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#undef RT_MAX
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#include <iprt/types.h>
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#include <iprt/assert.h>
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/**
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * VBoxSF Volume Parameter Structure.
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync *
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * @remark Overlays the 36 byte VPFSD structure (fsd.h).
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsynctypedef struct VBOXSFVP
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync{
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync uint32_t u32Dummy;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync} VBOXSFVP;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsyncAssertCompile(sizeof(VBOXSFVP) <= sizeof(VPFSD));
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/** Pointer to a VBOXSFVP struct. */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsynctypedef VBOXSFVP *PVBOXSFVP;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/**
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * VBoxSF Current Directory Structure.
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync *
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * @remark Overlays the 8 byte CDFSD structure (fsd.h).
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsynctypedef struct VBOXSFCD
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync{
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync uint32_t u32Dummy;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync} VBOXSFCD;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsyncAssertCompile(sizeof(VBOXSFCD) <= sizeof(CDFSD));
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/** Pointer to a VBOXSFCD struct. */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsynctypedef VBOXSFCD *PVBOXSFCD;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/**
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * VBoxSF System File Structure.
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync *
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * @remark Overlays the 30 byte SFFSD structure (fsd.h).
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsynctypedef struct VBOXSFFSD
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync{
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync /** Self pointer for quick 16:16 to flat translation. */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync struct VBOXSFFSD *pSelf;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync} VBOXSFFSD;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsyncAssertCompile(sizeof(VBOXSFFSD) <= sizeof(SFFSD));
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/** Pointer to a VBOXSFFSD struct. */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsynctypedef VBOXSFFSD *PVBOXSFFSD;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/**
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * VBoxSF File Search Structure.
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync *
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync * @remark Overlays the 24 byte FSFSD structure (fsd.h).
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsynctypedef struct VBOXSFFS
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync{
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync /** Self pointer for quick 16:16 to flat translation. */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync struct VBOXSFFS *pSelf;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync} VBOXSFFS;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsyncAssertCompile(sizeof(VBOXSFFS) <= sizeof(FSFSD));
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync/** Pointer to a VBOXSFFS struct. */
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsynctypedef VBOXSFFS *PVBOXSFFS;
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync#endif
0f0fa99ce6af43d7a38d97fdecc89eae0bf89fdfvboxsync