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
|