blob: 108408ecefaa1af0573a86587bf7425f98f4b1a7 (
plain)
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
|
/* srvtyp.h */
/* Types dans les commandes/fonctions serveurs/services applicatifs */
/*
; Type des arguments des commandes serveur et des fonctions services applicatifs
; Code hex. Type 4 octets (binaire)
;yxxx0000 : Skip n octets 1nnnnnnn nnnnnnnn 00000000 00000000
;xxxx0000 : Undefined xxxxxxxx xxxxxxxx 00000000 00000000
;00010001 : Byte 00000000 00000001 00000000 00000001
;00020001 : Integer*2 00000000 00000010 00000000 00000001
;00040001 : Integer*4 00000000 00000100 00000000 00000001
;00080001 : Integer*8 00000000 00001000 00000000 00000001
;00010002 : Logical*1 00000000 00000001 00000000 00000010
;00040002 : Logical*4 00000000 00000100 00000000 00000010
;00040004 : Real*4 00000000 00000100 00000000 00000100
;00080004 : Real*8 00000000 00001000 00000000 00000100
;00100004 : Real*16 00000000 00010000 00000000 00000100
;00040008 : Complex*4 00000000 00000100 00000000 00001000
;00080008 : Complex*8 00000000 00001000 00000000 00001000
;00100008 : Complex*16 00000000 00010000 00000000 00001000
;xxxx0010 : Character xxxxxxxx xxxxxxxx 00000000 00010000
;xxxx0011 : Extended Character xxxxxxxx xxxxxxxx 00000000 00010001
;------ Inutilises peut etre pris:
;00040020 : Entry point address 00000000 00000100 00000000 00100000
;00040040 : Etiquette/Instruction address 00000000 00000100 00000000 01000000
;00040080 : Data address 00000000 00000100 00000000 10000000
;------ fin des Inutilises
;00000100 : Adresse de datas a remplacer par la valeur dans ACSRV
;00000300 : Adresse de datas indexee a remplacer par la valeur dans ACSRV
; : (On a l'adresse suivie de l'adresse de l'index)
;00000400 : Indicateur mode de passage IN 00000000 00000000 00000100 00000000
;00000800 : Indicateur mode de passage OUT 00000000 00000000 00001000 00000000
Ces indicateurs ne sont pas des types mais sont codes dans le meme
mot que le type.
;xxxx1000 : Structure de xxxx champs xxxxxxxx xxxxxxxx 00010000 00000000
;xxxx2000 : Enumeration de xxxx arguments xxxxxxxx xxxxxxxx 00100000 00000000
;xxxx4000 : Handle de xxxx mots xxxxxxxx xxxxxxxx 01000000 00000000
;xxxx8000 : Tableau de xxxx elements xxxxxxxx xxxxxxxx 10000000 00000000
;
*/
#define TYPSKB 0x80000000 /* Skip n octets */
#define TYPUND 0x00000000 /* Undefined */
#define TYPIT1 0x00010001 /* Byte */
#define TYPIT2 0x00020001 /* Integer*2 */
#define TYPIT4 0x00040001 /* Integer*4 */
#define TYPIT8 0x00080001 /* Integer*8 */
#define TYPLO1 0x00010002 /* Logical*1 */
#define TYPLO4 0x00040002 /* Logical*4 */
#define TYPRE4 0x00040004 /* Real*4 */
#define TYPRE8 0x00080004 /* Real*8 */
#define TYPR16 0x00100004 /* Real*16 */
#define TYPCO4 0x00040008 /* Complex*4 */
#define TYPCO8 0x00080008 /* Complex*8 */
#define TYPC16 0x00100008 /* Complex*16 */
#define TYPCHR 0x00000010 /* Character */
#define TYPCHREXT 0x00000011 /* Character */
#define TYPINT 0x00000001 /* Integer */
#define TYPLOG 0x00000002 /* Logical */
#define TYPREAL 0x00000004 /* Real */
#define TYPCOMP 0x00000008 /* Complex */
#define MSK_TYPE 0x0000f3ff /* Masque isole le type */
#define TYPALONE(X) (unsigned int ) ((X) & MSK_TYPE) /* Macro */
#define MSK_LGR 0x7fff0000 /* Masque isole la longueur */
#define LGRALONE(X) (((X) & MSK_LGR) >> 16) /* Macro */
#define MSK_TYPCHR 0x0000ffff /* Masque pour TYPCHR */
#define MSK_LGCHR 0x7fff0000 /* Masque pour lg TYPCHR */
#define MSK_LGUND 0x7fff0000 /* Masque pour lg Undefined */
#define MSK_LGSTRUCT 0x7fff0000 /* Masque pour lg Structure */
#define MSK_LGHDLE 0x7fff0000 /* Masque pour lg Handle */
#define TYPENT 0x00040020 /* Entry point address */
#define TYPETI 0x00040040 /* Etiquette/Inst address */
#if defined (__osf__) || defined (DECOSF1)
#define TYPDAD 0x00080080 /* Data address */
#else
#define TYPDAD 0x00040080 /* Data address */
#endif
#define TYPADD 0x00000100 /* Adresse de data a remplacer
par la valeur dans ACSRV */
#define TYPADI 0x00000300 /* Adresse de datas indexee */
/* A remplacer par la valeur dans ACSRV. */
/* (On a l'adresse suivie de l'adresse de l'index) */
#define TYPSTRUCT 0x00001000 /* Structure */
/* 16 bits de poids forts : Nombre de champs de la structure */
/* Suivent les champs donnes par leur type et leur valeur */
#define TYPENUM 0x00002000 /* Enumeration */
/* 16 bits de poids forts : Nombre d'arguments la decrivant */
/* Suivent les arguments donnes par leur type et leur valeur */
#define TYPHDLE 0x00004000 /* Handle */
/* 16 bits de poids forts : Nombre de mots de 32 bits du handle */
#define TYPARR 0x00008000 /* Tableau */
/* 16 bits de poids forts : nombre d'elements du tableau */
/* Ce mot de type est suivi par un autre mot de type qui */
/* indique la longueur de l'element de tableau et son type */
/* Le mode de passage de l'argument */
/* Il est mis dans le type */
#define MODIN 0x00000400
#define MODOUT 0x00000800
#define MODINOUT 0x00000c00
#define MSKMOD (~MODINOUT)
#define MODALONE(X) ((X) & (~MSKMOD)) /* Macro */
/* Le protocole
*/
#define CCALLEVEL 1
|