The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/netncp/ncp.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  *  ncp.h
    3  */
    4 /*-
    5  *  Copyright (C) 1995 by Volker Lendecke
    6  *  New version derived from original ncp.h, 1998 Boris Popov
    7  *
    8  * $FreeBSD$
    9  */
   10 
   11 #ifndef _NETNCP_NCP_H_
   12 #define _NETNCP_NCP_H_
   13 
   14 #define NCP_VERMAJ      1
   15 #define NCP_VERMIN      3500
   16 #define NCP_VERSION     (NCP_VERMAJ*100000 + NCP_VERMIN)
   17 
   18 typedef u_int32_t       nwdirent;
   19 
   20 typedef char            nstr8;
   21 typedef nstr8*          pnstr8;
   22 typedef u_int8_t        nuint8;
   23 typedef u_int8_t*       pnuint8;
   24 typedef u_int16_t       nuint16;
   25 typedef nuint16*        pnuint16;
   26 typedef u_int32_t       nuint32;
   27 typedef nuint32*        pnuint32;
   28 
   29 
   30 #define NCP_DEFAULT_BUFSIZE     1024
   31 #define NCP_MAX_BUFSIZE         1024
   32 #define NCP_MAX_PACKET_SIZE     4070
   33 #define NCP_MAXUSERNAMELEN      255
   34 #define NCP_MAXPASSWORDLEN      255
   35 #define NCP_MAXPATHLEN          255
   36 #define NCP_MAX_FILENAME        14
   37 #define NCP_FILE_ID_LEN         6
   38 
   39 #define NCP_BINDERY_USER        0x0001
   40 #define NCP_BINDERY_UGROUP      0x0002
   41 #define NCP_BINDERY_PQUEUE      0x0003
   42 #define NCP_BINDERY_FSERVER     0x0004
   43 #define NCP_BINDERY_PSERVER     0x0007
   44 #define NCP_BINDERY_NAME_LEN    48
   45 
   46 /* Handle Flags */
   47 #define NCP_HF_DIRSHORT         0               /* short directory handle */
   48 #define NCP_HF_DIRBASE          1               /* directory base */
   49 #define NCP_HF_NONE             0xff            /* no handle or dirbase */
   50 
   51 /* Options to negotiate */
   52 #define NCP_IPX_CHECKSUM                1
   53 #define NCP_SECURITY_LEVEL_SIGN_HEADERS 2
   54 
   55 #ifndef NWCONN_HANDLE
   56 #define NWCONN_HANDLE   unsigned int
   57 #define pNWCONN_HANDLE  (unsigned int*)
   58 #define NWCONN_NUM      u_int16_t
   59 #define NWCCODE         unsigned int
   60 #define NWDIR_HANDLE    u_int8_t
   61 #define NWFILE_HANDLE   int
   62 #endif
   63 
   64 struct ncp_fh_s {
   65         u_int16_t val1; 
   66         union {
   67                 u_int32_t val32;
   68                 u_int16_t val16;
   69         } val;
   70 } __packed;
   71 
   72 typedef struct ncp_fh_s ncp_fh;
   73 
   74 typedef struct ncpfid_s {
   75         nwdirent        f_parent;
   76         nwdirent        f_id;
   77 } ncpfid;
   78 
   79 /* -- Bindery properties -- */
   80 struct ncp_bindery_object {
   81         u_int32_t       object_id;
   82         u_int16_t       object_type;
   83         u_int8_t        object_name[NCP_BINDERY_NAME_LEN];
   84         u_int8_t        object_flags;
   85         u_int8_t        object_security;
   86         u_int8_t        object_has_prop;
   87 };
   88 
   89 struct nw_property {
   90         u_int8_t        value[128];
   91         u_int8_t        more_flag;
   92         u_int8_t        property_flag;
   93 };
   94 
   95 struct ncp_filesearch_info {
   96         u_int8_t        volume_number;
   97         u_int16_t       directory_id;
   98         u_int16_t       sequence_no;
   99         u_int8_t        access_rights;
  100 };
  101 
  102 
  103 struct ncp_file_info {
  104         u_int8_t        file_id[NCP_FILE_ID_LEN];
  105         char            file_name[NCP_MAX_FILENAME + 1];
  106         u_int8_t        file_attributes;
  107         u_int8_t        file_mode;
  108         u_int32_t       file_length;
  109         u_int16_t       creation_date;
  110         u_int16_t       access_date;
  111         u_int16_t       update_date;
  112         u_int16_t       update_time;
  113 };
  114 
  115 struct nw_queue_job_entry {
  116         u_int16_t       InUse;
  117         u_int32_t       prev;
  118         u_int32_t       next;
  119         u_int32_t       ClientStation;
  120         u_int32_t       ClientTask;
  121         u_int32_t       ClientObjectID;
  122         u_int32_t       TargetServerID;
  123         u_int8_t        TargetExecTime[6];
  124         u_int8_t        JobEntryTime[6];
  125         u_int32_t       JobNumber;
  126         u_int16_t       JobType;
  127         u_int16_t       JobPosition;
  128         u_int16_t       JobControlFlags;
  129         u_int8_t        FileNameLen;
  130         char            JobFileName[13];
  131         u_int32_t       JobFileHandle;
  132         u_int32_t       ServerStation;
  133         u_int32_t       ServerTaskNumber;
  134         u_int32_t       ServerObjectID;
  135         char            JobTextDescription[50];
  136         char            ClientRecordArea[152];
  137 } __packed;
  138 
  139 struct queue_job {
  140         struct nw_queue_job_entry j;
  141         ncp_fh file_handle;
  142 };
  143 
  144 #define QJE_OPER_HOLD   0x80
  145 #define QJE_USER_HOLD   0x40
  146 #define QJE_ENTRYOPEN   0x20
  147 #define QJE_SERV_RESTART    0x10
  148 #define QJE_SERV_AUTO       0x08
  149 
  150 /* ClientRecordArea for print jobs */
  151 
  152 #define   KEEP_ON        0x0400
  153 #define   NO_FORM_FEED   0x0800
  154 #define   NOTIFICATION   0x1000
  155 #define   DELETE_FILE    0x2000
  156 #define   EXPAND_TABS    0x4000
  157 #define   PRINT_BANNER   0x8000
  158 
  159 struct print_job_record {
  160         u_int8_t        Version;
  161         u_int8_t        TabSize;
  162         u_int16_t       Copies;
  163         u_int16_t       CtrlFlags;
  164         u_int16_t       Lines;
  165         u_int16_t       Rows;
  166         char            FormName[16];
  167         u_int8_t        Reserved[6];
  168         char            BannerName[13];
  169         char            FnameBanner[13];
  170         char            FnameHeader[14];
  171         char            Path[80];
  172 } __packed;
  173 
  174 struct ncp_station_addr {
  175         u_int32_t       NetWork;
  176         u_int8_t        Node[6];
  177         u_int16_t       Socket;
  178 } __packed;
  179 
  180 struct ncp_prop_login_control {
  181         u_int8_t        AccountExpireDate[3];
  182         u_int8_t        Disabled;
  183         u_int8_t        PasswordExpireDate[3];
  184         u_int8_t        GraceLogins;
  185         u_int16_t       PasswordExpireInterval;
  186         u_int8_t        MaxGraceLogins;
  187         u_int8_t        MinPasswordLength;
  188         u_int16_t       MaxConnections;
  189         u_int8_t        ConnectionTimeMask[42];
  190         u_int8_t        LastLogin[6];
  191         u_int8_t        RestrictionMask;
  192         u_int8_t        reserved;
  193         u_int32_t       MaxDiskUsage;
  194         u_int16_t       BadLoginCount;
  195         u_int32_t       BadLoginCountDown;
  196         struct ncp_station_addr LastIntruder;
  197 } __packed;
  198 
  199 #define NCP_VOLNAME_LEN (16)
  200 #define NCP_NUMBER_OF_VOLUMES (64)
  201 struct ncp_volume_info {
  202         u_int32_t total_blocks;
  203         u_int32_t free_blocks;
  204         u_int32_t purgeable_blocks;
  205         u_int32_t not_yet_purgeable_blocks;
  206         u_int32_t total_dir_entries;
  207         u_int32_t available_dir_entries;
  208         u_int8_t sectors_per_block;
  209         char volume_name[NCP_VOLNAME_LEN + 1];
  210 };
  211 /*
  212  * Name space constants, taken from NDK
  213  */
  214 #define aRONLY     (ntohl(0x01000000))
  215 #define aHIDDEN    (ntohl(0x02000000))
  216 #define aSYSTEM    (ntohl(0x04000000))
  217 #define aEXECUTE   (ntohl(0x08000000))
  218 #define aDIR       (ntohl(0x10000000))
  219 #define aARCH      (ntohl(0x20000000))
  220 
  221 /* Defines for Name Spaces */
  222 #define NW_NS_DOS     0
  223 #define NW_NS_MAC     1
  224 #define NW_NS_NFS     2
  225 #define NW_NS_FTAM    3
  226 #define NW_NS_OS2     4
  227 
  228 /* for _ScanNSEntryInfo */
  229 #define IM_NAME                 0x00000001
  230 #define IM_SPACE_ALLOCATED      0x00000002
  231 #define IM_ATTRIBUTES           0x00000004
  232 #define IM_SIZE                 0x00000008
  233 #define IM_TOTAL_SIZE           0x00000010
  234 #define IM_EA                   0x00000020
  235 #define IM_ARCHIVE              0x00000040
  236 #define IM_MODIFY               0x00000080
  237 #define IM_CREATION             0x00000100
  238 #define IM_OWNING_NAMESPACE     0x00000200
  239 #define IM_DIRECTORY            0x00000400
  240 #define IM_RIGHTS               0x00000800
  241 #define IM_ALMOST_ALL           0x00000FED
  242 #define IM_ALL                  0x00000FFF
  243 #define IM_REFERENCE_ID         0x00001000
  244 #define IM_NS_ATTRIBUTES        0x00002000
  245 #define IM_COMPRESSED_INFO      0x80000000UL
  246 
  247 /* open/create modes */
  248 #define OC_MODE_OPEN            0x01
  249 #define OC_MODE_TRUNCATE        0x02
  250 #define OC_MODE_REPLACE         0x02
  251 #define OC_MODE_CREATE          0x08
  252 
  253 /* open/create results */
  254 #define OC_ACTION_NONE          0x00
  255 #define OC_ACTION_OPEN          0x01
  256 #define OC_ACTION_CREATE        0x02
  257 #define OC_ACTION_TRUNCATE      0x04
  258 #define OC_ACTION_REPLACE       0x04
  259 
  260 /* renameFlag in NSRename */
  261 #define NW_TYPE_FILE            0x8000
  262 #define NW_TYPE_SUBDIR          0x0010
  263 
  264 #define NW_NAME_CONVERT         0x0003  /* don't report error and set comp mode */
  265 #define NW_NO_NAME_CONVERT      0x0004  /* only in specified name space */
  266 
  267 /* search attributes */
  268 #ifndef SA_HIDDEN
  269 #define SA_NORMAL         0x0000
  270 #define SA_HIDDEN         0x0002
  271 #define SA_SYSTEM         0x0004
  272 #define SA_SUBDIR_ONLY    0x0010
  273 #define SA_SUBDIR_FILES   0x8000
  274 #define SA_ALL            0x8006
  275 #endif
  276 
  277 /* access rights attributes */
  278 #ifndef AR_READ
  279 #define AR_READ                 0x0001
  280 #define AR_WRITE                0x0002
  281 #define AR_READ_ONLY            0x0001
  282 #define AR_WRITE_ONLY           0x0002
  283 #define AR_DENY_READ            0x0004
  284 #define AR_DENY_WRITE           0x0008
  285 #define AR_COMPATIBILITY        0x0010
  286 #define AR_WRITE_THROUGH        0x0040
  287 #define AR_OPEN_COMPRESSED      0x0100
  288 #endif
  289 
  290 struct nw_entry_info {
  291         u_int32_t       spaceAlloc;
  292         u_int32_t       attributes;     /* LH */
  293         u_int16_t       flags;          /* internal */
  294         u_int32_t       dataStreamSize;
  295         u_int32_t       totalStreamSize;
  296         u_int16_t       numberOfStreams;
  297         u_int16_t       creationTime;   /* LH */
  298         u_int16_t       creationDate;   /* LH */
  299         u_int32_t       creatorID;      /* HL */
  300         u_int16_t       modifyTime;     /* LH */
  301         u_int16_t       modifyDate;     /* LH */
  302         u_int32_t       modifierID;     /* HL */
  303         u_int16_t       lastAccessDate; /* LH */
  304         u_int16_t       archiveTime;    /* LH */
  305         u_int16_t       archiveDate;    /* LH */
  306         u_int32_t       archiverID;     /* HL */
  307         u_int16_t       inheritedRightsMask;    /* LH */
  308         u_int32_t       dirEntNum;
  309         u_int32_t       DosDirNum;
  310         u_int32_t       volNumber;
  311         u_int32_t       EADataSize;
  312         u_int32_t       EAKeyCount;
  313         u_int32_t       EAKeySize;
  314         u_int32_t       NSCreator;
  315         u_int8_t        nameLen;
  316         u_int8_t        entryName[256];
  317 } __packed;
  318 
  319 typedef struct nw_entry_info NW_ENTRY_INFO;
  320 
  321 /* modify mask - use with MODIFY_DOS_INFO structure */
  322 #define DM_ATTRIBUTES           0x0002L
  323 #define DM_CREATE_DATE          0x0004L
  324 #define DM_CREATE_TIME          0x0008L
  325 #define DM_CREATOR_ID           0x0010L
  326 #define DM_ARCHIVE_DATE         0x0020L
  327 #define DM_ARCHIVE_TIME         0x0040L
  328 #define DM_ARCHIVER_ID          0x0080L
  329 #define DM_MODIFY_DATE          0x0100L
  330 #define DM_MODIFY_TIME          0x0200L
  331 #define DM_MODIFIER_ID          0x0400L
  332 #define DM_LAST_ACCESS_DATE     0x0800L
  333 #define DM_INHERITED_RIGHTS_MASK        0x1000L
  334 #define DM_MAXIMUM_SPACE        0x2000L
  335 
  336 struct nw_modify_dos_info {
  337         u_int32_t attributes;
  338         u_int16_t creationDate;
  339         u_int16_t creationTime;
  340         u_int32_t creatorID;
  341         u_int16_t modifyDate;
  342         u_int16_t modifyTime;
  343         u_int32_t modifierID;
  344         u_int16_t archiveDate;
  345         u_int16_t archiveTime;
  346         u_int32_t archiverID;
  347         u_int16_t lastAccessDate;
  348         u_int16_t inheritanceGrantMask;
  349         u_int16_t inheritanceRevokeMask;
  350         u_int32_t maximumSpace;
  351 }  __packed;
  352 
  353 struct nw_search_seq {
  354         u_int8_t        volNumber;
  355         u_int32_t       dirNumber;
  356         u_int32_t       searchDirNumber;
  357 }  __packed;
  358 
  359 typedef struct nw_search_seq SEARCH_SEQUENCE;
  360 
  361 struct ncp_file_server_info {
  362         u_int8_t        ServerName[48];
  363         u_int8_t        FileServiceVersion;
  364         u_int8_t        FileServiceSubVersion;
  365         u_int16_t       MaximumServiceConnections;
  366         u_int16_t       ConnectionsInUse;
  367         u_int16_t       NumberMountedVolumes;
  368         u_int8_t        Revision;
  369         u_int8_t        SFTLevel;
  370         u_int8_t        TTSLevel;
  371         u_int16_t       MaxConnectionsEverUsed;
  372         u_int8_t        AccountVersion;
  373         u_int8_t        VAPVersion;
  374         u_int8_t        QueueVersion;
  375         u_int8_t        PrintVersion;
  376         u_int8_t        VirtualConsoleVersion;
  377         u_int8_t        RestrictionLevel;
  378         u_int8_t        InternetBridge;
  379         u_int8_t        Reserved[60];
  380 } __packed;
  381 
  382 struct nw_time_buffer {
  383         u_int8_t        year;
  384         u_int8_t        month;
  385         u_int8_t        day;
  386         u_int8_t        hour;
  387         u_int8_t        minute;
  388         u_int8_t        second;
  389         u_int8_t        wday;
  390 } __packed;
  391 
  392 #endif /*_NCP_H_ */

Cache object: a06f7c9d2753f0386bb70424b13fea97


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.