(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "RPC2") (IL:FILECREATED "14-Sep-94 18:25:36" ("compiled on " IL:|{DSK}lispusers>RPCOS.;1|) "28-Jul-94 17:28:46" IL:|bcompl'd| IL:|in| "Medley 25-Aug-94 ..." IL:|dated| "25-Aug-94 10:02:49") (IL:FILECREATED "23-May-88 18:55:42" IL:{ERIS}RPC>CURRENT>RPCOS.\;11 30632 IL:|changes| IL:|to:| (IL:VARS IL:RPCOSCOMS) IL:|previous| IL:|date:| "20-May-88 12:56:30" IL:{ERIS}RPC>CURRENT>RPCOS.\;9) (IL:PRETTYCOMPRINT IL:RPCOSCOMS) (IL:RPAQQ IL:RPCOSCOMS ((IL:* IL:|;;| "OS networking code") (IL:PROPS (IL:RPCOS IL:MAKEFILE-ENVIRONMENT IL:FILETYPE)) (EVAL-WHEN (COMPILE) (IL:FILES (IL:LOADCOMP) IL:LLSUBRS)) (IL:FUNCTIONS OS-EXCHANGE-UDP-PACKETS OS-RESOLVE-HOST READ-STRING-ADDRESS) (IL:* IL:|;;| "XDR data block") (IL:RECORDS XDR-DATA-BLOCK) (IL:VARIABLES *CELLS-PER-XDR-DATA-BLOCK* *FREE-XDR-DATA-BLOCKS* *MAX-XDR-DATA-BLOCKS* *WORDS-PER-CELL*) (IL:FUNCTIONS XDR-INITIALIZE-CACHE ALLOCATE-XDR-DATA-BLOCK RECLAIM-XDR-DATA-BLOCK) (IL:FUNCTIONS FOLDLO UNFOLD) (IL:FUNCTIONS OS-UDP-GETBYTE OS-UDP-GETBYTES OS-UDP-PUTBYTE OS-UDP-PUTBYTES OS-UDP-GETCELL OS-UDP-PUTCELL OS-UDP-GETOFFSET OS-UDP-PUTOFFSET) (EVAL-WHEN (LOAD) (IL:P (XDR-INITIALIZE-CACHE))))) (IL:PUTPROPS IL:RPCOS IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE "RPC2")) (IL:PUTPROPS IL:RPCOS IL:FILETYPE :COMPILE-FILE) (EVAL-WHEN (COMPILE) (IL:FILESLOAD (IL:LOADCOMP) IL:LLSUBRS)) (DEFUN OS-EXCHANGE-UDP-PACKETS (RPCSTREAM MSEC-UNTIL-TIMEOUT MSEC-BETWEEN-TRIES ERRORFLG) (LET (( XDR-ARG-BLOCK (RPC-STREAM-OUTSTREAM RPCSTREAM)) (XDR-ARG-BLOCK-LENGTH (RPC-STREAM-OUTBYTEPTR RPCSTREAM )) (XDR-RESULT-BLOCK (RPC-STREAM-INSTREAM RPCSTREAM))) (SETQ XDR-ARG-BLOCK (IL:\\DTEST XDR-ARG-BLOCK ( QUOTE XDR-DATA-BLOCK))) (SETQ XDR-RESULT-BLOCK (IL:\\DTEST XDR-RESULT-BLOCK (QUOTE XDR-DATA-BLOCK))) ( IL:* IL:|;;| "Need to add a dispatch on the type of the error.") (UNLESS (IL:SUBRCALL IL:RPC-CALL ( RPC-STREAM-OS-DESTADDR RPCSTREAM) (RPC-STREAM-IPSOCKET RPCSTREAM) XDR-ARG-BLOCK XDR-RESULT-BLOCK MSEC-UNTIL-TIMEOUT MSEC-BETWEEN-TRIES XDR-ARG-BLOCK-LENGTH) (CASE ERRORFLG (:NOERRORS (THROW (QUOTE GOFORIT) NIL)) (:RETURNERRORS (THROW (QUOTE GOFORIT) (QUOTE (ERROR TIMEOUT)))) (OTHERWISE (ERROR "RPC Call failed")))) (IL:* IL:|;;| "Put the result block in the instream.") (SETF ( RPC-STREAM-INSTREAM RPCSTREAM) XDR-RESULT-BLOCK) (PROGN (WHEN *DEBUG* (FORMAT-T "It returned!~%") (AND (NUMBERP *DEBUG*) (> *DEBUG* 5) (BREAK "Reply Packet in INSTREAM of RPC-STREAM *RPCSTREAM*"))) T))) (DEFUN OS-RESOLVE-HOST (DESTINATION) (IL:* IL:|;;;| " Convert an address from it's string representation into a number.") (LET ((ADDR (READ-STRING-ADDRESS (IF (SYMBOLP DESTINATION) DESTINATION (INTERN DESTINATION "IL"))))) (IF ADDR ADDR DESTINATION))) (DEFUN READ-STRING-ADDRESS (STRING-OR-ATOM) (IL:|for| IL:CHAR IL:|instring| (IL:MKSTRING STRING-OR-ATOM) IL:|bind| (IL:RESULT IL:_ (IL:NCREATE (QUOTE IL:FIXP))) (IL:INDEX IL:_ 0) BYTE IL:|do| (IL:|if| (> IL:INDEX 3) IL:|then| (IL:* IL:\; "Got 3 parts and there's still more to go, must be bad" ) (RETURN NIL) IL:|elseif| (EQ IL:CHAR (IL:CHARCODE IL:\.)) IL:|then| (IL:|if| BYTE IL:|then| ( IL:\\PUTBASEBYTE IL:RESULT IL:INDEX BYTE)) (IL:SETQ BYTE NIL) (IL:|add| IL:INDEX 1) IL:|elseif| (AND ( IL:SETQ IL:CHAR (DIGIT-CHAR-P (INT-CHAR IL:CHAR))) (< (IL:SETQ BYTE (+ (IL:|if| BYTE IL:|then| (IL:TIMES BYTE 10) IL:|else| 0) IL:CHAR)) 256)) IL:|then| (IL:* IL:\; "Accumulated decimal digit, and we haven't overflowed a byte yet") IL:|else| (IL:* IL:\; "Malformed") (RETURN NIL)) IL:|finally| (IL:|if| BYTE IL:|then| (IL:\\PUTBASEBYTE IL:RESULT IL:INDEX BYTE) (IL:|add| IL:INDEX 1)) (RETURN (AND (EQ IL:INDEX 4) IL:RESULT)))) (IL:DATATYPE XDR-DATA-BLOCK ((XDR-PUBLIC 500 IL:WORD))) (IL:/DECLAREDATATYPE (QUOTE XDR-DATA-BLOCK) (QUOTE (IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD IL:WORD )) (QUOTE ((XDR-DATA-BLOCK 0 (IL:BITS . 15)) (XDR-DATA-BLOCK 1 (IL:BITS . 15)) (XDR-DATA-BLOCK 2 ( IL:BITS . 15)) (XDR-DATA-BLOCK 3 (IL:BITS . 15)) (XDR-DATA-BLOCK 4 (IL:BITS . 15)) (XDR-DATA-BLOCK 5 ( IL:BITS . 15)) (XDR-DATA-BLOCK 6 (IL:BITS . 15)) (XDR-DATA-BLOCK 7 (IL:BITS . 15)) (XDR-DATA-BLOCK 8 ( IL:BITS . 15)) (XDR-DATA-BLOCK 9 (IL:BITS . 15)) (XDR-DATA-BLOCK 10 (IL:BITS . 15)) (XDR-DATA-BLOCK 11 (IL:BITS . 15)) (XDR-DATA-BLOCK 12 (IL:BITS . 15)) (XDR-DATA-BLOCK 13 (IL:BITS . 15)) (XDR-DATA-BLOCK 14 (IL:BITS . 15)) (XDR-DATA-BLOCK 15 (IL:BITS . 15)) (XDR-DATA-BLOCK 16 (IL:BITS . 15)) ( XDR-DATA-BLOCK 17 (IL:BITS . 15)) (XDR-DATA-BLOCK 18 (IL:BITS . 15)) (XDR-DATA-BLOCK 19 (IL:BITS . 15) ) (XDR-DATA-BLOCK 20 (IL:BITS . 15)) (XDR-DATA-BLOCK 21 (IL:BITS . 15)) (XDR-DATA-BLOCK 22 (IL:BITS . 15)) (XDR-DATA-BLOCK 23 (IL:BITS . 15)) (XDR-DATA-BLOCK 24 (IL:BITS . 15)) (XDR-DATA-BLOCK 25 (IL:BITS . 15)) (XDR-DATA-BLOCK 26 (IL:BITS . 15)) (XDR-DATA-BLOCK 27 (IL:BITS . 15)) (XDR-DATA-BLOCK 28 ( IL:BITS . 15)) (XDR-DATA-BLOCK 29 (IL:BITS . 15)) (XDR-DATA-BLOCK 30 (IL:BITS . 15)) (XDR-DATA-BLOCK 31 (IL:BITS . 15)) (XDR-DATA-BLOCK 32 (IL:BITS . 15)) (XDR-DATA-BLOCK 33 (IL:BITS . 15)) ( XDR-DATA-BLOCK 34 (IL:BITS . 15)) (XDR-DATA-BLOCK 35 (IL:BITS . 15)) (XDR-DATA-BLOCK 36 (IL:BITS . 15) ) (XDR-DATA-BLOCK 37 (IL:BITS . 15)) (XDR-DATA-BLOCK 38 (IL:BITS . 15)) (XDR-DATA-BLOCK 39 (IL:BITS . 15)) (XDR-DATA-BLOCK 40 (IL:BITS . 15)) (XDR-DATA-BLOCK 41 (IL:BITS . 15)) (XDR-DATA-BLOCK 42 (IL:BITS . 15)) (XDR-DATA-BLOCK 43 (IL:BITS . 15)) (XDR-DATA-BLOCK 44 (IL:BITS . 15)) (XDR-DATA-BLOCK 45 ( IL:BITS . 15)) (XDR-DATA-BLOCK 46 (IL:BITS . 15)) (XDR-DATA-BLOCK 47 (IL:BITS . 15)) (XDR-DATA-BLOCK 48 (IL:BITS . 15)) (XDR-DATA-BLOCK 49 (IL:BITS . 15)) (XDR-DATA-BLOCK 50 (IL:BITS . 15)) ( XDR-DATA-BLOCK 51 (IL:BITS . 15)) (XDR-DATA-BLOCK 52 (IL:BITS . 15)) (XDR-DATA-BLOCK 53 (IL:BITS . 15) ) (XDR-DATA-BLOCK 54 (IL:BITS . 15)) (XDR-DATA-BLOCK 55 (IL:BITS . 15)) (XDR-DATA-BLOCK 56 (IL:BITS . 15)) (XDR-DATA-BLOCK 57 (IL:BITS . 15)) (XDR-DATA-BLOCK 58 (IL:BITS . 15)) (XDR-DATA-BLOCK 59 (IL:BITS . 15)) (XDR-DATA-BLOCK 60 (IL:BITS . 15)) (XDR-DATA-BLOCK 61 (IL:BITS . 15)) (XDR-DATA-BLOCK 62 ( IL:BITS . 15)) (XDR-DATA-BLOCK 63 (IL:BITS . 15)) (XDR-DATA-BLOCK 64 (IL:BITS . 15)) (XDR-DATA-BLOCK 65 (IL:BITS . 15)) (XDR-DATA-BLOCK 66 (IL:BITS . 15)) (XDR-DATA-BLOCK 67 (IL:BITS . 15)) ( XDR-DATA-BLOCK 68 (IL:BITS . 15)) (XDR-DATA-BLOCK 69 (IL:BITS . 15)) (XDR-DATA-BLOCK 70 (IL:BITS . 15) ) (XDR-DATA-BLOCK 71 (IL:BITS . 15)) (XDR-DATA-BLOCK 72 (IL:BITS . 15)) (XDR-DATA-BLOCK 73 (IL:BITS . 15)) (XDR-DATA-BLOCK 74 (IL:BITS . 15)) (XDR-DATA-BLOCK 75 (IL:BITS . 15)) (XDR-DATA-BLOCK 76 (IL:BITS . 15)) (XDR-DATA-BLOCK 77 (IL:BITS . 15)) (XDR-DATA-BLOCK 78 (IL:BITS . 15)) (XDR-DATA-BLOCK 79 ( IL:BITS . 15)) (XDR-DATA-BLOCK 80 (IL:BITS . 15)) (XDR-DATA-BLOCK 81 (IL:BITS . 15)) (XDR-DATA-BLOCK 82 (IL:BITS . 15)) (XDR-DATA-BLOCK 83 (IL:BITS . 15)) (XDR-DATA-BLOCK 84 (IL:BITS . 15)) ( XDR-DATA-BLOCK 85 (IL:BITS . 15)) (XDR-DATA-BLOCK 86 (IL:BITS . 15)) (XDR-DATA-BLOCK 87 (IL:BITS . 15) ) (XDR-DATA-BLOCK 88 (IL:BITS . 15)) (XDR-DATA-BLOCK 89 (IL:BITS . 15)) (XDR-DATA-BLOCK 90 (IL:BITS . 15)) (XDR-DATA-BLOCK 91 (IL:BITS . 15)) (XDR-DATA-BLOCK 92 (IL:BITS . 15)) (XDR-DATA-BLOCK 93 (IL:BITS . 15)) (XDR-DATA-BLOCK 94 (IL:BITS . 15)) (XDR-DATA-BLOCK 95 (IL:BITS . 15)) (XDR-DATA-BLOCK 96 ( IL:BITS . 15)) (XDR-DATA-BLOCK 97 (IL:BITS . 15)) (XDR-DATA-BLOCK 98 (IL:BITS . 15)) (XDR-DATA-BLOCK 99 (IL:BITS . 15)) (XDR-DATA-BLOCK 100 (IL:BITS . 15)) (XDR-DATA-BLOCK 101 (IL:BITS . 15)) ( XDR-DATA-BLOCK 102 (IL:BITS . 15)) (XDR-DATA-BLOCK 103 (IL:BITS . 15)) (XDR-DATA-BLOCK 104 (IL:BITS . 15)) (XDR-DATA-BLOCK 105 (IL:BITS . 15)) (XDR-DATA-BLOCK 106 (IL:BITS . 15)) (XDR-DATA-BLOCK 107 ( IL:BITS . 15)) (XDR-DATA-BLOCK 108 (IL:BITS . 15)) (XDR-DATA-BLOCK 109 (IL:BITS . 15)) (XDR-DATA-BLOCK 110 (IL:BITS . 15)) (XDR-DATA-BLOCK 111 (IL:BITS . 15)) (XDR-DATA-BLOCK 112 (IL:BITS . 15)) ( XDR-DATA-BLOCK 113 (IL:BITS . 15)) (XDR-DATA-BLOCK 114 (IL:BITS . 15)) (XDR-DATA-BLOCK 115 (IL:BITS . 15)) (XDR-DATA-BLOCK 116 (IL:BITS . 15)) (XDR-DATA-BLOCK 117 (IL:BITS . 15)) (XDR-DATA-BLOCK 118 ( IL:BITS . 15)) (XDR-DATA-BLOCK 119 (IL:BITS . 15)) (XDR-DATA-BLOCK 120 (IL:BITS . 15)) (XDR-DATA-BLOCK 121 (IL:BITS . 15)) (XDR-DATA-BLOCK 122 (IL:BITS . 15)) (XDR-DATA-BLOCK 123 (IL:BITS . 15)) ( XDR-DATA-BLOCK 124 (IL:BITS . 15)) (XDR-DATA-BLOCK 125 (IL:BITS . 15)) (XDR-DATA-BLOCK 126 (IL:BITS . 15)) (XDR-DATA-BLOCK 127 (IL:BITS . 15)) (XDR-DATA-BLOCK 128 (IL:BITS . 15)) (XDR-DATA-BLOCK 129 ( IL:BITS . 15)) (XDR-DATA-BLOCK 130 (IL:BITS . 15)) (XDR-DATA-BLOCK 131 (IL:BITS . 15)) (XDR-DATA-BLOCK 132 (IL:BITS . 15)) (XDR-DATA-BLOCK 133 (IL:BITS . 15)) (XDR-DATA-BLOCK 134 (IL:BITS . 15)) ( XDR-DATA-BLOCK 135 (IL:BITS . 15)) (XDR-DATA-BLOCK 136 (IL:BITS . 15)) (XDR-DATA-BLOCK 137 (IL:BITS . 15)) (XDR-DATA-BLOCK 138 (IL:BITS . 15)) (XDR-DATA-BLOCK 139 (IL:BITS . 15)) (XDR-DATA-BLOCK 140 ( IL:BITS . 15)) (XDR-DATA-BLOCK 141 (IL:BITS . 15)) (XDR-DATA-BLOCK 142 (IL:BITS . 15)) (XDR-DATA-BLOCK 143 (IL:BITS . 15)) (XDR-DATA-BLOCK 144 (IL:BITS . 15)) (XDR-DATA-BLOCK 145 (IL:BITS . 15)) ( XDR-DATA-BLOCK 146 (IL:BITS . 15)) (XDR-DATA-BLOCK 147 (IL:BITS . 15)) (XDR-DATA-BLOCK 148 (IL:BITS . 15)) (XDR-DATA-BLOCK 149 (IL:BITS . 15)) (XDR-DATA-BLOCK 150 (IL:BITS . 15)) (XDR-DATA-BLOCK 151 ( IL:BITS . 15)) (XDR-DATA-BLOCK 152 (IL:BITS . 15)) (XDR-DATA-BLOCK 153 (IL:BITS . 15)) (XDR-DATA-BLOCK 154 (IL:BITS . 15)) (XDR-DATA-BLOCK 155 (IL:BITS . 15)) (XDR-DATA-BLOCK 156 (IL:BITS . 15)) ( XDR-DATA-BLOCK 157 (IL:BITS . 15)) (XDR-DATA-BLOCK 158 (IL:BITS . 15)) (XDR-DATA-BLOCK 159 (IL:BITS . 15)) (XDR-DATA-BLOCK 160 (IL:BITS . 15)) (XDR-DATA-BLOCK 161 (IL:BITS . 15)) (XDR-DATA-BLOCK 162 ( IL:BITS . 15)) (XDR-DATA-BLOCK 163 (IL:BITS . 15)) (XDR-DATA-BLOCK 164 (IL:BITS . 15)) (XDR-DATA-BLOCK 165 (IL:BITS . 15)) (XDR-DATA-BLOCK 166 (IL:BITS . 15)) (XDR-DATA-BLOCK 167 (IL:BITS . 15)) ( XDR-DATA-BLOCK 168 (IL:BITS . 15)) (XDR-DATA-BLOCK 169 (IL:BITS . 15)) (XDR-DATA-BLOCK 170 (IL:BITS . 15)) (XDR-DATA-BLOCK 171 (IL:BITS . 15)) (XDR-DATA-BLOCK 172 (IL:BITS . 15)) (XDR-DATA-BLOCK 173 ( IL:BITS . 15)) (XDR-DATA-BLOCK 174 (IL:BITS . 15)) (XDR-DATA-BLOCK 175 (IL:BITS . 15)) (XDR-DATA-BLOCK 176 (IL:BITS . 15)) (XDR-DATA-BLOCK 177 (IL:BITS . 15)) (XDR-DATA-BLOCK 178 (IL:BITS . 15)) ( XDR-DATA-BLOCK 179 (IL:BITS . 15)) (XDR-DATA-BLOCK 180 (IL:BITS . 15)) (XDR-DATA-BLOCK 181 (IL:BITS . 15)) (XDR-DATA-BLOCK 182 (IL:BITS . 15)) (XDR-DATA-BLOCK 183 (IL:BITS . 15)) (XDR-DATA-BLOCK 184 ( IL:BITS . 15)) (XDR-DATA-BLOCK 185 (IL:BITS . 15)) (XDR-DATA-BLOCK 186 (IL:BITS . 15)) (XDR-DATA-BLOCK 187 (IL:BITS . 15)) (XDR-DATA-BLOCK 188 (IL:BITS . 15)) (XDR-DATA-BLOCK 189 (IL:BITS . 15)) ( XDR-DATA-BLOCK 190 (IL:BITS . 15)) (XDR-DATA-BLOCK 191 (IL:BITS . 15)) (XDR-DATA-BLOCK 192 (IL:BITS . 15)) (XDR-DATA-BLOCK 193 (IL:BITS . 15)) (XDR-DATA-BLOCK 194 (IL:BITS . 15)) (XDR-DATA-BLOCK 195 ( IL:BITS . 15)) (XDR-DATA-BLOCK 196 (IL:BITS . 15)) (XDR-DATA-BLOCK 197 (IL:BITS . 15)) (XDR-DATA-BLOCK 198 (IL:BITS . 15)) (XDR-DATA-BLOCK 199 (IL:BITS . 15)) (XDR-DATA-BLOCK 200 (IL:BITS . 15)) ( XDR-DATA-BLOCK 201 (IL:BITS . 15)) (XDR-DATA-BLOCK 202 (IL:BITS . 15)) (XDR-DATA-BLOCK 203 (IL:BITS . 15)) (XDR-DATA-BLOCK 204 (IL:BITS . 15)) (XDR-DATA-BLOCK 205 (IL:BITS . 15)) (XDR-DATA-BLOCK 206 ( IL:BITS . 15)) (XDR-DATA-BLOCK 207 (IL:BITS . 15)) (XDR-DATA-BLOCK 208 (IL:BITS . 15)) (XDR-DATA-BLOCK 209 (IL:BITS . 15)) (XDR-DATA-BLOCK 210 (IL:BITS . 15)) (XDR-DATA-BLOCK 211 (IL:BITS . 15)) ( XDR-DATA-BLOCK 212 (IL:BITS . 15)) (XDR-DATA-BLOCK 213 (IL:BITS . 15)) (XDR-DATA-BLOCK 214 (IL:BITS . 15)) (XDR-DATA-BLOCK 215 (IL:BITS . 15)) (XDR-DATA-BLOCK 216 (IL:BITS . 15)) (XDR-DATA-BLOCK 217 ( IL:BITS . 15)) (XDR-DATA-BLOCK 218 (IL:BITS . 15)) (XDR-DATA-BLOCK 219 (IL:BITS . 15)) (XDR-DATA-BLOCK 220 (IL:BITS . 15)) (XDR-DATA-BLOCK 221 (IL:BITS . 15)) (XDR-DATA-BLOCK 222 (IL:BITS . 15)) ( XDR-DATA-BLOCK 223 (IL:BITS . 15)) (XDR-DATA-BLOCK 224 (IL:BITS . 15)) (XDR-DATA-BLOCK 225 (IL:BITS . 15)) (XDR-DATA-BLOCK 226 (IL:BITS . 15)) (XDR-DATA-BLOCK 227 (IL:BITS . 15)) (XDR-DATA-BLOCK 228 ( IL:BITS . 15)) (XDR-DATA-BLOCK 229 (IL:BITS . 15)) (XDR-DATA-BLOCK 230 (IL:BITS . 15)) (XDR-DATA-BLOCK 231 (IL:BITS . 15)) (XDR-DATA-BLOCK 232 (IL:BITS . 15)) (XDR-DATA-BLOCK 233 (IL:BITS . 15)) ( XDR-DATA-BLOCK 234 (IL:BITS . 15)) (XDR-DATA-BLOCK 235 (IL:BITS . 15)) (XDR-DATA-BLOCK 236 (IL:BITS . 15)) (XDR-DATA-BLOCK 237 (IL:BITS . 15)) (XDR-DATA-BLOCK 238 (IL:BITS . 15)) (XDR-DATA-BLOCK 239 ( IL:BITS . 15)) (XDR-DATA-BLOCK 240 (IL:BITS . 15)) (XDR-DATA-BLOCK 241 (IL:BITS . 15)) (XDR-DATA-BLOCK 242 (IL:BITS . 15)) (XDR-DATA-BLOCK 243 (IL:BITS . 15)) (XDR-DATA-BLOCK 244 (IL:BITS . 15)) ( XDR-DATA-BLOCK 245 (IL:BITS . 15)) (XDR-DATA-BLOCK 246 (IL:BITS . 15)) (XDR-DATA-BLOCK 247 (IL:BITS . 15)) (XDR-DATA-BLOCK 248 (IL:BITS . 15)) (XDR-DATA-BLOCK 249 (IL:BITS . 15)) (XDR-DATA-BLOCK 250 ( IL:BITS . 15)) (XDR-DATA-BLOCK 251 (IL:BITS . 15)) (XDR-DATA-BLOCK 252 (IL:BITS . 15)) (XDR-DATA-BLOCK 253 (IL:BITS . 15)) (XDR-DATA-BLOCK 254 (IL:BITS . 15)) (XDR-DATA-BLOCK 255 (IL:BITS . 15)) ( XDR-DATA-BLOCK 256 (IL:BITS . 15)) (XDR-DATA-BLOCK 257 (IL:BITS . 15)) (XDR-DATA-BLOCK 258 (IL:BITS . 15)) (XDR-DATA-BLOCK 259 (IL:BITS . 15)) (XDR-DATA-BLOCK 260 (IL:BITS . 15)) (XDR-DATA-BLOCK 261 ( IL:BITS . 15)) (XDR-DATA-BLOCK 262 (IL:BITS . 15)) (XDR-DATA-BLOCK 263 (IL:BITS . 15)) (XDR-DATA-BLOCK 264 (IL:BITS . 15)) (XDR-DATA-BLOCK 265 (IL:BITS . 15)) (XDR-DATA-BLOCK 266 (IL:BITS . 15)) ( XDR-DATA-BLOCK 267 (IL:BITS . 15)) (XDR-DATA-BLOCK 268 (IL:BITS . 15)) (XDR-DATA-BLOCK 269 (IL:BITS . 15)) (XDR-DATA-BLOCK 270 (IL:BITS . 15)) (XDR-DATA-BLOCK 271 (IL:BITS . 15)) (XDR-DATA-BLOCK 272 ( IL:BITS . 15)) (XDR-DATA-BLOCK 273 (IL:BITS . 15)) (XDR-DATA-BLOCK 274 (IL:BITS . 15)) (XDR-DATA-BLOCK 275 (IL:BITS . 15)) (XDR-DATA-BLOCK 276 (IL:BITS . 15)) (XDR-DATA-BLOCK 277 (IL:BITS . 15)) ( XDR-DATA-BLOCK 278 (IL:BITS . 15)) (XDR-DATA-BLOCK 279 (IL:BITS . 15)) (XDR-DATA-BLOCK 280 (IL:BITS . 15)) (XDR-DATA-BLOCK 281 (IL:BITS . 15)) (XDR-DATA-BLOCK 282 (IL:BITS . 15)) (XDR-DATA-BLOCK 283 ( IL:BITS . 15)) (XDR-DATA-BLOCK 284 (IL:BITS . 15)) (XDR-DATA-BLOCK 285 (IL:BITS . 15)) (XDR-DATA-BLOCK 286 (IL:BITS . 15)) (XDR-DATA-BLOCK 287 (IL:BITS . 15)) (XDR-DATA-BLOCK 288 (IL:BITS . 15)) ( XDR-DATA-BLOCK 289 (IL:BITS . 15)) (XDR-DATA-BLOCK 290 (IL:BITS . 15)) (XDR-DATA-BLOCK 291 (IL:BITS . 15)) (XDR-DATA-BLOCK 292 (IL:BITS . 15)) (XDR-DATA-BLOCK 293 (IL:BITS . 15)) (XDR-DATA-BLOCK 294 ( IL:BITS . 15)) (XDR-DATA-BLOCK 295 (IL:BITS . 15)) (XDR-DATA-BLOCK 296 (IL:BITS . 15)) (XDR-DATA-BLOCK 297 (IL:BITS . 15)) (XDR-DATA-BLOCK 298 (IL:BITS . 15)) (XDR-DATA-BLOCK 299 (IL:BITS . 15)) ( XDR-DATA-BLOCK 300 (IL:BITS . 15)) (XDR-DATA-BLOCK 301 (IL:BITS . 15)) (XDR-DATA-BLOCK 302 (IL:BITS . 15)) (XDR-DATA-BLOCK 303 (IL:BITS . 15)) (XDR-DATA-BLOCK 304 (IL:BITS . 15)) (XDR-DATA-BLOCK 305 ( IL:BITS . 15)) (XDR-DATA-BLOCK 306 (IL:BITS . 15)) (XDR-DATA-BLOCK 307 (IL:BITS . 15)) (XDR-DATA-BLOCK 308 (IL:BITS . 15)) (XDR-DATA-BLOCK 309 (IL:BITS . 15)) (XDR-DATA-BLOCK 310 (IL:BITS . 15)) ( XDR-DATA-BLOCK 311 (IL:BITS . 15)) (XDR-DATA-BLOCK 312 (IL:BITS . 15)) (XDR-DATA-BLOCK 313 (IL:BITS . 15)) (XDR-DATA-BLOCK 314 (IL:BITS . 15)) (XDR-DATA-BLOCK 315 (IL:BITS . 15)) (XDR-DATA-BLOCK 316 ( IL:BITS . 15)) (XDR-DATA-BLOCK 317 (IL:BITS . 15)) (XDR-DATA-BLOCK 318 (IL:BITS . 15)) (XDR-DATA-BLOCK 319 (IL:BITS . 15)) (XDR-DATA-BLOCK 320 (IL:BITS . 15)) (XDR-DATA-BLOCK 321 (IL:BITS . 15)) ( XDR-DATA-BLOCK 322 (IL:BITS . 15)) (XDR-DATA-BLOCK 323 (IL:BITS . 15)) (XDR-DATA-BLOCK 324 (IL:BITS . 15)) (XDR-DATA-BLOCK 325 (IL:BITS . 15)) (XDR-DATA-BLOCK 326 (IL:BITS . 15)) (XDR-DATA-BLOCK 327 ( IL:BITS . 15)) (XDR-DATA-BLOCK 328 (IL:BITS . 15)) (XDR-DATA-BLOCK 329 (IL:BITS . 15)) (XDR-DATA-BLOCK 330 (IL:BITS . 15)) (XDR-DATA-BLOCK 331 (IL:BITS . 15)) (XDR-DATA-BLOCK 332 (IL:BITS . 15)) ( XDR-DATA-BLOCK 333 (IL:BITS . 15)) (XDR-DATA-BLOCK 334 (IL:BITS . 15)) (XDR-DATA-BLOCK 335 (IL:BITS . 15)) (XDR-DATA-BLOCK 336 (IL:BITS . 15)) (XDR-DATA-BLOCK 337 (IL:BITS . 15)) (XDR-DATA-BLOCK 338 ( IL:BITS . 15)) (XDR-DATA-BLOCK 339 (IL:BITS . 15)) (XDR-DATA-BLOCK 340 (IL:BITS . 15)) (XDR-DATA-BLOCK 341 (IL:BITS . 15)) (XDR-DATA-BLOCK 342 (IL:BITS . 15)) (XDR-DATA-BLOCK 343 (IL:BITS . 15)) ( XDR-DATA-BLOCK 344 (IL:BITS . 15)) (XDR-DATA-BLOCK 345 (IL:BITS . 15)) (XDR-DATA-BLOCK 346 (IL:BITS . 15)) (XDR-DATA-BLOCK 347 (IL:BITS . 15)) (XDR-DATA-BLOCK 348 (IL:BITS . 15)) (XDR-DATA-BLOCK 349 ( IL:BITS . 15)) (XDR-DATA-BLOCK 350 (IL:BITS . 15)) (XDR-DATA-BLOCK 351 (IL:BITS . 15)) (XDR-DATA-BLOCK 352 (IL:BITS . 15)) (XDR-DATA-BLOCK 353 (IL:BITS . 15)) (XDR-DATA-BLOCK 354 (IL:BITS . 15)) ( XDR-DATA-BLOCK 355 (IL:BITS . 15)) (XDR-DATA-BLOCK 356 (IL:BITS . 15)) (XDR-DATA-BLOCK 357 (IL:BITS . 15)) (XDR-DATA-BLOCK 358 (IL:BITS . 15)) (XDR-DATA-BLOCK 359 (IL:BITS . 15)) (XDR-DATA-BLOCK 360 ( IL:BITS . 15)) (XDR-DATA-BLOCK 361 (IL:BITS . 15)) (XDR-DATA-BLOCK 362 (IL:BITS . 15)) (XDR-DATA-BLOCK 363 (IL:BITS . 15)) (XDR-DATA-BLOCK 364 (IL:BITS . 15)) (XDR-DATA-BLOCK 365 (IL:BITS . 15)) ( XDR-DATA-BLOCK 366 (IL:BITS . 15)) (XDR-DATA-BLOCK 367 (IL:BITS . 15)) (XDR-DATA-BLOCK 368 (IL:BITS . 15)) (XDR-DATA-BLOCK 369 (IL:BITS . 15)) (XDR-DATA-BLOCK 370 (IL:BITS . 15)) (XDR-DATA-BLOCK 371 ( IL:BITS . 15)) (XDR-DATA-BLOCK 372 (IL:BITS . 15)) (XDR-DATA-BLOCK 373 (IL:BITS . 15)) (XDR-DATA-BLOCK 374 (IL:BITS . 15)) (XDR-DATA-BLOCK 375 (IL:BITS . 15)) (XDR-DATA-BLOCK 376 (IL:BITS . 15)) ( XDR-DATA-BLOCK 377 (IL:BITS . 15)) (XDR-DATA-BLOCK 378 (IL:BITS . 15)) (XDR-DATA-BLOCK 379 (IL:BITS . 15)) (XDR-DATA-BLOCK 380 (IL:BITS . 15)) (XDR-DATA-BLOCK 381 (IL:BITS . 15)) (XDR-DATA-BLOCK 382 ( IL:BITS . 15)) (XDR-DATA-BLOCK 383 (IL:BITS . 15)) (XDR-DATA-BLOCK 384 (IL:BITS . 15)) (XDR-DATA-BLOCK 385 (IL:BITS . 15)) (XDR-DATA-BLOCK 386 (IL:BITS . 15)) (XDR-DATA-BLOCK 387 (IL:BITS . 15)) ( XDR-DATA-BLOCK 388 (IL:BITS . 15)) (XDR-DATA-BLOCK 389 (IL:BITS . 15)) (XDR-DATA-BLOCK 390 (IL:BITS . 15)) (XDR-DATA-BLOCK 391 (IL:BITS . 15)) (XDR-DATA-BLOCK 392 (IL:BITS . 15)) (XDR-DATA-BLOCK 393 ( IL:BITS . 15)) (XDR-DATA-BLOCK 394 (IL:BITS . 15)) (XDR-DATA-BLOCK 395 (IL:BITS . 15)) (XDR-DATA-BLOCK 396 (IL:BITS . 15)) (XDR-DATA-BLOCK 397 (IL:BITS . 15)) (XDR-DATA-BLOCK 398 (IL:BITS . 15)) ( XDR-DATA-BLOCK 399 (IL:BITS . 15)) (XDR-DATA-BLOCK 400 (IL:BITS . 15)) (XDR-DATA-BLOCK 401 (IL:BITS . 15)) (XDR-DATA-BLOCK 402 (IL:BITS . 15)) (XDR-DATA-BLOCK 403 (IL:BITS . 15)) (XDR-DATA-BLOCK 404 ( IL:BITS . 15)) (XDR-DATA-BLOCK 405 (IL:BITS . 15)) (XDR-DATA-BLOCK 406 (IL:BITS . 15)) (XDR-DATA-BLOCK 407 (IL:BITS . 15)) (XDR-DATA-BLOCK 408 (IL:BITS . 15)) (XDR-DATA-BLOCK 409 (IL:BITS . 15)) ( XDR-DATA-BLOCK 410 (IL:BITS . 15)) (XDR-DATA-BLOCK 411 (IL:BITS . 15)) (XDR-DATA-BLOCK 412 (IL:BITS . 15)) (XDR-DATA-BLOCK 413 (IL:BITS . 15)) (XDR-DATA-BLOCK 414 (IL:BITS . 15)) (XDR-DATA-BLOCK 415 ( IL:BITS . 15)) (XDR-DATA-BLOCK 416 (IL:BITS . 15)) (XDR-DATA-BLOCK 417 (IL:BITS . 15)) (XDR-DATA-BLOCK 418 (IL:BITS . 15)) (XDR-DATA-BLOCK 419 (IL:BITS . 15)) (XDR-DATA-BLOCK 420 (IL:BITS . 15)) ( XDR-DATA-BLOCK 421 (IL:BITS . 15)) (XDR-DATA-BLOCK 422 (IL:BITS . 15)) (XDR-DATA-BLOCK 423 (IL:BITS . 15)) (XDR-DATA-BLOCK 424 (IL:BITS . 15)) (XDR-DATA-BLOCK 425 (IL:BITS . 15)) (XDR-DATA-BLOCK 426 ( IL:BITS . 15)) (XDR-DATA-BLOCK 427 (IL:BITS . 15)) (XDR-DATA-BLOCK 428 (IL:BITS . 15)) (XDR-DATA-BLOCK 429 (IL:BITS . 15)) (XDR-DATA-BLOCK 430 (IL:BITS . 15)) (XDR-DATA-BLOCK 431 (IL:BITS . 15)) ( XDR-DATA-BLOCK 432 (IL:BITS . 15)) (XDR-DATA-BLOCK 433 (IL:BITS . 15)) (XDR-DATA-BLOCK 434 (IL:BITS . 15)) (XDR-DATA-BLOCK 435 (IL:BITS . 15)) (XDR-DATA-BLOCK 436 (IL:BITS . 15)) (XDR-DATA-BLOCK 437 ( IL:BITS . 15)) (XDR-DATA-BLOCK 438 (IL:BITS . 15)) (XDR-DATA-BLOCK 439 (IL:BITS . 15)) (XDR-DATA-BLOCK 440 (IL:BITS . 15)) (XDR-DATA-BLOCK 441 (IL:BITS . 15)) (XDR-DATA-BLOCK 442 (IL:BITS . 15)) ( XDR-DATA-BLOCK 443 (IL:BITS . 15)) (XDR-DATA-BLOCK 444 (IL:BITS . 15)) (XDR-DATA-BLOCK 445 (IL:BITS . 15)) (XDR-DATA-BLOCK 446 (IL:BITS . 15)) (XDR-DATA-BLOCK 447 (IL:BITS . 15)) (XDR-DATA-BLOCK 448 ( IL:BITS . 15)) (XDR-DATA-BLOCK 449 (IL:BITS . 15)) (XDR-DATA-BLOCK 450 (IL:BITS . 15)) (XDR-DATA-BLOCK 451 (IL:BITS . 15)) (XDR-DATA-BLOCK 452 (IL:BITS . 15)) (XDR-DATA-BLOCK 453 (IL:BITS . 15)) ( XDR-DATA-BLOCK 454 (IL:BITS . 15)) (XDR-DATA-BLOCK 455 (IL:BITS . 15)) (XDR-DATA-BLOCK 456 (IL:BITS . 15)) (XDR-DATA-BLOCK 457 (IL:BITS . 15)) (XDR-DATA-BLOCK 458 (IL:BITS . 15)) (XDR-DATA-BLOCK 459 ( IL:BITS . 15)) (XDR-DATA-BLOCK 460 (IL:BITS . 15)) (XDR-DATA-BLOCK 461 (IL:BITS . 15)) (XDR-DATA-BLOCK 462 (IL:BITS . 15)) (XDR-DATA-BLOCK 463 (IL:BITS . 15)) (XDR-DATA-BLOCK 464 (IL:BITS . 15)) ( XDR-DATA-BLOCK 465 (IL:BITS . 15)) (XDR-DATA-BLOCK 466 (IL:BITS . 15)) (XDR-DATA-BLOCK 467 (IL:BITS . 15)) (XDR-DATA-BLOCK 468 (IL:BITS . 15)) (XDR-DATA-BLOCK 469 (IL:BITS . 15)) (XDR-DATA-BLOCK 470 ( IL:BITS . 15)) (XDR-DATA-BLOCK 471 (IL:BITS . 15)) (XDR-DATA-BLOCK 472 (IL:BITS . 15)) (XDR-DATA-BLOCK 473 (IL:BITS . 15)) (XDR-DATA-BLOCK 474 (IL:BITS . 15)) (XDR-DATA-BLOCK 475 (IL:BITS . 15)) ( XDR-DATA-BLOCK 476 (IL:BITS . 15)) (XDR-DATA-BLOCK 477 (IL:BITS . 15)) (XDR-DATA-BLOCK 478 (IL:BITS . 15)) (XDR-DATA-BLOCK 479 (IL:BITS . 15)) (XDR-DATA-BLOCK 480 (IL:BITS . 15)) (XDR-DATA-BLOCK 481 ( IL:BITS . 15)) (XDR-DATA-BLOCK 482 (IL:BITS . 15)) (XDR-DATA-BLOCK 483 (IL:BITS . 15)) (XDR-DATA-BLOCK 484 (IL:BITS . 15)) (XDR-DATA-BLOCK 485 (IL:BITS . 15)) (XDR-DATA-BLOCK 486 (IL:BITS . 15)) ( XDR-DATA-BLOCK 487 (IL:BITS . 15)) (XDR-DATA-BLOCK 488 (IL:BITS . 15)) (XDR-DATA-BLOCK 489 (IL:BITS . 15)) (XDR-DATA-BLOCK 490 (IL:BITS . 15)) (XDR-DATA-BLOCK 491 (IL:BITS . 15)) (XDR-DATA-BLOCK 492 ( IL:BITS . 15)) (XDR-DATA-BLOCK 493 (IL:BITS . 15)) (XDR-DATA-BLOCK 494 (IL:BITS . 15)) (XDR-DATA-BLOCK 495 (IL:BITS . 15)) (XDR-DATA-BLOCK 496 (IL:BITS . 15)) (XDR-DATA-BLOCK 497 (IL:BITS . 15)) ( XDR-DATA-BLOCK 498 (IL:BITS . 15)) (XDR-DATA-BLOCK 499 (IL:BITS . 15)))) (QUOTE 500)) (DEFCONSTANT *CELLS-PER-XDR-DATA-BLOCK* 250 "Number of 32 bit cells in a data block.") (DEFGLOBALPARAMETER *FREE-XDR-DATA-BLOCKS* NIL "A list of free xdr data blocks.") (DEFGLOBALPARAMETER *MAX-XDR-DATA-BLOCKS* 5 "The maximum size of the data block cache.") (DEFCONSTANT *WORDS-PER-CELL* 2 "The number of words (16 bits) per cell.") (DEFUN XDR-INITIALIZE-CACHE NIL (LET ((CACHE-LENGTH (LENGTH *FREE-XDR-DATA-BLOCKS*))) (UNLESS (>= CACHE-LENGTH *MAX-XDR-DATA-BLOCKS*) (DOTIMES (I (- *MAX-XDR-DATA-BLOCKS* CACHE-LENGTH)) (PUSH ( IL:|create| XDR-DATA-BLOCK) *FREE-XDR-DATA-BLOCKS*))))) (DEFUN ALLOCATE-XDR-DATA-BLOCK NIL "If an xdr data block is available then return it, otherwise create one." (OR (POP *FREE-XDR-DATA-BLOCKS*) (IL:|create| XDR-DATA-BLOCK))) (DEFUN RECLAIM-XDR-DATA-BLOCK (XDR-DATA-BLOCK) (WHEN (< (LENGTH *FREE-XDR-DATA-BLOCKS*) *MAX-XDR-DATA-BLOCKS*) (PUSH XDR-DATA-BLOCK *FREE-XDR-DATA-BLOCKS*)) T) (DEFMACRO FOLDLO (FORM DIVISOR) (LET ((DIV (IF (CONSTANTP DIVISOR) (EVAL DIVISOR) DIVISOR))) (OR (AND DIV (IL:POWEROFTWOP DIV)) (IL:\\ILLEGAL.ARG DIV)) (LIST (QUOTE IL:LRSH) FORM (IL:SUB1 (IL:INTEGERLENGTH DIV))))) (DEFMACRO UNFOLD (FORM DIVISOR) (LET ((DIV (IF (CONSTANTP DIVISOR) (EVAL DIVISOR) DIVISOR))) (OR (AND DIV (IL:POWEROFTWOP DIV)) (IL:\\ILLEGAL.ARG DIV)) (LIST (QUOTE IL:LLSH) FORM (IL:SUB1 (IL:INTEGERLENGTH DIV))))) (DEFUN OS-UDP-GETBYTE (RPCSTREAM) "Get a byte from the instream of the rpcstream and increment the offset." (LET ((OFFSET ( RPC-STREAM-INBYTEPTR RPCSTREAM)) (XDR-DATA-BLOCK (RPC-STREAM-INSTREAM RPCSTREAM))) (PROG1 ( IL:\\GETBASEBYTE (IL:LOCF (IL:|fetch| XDR-PUBLIC IL:|of| (SETQ XDR-DATA-BLOCK (IL:\\DTEST XDR-DATA-BLOCK (QUOTE XDR-DATA-BLOCK))))) OFFSET) (SETF (RPC-STREAM-INBYTEPTR RPCSTREAM) (+ 1 OFFSET)) ))) (DEFUN OS-UDP-GETBYTES (RPCSTREAM NBYTES) "Get nbytes bytes from the rpcstream and increment the offset" (LET* ((XDR-DATA-BLOCK ( RPC-STREAM-INSTREAM RPCSTREAM)) (STRING (IL:ALLOCSTRING NBYTES))) (IL:\\MOVEBYTES (IL:LOCF (IL:|fetch| (XDR-DATA-BLOCK XDR-PUBLIC) IL:|of| (SETQ XDR-DATA-BLOCK (IL:\\DTEST XDR-DATA-BLOCK (QUOTE XDR-DATA-BLOCK))))) (OR (IL:SMALLP (RPC-STREAM-INBYTEPTR RPCSTREAM)) 0) (IL:|fetch| (IL:STRINGP IL:BASE ) IL:|of| STRING) (IL:|fetch| (IL:STRINGP IL:OFFST) IL:|of| STRING) NBYTES) (INCF ( RPC-STREAM-INBYTEPTR RPCSTREAM) NBYTES) STRING)) (DEFUN OS-UDP-PUTBYTE (RPCSTREAM BYTE) "Put a byte of data at the next position in the rpcstream and increment the offset." (LET (( XDR-DATA-BLOCK (RPC-STREAM-OUTSTREAM RPCSTREAM))) (IL:\\PUTBASEBYTE (IL:LOCF (IL:|fetch| XDR-PUBLIC IL:|of| (SETQ XDR-DATA-BLOCK (IL:\\DTEST XDR-DATA-BLOCK (QUOTE XDR-DATA-BLOCK))))) ( RPC-STREAM-OUTBYTEPTR RPCSTREAM) BYTE)) (INCF (RPC-STREAM-OUTBYTEPTR RPCSTREAM) 1)) (DEFUN OS-UDP-PUTBYTES (RPCSTREAM STRING) "Put a string of bytes into the outstream of rpcstream and increment the offset." (LET (( XDR-DATA-BLOCK (RPC-STREAM-OUTSTREAM RPCSTREAM)) (LENGTH (LENGTH STRING))) (IL:\\MOVEBYTES (IL:|fetch| (IL:STRINGP IL:BASE) IL:|of| STRING) (IL:|fetch| (IL:STRINGP IL:OFFST) IL:|of| STRING) (IL:LOCF ( IL:|fetch| (XDR-DATA-BLOCK XDR-PUBLIC) IL:|of| (SETQ XDR-DATA-BLOCK (IL:\\DTEST XDR-DATA-BLOCK (QUOTE XDR-DATA-BLOCK))))) (RPC-STREAM-OUTBYTEPTR RPCSTREAM) LENGTH) (INCF (RPC-STREAM-OUTBYTEPTR RPCSTREAM) LENGTH))) (DEFUN OS-UDP-GETCELL (RPCSTREAM) "Get a cell from the rpcstream and increment the offset." (LET* (( BYTEOFFSET (RPC-STREAM-INBYTEPTR RPCSTREAM)) (XDR-DATA-BLOCK (RPC-STREAM-INSTREAM RPCSTREAM)) (CELL# ( ASH BYTEOFFSET -2))) (IF (AND (>= CELL# 0) (<= CELL# *CELLS-PER-XDR-DATA-BLOCK*)) (LET ((BASE (IL:LOCF (IL:|fetch| (XDR-DATA-BLOCK XDR-PUBLIC) IL:|of| (SETQ XDR-DATA-BLOCK (IL:\\DTEST XDR-DATA-BLOCK ( QUOTE XDR-DATA-BLOCK))))))) (PROG1 (IL:\\MAKENUMBER (IL:\\GETBASE BASE (UNFOLD CELL# *WORDS-PER-CELL*) ) (IL:\\GETBASE BASE (1+ (UNFOLD CELL# *WORDS-PER-CELL*)))) (SETF (RPC-STREAM-INBYTEPTR RPCSTREAM) (+ 4 BYTEOFFSET)))) (ERROR "Attempt to fetch cell outside of buffer.")))) (DEFUN OS-UDP-PUTCELL (RPCSTREAM VALUE) (LET* ((BYTEOFFSET (RPC-STREAM-OUTBYTEPTR RPCSTREAM)) ( XDR-DATA-BLOCK (RPC-STREAM-OUTSTREAM RPCSTREAM)) (BASE (IL:LOCF (IL:|fetch| (XDR-DATA-BLOCK XDR-PUBLIC ) IL:|of| (SETQ XDR-DATA-BLOCK (IL:\\DTEST XDR-DATA-BLOCK (QUOTE XDR-DATA-BLOCK))))))) (IL:\\PUTBASEBYTE BASE BYTEOFFSET (LDB (BYTE 8 24) VALUE)) (IL:\\PUTBASEBYTE BASE (IL:\\ADDBASE BYTEOFFSET 1) (LDB ( BYTE 8 16) VALUE)) (IL:\\PUTBASEBYTE BASE (IL:\\ADDBASE BYTEOFFSET 2) (LDB (BYTE 8 8) VALUE)) ( IL:\\PUTBASEBYTE BASE (IL:\\ADDBASE BYTEOFFSET 3) (LDB (BYTE 8 0) VALUE)) (SETF (RPC-STREAM-OUTBYTEPTR RPCSTREAM) (+ 4 BYTEOFFSET)))) (DEFUN OS-UDP-GETOFFSET (RPCSTREAM) (CONS (RPC-STREAM-INSTREAM RPCSTREAM) (RPC-STREAM-INBYTEPTR RPCSTREAM))) (DEFUN OS-UDP-PUTOFFSET (RPCSTREAM BYTEOFFSET) (SETF (RPC-STREAM-INBYTEPTR RPCSTREAM) BYTEOFFSET)) (EVAL-WHEN (LOAD) (XDR-INITIALIZE-CACHE)) (IL:PUTPROPS IL:RPCOS IL:COPYRIGHT ("Xerox Corporation" 1988)) NIL