linux/include/linux/ncp.h
<<
>>
Prefs
   1/*
   2 *  ncp.h
   3 *
   4 *  Copyright (C) 1995 by Volker Lendecke
   5 *  Modified for sparc by J.F. Chadima
   6 *  Modified for __constant_ntoh by Frank A. Vorstenbosch
   7 *
   8 */
   9
  10#ifndef _LINUX_NCP_H
  11#define _LINUX_NCP_H
  12
  13#include <linux/types.h>
  14
  15#define NCP_PTYPE                (0x11)
  16#define NCP_PORT                 (0x0451)
  17
  18#define NCP_ALLOC_SLOT_REQUEST   (0x1111)
  19#define NCP_REQUEST              (0x2222)
  20#define NCP_DEALLOC_SLOT_REQUEST (0x5555)
  21
  22struct ncp_request_header {
  23        __u16 type;
  24        __u8 sequence;
  25        __u8 conn_low;
  26        __u8 task;
  27        __u8 conn_high;
  28        __u8 function;
  29        __u8 data[0];
  30} __attribute__((packed));
  31
  32#define NCP_REPLY                (0x3333)
  33#define NCP_WATCHDOG             (0x3E3E)
  34#define NCP_POSITIVE_ACK         (0x9999)
  35
  36struct ncp_reply_header {
  37        __u16 type;
  38        __u8 sequence;
  39        __u8 conn_low;
  40        __u8 task;
  41        __u8 conn_high;
  42        __u8 completion_code;
  43        __u8 connection_state;
  44        __u8 data[0];
  45} __attribute__((packed));
  46
  47#define NCP_VOLNAME_LEN (16)
  48#define NCP_NUMBER_OF_VOLUMES (256)
  49struct ncp_volume_info {
  50        __u32 total_blocks;
  51        __u32 free_blocks;
  52        __u32 purgeable_blocks;
  53        __u32 not_yet_purgeable_blocks;
  54        __u32 total_dir_entries;
  55        __u32 available_dir_entries;
  56        __u8 sectors_per_block;
  57        char volume_name[NCP_VOLNAME_LEN + 1];
  58};
  59
  60#define AR_READ      (cpu_to_le16(1))
  61#define AR_WRITE     (cpu_to_le16(2))
  62#define AR_EXCLUSIVE (cpu_to_le16(0x20))
  63
  64#define NCP_FILE_ID_LEN 6
  65
  66/* Defines for Name Spaces */
  67#define NW_NS_DOS     0
  68#define NW_NS_MAC     1
  69#define NW_NS_NFS     2
  70#define NW_NS_FTAM    3
  71#define NW_NS_OS2     4
  72
  73/*  Defines for ReturnInformationMask */
  74#define RIM_NAME              (cpu_to_le32(1))
  75#define RIM_SPACE_ALLOCATED   (cpu_to_le32(2))
  76#define RIM_ATTRIBUTES        (cpu_to_le32(4))
  77#define RIM_DATA_SIZE         (cpu_to_le32(8))
  78#define RIM_TOTAL_SIZE        (cpu_to_le32(0x10))
  79#define RIM_EXT_ATTR_INFO     (cpu_to_le32(0x20))
  80#define RIM_ARCHIVE           (cpu_to_le32(0x40))
  81#define RIM_MODIFY            (cpu_to_le32(0x80))
  82#define RIM_CREATION          (cpu_to_le32(0x100))
  83#define RIM_OWNING_NAMESPACE  (cpu_to_le32(0x200))
  84#define RIM_DIRECTORY         (cpu_to_le32(0x400))
  85#define RIM_RIGHTS            (cpu_to_le32(0x800))
  86#define RIM_ALL               (cpu_to_le32(0xFFF))
  87#define RIM_COMPRESSED_INFO   (cpu_to_le32(0x80000000))
  88
  89/* Defines for NSInfoBitMask */
  90#define NSIBM_NFS_NAME          0x0001
  91#define NSIBM_NFS_MODE          0x0002
  92#define NSIBM_NFS_GID           0x0004
  93#define NSIBM_NFS_NLINKS        0x0008
  94#define NSIBM_NFS_RDEV          0x0010
  95#define NSIBM_NFS_LINK          0x0020
  96#define NSIBM_NFS_CREATED       0x0040
  97#define NSIBM_NFS_UID           0x0080
  98#define NSIBM_NFS_ACSFLAG       0x0100
  99#define NSIBM_NFS_MYFLAG        0x0200
 100
 101/* open/create modes */
 102#define OC_MODE_OPEN      0x01
 103#define OC_MODE_TRUNCATE  0x02
 104#define OC_MODE_REPLACE   0x02
 105#define OC_MODE_CREATE    0x08
 106
 107/* open/create results */
 108#define OC_ACTION_NONE     0x00
 109#define OC_ACTION_OPEN     0x01
 110#define OC_ACTION_CREATE   0x02
 111#define OC_ACTION_TRUNCATE 0x04
 112#define OC_ACTION_REPLACE  0x04
 113
 114/* access rights attributes */
 115#ifndef AR_READ_ONLY
 116#define AR_READ_ONLY       0x0001
 117#define AR_WRITE_ONLY      0x0002
 118#define AR_DENY_READ       0x0004
 119#define AR_DENY_WRITE      0x0008
 120#define AR_COMPATIBILITY   0x0010
 121#define AR_WRITE_THROUGH   0x0040
 122#define AR_OPEN_COMPRESSED 0x0100
 123#endif
 124
 125struct nw_nfs_info {
 126        __u32 mode;
 127        __u32 rdev;
 128};
 129
 130struct nw_info_struct {
 131        __u32 spaceAlloc;
 132        __le32 attributes;
 133        __u16 flags;
 134        __le32 dataStreamSize;
 135        __le32 totalStreamSize;
 136        __u16 numberOfStreams;
 137        __le16 creationTime;
 138        __le16 creationDate;
 139        __u32 creatorID;
 140        __le16 modifyTime;
 141        __le16 modifyDate;
 142        __u32 modifierID;
 143        __le16 lastAccessDate;
 144        __u16 archiveTime;
 145        __u16 archiveDate;
 146        __u32 archiverID;
 147        __u16 inheritedRightsMask;
 148        __le32 dirEntNum;
 149        __le32 DosDirNum;
 150        __u32 volNumber;
 151        __u32 EADataSize;
 152        __u32 EAKeyCount;
 153        __u32 EAKeySize;
 154        __u32 NSCreator;
 155        __u8 nameLen;
 156        __u8 entryName[256];
 157        /* libncp may depend on there being nothing after entryName */
 158#ifdef __KERNEL__
 159        struct nw_nfs_info nfs;
 160#endif
 161} __attribute__((packed));
 162
 163/* modify mask - use with MODIFY_DOS_INFO structure */
 164#define DM_ATTRIBUTES             (cpu_to_le32(0x02))
 165#define DM_CREATE_DATE            (cpu_to_le32(0x04))
 166#define DM_CREATE_TIME            (cpu_to_le32(0x08))
 167#define DM_CREATOR_ID             (cpu_to_le32(0x10))
 168#define DM_ARCHIVE_DATE           (cpu_to_le32(0x20))
 169#define DM_ARCHIVE_TIME           (cpu_to_le32(0x40))
 170#define DM_ARCHIVER_ID            (cpu_to_le32(0x80))
 171#define DM_MODIFY_DATE            (cpu_to_le32(0x0100))
 172#define DM_MODIFY_TIME            (cpu_to_le32(0x0200))
 173#define DM_MODIFIER_ID            (cpu_to_le32(0x0400))
 174#define DM_LAST_ACCESS_DATE       (cpu_to_le32(0x0800))
 175#define DM_INHERITED_RIGHTS_MASK  (cpu_to_le32(0x1000))
 176#define DM_MAXIMUM_SPACE          (cpu_to_le32(0x2000))
 177
 178struct nw_modify_dos_info {
 179        __le32 attributes;
 180        __le16 creationDate;
 181        __le16 creationTime;
 182        __u32 creatorID;
 183        __le16 modifyDate;
 184        __le16 modifyTime;
 185        __u32 modifierID;
 186        __u16 archiveDate;
 187        __u16 archiveTime;
 188        __u32 archiverID;
 189        __le16 lastAccessDate;
 190        __u16 inheritanceGrantMask;
 191        __u16 inheritanceRevokeMask;
 192        __u32 maximumSpace;
 193} __attribute__((packed));
 194
 195struct nw_search_sequence {
 196        __u8 volNumber;
 197        __u32 dirBase;
 198        __u32 sequence;
 199} __attribute__((packed));
 200
 201#endif                          /* _LINUX_NCP_H */
 202