130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * ncp.h 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Copyright (C) 1995 by Volker Lendecke 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Modified for sparc by J.F. Chadima 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Modified for __constant_ntoh by Frank A. Vorstenbosch 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _LINUX_NCP_H 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _LINUX_NCP_H 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h> 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_PTYPE (0x11) 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_PORT (0x0451) 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_ALLOC_SLOT_REQUEST (0x1111) 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_REQUEST (0x2222) 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_DEALLOC_SLOT_REQUEST (0x5555) 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2230692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct ncp_request_header { 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 type; 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 sequence; 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 conn_low; 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 task; 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 conn_high; 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 function; 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 data[0]; 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} __attribute__((packed)); 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_REPLY (0x3333) 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_WATCHDOG (0x3E3E) 3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_POSITIVE_ACK (0x9999) 3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3630692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct ncp_reply_header { 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 type; 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 sequence; 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 conn_low; 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 task; 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 conn_high; 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 completion_code; 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 connection_state; 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 data[0]; 4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} __attribute__((packed)); 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_VOLNAME_LEN (16) 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_NUMBER_OF_VOLUMES (256) 4930692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct ncp_volume_info { 5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 total_blocks; 5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 free_blocks; 5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 purgeable_blocks; 5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 not_yet_purgeable_blocks; 5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 total_dir_entries; 5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 available_dir_entries; 5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 sectors_per_block; 5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char volume_name[NCP_VOLNAME_LEN + 1]; 5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_READ (cpu_to_le16(1)) 6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_WRITE (cpu_to_le16(2)) 6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_EXCLUSIVE (cpu_to_le16(0x20)) 6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCP_FILE_ID_LEN 6 6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Defines for Name Spaces */ 6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NW_NS_DOS 0 6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NW_NS_MAC 1 6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NW_NS_NFS 2 7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NW_NS_FTAM 3 7130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NW_NS_OS2 4 7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Defines for ReturnInformationMask */ 7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_NAME (cpu_to_le32(1)) 7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_SPACE_ALLOCATED (cpu_to_le32(2)) 7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_ATTRIBUTES (cpu_to_le32(4)) 7730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_DATA_SIZE (cpu_to_le32(8)) 7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_TOTAL_SIZE (cpu_to_le32(0x10)) 7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_EXT_ATTR_INFO (cpu_to_le32(0x20)) 8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_ARCHIVE (cpu_to_le32(0x40)) 8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_MODIFY (cpu_to_le32(0x80)) 8230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_CREATION (cpu_to_le32(0x100)) 8330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_OWNING_NAMESPACE (cpu_to_le32(0x200)) 8430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_DIRECTORY (cpu_to_le32(0x400)) 8530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_RIGHTS (cpu_to_le32(0x800)) 8630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_ALL (cpu_to_le32(0xFFF)) 8730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RIM_COMPRESSED_INFO (cpu_to_le32(0x80000000)) 8830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 8930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Defines for NSInfoBitMask */ 9030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_NAME 0x0001 9130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_MODE 0x0002 9230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_GID 0x0004 9330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_NLINKS 0x0008 9430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_RDEV 0x0010 9530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_LINK 0x0020 9630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_CREATED 0x0040 9730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_UID 0x0080 9830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_ACSFLAG 0x0100 9930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NSIBM_NFS_MYFLAG 0x0200 10030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 10130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* open/create modes */ 10230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OC_MODE_OPEN 0x01 10330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OC_MODE_TRUNCATE 0x02 10430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OC_MODE_REPLACE 0x02 10530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OC_MODE_CREATE 0x08 10630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 10730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* open/create results */ 10830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OC_ACTION_NONE 0x00 10930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OC_ACTION_OPEN 0x01 11030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OC_ACTION_CREATE 0x02 11130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OC_ACTION_TRUNCATE 0x04 11230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OC_ACTION_REPLACE 0x04 11330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 11430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* access rights attributes */ 11530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef AR_READ_ONLY 11630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_READ_ONLY 0x0001 11730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_WRITE_ONLY 0x0002 11830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_DENY_READ 0x0004 11930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_DENY_WRITE 0x0008 12030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_COMPATIBILITY 0x0010 12130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_WRITE_THROUGH 0x0040 12230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define AR_OPEN_COMPRESSED 0x0100 12330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif 12430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 12530692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nw_nfs_info { 12630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 mode; 12730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 rdev; 12830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 12930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 13030692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nw_info_struct { 13130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 spaceAlloc; 13230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le32 attributes; 13330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 flags; 13430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le32 dataStreamSize; 13530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le32 totalStreamSize; 13630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 numberOfStreams; 13730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 creationTime; 13830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 creationDate; 13930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 creatorID; 14030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 modifyTime; 14130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 modifyDate; 14230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 modifierID; 14330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 lastAccessDate; 14430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 archiveTime; 14530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 archiveDate; 14630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 archiverID; 14730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 inheritedRightsMask; 14830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le32 dirEntNum; 14930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le32 DosDirNum; 15030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 volNumber; 15130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 EADataSize; 15230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 EAKeyCount; 15330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 EAKeySize; 15430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 NSCreator; 15530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 nameLen; 15630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 entryName[256]; 15730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng /* libncp may depend on there being nothing after entryName */ 15830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifdef __KERNEL__ 15930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct nw_nfs_info nfs; 16030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif 16130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} __attribute__((packed)); 16230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 16330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* modify mask - use with MODIFY_DOS_INFO structure */ 16430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_ATTRIBUTES (cpu_to_le32(0x02)) 16530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_CREATE_DATE (cpu_to_le32(0x04)) 16630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_CREATE_TIME (cpu_to_le32(0x08)) 16730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_CREATOR_ID (cpu_to_le32(0x10)) 16830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_ARCHIVE_DATE (cpu_to_le32(0x20)) 16930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_ARCHIVE_TIME (cpu_to_le32(0x40)) 17030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_ARCHIVER_ID (cpu_to_le32(0x80)) 17130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_MODIFY_DATE (cpu_to_le32(0x0100)) 17230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_MODIFY_TIME (cpu_to_le32(0x0200)) 17330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_MODIFIER_ID (cpu_to_le32(0x0400)) 17430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_LAST_ACCESS_DATE (cpu_to_le32(0x0800)) 17530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_INHERITED_RIGHTS_MASK (cpu_to_le32(0x1000)) 17630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DM_MAXIMUM_SPACE (cpu_to_le32(0x2000)) 17730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 17830692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nw_modify_dos_info { 17930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le32 attributes; 18030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 creationDate; 18130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 creationTime; 18230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 creatorID; 18330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 modifyDate; 18430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 modifyTime; 18530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 modifierID; 18630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 archiveDate; 18730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 archiveTime; 18830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 archiverID; 18930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __le16 lastAccessDate; 19030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 inheritanceGrantMask; 19130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 inheritanceRevokeMask; 19230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 maximumSpace; 19330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} __attribute__((packed)); 19430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 19530692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nw_search_sequence { 19630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 volNumber; 19730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 dirBase; 19830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 sequence; 19930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} __attribute__((packed)); 20030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 20130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _LINUX_NCP_H */ 202