mars-nwe/include/namspace.h

121 lines
4.3 KiB
C

/* namspace.h 01-Feb-98 : NameSpace Services, mars_nwe */
/* (C)opyright (C) 1993,1998 Martin Stover, Marburg, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* 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, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _NAMSPACE_H_
#define _NAMSPACE_H_
#if WITH_NAME_SPACE_CALLS
#define NAME_DOS 0
#define NAME_MAC 1
#define NAME_NFS 2
#define NAME_FTAM 3
#define NAME_OS2 4
typedef struct {
uint8 volume; /* Volumenumber */
uint8 base[4]; /* Base or short Handle, handle is base[0] !! */
uint8 flag; /* 0=handle, 1=base, 0xff=not path nor handle */
uint8 components; /* nmbrs of pathes, components */
uint8 pathes[1]; /* form len+name (like Pascal) */
/* ATTENTION
* a pathlen of 0 means '..' (cd dir ..) !!
* first seen with Novell client32
*/
} NW_HPATH;
typedef struct {
uint8 attributes[4];
uint8 created_date[2];
uint8 created_time[2];
uint8 created_id[4];
uint8 modified_date[2];
uint8 modified_time[2];
uint8 modified_id[4];
uint8 archived_date[2];
uint8 archived_time[2];
uint8 archived_id[4];
uint8 last_access_date[2];
uint8 rightsgrantmask[2];
uint8 rightsrevokemask[2];
uint8 maxspace[4];
} DOS_MODIFY_INFO;
#define INFO_MSK_ENTRY_NAME 0x00000001
#define INFO_MSK_DATA_STREAM_SPACE 0x00000002
#define INFO_MSK_ATTRIBUTE_INFO 0x00000004
#define INFO_MSK_DATA_STREAM_SIZE 0x00000008
#define INFO_MSK_TOTAL_DATA_STREAM_SIZE 0x00000010
#define INFO_MSK_EXT_ATTRIBUTES 0x00000020
#define INFO_MSK_ARCHIVE_INFO 0x00000040
#define INFO_MSK_MODIFY_INFO 0x00000080
#define INFO_MSK_CREAT_INFO 0x00000100
#define INFO_MSK_NAME_SPACE_INFO 0x00000200
#define INFO_MSK_DIR_ENTRY_INFO 0x00000400
#define INFO_MSK_RIGHTS_INFO 0x00000800
/* Search Attributes */
#define W_SEARCH_ATTR_DIR 0x00008000
#define W_SEARCH_ATTR_ALL 0x00008006
/* OPEN/CREAT Modes */
#define OPC_MODE_OPEN 0x01
#define OPC_MODE_REPLACE 0x02
#define OPC_MODE_CREAT 0x08
/* OPEN/CREAT ACTION Results */
#define OPC_ACTION_OPEN 0x01
#define OPC_ACTION_CREAT 0x02
#define OPC_ACTION_REPLACE 0x04
/* Modify File or Subdirektory DOS Info infomask */
#define DOS_MSK_ATTRIBUTE 0x00000002
#define DOS_MSK_CREAT_DATE 0x00000004
#define DOS_MSK_CREAT_TIME 0x00000008
#define DOS_MSK_CREAT_ID 0x00000010
#define DOS_MSK_ARCHIVE_DATE 0x00000020
#define DOS_MSK_ARCHIVE_TIME 0x00000040
#define DOS_MSK_ARCHIVE_ID 0x00000080
#define DOS_MSK_MODIFY_DATE 0x00000100
#define DOS_MSK_MODIFY_TIME 0x00000200
#define DOS_MSK_MODIFY_ID 0x00000400
#define DOS_MSK_ACCESS_DATE 0x00000800
#define DOS_MSK_INHERIT_RIGHTS 0x00001000
#define DOS_MSK_MAX_SPACE 0x00002000
extern int handle_func_0x57(uint8 *p, uint8 *responsedata, int task);
extern int handle_func_0x56(uint8 *p, uint8 *responsedata, int task);
extern int fill_namespace_buffer(int volume, uint8 *rdata);
extern int get_namespace_dir_entry(int volume, uint32 basehandle,
int namspace, uint8 *rdata);
extern void exit_name_space_module(void);
extern void init_name_space_module(int max_baseh, int max_searchh);
#endif
#endif