summaryrefslogtreecommitdiffstats
path: root/private/os2/client/remtypes.h
blob: cc02d6d53fa9d73d677ff7da01ba101456129943 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
/*++

Copyright (c) 1991-1992  Microsoft Corporation

Module Name:

    RemTypes.h

Abstract:

    This header file defines character values used in descriptor strings in
    Remote Admin Protocol.

    NOTES   - All pointer types are lower case, except for buffer pointers,
              and the null pointer.

            - REM_BYTE should not be used for parameters, since data is
              never placed on the stack as individual bytes.

            - REM_NULL_PTR is never specified in the call, but may be
              used to replace a pointer type if the pointer itself is NULL.

            - In some cases as indicated below, a descriptor character
              can indicate an array of data items, if followed by an
              ASCII representation of the number of items. For pointer
              types, this is a count of the data items themselves, not
              the pointers. For example, 'b12' describes a pointer
              to 12 bytes of data, not 12 pointers to byte values.

Author:

    LanMan 2.x people.

Environment:

    Portable to any flat, 32-bit environment.  (Uses Win32 typedefs.)
    Requires ANSI C extensions: slash-slash comments, long external names.

Revision History:

    15-Mar-1991 Shanku Niyogi (w-shanku)
        Ported to NT format, and added special 32-bit descriptor characters.

    21-Aug-1991 Jim Waters (t-jamesw)
        Added REM_ASCIZ_COMMENT.
    16-Aug-1992 JohnRo
        RAID 2920: Support UTC timezone in net code.
--*/

#ifndef _REMTYPES_
#define _REMTYPES_

//
// Data types.
//

#define REM_BYTE                'B'     // Byte (s)
#define REM_WORD                'W'     // Word (s)
#define REM_DWORD               'D'     // DWord (s)
#define REM_DATE_TIME           'C'     // Date time field
#define REM_FILL_BYTES          'F'     // Pad field

//
// Pointer types.
//

//
// For internal use, the count following a REM_ASCIZ may specify the maximum
// string length.  On the network no count may be present.
//
// In RapConvertSingleEntry, attempting to copy a REM_ASCIZ into a buffer too
// small to hold it will result in an error.  Use REM_ASCIZ_TRUNCATABLE
// for strings which can be truncated.
//
#define REM_ASCIZ               'z'     // Far pointer to asciz string

#define REM_BYTE_PTR            'b'     // Far pointer to byte(s)
#define REM_WORD_PTR            'w'     // Far pointer to word(s)
#define REM_DWORD_PTR           'd'     // Far pointer to dword(s)

#define REM_RCV_BYTE_PTR        'g'     // Far pointer to rcv byte(s)
#define REM_RCV_WORD_PTR        'h'     // Far pointer to rcv word(s)
#define REM_RCV_DWORD_PTR       'i'     // Far pointer to rcv dword(s)

#define REM_NULL_PTR            'O'     // NULL pointer

//
// Buffer pointer and length types.
//

#define REM_RCV_BUF_PTR         'r'     // Far pointer to receive data buffer
#define REM_RCV_BUF_LEN         'L'     // Word length of receive buffer

#define REM_SEND_BUF_PTR        's'     // Far pointer to send data buffer
#define REM_SEND_BUF_LEN        'T'     // Word length of send buffer

//
// Other special types.
//

#define REM_AUX_NUM             'N'     // !!! Temporary - for compatibility

#define REM_PARMNUM             'P'     // parameter number word

#define REM_ENTRIES_READ        'e'     // Far pointer to entries read word

#define REM_DATA_BLOCK          'K'     // Unstructured data block

#define REM_SEND_LENBUF         'l'     // Far pointer to send data buffer,
                                        // where first word in buffer is the
                                        // length of the buffer.


//
// Items from here on are "internal use only", and should never actually
// appear on the network.
//

//
// The following is used in the MVDM driver to get various API support
//

#define REM_WORD_LINEAR         'a'     // Far linear pointer to word(s)

//
// The following is used while processing 32-bit APIs and 16-bit APIs with
// different padding requirements or info levels with ignored fields.
//

#define REM_IGNORE              'Q'     // Ignore this field (16->32 or
                                        // 32->16 conversions).

//
// A dword version of the auxiliary structure count (for 32-bit data).
//

#define REM_AUX_NUM_DWORD       'A'     // 32-bit dword count of aux structures

//
// Sign extended dword - for 16->32 bit conversion where the 16-bit
//      quantity may represent signed negative quantities which need
//      to be extended over 32 bits.
//

#define REM_SIGNED_DWORD        'X'     // 32-bit signed dword(s)

#define REM_SIGNED_DWORD_PTR    'x'     // Far pointer to signed dword(s)

//
// Truncatable asciz string - If a count is specified, the field only
//     accepts strings up to the specified length.  In
//     RapConvertSingleEntry, if a REM_ASCIZ_TRUNCATABLE is too long to
//     fit in the destination field, the string will be truncated to fit.
//     Use REM_ASCIZ for fields which cannot accept truncated strings.
//

#define REM_ASCIZ_TRUNCATABLE   'c'     // Far pointer to asciz comment
                                        // Count signifies maximum length.

// Time and date in seconds since 1970 (GMT).  In POSIX, this is usually
// called "seconds since the epoch".

#define REM_EPOCH_TIME_GMT      'G'     // 32-bit unsigned num of seconds.

// Time and date in seconds since 1970 (local time zone).

#define REM_EPOCH_TIME_LOCAL    'J'     // 32-bit unsigned num of seconds.

//
// Unsupported fields - for set info calls. A 'U' indicates that a parameter
//     cannot be changed.
//

#define REM_UNSUPPORTED_FIELD   'U'     // Unsupported field

#endif // ndef _REMTYPES_