Changed prototypes on memcpy and memset to have an unsigned int for
[krb5.git] / src / include / fake-stdlib.h
1 #ifdef __STDC__
2 # define        P(s) s
3 #else
4 # define P(s) ()
5 #endif
6
7 #ifndef FD_SETSIZE
8 #include <sys/types.h>
9 #endif
10
11 #if defined(vax) || defined(__vax__)
12
13 /* following functions removed:
14    stdio
15    directory reading
16    DBM
17    signal(3)
18    alphasort(3), scandir(3)
19    accept(2)
20    bind(2)
21    connect(2)
22    getpeername(2)
23    getpriority(2)
24    getrlimit(2)
25    getrusage(2)
26    readv(2)
27    recvfrom(2)
28    recvmsg(2)
29    sendto(2)
30    sendmsg(2)
31    setrlimit(2)
32    sigvec(2)
33    sigreturn(2)
34    sigstack(2)
35    wait(2)
36    wait3(2)
37    writev(2)
38    ftime(2)
39    gtty(3)
40    inet_lnaof(3)
41    inet_netof(3)
42    in_addr(3)
43    inet_ntoa(3)
44    insque(3)
45    longjmp(3)
46    nlist(3)
47    ns_ntoa(3)
48    remque(3)
49    setjmp(3)
50    stty(3)
51    times(3)
52    vtimes(3)
53    adjtime(2)
54    fstat(2)
55    getitimer(2)
56    gettimeofday(2)
57    lstat(2)
58    select(2)
59    setitimer(2)
60    settimeofday(2)
61    stat(2)
62    utimes(2)
63    asctime(2)
64    monitor(3)
65    monstartup(3)
66    ctime(3)
67    gmtime(3)
68    localtime(3)
69  */
70
71 /* /usr/lib/lint/llib-lc */
72 /* /usr/lib/lint/llib-lc */
73 int access P((char *, int ));
74 int acct P((char *));
75 char *brk P((char *));
76 int chdir P((char *));
77 int chmod P((char *, int ));
78 int chown P((char *, int , int ));
79 int chroot P((char *));
80 int close P((int ));
81 int dup P((int ));
82 int dup2 P((int , int ));
83 int execve P((char *, char * [], char * []));
84 int _exit P((int ));
85 int fchmod P((int , int ));
86 int fchown P((int , int , int ));
87 int fcntl P((int , int , int ));
88 int flock P((int , int ));
89 int fork P((void ));
90 int fsync P((int ));
91 int ftruncate P((int , off_t ));
92 int getdtablesize P((void ));
93 gid_t getegid P((void ));
94 uid_t geteuid P((void ));
95 gid_t getgid P((void ));
96 int getgroups P((int , int *));
97 long gethostid P((void ));
98 int gethostname P((char *, int ));
99 int getpagesize P((void ));
100 int getpgrp P((int ));
101 int getpid P((void ));
102 int getppid P((void ));
103 uid_t getuid P((void ));
104 int ioctl P((int , u_long , char *));
105 int kill P((int , int ));
106 int killpg P((int , int ));
107 int listen P((int , int ));
108 int mount P((int , char *, int , caddr_t *));
109 int pipe P((int  [2 ]));
110 int profil P((char *, int , int , int ));
111 int ptrace P((int , int , int *, int ));
112 int quota P((int , int , int , char *));
113 int read P((int , char *, int ));
114 int reboot P((int ));
115 int recv P((int , char *, int , int ));
116 char *sbrk P((int ));
117 int setgroups P((int , int *));
118 int sethostid P((long ));
119 int sethostname P((char *, int ));
120 int setpgrp P((int , int ));
121 int setquota P((char *, char *));
122 int setregid P((int , int ));
123 int setreuid P((int , int ));
124 int shutdown P((int , int ));
125 void srandom P((int  ));
126 int swapon P((char *));
127 int sync P((void ));
128 int umask P((int ));
129 int umount P((char *));
130 int vfork P((void ));
131 int vhangup P((void ));
132 int write P((int , const char *, int ));
133 int abs P((int ));
134 int alarm P((unsigned ));
135 double atof P((const char *));
136 int atoi P((char *));
137 long atol P((char *));
138 int bcmp P((char *, char *, int ));
139 int bcopy P((const char *, char *, int ));
140 int bzero P((char *, int ));
141 #ifdef __GNUC__
142 #include <stddef.h>
143 void *calloc P((size_t, size_t));
144 #else
145 char *calloc P((unsigned , unsigned ));
146 #endif
147 void closelog P((void ));
148 int creat P((char *, int ));
149 char *crypt P((char *, char *));
150 char *ecvt P((double , int , int *, int *));
151 int encrypt P((char *, int ));
152 int endfsent P((void ));
153 int endgrent P((void ));
154 int endhostent P((void ));
155 int endnetent P((void ));
156 int endprotoent P((void ));
157 int endpwent P((void ));
158 int endservent P((void ));
159 int endttyent P((void ));
160 int endusershell P((void ));
161 int execl P((char *, char *, ...));
162 int execle P((char *, char *));
163 int execlp P((char *, char *, ...));
164 int execv P((char *, char * []));
165 int execvp P((char *, char * []));
166 int exect P((char *, char * [], char * []));
167 int exit P((int ));
168 char *fcvt P((double , int , int *, int *));
169 int ffs P((int ));
170 #ifdef __GNUC__
171 void free P((void *));
172 #else
173 int free P((char *));
174 #endif
175 double frexp P((double , int *));
176 char *gcvt P((double , int , char *));
177 struct disktab *getdiskbyname P((char *));
178 char *getenv P((char *));
179 struct fstab *getfsent P((void ));
180 struct fstab *getfsspec P((char *));
181 struct fstab *getfsfile P((char *));
182 struct fstab *getfstype P((char *));
183 struct group *getgrent P((void ));
184 struct group *getgrgid P((int ));
185 struct group *getgrnam P((const char *));
186 char *getlogin P((void ));
187 int getopt P((int , char **, char *));
188 char *getpass P((char *));
189 int getpw P((int , char *));
190 struct passwd *getpwent P((void ));
191 struct passwd *getpwuid P((int ));
192 struct passwd *getpwnam P((const char *));
193 struct ttyent *getttynam P((const char *));
194 char *getusershell P((void ));
195 char *getwd P((char *));
196 u_long htonl P((u_long ));
197 u_short htons P((unsigned int ));
198 u_long inet_addr P((const char *));
199 u_long inet_network P((const char *));
200 int initgroups P((char *, int ));
201 char *initstate P((unsigned , char *, int ));
202 int isatty P((int ));
203 double ldexp P((double , int ));
204 int longjmperror P((void ));
205 #ifdef __STDC__
206 void *malloc P((size_t ));
207 #else
208 char *malloc P((unsigned ));
209 #endif
210 char *memccpy P((char *, char *, int , int ));
211 char *memchr P((char *, int , int ));
212 int memcmp P((char *, char *, int ));
213 char *memcpy P((char *, const char *, int ));
214 char *memset P((char *, int , int ));
215 char *mktemp P((char *));
216 int mkstemp P((char *));
217 double modf P((double , double *));
218 int moncontrol P((int ));
219 int nice P((int ));
220 struct ns_addr ns_addr P((char *));
221 u_long ntohl P((u_long ));
222 u_short ntohs P((unsigned int ));
223 void openlog P((const char *, int , int ));
224 int pause P((void ));
225 int perror P((const char * ));
226 int psignal P((unsigned , const char *));
227 int qsort P((char *, int , int , int (* )()));
228 int rand P((void ));
229 long random P((void ));
230 int rcmd P((char **, u_short , char *, char *, char *, int *));
231 char *re_comp P((char *));
232 int re_exec P((char *));
233 #ifdef __GNUC__
234 void *realloc P((void *, size_t ));
235 #else
236 char *realloc P((char *, unsigned ));
237 #endif
238 int rexec P((char **, u_short , char *, char *, char *, int *));
239 int rresvport P((int *));
240 int ruserok P((char *, int , char *, char *));
241 int setegid P((gid_t ));
242 int seteuid P((uid_t ));
243 int setfsent P((void ));
244 int setgrent P((void ));
245 int setgid P((gid_t ));
246 int sethostent P((int ));
247 int setkey P((char *));
248 int setlogmask P((int ));
249 int setnetent P((int ));
250 int setprotoent P((int ));
251 int setpwent P((void ));
252 int setpwfile P((const char *));
253 int setrgid P((gid_t ));
254 int setruid P((uid_t ));
255 int setservent P((int ));
256 char *setstate P((char *));
257 int setttyent P((void ));
258 int setuid P((uid_t ));
259 int setusershell P((void ));
260 int siginterrupt P((int , int ));
261 int sleep P((unsigned ));
262 int srand P((int ));
263 size_t strlen P((const char *));
264 char *strncat P((char *, const char *, int ));
265 int strncmp P((const char *, const char *, int ));
266 char *strncpy P((char *, const char *, int ));
267 int swab P((char *, char *, int ));
268 void syslog P((int , const char *, ...));
269 int system P((char *));
270 long tell P((int ));
271 long time P((long *));
272 char *timezone P((int , int ));
273 char *tmpnam P((char *));
274 char *ttyname P((int ));
275 int ttyslot P((void ));
276 unsigned ualarm P((unsigned , unsigned ));
277 int usleep P((unsigned ));
278 int utime P((char *, time_t *));
279 char *valloc P((unsigned ));
280 int vlimit P((int , int ));
281 void abort P((void));
282
283 #endif /* VAX */
284
285 #if (defined(mips) && defined(ultrix)) || (defined(__mips__) && defined(__ultrix__)) || defined(__mips__) || defined(mips)
286
287 /* massaged from /usr/lib/lint/llib-lc, via watchbin/mkproto */
288 /* above functions removed, plus:
289    old DBM
290    sigset stuff
291    semctl
292    semget
293    semop
294    shmctl
295    shmget
296    uname
297    ustat
298    msg*
299    to*
300    is*
301    hsearch
302    ftok
303    getmnt
304    sprintf
305  */
306
307 /* /usr/lib/lint/llib-lc */
308 int access P((char * , int ));
309 int acct P((char * ));
310 #ifndef SYSTEM_FIVE
311 caddr_t brk P((caddr_t ));
312 #endif
313 caddr_t sbrk P((int  ));
314 #ifdef mips
315 int cachectl P((char * , int , int ));
316 int cacheflush P((char *, int , int ));
317 #endif
318 int chdir P((char * ));
319 int chmod P((char * , int  ));
320 int fchmod P((int  , int  ));
321 int chown P((char * , int  , int  ));
322 int fchown P((int  , int  , int ));
323 int chroot P((char * ));
324 int close P((int  ));
325 int creat P((char * , int  ));
326 int dup P((int  ));
327 int dup2 P((int , int  ));
328 int execve P((char * , char * [], char * []));
329 #ifndef SYSTEM_FIVE
330 int _exit P((int  ));
331 #endif
332 int exportfs P((char * , int  , int  ));
333 int fcntl P((int  , int  , int ));
334 int fork P((void ));
335 int getdirentries P((int  , char * , int  , long * ));
336 int getdomainname P((char * , int  ));
337 int setdomainname P((char * , int ));
338 #ifndef SYSTEM_FIVE
339 int getgid P((void ));
340 int getegid P((void ));
341 #endif
342 #ifndef SYSTEM_FIVE
343 int getpgrp P((int ));
344 #endif
345 int getpid P((void ));
346 int getppid P((void ));
347 #ifndef SYSTEM_FIVE
348 int getuid P((void ));
349 int geteuid P((void ));
350 #endif
351 #ifndef SYSTEM_FIVE
352 int ioctl P((int  , int  , char * ));
353 #endif
354 int kill P((int  , int  ));
355 int link P((char * , char * ));
356 off_t lseek P((int  , long  , int ));
357 #ifdef SYSTEM_FIVE
358 int madvise P((char * , int , int ));
359 int mmap P((char * , int  , int , int , int , off_t ));
360 int mincore P((char * , int  , char * ));
361 #endif
362 int mkdir P((char *, int  ));
363 int mknod P((char * , int , int ));
364 int mount P((char * , char * , int ));
365 int umount P((char * ));
366 #ifdef SYSTEM_FIVE
367 int mprotect P((char * , int , int ));
368 int mremap P((char * , int , int , int , int ));
369 int munmap P((char * , int ));
370 #endif
371 int nfs_svc P((int ));
372 void nfs_biod P((void ));
373 int open P((char * , int  , int  ));
374 int pipe P((int [2]));
375 #ifndef SYSTEM_FIVE
376 int profil P((char * , int , int , int ));
377 #endif
378 int ptrace P((int , int , int * , int  ));
379 #ifndef SYSTEM_FIVE
380 int read P((int , char * , int  ));
381 #endif
382 #ifndef SYSTEM_FIVE
383 int setpgrp P((int , int ));
384 #endif
385 #ifdef SYSTEM_FIVE
386 char *stk P((char * ));
387 char *sstk P((int  ));
388 #endif
389 void sync P((void ));
390 int umask P((int ));
391 int unlink P((char * ));
392 pid_t waitpid P((pid_t , int * , int ));
393 #ifndef SYSTEM_FIVE
394 int write P((int , char * , int  ));
395 #endif
396
397 void abort P((void ));
398 int abs P((int ));
399 #ifndef SYSTEM_FIVE
400 int alarm P((unsigned ));
401 #endif
402 char *crypt P((char * , char * ));
403 #ifndef SYSTEM_FIVE
404 void encrypt P((char * ));
405 #endif
406 #ifndef SYSTEM_FIVE
407 char *timezone P((int  , int  ));
408 #endif
409 char *ecvt P((double , int , int * , int * ));
410 char *fcvt P((double , int  , int * , int * ));
411 char *gcvt P((double , int , char * ));
412 int execl P((char * , char *, ...));
413 int execle P((char * , char * ));
414 int execv P((char * , char **));
415 int exect P((char *, char **, char ** ));
416 /* void exit P((int )); */
417 double frexp P((double , int * ));
418 double ldexp P((double , int  ));
419 double modf P((double , double * ));
420 struct disktab *getdiskbyname P((char * ));
421 char *getenv P((char * ));
422 struct fstab *getfsent P((void ));
423 struct fstab *getfsspec P((char * ));
424 struct fstab *getfsfile P((char * ));
425 struct fstab *getfstype P((char * ));
426 int endfsent P((void ));
427 int setfsent P((void ));
428 #ifndef SYSTEM_FIVE
429 struct group *getgrent P((void ));
430 struct group *getgrgid P((int ));
431 struct group *getgrnam P((const char * ));
432 int endgrent P((void ));
433 int setgrent P((void ));
434 #endif
435 char *getlogin P((void ));
436 struct hostent *gethostent P((void ));
437 struct hostent *gethostbyname P((char * ));
438 struct hostent *gethostbyaddr P((char * , int  , int  ));
439 void sethostent P((int ));
440 void endhostent P((void ));
441 struct netent *getnetent P((void ));
442 struct netent *getnetbyname P((char * ));
443 struct netent *getnetbyaddr P((int  , int ));
444 void setnetent P((int ));
445 void endnetent P((void ));
446 char *getpass P((char * ));
447 struct protoent *getprotoent P((void ));
448 struct protoent *getprotobyname P((char * ));
449 struct protoent *getprotobynumber P((int  ));
450 void setprotoent P((int ));
451 void endprotoent P((void ));
452 int getpw P((int , char * ));
453 #ifndef SYSTEM_FIVE
454 struct passwd *getpwent P((void ));
455 struct passwd *getpwuid P((int ));
456 struct passwd *getpwnam P((const char * ));
457 int endpwent P((void ));
458 int setpwent P((void ));
459 #endif
460 char *gets P((char * ));
461 struct servent *getservent P((void ));
462 struct servent *getservbyname P((char * , char * ));
463 struct servent *getservbyport P((int , char * ));
464 void setservent P((int ));
465 void endservent P((void ));
466 struct ttyent *getttyent P((void ));
467 struct ttyent *getttynam P((const char * ));
468 unsigned long inet_network P((const char * ));
469 int initgroups P((char * , int  ));
470 #ifdef __STDC__
471 void *malloc P((unsigned ));
472 #else
473 char *malloc P((unsigned ));
474 #endif
475 char *calloc P((unsigned , unsigned  ));
476 char *realloc P((char * , unsigned  ));
477 void free P((char * ));
478 char *alloca P((int  ));
479 int mkfifo P((char * , mode_t  ));
480 char *mktemp P((char * ));
481 #ifndef SYSTEM_FIVE
482 void monitor P((int (* )(), int (* )(), short * , int , int  ));
483 #endif
484 void monstartup P((int (* )(), int (* )()));
485 void moncontrol P((int ));
486 #ifndef SYSTEM_FIVE
487 void nice P((int ));
488 #endif
489 long pathconf P((char * , int  ));
490 long fpathconf P((int , int ));
491 int pause P((void ));
492 void perror P((char * ));
493 int printf P((const char *, ...));
494 int puts P((const char * ));
495 #ifndef SYSTEM_FIVE
496 int qsort P((char * , int  , int , int (* )()));
497 #endif
498 int rand P((void ));
499 void srand P((int ));
500 int rcmd P((char ** , u_short , char * , char * , char * , int * ));
501 int rresvport P((int * ));
502 int ruserok P((char * , int  , char * , char * ));
503 int rexec P((char ** , u_short  , char * , char * , char * , int * ));
504 int scanf P((const char *, ... ));
505 int sscanf P((const char * , const char *, ... ));
506 int setpgid P((pid_t  , pid_t  ));
507 int setuid P((int  ));
508 int seteuid P((int  ));
509 int setruid P((int  ));
510 int setgid P((int  ));
511 int setegid P((int  ));
512 int setrgid P((int  ));
513
514 int siginterrupt P((int  , int  ));
515 unsigned sleep P((unsigned  ));
516 int strcmp P((const char * , const char * ));
517 char *strcpy P((char * , const char * ));
518 int strlen P((const char * ));
519 char *strncat P((char * , const char * , int  ));
520 int strncmp P((const char * , const char * , int  ));
521 char *strncpy P((char * , const char * , int  ));
522 void swab P((char * , char * , int  ));
523 long sysconf P((int  ));
524 int system P((char * ));
525 char *ttyname P((int  ));
526 int isatty P((int  ));
527 int ttyslot P((void ));
528 int utime P((char * , time_t  []));
529
530 #ifndef SYSTEM_FIVE
531 int flock P((int  , int  ));
532 int fsync P((int  ));
533 int getdtablesize P((void ));
534 int getgroups P((int  , int * ));
535 int gethostid P((void ));
536 int sethostid P((int  ));
537 int gethostname P((char * , int  ));
538 int sethostname P((char * , int  ));
539 int getpagesize P((void ));
540 int getpriority P((int  , int  ));
541 int setpriority P((int  , int  , int  ));
542 int getsockname P((int  , char * , int * ));
543 int getsockopt P((int  , int  , int  , char * , int * ));
544 int setsockopt P((int  , int  , int  , const char * , int  ));
545 int killpg P((int  , int  ));
546 int listen P((int  , int  ));
547 int quota P((int  , int  , int  , caddr_t ));
548 int readlink P((char * , char * , int  ));
549 int reboot P((int  ));
550 int rename P((char * , char * ));
551 int rmdir P((char * ));
552 int send P((int  , char * , int , int  ));
553 int setgroups P((int  , int * ));
554 int setregid P((int  , int  ));
555 int setquota P((char * , char * ));
556 int setreuid P((int  , int  ));
557 pid_t setsid P((void ));
558 int shutdown P((int  , int  ));
559 int sigblock P((int  ));
560 int sigpause P((int  ));
561 int sigsetmask P((int  ));
562 int socket P((int , int  , int  ));
563 int socketpair P((int , int  , int  , int  [2 ]));
564 int swapon P((char * ));
565 int symlink P((char * , char * ));
566 int truncate P((char * , int  ));
567 int ftruncate P((int  , int  ));
568 int vfork P((void ));
569 void vhangup P((void ));
570 double atof P((char * ));
571 int atoi P((char * ));
572 long atol P((char * ));
573 void bcopy P((const char * , char * , int  ));
574 int bcmp P((char * , char * , int  ));
575 void bzero P((char * , int  ));
576 int ffs P((int  ));
577 char *getwd P((char * ));
578 void psignal P((unsigned  , char * ));
579 void srandom P((int  ));
580 long random P((void ));
581 char *initstate P((unsigned  , char * , int  ));
582 char *setstate P((char * ));
583 char *re_comp P((char * ));
584 int re_exec P((char * ));
585 void openlog P((const char * , int, int  )); /* our local version... */
586 void syslog P((int  , const char *, ... ));
587 void closelog P((void ));
588 char *valloc P((unsigned  ));
589 int vlimit P((int  , int  ));
590 #endif
591 int execlp P((char * , char *, ... ));
592 int execvp P((char * , char * []));
593 int plock P((int ));
594 char *shmat P((int  , char * , int  ));
595 int shmdt P((char * ));
596 void sys3b P((int  , int  , int  ));
597 long ulimit P((int  , long  ));
598 long a64l P((char * ));
599 char *l64a P((long  ));
600 void _assert P((char * , char * , int  ));
601 char *bsearch P((char * , char * , unsigned  , unsigned  , int (* )(char *, char *)));
602 long clock P((void ));
603 char *ctermid P((char * ));
604 char *cuserid P((char * ));
605 double drand48 P((void ));
606 double erand48 P((unsigned short  [3 ]));
607 long lrand48 P((void ));
608 long nrand48 P((unsigned short  [3 ]));
609 long mrand48 P((void ));
610 long jrand48 P((unsigned short  [3 ]));
611 void srand48 P((long s ));
612 unsigned short *seed48 P((unsigned short  [3 ]));
613 void lcong48 P((unsigned short  [7 ]));
614 char *getcwd P((char * , int  ));
615 int getopt P((int  , char ** , char * ));
616 int hcreate P((unsigned  ));
617 void hdestroy P((void ));
618 void l3tol P((long * , char * , int  ));
619 void ltol3 P((char * , long * , int  ));
620 char *lsearch P((char * , char * , unsigned * , unsigned  , int (* )(char *, char *)));
621 char *lfind P((char * , char * , unsigned * , unsigned  , int (* )(char *, char *)));
622 char *memccpy P((char * , char * , int  , int  ));
623 char *memchr P((char * , int  , int  ));
624 int memcmp P((char * , char * , int  ));
625 char *memcpy P((char * , const char * , int  ));
626 char *memset P((char * , int  , int  ));
627 int gsignal P((int  ));
628 double strtod P((char * , char ** ));
629 long strtol P((char * , char ** , int  ));
630 char *tmpnam P((char * ));
631 char *tempnam P((char * , char * ));
632 char *tsearch P((char * , char ** , int (* )(char *, char *)));
633 char *tfind P((char * , char ** , int (* )(char *, char *)));
634 char *tdelete P((char * , char ** , int (* )(char *, char *)));
635 void twalk P((char * , void (* )(char *, int, int)));
636 int syscall P((int  , int  , int  , int  ));
637 long tell P((int  ));
638
639 #ifdef SYSTEM_FIVE
640
641 unsigned alarm P((unsigned ));
642 int brk P((char * ));
643 void _exit P((int  ));
644 int getpgrp P((void ));
645 unsigned short getuid P((void ));
646 unsigned short geteuid P((void ));
647 unsigned short getgid P((void ));
648 unsigned short getegid P((void ));
649 int ioctl P((int  , int  , int  ));
650 int nice P((int  ));
651 void profil P((char * , int  , int  , int  ));
652 int read P((int  , char * , unsigned  ));
653 int setpgrp P((void ));
654 int write P((int  , char * , unsigned  ));
655 void setkey P((char * ));
656 void encrypt P((char * , int  ));
657 void tzset P((void ));
658 struct group *getgrent P((void ));
659 struct group *getgrgid P((int  ));
660 struct group *getgrnam P((char * ));
661 void setgrent P((void ));
662 void endgrent P((void ));
663 struct passwd *getpwent P((void ));
664 struct passwd *getpwuid P((int  ));
665 struct passwd *getpwnam P((const char * ));
666 void setpwent P((void ));
667 void endpwent P((void ));
668 void qsort P((char * , unsigned  , unsigned  , int (* )()));
669 #endif
670
671 #endif /* MIPS/Ultrix */
672
673 #ifdef ibm032
674 #ifndef memcpy
675 extern void *memcpy P((void *, const void *, unsigned int));
676 #endif
677 #ifndef memset
678 extern void *memset P((void *, int, unsigned int));
679 #endif
680 extern void *calloc P((unsigned int, unsigned int));
681 extern void *malloc P((unsigned int));
682 extern void *realloc P((void *, unsigned int));
683 extern void free P((void *));
684 #ifndef abort
685 extern void abort P((void));
686 #endif
687 extern char *getenv P((const char *));
688
689 extern double atof P((const char *));
690 extern int    atoi P((const char *));
691
692 #endif /* ibm032 */
693
694 #undef P