home *** CD-ROM | disk | FTP | other *** search
/ Network Support Encyclopedia 96-1 / novell-nsepro-1996-1-cd2.iso / download / netware / os232.exe / INCLUDE / NWDSEVNT.H < prev    next >
C/C++ Source or Header  |  1995-07-20  |  9KB  |  289 lines

  1. /******************************************************************************
  2.   Source module name:  nwdsevnt.h
  3.   Release Version:    
  4.  
  5.   $Workfile:   nwdsevnt.h  $
  6.   $Revision:   $
  7.   $Modtime::   $
  8.   $Copyright:
  9.  
  10.   Copyright (c) 1989-1995 Novell, Inc.  All Rights Reserved.                      
  11.  
  12.   THIS WORK IS  SUBJECT  TO  U.S.  AND  INTERNATIONAL  COPYRIGHT  LAWS  AND
  13.   TREATIES.   NO  PART  OF  THIS  WORK MAY BE  USED,  PRACTICED,  PERFORMED
  14.   COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED,  ABRIDGED, CONDENSED,
  15.   EXPANDED,  COLLECTED,  COMPILED,  LINKED,  RECAST, TRANSFORMED OR ADAPTED
  16.   WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION
  17.   OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO
  18.   CRIMINAL AND CIVIL LIABILITY.$
  19.  
  20.  *****************************************************************************/
  21.  
  22. #ifndef    _NWDSEVNT_HEADER_            
  23. #define    _NWDSEVNT_HEADER_            
  24.  
  25. /*---------------------------------------------------------------------------
  26.  * definitions and functions required to receive event reports
  27.  */
  28. typedef enum DSEventPriority {EP_INLINE, EP_JOURNAL, EP_WORK} DSEventPriority;
  29.  
  30. /*---------------------------------------------------------------------------
  31.  * event types
  32.  */
  33. #define DSE_INVALID                        0
  34. #define DSE_CREATE_ENTRY                 1    /* data is DSEEntryInfo */
  35. #define DSE_DELETE_ENTRY                 2    /* data is DSEEntryInfo */
  36. #define DSE_RENAME_ENTRY                 3    /* data is DSEEntryInfo */
  37. #define DSE_MOVE_SOURCE_ENTRY            4    /* data is DSEEntryInfo */
  38. #define DSE_ADD_VALUE                     5    /* data is DSEValueInfo */
  39. #define DSE_DELETE_VALUE                 6    /* data is DSEValueInfo */
  40. #define DSE_CLOSE_STREAM                 7    /* data is DSEValueInfo */
  41. #define DSE_DELETE_ATTRIBUTE            8    /* data is DSEValueInfo */
  42. #define DSE_SET_BINDERY_CONTEXT        9    /* no data */
  43. #define DSE_CREATE_BINDERY_OBJECT    10    /* data is DSEBinderyObjectInfo */
  44. #define DSE_DELETE_BINDERY_OBJECT    11    /* data is DSEBinderyObjectInfo */
  45. #define DSE_CHECK_SEV                    12    /* data is DSESEVInfo */
  46. #define DSE_UPDATE_SEV                    13    /* no data */
  47. #define DSE_MOVE_DEST_ENTRY            14    /* data is DSEEntryInfo */
  48. #define DSE_DELETE_UNUSED_EXTREF        15    /* data is DSEEntryInfo */
  49. #define DSE_TRACE                            16    /* data is DSETraceInfo */
  50. #define DSE_REMOTE_SERVER_DOWN        17    /* data is DSENetAddress */
  51. #define DSE_NCP_RETRY_EXPENDED        18    /* data is DSENetAddress */
  52. #define DSE_REMOTE_CONN_CLEARED        19    /* data is DSENetAddress */
  53.  
  54. /*---------------------------------------------------------------------------
  55.  * data structures used for the data associated with events
  56.  */
  57.  
  58. typedef struct
  59. {
  60.    uint32 seconds;
  61.    uint16 replicaNumber;
  62.    uint16 event;
  63. } DSETimeStamp;
  64.  
  65. /* newDN used for DSE_MOVE_SOURCE_ENTRY and DSE_RENAME_ENTRY,
  66.  * otherwise it is 0
  67.  */
  68. typedef struct
  69. {
  70.     uint32 perpetratorID;
  71.    uint32 verb;
  72.    uint32 entryID;
  73.    uint32 parentID;
  74.    uint32 classID;
  75.    uint32 flags;
  76.     DSETimeStamp creationTime;
  77.     const unicode *dn;
  78.    const unicode *newDN;
  79.     char data[1];        /* used to store data for dn and newDN fields */
  80. } DSEEntryInfo;
  81.  
  82. /* DSEEntryInfo flag definitions */
  83. #define DSEF_PARTITION_ROOT    0x0001
  84. #define DSEF_EXTREF                0x0002
  85. #define DSEF_ALIAS                0x0004
  86.  
  87. typedef struct
  88. {
  89.     uint32 perpetratorID;
  90.    uint32 verb;
  91.    uint32 entryID;
  92.    uint32 attrID;
  93.    uint32 syntaxID;
  94.    uint32 classID;
  95.     DSETimeStamp timeStamp;
  96.     unsigned size;
  97.     char data[1];        /* see DSEVal... structures for meanings of this field */
  98. } DSEValueInfo;
  99.  
  100. typedef struct
  101. {
  102.     uint32 entryID;
  103.    uint32 parentID;
  104.    uint32 type;
  105.    uint32 emuObjFlags;
  106.    uint32 security;
  107.     char name[48];
  108. } DSEBinderyObjectInfo;
  109.  
  110. typedef struct
  111. {
  112.     uint32 entryID;
  113.     uint32 retryCount;
  114.     uint32 valueID;
  115.     unicode valueDN[MAX_DN_CHARS + 1];
  116.     char referral[1];
  117. } DSESEVInfo;
  118.  
  119. typedef struct
  120. {
  121.     uint32 traceVector1;
  122.    uint32 traceVector2;
  123.     uint32 dstime;
  124.    uint32 milliseconds;            /* time at first trace after '\n' */
  125.     char string[1024];            /* will be zero terminated */
  126. } DSETraceInfo;
  127.  
  128. typedef struct
  129. {
  130.     uint32    type;
  131.     uint32    length;
  132.     uint8        data[1];
  133. } DSENetAddress;
  134.  
  135. /*---------------------------------------------------------------------------
  136.  * data structures used for contents of the data member of the
  137.  * DSEValueInfo structure.
  138.  */
  139.  
  140. typedef struct
  141. {
  142.     uint32    nameSpaceType;
  143.    uint32   volumeEntryID;
  144.    uint32   length;
  145.     unicode    data[1];
  146. } DSEPath;
  147.  
  148. typedef struct
  149. {
  150.     uint32 serverID;
  151.     uint32 type;
  152.     uint32 number;
  153.     uint32 replicaRootID;    /* partition root ID on server where replica resides */
  154.     char referral[1];            /* transport address data in wire format */
  155. } DSEReplicaPointer;
  156.  
  157. typedef struct
  158. {
  159.     uint32 serverID;
  160.     uint32 remoteID;
  161. } DSEBackLink;
  162.  
  163. typedef struct
  164. {
  165.     uint32 entryID;
  166.     uint32 attrID;
  167.     uint32 privileges;
  168. } DSEACL;
  169.  
  170. typedef struct
  171. {
  172.     uint32 entryID;
  173.     uint32 level;
  174.     uint32 interval;
  175. } DSETypedName;
  176.  
  177. typedef struct
  178. {
  179.     uint32 entryID;
  180.     uint32 amount;
  181. } DSEHold;
  182.  
  183. typedef struct
  184. {
  185.     uint32 type;            /* SMF70, SMF71, SMTP, X400, SNADS, PROFS */
  186.     uint32 length;                            /* length of address unicode string */
  187.     unicode address[1/*or more*/];    /* null terminated unicode string */
  188. } DSEEmailAddress;
  189.  
  190. typedef struct
  191. {
  192.     uint32 numOfBits;
  193.     uint32 numOfBytes;
  194.     char    data;
  195. } DSEBitString;
  196.  
  197. typedef struct 
  198. {
  199.     uint32 length;            /* length of telephone number unicode string */
  200.     unicode telephoneNumber[1/*or more*/];    /* null terminated unicode string */
  201.     /*   The following field is dword aligned after unicode NULL:
  202.     DSEBitString    parameters;
  203.     */
  204. } DSEFaxNumber;
  205.  
  206. typedef struct
  207. {
  208.     uint32 numOfStrings;    /* number of uint32 length proceeded, null terminated,
  209.                                    dword aligned unicode strings to follow */
  210.     uint32 length1;        /* length of first unicode string */
  211.     unicode string1[1];    /* 1st unicode string */
  212. } DSECIList;
  213.  
  214. typedef struct
  215. {
  216.     uint32 numOfStrings;    /* number of null terminated, dword aligned byte 
  217.                                    strings to follow */
  218.     uint8 string1[1];        /* 1st octet string */
  219. } DSEOctetList;
  220.  
  221. typedef union
  222. {
  223.     /* used for SYN_CE_STRING, SYN_CI_STRING, SYN_PR_STRING,
  224.      * SYN_NU_STRING,    and SYN_TEL_NUMBER
  225.      */
  226.     unicode string[1/*or more*/];    /* null terminated unicode string */
  227.     uint32 num;                            /* used for SYN_INTEGER, SYN_COUNTER, SYN_TIME, SYN_INTERVAL */
  228.     uint32 entryID;                    /* used for SYN_DIST_NAME */
  229.     uint32 classID;                    /* used for SYN_CLASS_NAME */
  230.     uint8 boolean;                        /* used for SYN_BOOLEAN */
  231.     DSENetAddress netAddress;        /* used for SYN_NET_ADDRESS */
  232.     DSEPath path;                        /* used for SYN_PATH */
  233.     DSEReplicaPointer    replica;        /* used for SYN_REPLICA_POINTER */
  234.     DSEACL acl;                            /* used for SYN_OBJECT_ACL */
  235.     DSETimeStamp timeStamp;            /* used for SYN_TIMESTAMP */
  236.     DSEBackLink backLink;             /* used for SYN_BACK_LINK */
  237.     DSETypedName typedName;            /* used for SYN_TYPED_NAME */
  238.     DSEHold hold;                        /* used for SYN_HOLD */
  239.     DSEEmailAddress emailAddress;    /* used for SYN_EMAIL_ADDRESS */
  240.     DSEFaxNumber faxNumber;            /* used for SYN_FAX_NUMBER */
  241.     DSECIList ciList;                    /* used for SYN_CI_LIST, SYN_PO_ADDRESS */
  242.     uint8 octetString[1];            /* used for SYN_OCTET_STRING, SYN_STREAM */
  243.     DSEOctetList octetList;            /* used for SYN_OCTET_LIST */
  244. } DSEValData;
  245.  
  246.  /*
  247.  * End data structures used for contents of the data member of the
  248.  * DSEValueInfo structure.
  249.  *-------------------------------------------------------------------------*/
  250.  
  251. /* define trace vector category numbers */
  252. #define TV_ON                0x00000001L        /* if set, tracing is enabled */
  253. #define TV_AUDIT            0x00000002L        /* auditing */
  254. #define TV_INIT            0x00000004L        /* initialization */
  255. #define TV_FRAGGER        0x00000008L        /* fragger */
  256. #define TV_MISC            0x00000010L        /* miscellaneous */
  257. #define TV_RESNAME        0x00000020L        /* resolve name */
  258. #define TV_STREAMS        0x00000040L        /* streams */
  259. #define TV_LIMBER            0x00000080L        /* limber */
  260. #define TV_JANITOR        0x00000100L        /* janitor */
  261. #define TV_BACKLINK        0x00000200L        /* backlink */
  262. #define TV_MERGE            0x00000400L        /* merge */
  263. #define TV_SKULKER        0x00000800L        /* skulker */
  264. #define TV_LOCKING        0x00001000L        /* locking */
  265. #define TV_SAP                0x00002000L        /* SAP */
  266. #define TV_SCHEMA            0x00004000L        /* schema */
  267. #define TV_COLL            0x00008000L        /* collisions */
  268. #define TV_INSPECTOR        0x00010000L        /* inspector */
  269. #define TV_ERRORS            0x00020000L        /* errors */
  270. #define TV_PART            0x00040000L        /* partition operations */
  271. #define TV_EMU                0x00080000L        /* bindery emulator */
  272. #define TV_VCLIENT        0x00100000L        /* virtual client */
  273. #define TV_AUTHEN            0x00200000L        /* authentication */
  274. #define TV_RECMAN            0x00400000L        /* record manager */
  275. #define TV_TIMEVECTOR    0x00800000L        /* time vectors */
  276. #define TV_REPAIR            0x01000000L        /* ds_repair */
  277. #define TV_DSAGENT        0x02000000L        /* low level DSA tracing */
  278. #define TV_ERRET            0x04000000L        /* ERRET and ERRTRACE */
  279. #define TV_SYNC_IN        0x08000000L        /* incoming sync traffic */
  280. #define TV_THREADS        0x10000000L        /* DS thread scheduling */
  281. #define TV_MIN                0x20000000L        /* default dstrace messages */
  282. #define TV_CHECK_BIT        0x80000000L        /* all TV_ values must have this bit */
  283. #define TV_ALL                0xBFFFFFFEL        /* All vectors--default for DSTrace */
  284.  
  285. /*===========================================================================*/
  286.  
  287. #endif
  288.  
  289.