/**************************************************************************** | | (C) Copyright 1995-1997 Novell, Inc. | All Rights Reserved. | | This program is free software; you can redistribute it and/or | modify it under the terms of version 2 of the GNU General Public | License as published by the Free Software Foundation. | | This program is distributed in the hope that it will be useful, | but WITHOUT ANY WARRANTY; without even the implied warranty of | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | GNU General Public License for more details. | | You should have received a copy of the GNU General Public License | along with this program; if not, contact Novell, Inc. | | To contact Novell about this file by physical or electronic mail, | you may find current contact information at www.novell.com | |*************************************************************************** | | NetWare Advance File Services (NSS) module | |--------------------------------------------------------------------------- | | $Author: ying $ | $Date: 2005-07-08 03:51:03 +0530 (Fri, 08 Jul 2005) $ | | $RCSfile$ | $Revision: 1098 $ | |--------------------------------------------------------------------------- | This module is used to: | This defines all of the primitive BEASTS inside of PSS | | WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! | | This header file should ONLY be used for NSS internal development. | This includes Semantic Agents (SA) and Loadable Storage Services (LSS). | Any other use may cause conflicts which NSS will NOT fix. +-------------------------------------------------------------------------*/ #ifndef _COMNDATASTREAM_H_ #define _COMNDATASTREAM_H_ #ifdef __cplusplus extern "C" { #endif /*--------------------------------------------------------------------------- * This structure is pointed to by the non-persistent dataStreamInfo pointer * in a file beast. If a file beast has no Extended attributes or data * streams, this structure will never be present. However, if the file beast * does have extended attributes or data streams, this structure will be * allocated when the first attempt is made to access this information. * * The first attempt to read or modify the data stream info will detect * that dataStreamCount == DSI_COUNT_INVALID, and will calculate at that time * the correct data stream counts and sizes. All subsequent attempts to * read or modify the info will modify it directly. * * Likewise, the extended attribute info is handled the same way. * * When the file beast is freed up, this memory will be deallocated. *---------------------------------------------------------------------------*/ #define DSI_COUNT_INVALID -1 typedef struct DataStreamCounts_s { NINT count; /* Set to DSI_COUNT_INVALID if not initialized */ QUAD dataSize; NINT nameSize; } DataStreamCounts_s; typedef struct DataStreamInfo_s { DataStreamCounts_s dataStream; DataStreamCounts_s extAttr; } DataStreamInfo_s; STATUS eflProcessDataStreams( struct GeneralMsg_s *genMsg, File_s *file, NINT action, struct Xaction_s *xaction); #ifdef __cplusplus } #endif #endif