LIB.T
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:969k
源码类别:

操作系统开发

开发平台:

C/C++

  1. 47848                 default:
  2. 47849                         /* not recognized, like %q */
  3. 47850                         return conv || (ic != EOF) ? done : EOF;
  4. 47851                         break;
  5. 47852                 case 'n':
  6. 47853                         if (!(flags & FL_NOASSIGN)) {   /* silly, though */
  7. 47854                                 if (flags & FL_SHORT)
  8. 47855                                         *va_arg(ap, short *) = (short) nrchars;
  9. 47856                                 else if (flags & FL_LONG)
  10. 47857                                         *va_arg(ap, long *) = (long) nrchars;
  11. 47858                                 else
  12. 47859                                         *va_arg(ap, int *) = (int) nrchars;
  13. 47860                         }
  14. 47861                         break;
  15. 47862                 case 'p':               /* pointer */
  16. 47863                         set_pointer(flags);
  17. 47864                         /* fallthrough */
  18. 47865                 case 'b':               /* binary */
  19. 47866                 case 'd':               /* decimal */
  20. 47867                 case 'i':               /* general integer */
  21. 47868                 case 'o':               /* octal */
  22. 47869                 case 'u':               /* unsigned */
  23. 47870                 case 'x':               /* hexadecimal */
  24. 47871                 case 'X':               /* ditto */
  25. 47872                         if (!(flags & FL_WIDTHSPEC) || width > NUMLEN)
  26. 47873                                 width = NUMLEN;
  27. 47874                         if (!width) return done;
  28. .Op 439 src/lib/stdio/doscan.c
  29. 47875
  30. 47876                         str = o_collect(ic, stream, kind, width, &base);
  31. 47877                         if (str < inp_buf
  32. 47878                             || (str == inp_buf
  33. 47879                                     && (*str == '-'
  34. 47880                                         || *str == '+'))) return done;
  35. 47881
  36. 47882                         /*
  37. 47883                          * Although the length of the number is str-inp_buf+1
  38. 47884                          * we don't add the 1 since we counted it already
  39. 47885                          */
  40. 47886                         nrchars += str - inp_buf;
  41. 47887
  42. 47888                         if (!(flags & FL_NOASSIGN)) {
  43. 47889                                 if (kind == 'd' || kind == 'i')
  44. 47890                                     val = strtol(inp_buf, &tmp_string, base);
  45. 47891                                 else
  46. 47892                                     val = strtoul(inp_buf, &tmp_string, base);
  47. 47893                                 if (flags & FL_LONG)
  48. 47894                                         *va_arg(ap, unsigned long *) = (unsigned long) val;
  49. 47895                                 else if (flags & FL_SHORT)
  50. 47896                                         *va_arg(ap, unsigned short *) = (unsigned short) val;
  51. 47897                                 else
  52. 47898                                         *va_arg(ap, unsigned *) = (unsigned) val;
  53. 47899                         }
  54. 47900                         break;
  55. 47901                 case 'c':
  56. 47902                         if (!(flags & FL_WIDTHSPEC))
  57. 47903                                 width = 1;
  58. 47904                         if (!(flags & FL_NOASSIGN))
  59. 47905                                 str = va_arg(ap, char *);
  60. 47906                         if (!width) return done;
  61. 47907
  62. 47908                         while (width && ic != EOF) {
  63. 47909                                 if (!(flags & FL_NOASSIGN))
  64. 47910                                         *str++ = (char) ic;
  65. 47911                                 if (--width) {
  66. 47912                                         ic = getc(stream);
  67. 47913                                         nrchars++;
  68. 47914                                 }
  69. 47915                         }
  70. 47916
  71. 47917                         if (width) {
  72. 47918                                 if (ic != EOF) ungetc(ic,stream);
  73. 47919                                 nrchars--;
  74. 47920                         }
  75. 47921                         break;
  76. 47922                 case 's':
  77. 47923                         if (!(flags & FL_WIDTHSPEC))
  78. 47924                                 width = 0xffff;
  79. 47925                         if (!(flags & FL_NOASSIGN))
  80. 47926                                 str = va_arg(ap, char *);
  81. 47927                         if (!width) return done;
  82. 47928
  83. 47929                         while (width && ic != EOF && !isspace(ic)) {
  84. 47930                                 if (!(flags & FL_NOASSIGN))
  85. 47931                                         *str++ = (char) ic;
  86. 47932                                 if (--width) {
  87. 47933                                         ic = getc(stream);
  88. 47934                                         nrchars++;
  89. .Ep 440 src/lib/stdio/doscan.c
  90. 47935                                 }
  91. 47936                         }
  92. 47937                         /* terminate the string */
  93. 47938                         if (!(flags & FL_NOASSIGN))
  94. 47939                                 *str = '';    
  95. 47940                         if (width) {
  96. 47941                                 if (ic != EOF) ungetc(ic,stream);
  97. 47942                                 nrchars--;
  98. 47943                         }
  99. 47944                         break;
  100. 47945                 case '[':
  101. 47946                         if (!(flags & FL_WIDTHSPEC))
  102. 47947                                 width = 0xffff;
  103. 47948                         if (!width) return done;
  104. 47949
  105. 47950                         if ( *++format == '^' ) {
  106. 47951                                 reverse = 1;
  107. 47952                                 format++;
  108. 47953                         } else
  109. 47954                                 reverse = 0;
  110. 47955
  111. 47956                         for (str = Xtable; str < &Xtable[NR_CHARS]
  112. 47957                                                         ; str++)
  113. 47958                                 *str = 0;
  114. 47959
  115. 47960                         if (*format == ']') Xtable[*format++] = 1;
  116. 47961
  117. 47962                         while (*format && *format != ']') {
  118. 47963                                 Xtable[*format++] = 1;
  119. 47964                                 if (*format == '-') {
  120. 47965                                         format++;
  121. 47966                                         if (*format
  122. 47967                                             && *format != ']'
  123. 47968                                             && *(format) >= *(format -2)) {
  124. 47969                                                 int c;
  125. 47970
  126. 47971                                                 for( c = *(format -2) + 1
  127. 47972                                                     ; c <= *format ; c++)
  128. 47973                                                         Xtable[c] = 1;
  129. 47974                                                 format++;
  130. 47975                                         }
  131. 47976                                         else Xtable['-'] = 1;
  132. 47977                                 }
  133. 47978                         }
  134. 47979                         if (!*format) return done;
  135. 47980                         
  136. 47981                         if (!(Xtable[ic] ^ reverse)) return done;
  137. 47982
  138. 47983                         if (!(flags & FL_NOASSIGN))
  139. 47984                                 str = va_arg(ap, char *);
  140. 47985
  141. 47986                         do {
  142. 47987                                 if (!(flags & FL_NOASSIGN))
  143. 47988                                         *str++ = (char) ic;
  144. 47989                                 if (--width) {
  145. 47990                                         ic = getc(stream);
  146. 47991                                         nrchars++;
  147. 47992                                 }
  148. 47993                         } while (width && ic != EOF && (Xtable[ic] ^ reverse));
  149. 47994
  150. .Op 441 src/lib/stdio/doscan.c
  151. 47995                         if (width) {
  152. 47996                                 if (ic != EOF) ungetc(ic, stream);
  153. 47997                                 nrchars--;
  154. 47998                         }
  155. 47999                         if (!(flags & FL_NOASSIGN)) {   /* terminate string */
  156. 48000                                 *str = '';    
  157. 48001                         }
  158. 48002                         break;
  159. 48003 #ifndef NOFLOAT
  160. 48004                 case 'e':
  161. 48005                 case 'E':
  162. 48006                 case 'f':
  163. 48007                 case 'g':
  164. 48008                 case 'G':
  165. 48009                         if (!(flags & FL_WIDTHSPEC) || width > NUMLEN)
  166. 48010                                 width = NUMLEN;
  167. 48011
  168. 48012                         if (!width) return done;
  169. 48013                         str = f_collect(ic, stream, width);
  170. 48014
  171. 48015                         if (str < inp_buf
  172. 48016                             || (str == inp_buf
  173. 48017                                 && (*str == '-'
  174. 48018                                     || *str == '+'))) return done;
  175. 48019
  176. 48020                         /*
  177. 48021                          * Although the length of the number is str-inp_buf+1
  178. 48022                          * we don't add the 1 since we counted it already
  179. 48023                          */
  180. 48024                         nrchars += str - inp_buf;
  181. 48025
  182. 48026                         if (!(flags & FL_NOASSIGN)) {
  183. 48027                                 ld_val = strtod(inp_buf, &tmp_string);
  184. 48028                                 if (flags & FL_LONGDOUBLE)
  185. 48029                                         *va_arg(ap, long double *) = (long double) ld_val;
  186. 48030                                 else
  187. 48031                                     if (flags & FL_LONG)
  188. 48032                                         *va_arg(ap, double *) = (double) ld_val;
  189. 48033                                 else
  190. 48034                                         *va_arg(ap, float *) = (float) ld_val;
  191. 48035                         }
  192. 48036                         break;
  193. 48037 #endif
  194. 48038                 }               /* end switch */
  195. 48039                 conv++;
  196. 48040                 if (!(flags & FL_NOASSIGN) && kind != 'n') done++;
  197. 48041                 format++;
  198. 48042         }
  199. 48043         return conv || (ic != EOF) ? done : EOF;
  200. 48044 }
  201. .Ep 442 src/lib/stdio/ecvt.c
  202. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  203. src/lib/stdio/ecvt.c    
  204. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  205. 48100 /* $Header: ecvt.c,v 1.4 90/02/27 16:47:28 eck Exp $ */
  206. 48101
  207. 48102 #ifndef NOFLOAT
  208. 48103
  209. 48104 #include        "../ansi/ext_fmt.h"
  210. 48105 void _dbl_ext_cvt(double value, struct EXTEND *e);
  211. 48106 char *_ext_str_cvt(struct EXTEND *e, int ndigit, int *decpt, int * sign, int ecvtflag);
  212. 48107
  213. 48108 static char *
  214. 48109 cvt(long double value, int ndigit, int *decpt, int *sign, int ecvtflag)
  215. 48110 {
  216. 48111         struct EXTEND e;
  217. 48112
  218. 48113         _dbl_ext_cvt(value, &e);
  219. 48114         return _ext_str_cvt(&e, ndigit, decpt, sign, ecvtflag);
  220. 48115 }
  221. 48117 char *
  222. 48118 _ecvt(long double value, int ndigit, int *decpt, int *sign)
  223. 48119 {
  224. 48120
  225. 48121         return cvt(value, ndigit, decpt, sign, 1);
  226. 48122 }
  227. 48124 char *
  228. 48125 _fcvt(long double value, int ndigit, int *decpt, int *sign)
  229. 48126 {
  230. 48127         return cvt(value, ndigit, decpt, sign, 0);
  231. 48128 }
  232. 48130 #endif  /* NOFLOAT */
  233. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  234. src/lib/stdio/fclose.c    
  235. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  236. 48200 /*
  237. 48201  * fclose.c - flush a stream and close the file
  238. 48202  */
  239. 48203 /* $Header: fclose.c,v 1.4 90/01/22 11:10:54 eck Exp $ */
  240. 48204
  241. 48205 #include        <stdio.h>
  242. 48206 #include        <stdlib.h>
  243. 48207 #include        "loc_incl.h"
  244. 48208
  245. 48209 int _close(int d);
  246. 48210
  247. 48211 int
  248. 48212 fclose(FILE *fp)
  249. 48213 {
  250. 48214         register int i, retval = 0;
  251. .Op 443 src/lib/stdio/fclose.c
  252. 48215
  253. 48216         for (i=0; i<FOPEN_MAX; i++)
  254. 48217                 if (fp == __iotab[i]) {
  255. 48218                         __iotab[i] = 0;
  256. 48219                         break;
  257. 48220                 }
  258. 48221         if (i >= FOPEN_MAX)
  259. 48222                 return EOF;
  260. 48223         if (fflush(fp)) retval = EOF;
  261. 48224         if (_close(fileno(fp))) retval = EOF;
  262. 48225         if ( io_testflag(fp,_IOMYBUF) && fp->_buf )
  263. 48226                 free((void *)fp->_buf);
  264. 48227         if (fp != stdin && fp != stdout && fp != stderr)
  265. 48228                 free((void *)fp);
  266. 48229         return retval;
  267. 48230 }
  268. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  269. src/lib/stdio/feof.c    
  270. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  271. 48300 /*
  272. 48301  * feof.c - test if eof on a stream occurred
  273. 48302  */
  274. 48303 /* $Header: feof.c,v 1.2 89/12/18 15:00:39 eck Exp $ */
  275. 48304
  276. 48305 #include        <stdio.h>
  277. 48306
  278. 48307 int
  279. 48308 (feof)(FILE *stream)
  280. 48309 {
  281. 48310         return feof(stream);
  282. 48311 }
  283. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  284. src/lib/stdio/ferror.c    
  285. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  286. 48400 /*
  287. 48401  * ferror .c - test if an error on a stream occurred
  288. 48402  */
  289. 48403 /* $Header: ferror.c,v 1.2 89/12/18 15:00:47 eck Exp $ */
  290. 48404
  291. 48405 #include        <stdio.h>
  292. 48406
  293. 48407 int
  294. 48408 (ferror)(FILE *stream)
  295. 48409 {
  296. 48410         return ferror(stream);
  297. 48411 }
  298. .Ep 444 src/lib/stdio/fflush.c
  299. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  300. src/lib/stdio/fflush.c    
  301. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  302. 48500 /*
  303. 48501  * fflush.c - flush stream(s)
  304. 48502  */
  305. 48503 /* $Header: fflush.c,v 1.6 90/04/04 15:52:01 eck Exp $ */
  306. 48504
  307. 48505 #include        <sys/types.h>
  308. 48506 #include        <stdio.h>
  309. 48507 #include        "loc_incl.h"
  310. 48508
  311. 48509 ssize_t _write(int d, const char *buf, size_t nbytes);
  312. 48510 off_t _lseek(int fildes, off_t offset, int whence);
  313. 48511
  314. 48512 int
  315. 48513 fflush(FILE *stream)
  316. 48514 {
  317. 48515         int count, c1, i, retval = 0;
  318. 48516
  319. 48517         if (!stream) {
  320. 48518             for(i= 0; i < FOPEN_MAX; i++)
  321. 48519                 if (__iotab[i] && fflush(__iotab[i]))
  322. 48520                         retval = EOF;
  323. 48521             return retval;
  324. 48522         }
  325. 48523
  326. 48524         if (!stream->_buf
  327. 48525             || (!io_testflag(stream, _IOREADING)
  328. 48526                 && !io_testflag(stream, _IOWRITING)))
  329. 48527                 return 0;
  330. 48528         if (io_testflag(stream, _IOREADING)) {
  331. 48529                 /* (void) fseek(stream, 0L, SEEK_CUR); */
  332. 48530                 int adjust = 0;
  333. 48531                 if (stream->_buf && !io_testflag(stream,_IONBF))
  334. 48532                         adjust = stream->_count;
  335. 48533                 stream->_count = 0;
  336. 48534                 _lseek(fileno(stream), (off_t) adjust, SEEK_CUR);
  337. 48535                 if (io_testflag(stream, _IOWRITE))
  338. 48536                         stream->_flags &= ~(_IOREADING | _IOWRITING);
  339. 48537                 stream->_ptr = stream->_buf;
  340. 48538                 return 0;
  341. 48539         } else if (io_testflag(stream, _IONBF)) return 0;
  342. 48540
  343. 48541         if (io_testflag(stream, _IOREAD))               /* "a" or "+" mode */
  344. 48542                 stream->_flags &= ~_IOWRITING;
  345. 48543
  346. 48544         count = stream->_ptr - stream->_buf;
  347. 48545         stream->_ptr = stream->_buf;
  348. 48546
  349. 48547         if ( count <= 0 )
  350. 48548                 return 0;
  351. 48549
  352. 48550         if (io_testflag(stream, _IOAPPEND)) {
  353. 48551                 if (_lseek(fileno(stream), 0L, SEEK_END) == -1) {
  354. 48552                         stream->_flags |= _IOERR;
  355. 48553                         return EOF;
  356. 48554                 }
  357. .Op 445 src/lib/stdio/fflush.c
  358. 48555         }
  359. 48556         c1 = _write(stream->_fd, (char *)stream->_buf, count);
  360. 48557
  361. 48558         stream->_count = 0;
  362. 48559
  363. 48560         if ( count == c1 )
  364. 48561                 return 0;
  365. 48562
  366. 48563         stream->_flags |= _IOERR;
  367. 48564         return EOF; 
  368. 48565 }
  369. 48567 void
  370. 48568 __cleanup(void)
  371. 48569 {
  372. 48570         register int i;
  373. 48571
  374. 48572         for(i= 0; i < FOPEN_MAX; i++)
  375. 48573                 if (__iotab[i] && io_testflag(__iotab[i], _IOWRITING))
  376. 48574                         (void) fflush(__iotab[i]);
  377. 48575 }
  378. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  379. src/lib/stdio/fgetc.c    
  380. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  381. 48600 /*
  382. 48601  * fgetc - get an unsigned character and return it as an int
  383. 48602  */
  384. 48603 /* $Header: fgetc.c,v 1.1 89/05/30 13:27:35 eck Exp $ */
  385. 48604
  386. 48605 #include        <stdio.h>
  387. 48606
  388. 48607 int
  389. 48608 fgetc(FILE *stream)
  390. 48609 {
  391. 48610         return getc(stream);
  392. 48611 }
  393. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  394. src/lib/stdio/fgetpos.c    
  395. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  396. 48700 /*
  397. 48701  * fgetpos.c - get the position in the file
  398. 48702  */
  399. 48703 /* $Header: fgetpos.c,v 1.2 89/12/18 15:01:03 eck Exp $ */
  400. 48704
  401. 48705 #include        <stdio.h>
  402. 48706
  403. 48707 int
  404. 48708 fgetpos(FILE *stream, fpos_t *pos)
  405. 48709 {
  406. .Ep 446 src/lib/stdio/fgetpos.c
  407. 48710         *pos = ftell(stream);
  408. 48711         if (*pos == -1) return -1;
  409. 48712         return 0;
  410. 48713 }
  411. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  412. src/lib/stdio/fgets.c    
  413. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  414. 48800 /*
  415. 48801  * fgets.c - get a string from a file
  416. 48802  */
  417. 48803 /* $Header: fgets.c,v 1.3 89/12/18 15:01:11 eck Exp $ */
  418. 48804
  419. 48805 #include        <stdio.h>
  420. 48806
  421. 48807 char *
  422. 48808 fgets(char *s, register int n, register FILE *stream)
  423. 48809 {
  424. 48810         register int ch;
  425. 48811         register char *ptr;
  426. 48812
  427. 48813         ptr = s;
  428. 48814         while (--n > 0 && (ch = getc(stream)) != EOF) {
  429. 48815                 *ptr++ = ch;
  430. 48816                 if ( ch == 'n')
  431. 48817                         break;
  432. 48818         }
  433. 48819         if (ch == EOF) {
  434. 48820                 if (feof(stream)) {
  435. 48821                         if (ptr == s) return NULL;
  436. 48822                 } else return NULL;
  437. 48823         }
  438. 48824         *ptr = '';
  439. 48825         return s;
  440. 48826 }
  441. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  442. src/lib/stdio/fileno.c    
  443. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  444. 48900 /*
  445. 48901  * fileno .c - map a stream to a file descriptor
  446. 48902  */
  447. 48903 /* $Header: fileno.c,v 1.1 89/12/18 14:59:31 eck Exp $ */
  448. 48904
  449. 48905 #include        <stdio.h>
  450. 48906
  451. 48907 int
  452. 48908 (fileno)(FILE *stream)
  453. 48909 {
  454. 48910         return stream->_fd;
  455. 48911 }
  456. .Op 447 src/lib/stdio/fillbuf.c
  457. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  458. src/lib/stdio/fillbuf.c    
  459. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  460. 49000 /*
  461. 49001  * fillbuf.c - fill a buffer
  462. 49002  */
  463. 49003 /* $Header: fillbuf.c,v 1.5 90/06/21 11:13:23 eck Exp $ */
  464. 49004
  465. 49005 #if     defined(_POSIX_SOURCE)
  466. 49006 #include        <sys/types.h>
  467. 49007 #endif
  468. 49008 #include        <stdio.h>
  469. 49009 #include        <stdlib.h>
  470. 49010 #include        "loc_incl.h"
  471. 49011
  472. 49012 ssize_t _read(ssize_t d, char *buf, size_t nbytes);
  473. 49013
  474. 49014 int
  475. 49015 __fillbuf(register FILE *stream)
  476. 49016 {
  477. 49017         static unsigned char ch[FOPEN_MAX];
  478. 49018         register int i;
  479. 49019
  480. 49020         stream->_count = 0;
  481. 49021         if (fileno(stream) < 0) return EOF;
  482. 49022         if (io_testflag(stream, (_IOEOF | _IOERR ))) return EOF; 
  483. 49023         if (!io_testflag(stream, _IOREAD))
  484. 49024              { stream->_flags |= _IOERR; return EOF; }
  485. 49025         if (io_testflag(stream, _IOWRITING))
  486. 49026              { stream->_flags |= _IOERR; return EOF; }
  487. 49027
  488. 49028         if (!io_testflag(stream, _IOREADING))
  489. 49029                 stream->_flags |= _IOREADING;
  490. 49030         
  491. 49031         if (!io_testflag(stream, _IONBF) && !stream->_buf) {
  492. 49032                 stream->_buf = (unsigned char *) malloc(BUFSIZ);
  493. 49033                 if (!stream->_buf) {
  494. 49034                         stream->_flags |= _IONBF;
  495. 49035                 }
  496. 49036                 else {
  497. 49037                         stream->_flags |= _IOMYBUF;
  498. 49038                         stream->_bufsiz = BUFSIZ;
  499. 49039                 }
  500. 49040         }
  501. 49041
  502. 49042         /* flush line-buffered output when filling an input buffer */
  503. 49043         for (i = 0; i < FOPEN_MAX; i++) {
  504. 49044                 if (__iotab[i] && io_testflag(__iotab[i], _IOLBF))
  505. 49045                         if (io_testflag(__iotab[i], _IOWRITING))
  506. 49046                                 (void) fflush(__iotab[i]);
  507. 49047         }
  508. 49048
  509. 49049         if (!stream->_buf) {
  510. 49050                 stream->_buf = &ch[fileno(stream)];
  511. 49051                 stream->_bufsiz = 1;
  512. 49052         }
  513. 49053         stream->_ptr = stream->_buf;
  514. 49054         stream->_count = _read(stream->_fd, (char *)stream->_buf, stream->_bufsiz);
  515. .Ep 448 src/lib/stdio/fillbuf.c
  516. 49055
  517. 49056         if (stream->_count <= 0){
  518. 49057                 if (stream->_count == 0) {
  519. 49058                         stream->_flags |= _IOEOF;
  520. 49059                 }
  521. 49060                 else 
  522. 49061                         stream->_flags |= _IOERR;
  523. 49062
  524. 49063                 return EOF;
  525. 49064         }
  526. 49065         stream->_count--;
  527. 49066
  528. 49067         return *stream->_ptr++;
  529. 49068 }
  530. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  531. src/lib/stdio/flushbuf.c    
  532. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  533. 49100 /*
  534. 49101  * flushbuf.c - flush a buffer
  535. 49102  */
  536. 49103 /* $Header: flushbuf.c,v 1.6 91/06/10 17:07:10 ceriel Exp $ */
  537. 49104
  538. 49105 #include        <stdio.h>
  539. 49106 #include        <stdlib.h>
  540. 49107 #include        "loc_incl.h"
  541. 49108
  542. 49109 #include        <sys/types.h>
  543. 49110
  544. 49111 off_t _lseek(int fildes, off_t offset, int whence);
  545. 49112 ssize_t _write(int d, const char *buf, size_t nbytes);
  546. 49113 int _isatty(int d);
  547. 49114 extern void (*_clean)(void);
  548. 49115
  549. 49116 static int
  550. 49117 do_write(int d, char *buf, int nbytes)
  551. 49118 {
  552. 49119         int c;
  553. 49120
  554. 49121         /* POSIX actually allows write() to return a positive value less
  555. 49122            than nbytes, so loop ...
  556. 49123         */
  557. 49124         while ((c = _write(d, buf, nbytes)) > 0 && c < nbytes) {
  558. 49125                 nbytes -= c;
  559. 49126                 buf += c;
  560. 49127         }
  561. 49128         return c > 0;
  562. 49129 }
  563. 49131 int
  564. 49132 __flushbuf(int c, FILE * stream)
  565. 49133 {
  566. 49134         _clean = __cleanup;
  567. 49135         if (fileno(stream) < 0) return EOF;
  568. 49136         if (!io_testflag(stream, _IOWRITE)) return EOF;
  569. 49137         if (io_testflag(stream, _IOREADING) && !feof(stream)) return EOF;
  570. 49138
  571. 49139         stream->_flags &= ~_IOREADING;
  572. .Op 449 src/lib/stdio/flushbuf.c
  573. 49140         stream->_flags |= _IOWRITING;
  574. 49141         if (!io_testflag(stream, _IONBF)) {
  575. 49142                 if (!stream->_buf) {
  576. 49143                         if (stream == stdout && _isatty(fileno(stdout))) {
  577. 49144                                 if (!(stream->_buf =
  578. 49145                                             (unsigned char *) malloc(BUFSIZ))) {
  579. 49146                                         stream->_flags |= _IONBF;
  580. 49147                                 } else {
  581. 49148                                         stream->_flags |= _IOLBF|_IOMYBUF;
  582. 49149                                         stream->_bufsiz = BUFSIZ;
  583. 49150                                         stream->_count = -1;
  584. 49151                                 }
  585. 49152                         } else {
  586. 49153                                 if (!(stream->_buf =
  587. 49154                                             (unsigned char *) malloc(BUFSIZ))) {
  588. 49155                                         stream->_flags |= _IONBF;
  589. 49156                                 } else {
  590. 49157                                         stream->_flags |= _IOMYBUF;
  591. 49158                                         stream->_bufsiz = BUFSIZ;
  592. 49159                                         if (!io_testflag(stream, _IOLBF))
  593. 49160                                                 stream->_count = BUFSIZ - 1;
  594. 49161                                         else    stream->_count = -1;
  595. 49162                                 }
  596. 49163                         }
  597. 49164                         stream->_ptr = stream->_buf;
  598. 49165                 }
  599. 49166         }
  600. 49167
  601. 49168         if (io_testflag(stream, _IONBF)) {
  602. 49169                 char c1 = c;
  603. 49170
  604. 49171                 stream->_count = 0;
  605. 49172                 if (io_testflag(stream, _IOAPPEND)) {
  606. 49173                         if (_lseek(fileno(stream), 0L, SEEK_END) == -1) {
  607. 49174                                 stream->_flags |= _IOERR;
  608. 49175                                 return EOF;
  609. 49176                         }
  610. 49177                 }
  611. 49178                 if (_write(fileno(stream), &c1, 1) != 1) {
  612. 49179                         stream->_flags |= _IOERR;
  613. 49180                         return EOF;
  614. 49181                 }
  615. 49182                 return c;
  616. 49183         } else if (io_testflag(stream, _IOLBF)) {
  617. 49184                 *stream->_ptr++ = c;
  618. 49185                 if (c == 'n' || stream->_count == -stream->_bufsiz) {
  619. 49186                         if (io_testflag(stream, _IOAPPEND)) {
  620. 49187                                 if (_lseek(fileno(stream), 0L, SEEK_END) == -1) {
  621. 49188                                         stream->_flags |= _IOERR;
  622. 49189                                         return EOF;
  623. 49190                                 }
  624. 49191                         }
  625. 49192                         if (! do_write(fileno(stream), (char *)stream->_buf,
  626. 49193                                         -stream->_count)) {
  627. 49194                                 stream->_flags |= _IOERR;
  628. 49195                                 return EOF;
  629. 49196                         } else {
  630. 49197                                 stream->_ptr  = stream->_buf;
  631. 49198                                 stream->_count = 0;
  632. 49199                         }
  633. .Ep 450 src/lib/stdio/flushbuf.c
  634. 49200                 }
  635. 49201         } else {
  636. 49202                 int count = stream->_ptr - stream->_buf;
  637. 49203
  638. 49204                 stream->_count = stream->_bufsiz - 1;
  639. 49205                 stream->_ptr = stream->_buf + 1;
  640. 49206
  641. 49207                 if (count > 0) {
  642. 49208                         if (io_testflag(stream, _IOAPPEND)) {
  643. 49209                                 if (_lseek(fileno(stream), 0L, SEEK_END) == -1) {
  644. 49210                                         stream->_flags |= _IOERR;
  645. 49211                                         return EOF;
  646. 49212                                 }
  647. 49213                         }
  648. 49214                         if (! do_write(fileno(stream), (char *)stream->_buf, count)) {
  649. 49215                                 *(stream->_buf) = c;
  650. 49216                                 stream->_flags |= _IOERR;
  651. 49217                                 return EOF;
  652. 49218                         }
  653. 49219                 }
  654. 49220                 *(stream->_buf) = c;
  655. 49221         }
  656. 49222         return c;
  657. 49223 }
  658. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  659. src/lib/stdio/fopen.c    
  660. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  661. 49300 /*
  662. 49301  * fopen.c - open a stream
  663. 49302  */
  664. 49303 /* $Header: fopen.c,v 1.8 91/02/22 16:29:46 ceriel Exp $ */
  665. 49304
  666. 49305 #if     defined(_POSIX_SOURCE)
  667. 49306 #include        <sys/types.h>
  668. 49307 #endif
  669. 49308 #include        <stdio.h>
  670. 49309 #include        <stdlib.h>
  671. 49310 #include        "loc_incl.h"
  672. 49311
  673. 49312 #define PMODE           0666
  674. 49313
  675. 49314 /* The next 3 defines are true in all UNIX systems known to me.
  676. 49315  */
  677. 49316 #define O_RDONLY        0
  678. 49317 #define O_WRONLY        1
  679. 49318 #define O_RDWR          2
  680. 49319
  681. 49320 /* Since the O_CREAT flag is not available on all systems, we can't get it
  682. 49321  * from the standard library. Furthermore, even if we know that <fcntl.h>
  683. 49322  * contains such a flag, it's not sure whether it can be used, since we
  684. 49323  * might be cross-compiling for another system, which may use an entirely
  685. 49324  * different value for O_CREAT (or not support such a mode). The safest
  686. 49325  * thing is to just use the Version 7 semantics for open, and use creat()
  687. 49326  * whenever necessary.
  688. 49327  *
  689. 49328  * Another problem is O_APPEND, for which the same holds. When "a"
  690. 49329  * open-mode is used, an lseek() to the end is done before every write()
  691. .Op 451 src/lib/stdio/fopen.c
  692. 49330  * system-call.
  693. 49331  *
  694. 49332  * The O_CREAT, O_TRUNC and O_APPEND given here, are only for convenience.
  695. 49333  * They are not passed to open(), so the values don't have to match a value
  696. 49334  * from the real world. It is enough when they are unique.
  697. 49335  */
  698. 49336 #define O_CREAT         0x010
  699. 49337 #define O_TRUNC         0x020
  700. 49338 #define O_APPEND        0x040
  701. 49339
  702. 49340 int _open(const char *path, int flags);
  703. 49341 int _creat(const char *path, Mode_t mode);
  704. 49342 int _close(int d);
  705. 49343
  706. 49344 FILE *
  707. 49345 fopen(const char *name, const char *mode)
  708. 49346 {
  709. 49347         register int i;
  710. 49348         int rwmode = 0, rwflags = 0;
  711. 49349         FILE *stream;
  712. 49350         int fd, flags = 0;
  713. 49351
  714. 49352         for (i = 0; __iotab[i] != 0 ; i++) 
  715. 49353                 if ( i >= FOPEN_MAX-1 )
  716. 49354                         return (FILE *)NULL;
  717. 49355
  718. 49356         switch(*mode++) {
  719. 49357         case 'r':
  720. 49358                 flags |= _IOREAD | _IOREADING;  
  721. 49359                 rwmode = O_RDONLY;
  722. 49360                 break;
  723. 49361         case 'w':
  724. 49362                 flags |= _IOWRITE | _IOWRITING;
  725. 49363                 rwmode = O_WRONLY;
  726. 49364                 rwflags = O_CREAT | O_TRUNC;
  727. 49365                 break;
  728. 49366         case 'a': 
  729. 49367                 flags |= _IOWRITE | _IOWRITING | _IOAPPEND;
  730. 49368                 rwmode = O_WRONLY;
  731. 49369                 rwflags |= O_APPEND | O_CREAT;
  732. 49370                 break;         
  733. 49371         default:
  734. 49372                 return (FILE *)NULL;
  735. 49373         }
  736. 49374
  737. 49375         while (*mode) {
  738. 49376                 switch(*mode++) {
  739. 49377                 case 'b':
  740. 49378                         continue;
  741. 49379                 case '+':
  742. 49380                         rwmode = O_RDWR;
  743. 49381                         flags |= _IOREAD | _IOWRITE;
  744. 49382                         continue;
  745. 49383                 /* The sequence may be followed by additional characters */
  746. 49384                 default:
  747. 49385                         break;
  748. 49386                 }
  749. 49387                 break;
  750. 49388         }
  751. 49389
  752. .Ep 452 src/lib/stdio/fopen.c
  753. 49390         /* Perform a creat() when the file should be truncated or when
  754. 49391          * the file is opened for writing and the open() failed.
  755. 49392          */
  756. 49393         if ((rwflags & O_TRUNC)
  757. 49394             || (((fd = _open(name, rwmode)) < 0)
  758. 49395                     && (rwflags & O_CREAT))) {
  759. 49396                 if (((fd = _creat(name, PMODE)) > 0) && flags  | _IOREAD) {
  760. 49397                         (void) _close(fd);
  761. 49398                         fd = _open(name, rwmode);
  762. 49399                 }
  763. 49400                         
  764. 49401         }
  765. 49402
  766. 49403         if (fd < 0) return (FILE *)NULL;
  767. 49404
  768. 49405         if (( stream = (FILE *) malloc(sizeof(FILE))) == NULL ) {
  769. 49406                 _close(fd);
  770. 49407                 return (FILE *)NULL;
  771. 49408         }
  772. 49409
  773. 49410         if ((flags & (_IOREAD | _IOWRITE))  == (_IOREAD | _IOWRITE))
  774. 49411                 flags &= ~(_IOREADING | _IOWRITING);
  775. 49412
  776. 49413         stream->_count = 0;
  777. 49414         stream->_fd = fd;
  778. 49415         stream->_flags = flags;
  779. 49416         stream->_buf = NULL;
  780. 49417         __iotab[i] = stream;
  781. 49418         return stream;
  782. 49419 }
  783. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  784. src/lib/stdio/fprintf.c    
  785. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  786. 49500 /*
  787. 49501  * fprintf - write output on a stream
  788. 49502  */
  789. 49503 /* $Header: fprintf.c,v 1.3 89/12/18 15:01:54 eck Exp $ */
  790. 49504
  791. 49505 #include        <stdio.h>
  792. 49506 #include        <stdarg.h>
  793. 49507 #include        "loc_incl.h"
  794. 49508
  795. 49509 int
  796. 49510 fprintf(FILE *stream, const char *format, ...)
  797. 49511 {
  798. 49512         va_list ap;
  799. 49513         int retval;
  800. 49514         
  801. 49515         va_start(ap, format);
  802. 49516
  803. 49517         retval = _doprnt (format, ap, stream);
  804. 49518
  805. 49519         va_end(ap);
  806. .Op 453 src/lib/stdio/fprintf.c
  807. 49520
  808. 49521         return retval;
  809. 49522 }
  810. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  811. src/lib/stdio/fputc.c    
  812. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  813. 49600 /*
  814. 49601  * fputc.c - print an unsigned character
  815. 49602  */
  816. 49603 /* $Header: fputc.c,v 1.1 89/05/30 13:28:45 eck Exp $ */
  817. 49604
  818. 49605 #include        <stdio.h>
  819. 49606
  820. 49607 int
  821. 49608 fputc(int c, FILE *stream)
  822. 49609 {
  823. 49610         return putc(c, stream);
  824. 49611 }
  825. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  826. src/lib/stdio/fputs.c    
  827. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  828. 49700 /*
  829. 49701  * fputs - print a string
  830. 49702  */
  831. 49703 /* $Header: fputs.c,v 1.2 89/12/18 15:02:01 eck Exp $ */
  832. 49704
  833. 49705 #include        <stdio.h>
  834. 49706
  835. 49707 int
  836. 49708 fputs(register const char *s, register FILE *stream)
  837. 49709 {
  838. 49710         register int i = 0;
  839. 49711
  840. 49712         while (*s) 
  841. 49713                 if (putc(*s++, stream) == EOF) return EOF;
  842. 49714                 else i++;
  843. 49715
  844. 49716         return i;
  845. 49717 }
  846. .Ep 454 src/lib/stdio/fread.c
  847. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  848. src/lib/stdio/fread.c    
  849. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  850. 49800 /*
  851. 49801  * fread.c - read a number of members into an array
  852. 49802  */
  853. 49803 /* $Header: fread.c,v 1.2 89/12/18 15:02:09 eck Exp $ */
  854. 49804
  855. 49805 #include        <stdio.h>
  856. 49806
  857. 49807 size_t
  858. 49808 fread(void *ptr, size_t size, size_t nmemb, register FILE *stream)
  859. 49809 {
  860. 49810         register char *cp = ptr;
  861. 49811         register int c;
  862. 49812         size_t ndone = 0;
  863. 49813         register size_t s;
  864. 49814
  865. 49815         if (size)
  866. 49816                 while ( ndone < nmemb ) {
  867. 49817                         s = size;
  868. 49818                         do {
  869. 49819                                 if ((c = getc(stream)) != EOF)
  870. 49820                                         *cp++ = c;
  871. 49821                                 else
  872. 49822                                         return ndone;
  873. 49823                         } while (--s);
  874. 49824                         ndone++;
  875. 49825                 }
  876. 49826
  877. 49827         return ndone;
  878. 49828 }
  879. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  880. src/lib/stdio/freopen.c    
  881. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  882. 49900 /*
  883. 49901  * freopen.c - open a file and associate a stream with it
  884. 49902  */
  885. 49903 /* $Header: freopen.c,v 1.8 90/08/28 13:44:48 eck Exp $ */
  886. 49904
  887. 49905 #if     defined(_POSIX_SOURCE)
  888. 49906 #include        <sys/types.h>
  889. 49907 #endif
  890. 49908 #include        <stdio.h>
  891. 49909 #include        <stdlib.h>
  892. 49910 #include        "loc_incl.h"
  893. 49911
  894. 49912 #define PMODE           0666
  895. 49913
  896. 49914 /* Do not "optimize" this file to use the open with O_CREAT if the file
  897. 49915  * does not exist. The reason is given in fopen.c.
  898. 49916  */
  899. 49917 #define O_RDONLY        0
  900. 49918 #define O_WRONLY        1
  901. 49919 #define O_RDWR          2
  902. .Op 455 src/lib/stdio/freopen.c
  903. 49920
  904. 49921 #define O_CREAT         0x010
  905. 49922 #define O_TRUNC         0x020
  906. 49923 #define O_APPEND        0x040
  907. 49924
  908. 49925 int _open(const char *path, int flags);
  909. 49926 int _creat(const char *path, Mode_t mode);
  910. 49927 int _close(int d);
  911. 49928
  912. 49929 FILE *
  913. 49930 freopen(const char *name, const char *mode, FILE *stream)
  914. 49931 {
  915. 49932         register int i;
  916. 49933         int rwmode = 0, rwflags = 0;
  917. 49934         int fd, flags = stream->_flags & (_IONBF | _IOFBF | _IOLBF | _IOMYBUF);
  918. 49935
  919. 49936         (void) fflush(stream);                          /* ignore errors */
  920. 49937         (void) _close(fileno(stream));
  921. 49938
  922. 49939         switch(*mode++) {
  923. 49940         case 'r':
  924. 49941                 flags |= _IOREAD;       
  925. 49942                 rwmode = O_RDONLY;
  926. 49943                 break;
  927. 49944         case 'w':
  928. 49945                 flags |= _IOWRITE;
  929. 49946                 rwmode = O_WRONLY;
  930. 49947                 rwflags = O_CREAT | O_TRUNC;
  931. 49948                 break;
  932. 49949         case 'a': 
  933. 49950                 flags |= _IOWRITE | _IOAPPEND;
  934. 49951                 rwmode = O_WRONLY;
  935. 49952                 rwflags |= O_APPEND | O_CREAT;
  936. 49953                 break;         
  937. 49954         default:
  938. 49955                 return (FILE *)NULL;
  939. 49956         }
  940. 49957
  941. 49958         while (*mode) {
  942. 49959                 switch(*mode++) {
  943. 49960                 case 'b':
  944. 49961                         continue;
  945. 49962                 case '+':
  946. 49963                         rwmode = O_RDWR;
  947. 49964                         flags |= _IOREAD | _IOWRITE;
  948. 49965                         continue;
  949. 49966                 /* The sequence may be followed by aditional characters */
  950. 49967                 default:
  951. 49968                         break;
  952. 49969                 }
  953. 49970                 break;
  954. 49971         }
  955. 49972
  956. 49973         if ((rwflags & O_TRUNC)
  957. 49974             || (((fd = _open(name, rwmode)) < 0)
  958. 49975                     && (rwflags & O_CREAT))) {
  959. 49976                 if (((fd = _creat(name, PMODE)) < 0) && flags | _IOREAD) {
  960. 49977                         (void) _close(fd);
  961. 49978                         fd = _open(name, rwmode);
  962. 49979                 }
  963. .Ep 456 src/lib/stdio/freopen.c
  964. 49980         }
  965. 49981
  966. 49982         if (fd < 0) {
  967. 49983                 for( i = 0; i < FOPEN_MAX; i++) {
  968. 49984                         if (stream == __iotab[i]) {
  969. 49985                                 __iotab[i] = 0;
  970. 49986                                 break;
  971. 49987                         }
  972. 49988                 }
  973. 49989                 if (stream != stdin && stream != stdout && stream != stderr)
  974. 49990                         free((void *)stream);
  975. 49991                 return (FILE *)NULL;
  976. 49992         }
  977. 49993
  978. 49994         stream->_count = 0;
  979. 49995         stream->_fd = fd;
  980. 49996         stream->_flags = flags;
  981. 49997         return stream;
  982. 49998 }
  983. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  984. src/lib/stdio/fscanf.c    
  985. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  986. 50000 /*
  987. 50001  * fscanf.c - read formatted input from stream
  988. 50002  */
  989. 50003 /* $Header: fscanf.c,v 1.1 89/05/30 13:29:17 eck Exp $ */
  990. 50004
  991. 50005 #include        <stdio.h>
  992. 50006 #include        <stdarg.h>
  993. 50007 #include        "loc_incl.h"
  994. 50008
  995. 50009 int
  996. 50010 fscanf(FILE *stream, const char *format, ...)
  997. 50011 {
  998. 50012         va_list ap;
  999. 50013         int retval;
  1000. 50014
  1001. 50015         va_start(ap, format);
  1002. 50016
  1003. 50017         retval = _doscan(stream, format, ap);
  1004. 50018
  1005. 50019         va_end(ap);
  1006. 50020
  1007. 50021         return retval;
  1008. 50022 }
  1009. .Op 457 src/lib/stdio/fseek.c
  1010. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1011. src/lib/stdio/fseek.c    
  1012. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1013. 50100 /*
  1014. 50101  * fseek.c - perform an fseek
  1015. 50102  */
  1016. 50103 /* $Header: fseek.c,v 1.4 90/01/22 11:12:00 eck Exp $ */
  1017. 50104
  1018. 50105 #include        <stdio.h>
  1019. 50106
  1020. 50107 #if     (SEEK_CUR != 1) || (SEEK_END != 2) || (SEEK_SET != 0)
  1021. 50108 #error SEEK_* values are wrong
  1022. 50109 #endif
  1023. 50110
  1024. 50111 #include        "loc_incl.h"
  1025. 50112
  1026. 50113 #include        <sys/types.h>
  1027. 50114
  1028. 50115 off_t _lseek(int fildes, off_t offset, int whence);
  1029. 50116
  1030. 50117 int
  1031. 50118 fseek(FILE *stream, long int offset, int whence)
  1032. 50119 {
  1033. 50120         int adjust = 0;
  1034. 50121         long pos;
  1035. 50122
  1036. 50123         stream->_flags &= ~(_IOEOF | _IOERR);
  1037. 50124         /* Clear both the end of file and error flags */
  1038. 50125
  1039. 50126         if (io_testflag(stream, _IOREADING)) {
  1040. 50127                 if (whence == SEEK_CUR
  1041. 50128                     && stream->_buf
  1042. 50129                     && !io_testflag(stream,_IONBF))
  1043. 50130                         adjust = stream->_count;
  1044. 50131                 stream->_count = 0;
  1045. 50132         } else if (io_testflag(stream,_IOWRITING)) {
  1046. 50133                 fflush(stream);
  1047. 50134         } else  /* neither reading nor writing. The buffer must be empty */
  1048. 50135                 /* EMPTY */ ;
  1049. 50136
  1050. 50137         pos = _lseek(fileno(stream), offset - adjust, whence);
  1051. 50138         if (io_testflag(stream, _IOREAD) && io_testflag(stream, _IOWRITE))
  1052. 50139                 stream->_flags &= ~(_IOREADING | _IOWRITING);
  1053. 50140
  1054. 50141         stream->_ptr = stream->_buf;
  1055. 50142         return ((pos == -1) ? -1 : 0);
  1056. 50143 }
  1057. .Ep 458 src/lib/stdio/fsetpos.c
  1058. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1059. src/lib/stdio/fsetpos.c    
  1060. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1061. 50200 /*
  1062. 50201  * fsetpos.c - set the position in the file
  1063. 50202  */
  1064. 50203 /* $Header: fsetpos.c,v 1.1 89/05/30 13:29:34 eck Exp $ */
  1065. 50204
  1066. 50205 #include        <stdio.h>
  1067. 50206
  1068. 50207 int
  1069. 50208 fsetpos(FILE *stream, fpos_t *pos)
  1070. 50209 {
  1071. 50210         return fseek(stream, *pos, SEEK_SET);
  1072. 50211 }
  1073. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1074. src/lib/stdio/ftell.c    
  1075. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1076. 50300 /*
  1077. 50301  * ftell.c - obtain the value of the file-position indicator of a stream
  1078. 50302  */
  1079. 50303 /* $Header: ftell.c,v 1.4 90/01/22 11:12:12 eck Exp $ */
  1080. 50304
  1081. 50305 #include        <stdio.h>
  1082. 50306
  1083. 50307 #if     (SEEK_CUR != 1) || (SEEK_SET != 0) || (SEEK_END != 2)
  1084. 50308 #error SEEK_* values are wrong
  1085. 50309 #endif
  1086. 50310
  1087. 50311 #include        "loc_incl.h"
  1088. 50312
  1089. 50313 #include        <sys/types.h>
  1090. 50314
  1091. 50315 off_t _lseek(int fildes, off_t offset, int whence);
  1092. 50316
  1093. 50317 long ftell(FILE *stream)
  1094. 50318 {
  1095. 50319         long result;
  1096. 50320         int adjust = 0;
  1097. 50321
  1098. 50322         if (io_testflag(stream,_IOREADING))
  1099. 50323                 adjust = -stream->_count;
  1100. 50324         else if (io_testflag(stream,_IOWRITING)
  1101. 50325                     && stream->_buf
  1102. 50326                     && !io_testflag(stream,_IONBF))
  1103. 50327                 adjust = stream->_ptr - stream->_buf;
  1104. 50328         else adjust = 0;
  1105. 50329
  1106. 50330         result = _lseek(fileno(stream), (off_t)0, SEEK_CUR);
  1107. 50331
  1108. 50332         if ( result == -1 )
  1109. 50333                 return result;
  1110. 50334
  1111. .Op 459 src/lib/stdio/ftell.c
  1112. 50335         result += (long) adjust;
  1113. 50336         return result;
  1114. 50337 }
  1115. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1116. src/lib/stdio/fwrite.c    
  1117. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1118. 50400 /*
  1119. 50401  * fwrite.c - write a number of array elements on a file
  1120. 50402  */
  1121. 50403 /* $Header: fwrite.c,v 1.3 89/12/18 15:02:39 eck Exp $ */
  1122. 50404
  1123. 50405 #include        <stdio.h>
  1124. 50406
  1125. 50407 size_t
  1126. 50408 fwrite(const void *ptr, size_t size, size_t nmemb,
  1127. 50409             register FILE *stream)
  1128. 50410 {
  1129. 50411         register const unsigned char *cp = ptr;
  1130. 50412         register size_t s;
  1131. 50413         size_t ndone = 0;
  1132. 50414
  1133. 50415         if (size)
  1134. 50416                 while ( ndone < nmemb ) {
  1135. 50417                         s = size;
  1136. 50418                         do {
  1137. 50419                                 if (putc((int)*cp, stream)
  1138. 50420                                         == EOF)
  1139. 50421                                         return ndone;
  1140. 50422                                 cp++;
  1141. 50423                         } 
  1142. 50424                         while (--s);
  1143. 50425                         ndone++;
  1144. 50426                 }
  1145. 50427         return ndone;
  1146. 50428 }
  1147. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1148. src/lib/stdio/getc.c    
  1149. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1150. 50500 /*
  1151. 50501  * getc.c - read an unsigned character
  1152. 50502  */
  1153. 50503 /* $Header: getc.c,v 1.2 89/12/18 15:02:45 eck Exp $ */
  1154. 50504
  1155. 50505 #include        <stdio.h>
  1156. 50506
  1157. 50507 int
  1158. 50508 (getc)(FILE *stream)
  1159. 50509 {
  1160. 50510         return getc(stream);
  1161. 50511 }
  1162. .Ep 460 src/lib/stdio/getchar.c
  1163. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1164. src/lib/stdio/getchar.c    
  1165. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1166. 50600 /*
  1167. 50601  * getchar.c - read a character from the standard input stream
  1168. 50602  */
  1169. 50603 /* $Header: getchar.c,v 1.2 89/12/18 15:02:53 eck Exp $ */
  1170. 50604
  1171. 50605 #include        <stdio.h>
  1172. 50606
  1173. 50607 int
  1174. 50608 (getchar)(void)
  1175. 50609 {
  1176. 50610         return getchar();
  1177. 50611 }
  1178. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1179. src/lib/stdio/gets.c    
  1180. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1181. 50700 /*
  1182. 50701  * gets.c - read a line from a stream
  1183. 50702  */
  1184. 50703 /* $Header: gets.c,v 1.2 89/12/18 15:03:00 eck Exp $ */
  1185. 50704
  1186. 50705 #include        <stdio.h>
  1187. 50706
  1188. 50707 char *
  1189. 50708 gets(char *s)
  1190. 50709 {
  1191. 50710         register FILE *stream = stdin;
  1192. 50711         register int ch;
  1193. 50712         register char *ptr;
  1194. 50713
  1195. 50714         ptr = s;
  1196. 50715         while ((ch = getc(stream)) != EOF && ch != 'n')
  1197. 50716                 *ptr++ = ch;
  1198. 50717
  1199. 50718         if (ch == EOF) {
  1200. 50719                 if (feof(stream)) {
  1201. 50720                         if (ptr == s) return NULL;
  1202. 50721                 } else return NULL;
  1203. 50722         }
  1204. 50723
  1205. 50724         *ptr = '';
  1206. 50725         return s;
  1207. 50726 }
  1208. .Op 461 src/lib/stdio/icompute.c
  1209. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1210. src/lib/stdio/icompute.c    
  1211. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1212. 50800 /*
  1213. 50801  * icompute.c - compute an integer
  1214. 50802  */
  1215. 50803 /* $Header: icompute.c,v 1.1 89/12/18 14:59:38 eck Exp $ */
  1216. 50804
  1217. 50805 #include        "loc_incl.h"
  1218. 50806
  1219. 50807 /* This routine is used in doprnt.c as well as in tmpfile.c and tmpnam.c. */
  1220. 50808
  1221. 50809 char *
  1222. 50810 _i_compute(unsigned long val, int base, char *s, int nrdigits)
  1223. 50811 {
  1224. 50812         int c;
  1225. 50813
  1226. 50814         c= val % base ;
  1227. 50815         val /= base ;
  1228. 50816         if (val || nrdigits > 1)
  1229. 50817                 s = _i_compute(val, base, s, nrdigits - 1);
  1230. 50818         *s++ = (c>9 ? c-10+'a' : c+'0');
  1231. 50819         return s;
  1232. 50820 }
  1233. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1234. src/lib/stdio/perror.c    
  1235. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1236. 50900 /*
  1237. 50901  * perror.c - print an error message on the standard error output
  1238. 50902  */
  1239. 50903 /* $Header: perror.c,v 1.1 89/05/30 13:31:30 eck Exp $ */
  1240. 50904
  1241. 50905 #if     defined(_POSIX_SOURCE)
  1242. 50906 #include        <sys/types.h>
  1243. 50907 #endif
  1244. 50908 #include        <stdio.h>
  1245. 50909 #include        <errno.h>
  1246. 50910 #include        <stdio.h>
  1247. 50911 #include        <string.h>
  1248. 50912 #include        "loc_incl.h"
  1249. 50913
  1250. 50914 ssize_t _write(int d, const char *buf, size_t nbytes);
  1251. 50915
  1252. 50916 void
  1253. 50917 perror(const char *s)
  1254. 50918 {
  1255. 50919         char *p;
  1256. 50920         int fd;
  1257. 50921
  1258. 50922         p = strerror(errno);
  1259. 50923         fd = fileno(stderr);
  1260. 50924         fflush(stdout);
  1261. .Ep 462 src/lib/stdio/perror.c
  1262. 50925         fflush(stderr);
  1263. 50926         if (s && *s) {
  1264. 50927                 _write(fd, s, strlen(s));
  1265. 50928                 _write(fd, ": ", 2);
  1266. 50929         }
  1267. 50930         _write(fd, p, strlen(p));
  1268. 50931         _write(fd, "n", 1);
  1269. 50932 }
  1270. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1271. src/lib/stdio/printf.c    
  1272. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1273. 51000 /*
  1274. 51001  * printf - write on the standard output stream
  1275. 51002  */
  1276. 51003 /* $Header: printf.c,v 1.3 89/12/18 15:03:08 eck Exp $ */
  1277. 51004
  1278. 51005 #include        <stdio.h>
  1279. 51006 #include        <stdarg.h>
  1280. 51007 #include        "loc_incl.h"
  1281. 51008
  1282. 51009 int
  1283. 51010 printf(const char *format, ...)
  1284. 51011 {
  1285. 51012         va_list ap;
  1286. 51013         int retval;
  1287. 51014
  1288. 51015         va_start(ap, format);
  1289. 51016
  1290. 51017         retval = _doprnt(format, ap, stdout);
  1291. 51018
  1292. 51019         va_end(ap);
  1293. 51020
  1294. 51021         return retval;
  1295. 51022 }
  1296. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1297. src/lib/stdio/putc.c    
  1298. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1299. 51100 /*
  1300. 51101  * putc.c - print (or buffer) one character
  1301. 51102  */
  1302. 51103 /* $Header: putc.c,v 1.2 89/12/18 15:03:15 eck Exp $ */
  1303. 51104
  1304. 51105 #include        <stdio.h>
  1305. 51106
  1306. 51107 int
  1307. 51108 (putc)(int c, FILE *stream)
  1308. 51109 {
  1309. 51110         return putc(c, stream);
  1310. 51111 }
  1311. .Op 463 src/lib/stdio/putchar.c
  1312. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1313. src/lib/stdio/putchar.c    
  1314. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1315. 51200 /*
  1316. 51201  * putchar.c - print (or buffer) a character on the standard output stream
  1317. 51202  */
  1318. 51203 /* $Header: putchar.c,v 1.2 89/12/18 15:03:23 eck Exp $ */
  1319. 51204
  1320. 51205 #include        <stdio.h>
  1321. 51206
  1322. 51207 int
  1323. 51208 (putchar)(int c)
  1324. 51209 {
  1325. 51210         return putchar(c);
  1326. 51211 }
  1327. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1328. src/lib/stdio/puts.c    
  1329. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1330. 51300 /*
  1331. 51301  * puts.c - print a string onto the standard output stream
  1332. 51302  */
  1333. 51303 /* $Header: puts.c,v 1.2 89/12/18 15:03:30 eck Exp $ */
  1334. 51304
  1335. 51305 #include        <stdio.h>
  1336. 51306
  1337. 51307 int
  1338. 51308 puts(register const char *s)
  1339. 51309 {
  1340. 51310         register FILE *file = stdout;
  1341. 51311         register int i = 0;
  1342. 51312
  1343. 51313         while (*s) {
  1344. 51314                 if (putc(*s++, file) == EOF) return EOF;
  1345. 51315                 else i++;
  1346. 51316         }
  1347. 51317         if (putc('n', file) == EOF) return EOF;
  1348. 51318         return i + 1;
  1349. 51319 }
  1350. .Ep 464 src/lib/stdio/remove.c
  1351. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1352. src/lib/stdio/remove.c    
  1353. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1354. 51400 /*
  1355. 51401  * remove.c - remove a file
  1356. 51402  */
  1357. 51403 /* $Header: remove.c,v 1.2 90/01/22 11:12:44 eck Exp $ */
  1358. 51404
  1359. 51405 #include        <stdio.h>
  1360. 51406
  1361. 51407 int _unlink(const char *path);
  1362. 51408
  1363. 51409 int
  1364. 51410 remove(const char *filename) {
  1365. 51411         return _unlink(filename);
  1366. 51412 }
  1367. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1368. src/lib/stdio/rewind.c    
  1369. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1370. 51500 /*
  1371. 51501  * rewind.c - set the file position indicator of a stream to the start
  1372. 51502  */
  1373. 51503 /* $Header: rewind.c,v 1.1 89/05/30 13:32:52 eck Exp $ */
  1374. 51504
  1375. 51505 #include        <stdio.h>
  1376. 51506 #include        "loc_incl.h"
  1377. 51507
  1378. 51508 void
  1379. 51509 rewind(FILE *stream)
  1380. 51510 {
  1381. 51511         (void) fseek(stream, 0L, SEEK_SET);
  1382. 51512         clearerr(stream);
  1383. 51513 }
  1384. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1385. src/lib/stdio/scanf.c    
  1386. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1387. 51600 /*
  1388. 51601  * scanf.c - read formatted input from the standard input stream
  1389. 51602  */
  1390. 51603 /* $Header: scanf.c,v 1.1 89/05/30 13:33:03 eck Exp $ */
  1391. 51604
  1392. 51605 #include        <stdio.h>
  1393. 51606 #include        <stdarg.h>
  1394. 51607 #include        "loc_incl.h"
  1395. 51608
  1396. 51609 int
  1397. 51610 scanf(const char *format, ...)
  1398. 51611 {
  1399. 51612         va_list ap;
  1400. 51613         int retval;
  1401. 51614
  1402. .Op 465 src/lib/stdio/scanf.c
  1403. 51615         va_start(ap, format);
  1404. 51616
  1405. 51617         retval = _doscan(stdin, format, ap);
  1406. 51618
  1407. 51619         va_end(ap);
  1408. 51620
  1409. 51621         return retval;
  1410. 51622 }
  1411. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1412. src/lib/stdio/setbuf.c    
  1413. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1414. 51700 /*
  1415. 51701  * setbuf.c - control buffering of a stream
  1416. 51702  */
  1417. 51703 /* $Header: setbuf.c,v 1.2 89/06/26 10:36:22 eck Exp $ */
  1418. 51704
  1419. 51705 #include        <stdio.h>
  1420. 51706 #include        "loc_incl.h"
  1421. 51707
  1422. 51708 void
  1423. 51709 setbuf(register FILE *stream, char *buf)
  1424. 51710 {
  1425. 51711         (void) setvbuf(stream, buf, (buf ? _IOFBF : _IONBF), (size_t) BUFSIZ);
  1426. 51712 }
  1427. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1428. src/lib/stdio/setvbuf.c    
  1429. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1430. 51800 /*
  1431. 51801  * setbuf.c - control buffering of a stream
  1432. 51802  */
  1433. 51803 /* $Id: setvbuf.c,v 1.8 1995/12/18 11:02:18 ceriel Exp $ */
  1434. 51804
  1435. 51805 #include        <stdio.h>
  1436. 51806 #include        <stdlib.h>
  1437. 51807 #include        "loc_incl.h"
  1438. 51808
  1439. 51809 extern void (*_clean)(void);
  1440. 51810
  1441. 51811 int
  1442. 51812 setvbuf(register FILE *stream, char *buf, int mode, size_t size)
  1443. 51813 {
  1444. 51814         int retval = 0;
  1445. 51815
  1446. 51816         _clean = __cleanup;
  1447. 51817         if (mode != _IOFBF && mode != _IOLBF && mode != _IONBF)
  1448. 51818                 return EOF;
  1449. 51819
  1450. .Ep 466 src/lib/stdio/setvbuf.c
  1451. 51820         if (stream->_buf && io_testflag(stream,_IOMYBUF) )
  1452. 51821                 free((void *)stream->_buf);
  1453. 51822
  1454. 51823         stream->_flags &= ~(_IOMYBUF | _IONBF | _IOLBF);
  1455. 51824
  1456. 51825         if (buf && size <= 0) retval = EOF;
  1457. 51826         if (!buf && (mode != _IONBF)) {
  1458. 51827                 if (size <= 0 || (buf = (char *) malloc(size)) == NULL) {
  1459. 51828                         retval = EOF;
  1460. 51829                 } else {
  1461. 51830                         stream->_flags |= _IOMYBUF;
  1462. 51831                 }
  1463. 51832         }
  1464. 51833
  1465. 51834         stream->_buf = (unsigned char *) buf;
  1466. 51835
  1467. 51836         stream->_count = 0;
  1468. 51837         stream->_flags |= mode;
  1469. 51838         stream->_ptr = stream->_buf;
  1470. 51839
  1471. 51840         if (!buf) {
  1472. 51841                 stream->_bufsiz = 1;
  1473. 51842         } else {
  1474. 51843                 stream->_bufsiz = size;
  1475. 51844         }
  1476. 51845
  1477. 51846         return retval;
  1478. 51847 }
  1479. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1480. src/lib/stdio/sprintf.c    
  1481. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1482. 51900 /*
  1483. 51901  * sprintf - print formatted output on an array
  1484. 51902  */
  1485. 51903 /* $Header: sprintf.c,v 1.2 89/12/18 15:03:52 eck Exp $ */
  1486. 51904
  1487. 51905 #include        <stdio.h>
  1488. 51906 #include        <stdarg.h>
  1489. 51907 #include        "loc_incl.h"
  1490. 51908
  1491. 51909 int
  1492. 51910 sprintf(char * s, const char *format, ...)
  1493. 51911 {
  1494. 51912         va_list ap;
  1495. 51913         int retval;
  1496. 51914         FILE tmp_stream;
  1497. 51915
  1498. 51916         va_start(ap, format);
  1499. 51917
  1500. 51918         tmp_stream._fd     = -1;
  1501. 51919         tmp_stream._flags  = _IOWRITE + _IONBF + _IOWRITING;
  1502. 51920         tmp_stream._buf    = (unsigned char *) s;
  1503. 51921         tmp_stream._ptr    = (unsigned char *) s;
  1504. 51922         tmp_stream._count  = 32767;
  1505. 51923
  1506. 51924         retval = _doprnt(format, ap, &tmp_stream);
  1507. .Op 467 src/lib/stdio/sprintf.c
  1508. 51925         putc('',&tmp_stream);
  1509. 51926
  1510. 51927         va_end(ap);
  1511. 51928
  1512. 51929         return retval;
  1513. 51930 }
  1514. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1515. src/lib/stdio/sscanf.c    
  1516. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1517. 52000 /*
  1518. 52001  * sscanf - read formatted output from a string
  1519. 52002  */
  1520. 52003 /* $Header: sscanf.c,v 1.3 90/09/26 13:17:39 eck Exp $ */
  1521. 52004
  1522. 52005 #include        <stdio.h>
  1523. 52006 #include        <stdarg.h>
  1524. 52007 #include        <string.h>
  1525. 52008 #include        "loc_incl.h"
  1526. 52009
  1527. 52010 int sscanf(const char *s, const char *format, ...)
  1528. 52011 {
  1529. 52012         va_list ap;
  1530. 52013         int retval;
  1531. 52014         FILE tmp_stream;
  1532. 52015
  1533. 52016         va_start(ap, format);
  1534. 52017
  1535. 52018         tmp_stream._fd     = -1;
  1536. 52019         tmp_stream._flags  = _IOREAD + _IONBF + _IOREADING;
  1537. 52020         tmp_stream._buf    = (unsigned char *) s;
  1538. 52021         tmp_stream._ptr    = (unsigned char *) s;
  1539. 52022         tmp_stream._count  = strlen(s);
  1540. 52023
  1541. 52024         retval = _doscan(&tmp_stream, format, ap);
  1542. 52025
  1543. 52026         va_end(ap);
  1544. 52027
  1545. 52028         return retval;
  1546. 52029 }
  1547. .Ep 468 src/lib/stdio/tmpfile.c
  1548. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1549. src/lib/stdio/tmpfile.c    
  1550. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1551. 52100 /*
  1552. 52101  * tmpfile.c - create and open a temporary file
  1553. 52102  */
  1554. 52103 /* $Header: tmpfile.c,v 1.3 90/01/22 11:13:15 eck Exp $ */
  1555. 52104
  1556. 52105 #if     defined(_POSIX_SOURCE)
  1557. 52106 #include        <sys/types.h>
  1558. 52107 #endif
  1559. 52108 #include        <stdio.h>
  1560. 52109 #include        <string.h>
  1561. 52110 #include        "loc_incl.h"
  1562. 52111
  1563. 52112 pid_t _getpid(void);
  1564. 52113
  1565. 52114 FILE *
  1566. 52115 tmpfile(void) {
  1567. 52116         static char name_buffer[L_tmpnam] = "/tmp/tmp." ;
  1568. 52117         static char *name = NULL;
  1569. 52118         FILE *file;
  1570. 52119
  1571. 52120         if (!name) {
  1572. 52121                 name = name_buffer + strlen(name_buffer);
  1573. 52122                 name = _i_compute(_getpid(), 10, name, 5);
  1574. 52123                 *name = '';
  1575. 52124         }
  1576. 52125
  1577. 52126         file = fopen(name_buffer,"wb+");
  1578. 52127         if (!file) return (FILE *)NULL;
  1579. 52128         (void) remove(name_buffer);
  1580. 52129         return file;
  1581. 52130 }
  1582. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1583. src/lib/stdio/tmpnam.c    
  1584. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1585. 52200 /*
  1586. 52201  * tmpnam.c - create a unique filename
  1587. 52202  */
  1588. 52203 /* $Header: tmpnam.c,v 1.4 91/02/26 09:28:39 ceriel Exp $ */
  1589. 52204
  1590. 52205 #if     defined(_POSIX_SOURCE)
  1591. 52206 #include        <sys/types.h>
  1592. 52207 #endif
  1593. 52208 #include        <stdio.h>
  1594. 52209 #include        <string.h>
  1595. 52210 #include        "loc_incl.h"
  1596. 52211
  1597. 52212 pid_t _getpid(void);
  1598. 52213
  1599. 52214 char *
  1600. .Op 469 src/lib/stdio/tmpnam.c
  1601. 52215 tmpnam(char *s) {
  1602. 52216         static char name_buffer[L_tmpnam] = "/tmp/tmp.";
  1603. 52217         static unsigned long count = 0;
  1604. 52218         static char *name = NULL;
  1605. 52219
  1606. 52220         if (!name) { 
  1607. 52221                 name = name_buffer + strlen(name_buffer);
  1608. 52222                 name = _i_compute((unsigned long)_getpid(), 10, name, 5);
  1609. 52223                 *name++ = '.';
  1610. 52224                 *name = '';
  1611. 52225         }
  1612. 52226         if (++count > TMP_MAX) count = 1;       /* wrap-around */
  1613. 52227         *_i_compute(count, 10, name, 3) = '';
  1614. 52228         if (s) return strcpy(s, name_buffer);
  1615. 52229         else return name_buffer;
  1616. 52230 }
  1617. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1618. src/lib/stdio/ungetc.c    
  1619. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1620. 52300 /*
  1621. 52301  * ungetc.c - push a character back onto an input stream
  1622. 52302  */
  1623. 52303 /* $Header: ungetc.c,v 1.3 90/03/28 16:33:05 eck Exp $ */
  1624. 52304
  1625. 52305 #include        <stdio.h>
  1626. 52306 #include        "loc_incl.h"
  1627. 52307
  1628. 52308 int
  1629. 52309 ungetc(int ch, FILE *stream)
  1630. 52310 {
  1631. 52311         unsigned char *p;
  1632. 52312
  1633. 52313         if (ch == EOF  || !io_testflag(stream,_IOREADING))
  1634. 52314                 return EOF;
  1635. 52315         if (stream->_ptr == stream->_buf) {
  1636. 52316                 if (stream->_count != 0) return EOF;
  1637. 52317                 stream->_ptr++;
  1638. 52318         }
  1639. 52319         stream->_count++;
  1640. 52320         p = --(stream->_ptr);           /* ??? Bloody vax assembler !!! */
  1641. 52321         /* ungetc() in sscanf() shouldn't write in rom */
  1642. 52322         if (*p != (unsigned char) ch)
  1643. 52323                 *p = (unsigned char) ch;
  1644. 52324         return ch;
  1645. 52325 }
  1646. .Ep 470 src/lib/stdio/vfprintf.c
  1647. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1648. src/lib/stdio/vfprintf.c    
  1649. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1650. 52400 /*
  1651. 52401  * vfprintf - formatted output without ellipsis
  1652. 52402  */
  1653. 52403 /* $Header: vfprintf.c,v 1.2 89/12/18 15:04:07 eck Exp $ */
  1654. 52404
  1655. 52405 #include        <stdio.h>
  1656. 52406 #include        <stdarg.h>
  1657. 52407 #include        "loc_incl.h"
  1658. 52408
  1659. 52409 int
  1660. 52410 vfprintf(FILE *stream, const char *format, va_list arg)
  1661. 52411 {
  1662. 52412         return _doprnt (format, arg, stream);
  1663. 52413 }
  1664. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1665. src/lib/stdio/vprintf.c    
  1666. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1667. 52500 /*
  1668. 52501  * vprintf - formatted output without ellipsis to the standard output stream
  1669. 52502  */
  1670. 52503 /* $Header: vprintf.c,v 1.3 89/12/18 15:04:14 eck Exp $ */
  1671. 52504
  1672. 52505 #include        <stdio.h>
  1673. 52506 #include        <stdarg.h>
  1674. 52507 #include        "loc_incl.h"
  1675. 52508
  1676. 52509 int
  1677. 52510 vprintf(const char *format, va_list arg)
  1678. 52511 {
  1679. 52512         return _doprnt(format, arg, stdout);
  1680. 52513 }
  1681. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1682. src/lib/stdio/vsprintf.c    
  1683. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1684. 52600 /*
  1685. 52601  * vsprintf - print formatted output without ellipsis on an array
  1686. 52602  */
  1687. 52603 /* $Header: vsprintf.c,v 1.2 90/11/13 10:56:53 eck Exp $ */
  1688. 52604
  1689. 52605 #include        <stdio.h>
  1690. 52606 #include        <stdarg.h>
  1691. 52607 #include        "loc_incl.h"
  1692. 52608
  1693. 52609 int
  1694. 52610 vsprintf(char *s, const char *format, va_list arg)
  1695. 52611 {
  1696. 52612         int retval;
  1697. 52613         FILE tmp_stream;
  1698. 52614
  1699. .Op 471 src/lib/stdio/vsprintf.c
  1700. 52615         tmp_stream._fd     = -1;
  1701. 52616         tmp_stream._flags  = _IOWRITE + _IONBF + _IOWRITING;
  1702. 52617         tmp_stream._buf    = (unsigned char *) s;
  1703. 52618         tmp_stream._ptr    = (unsigned char *) s;
  1704. 52619         tmp_stream._count  = 32767;
  1705. 52620
  1706. 52621         retval = _doprnt(format, arg, &tmp_stream);
  1707. 52622         putc('',&tmp_stream);
  1708. 52623
  1709. 52624         return retval;
  1710. 52625 }
  1711. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1712. src/lib/stdio/vscanf.c    
  1713. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1714. 52700 /*
  1715. 52701  * vscanf.c - read formatted input from the standard input stream
  1716. 52702  */
  1717. 52703
  1718. 52704 #include        <stdio.h>
  1719. 52705 #include        <stdarg.h>
  1720. 52706 #include        "loc_incl.h"
  1721. 52707
  1722. 52708 int
  1723. 52709 vscanf(const char *format, va_list ap)
  1724. 52710 {
  1725. 52711         return _doscan(stdin, format, ap);
  1726. 52712 }
  1727. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1728. src/lib/stdio/vsscanf.c    
  1729. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1730. 52800 /*
  1731. 52801  * vsscanf - read formatted output from a string
  1732. 52802  */
  1733. 52803
  1734. 52804 #include        <stdio.h>
  1735. 52805 #include        <stdarg.h>
  1736. 52806 #include        <string.h>
  1737. 52807 #include        "loc_incl.h"
  1738. 52808
  1739. 52809 int vsscanf(const char *s, const char *format, va_list ap)
  1740. 52810 {
  1741. 52811         FILE tmp_stream;
  1742. 52812
  1743. 52813         tmp_stream._fd     = -1;
  1744. 52814         tmp_stream._flags  = _IOREAD + _IONBF + _IOREADING;
  1745. 52815         tmp_stream._buf    = (unsigned char *) s;
  1746. 52816         tmp_stream._ptr    = (unsigned char *) s;
  1747. 52817         tmp_stream._count  = strlen(s);
  1748. 52818
  1749. 52819         return _doscan(&tmp_stream, format, ap);
  1750. .Ep 472 src/lib/stdio/vsscanf.c
  1751. 52820 }
  1752. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1753. src/lib/syscall/_exit.s    
  1754. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1755. 52900 .sect .text
  1756. 52901 .extern ___exit
  1757. 52902 .define __exit
  1758. 52903 .align 2
  1759. 52904
  1760. 52905 __exit:
  1761. 52906         jmp     ___exit
  1762. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1763. src/lib/syscall/access.s    
  1764. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1765. 53000 .sect .text
  1766. 53001 .extern __access
  1767. 53002 .define _access
  1768. 53003 .align 2
  1769. 53004
  1770. 53005 _access:
  1771. 53006         jmp     __access
  1772. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1773. src/lib/syscall/alarm.s    
  1774. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1775. 53100 .sect .text
  1776. 53101 .extern __alarm
  1777. 53102 .define _alarm
  1778. 53103 .align 2
  1779. 53104
  1780. 53105 _alarm:
  1781. 53106         jmp     __alarm
  1782. .Op 473 src/lib/syscall/brk.s
  1783. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1784. src/lib/syscall/brk.s    
  1785. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1786. 53200 .sect .text
  1787. 53201 .extern __brk
  1788. 53202 .define _brk
  1789. 53203 .align 2
  1790. 53204
  1791. 53205 _brk:
  1792. 53206         jmp     __brk
  1793. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1794. src/lib/syscall/cfgetispeed.s    
  1795. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1796. 53300 .sect .text
  1797. 53301 .extern __cfgetispeed
  1798. 53302 .define _cfgetispeed
  1799. 53303 .align 2
  1800. 53304
  1801. 53305 _cfgetispeed:
  1802. 53306         jmp     __cfgetispeed
  1803. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1804. src/lib/syscall/cfgetospeed.s    
  1805. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1806. 53400 .sect .text
  1807. 53401 .extern __cfgetospeed
  1808. 53402 .define _cfgetospeed
  1809. 53403 .align 2
  1810. 53404
  1811. 53405 _cfgetospeed:
  1812. 53406         jmp     __cfgetospeed
  1813. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1814. src/lib/syscall/cfsetispeed.s    
  1815. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1816. 53500 .sect .text
  1817. 53501 .extern __cfsetispeed
  1818. 53502 .define _cfsetispeed
  1819. 53503 .align 2
  1820. 53504
  1821. 53505 _cfsetispeed:
  1822. 53506         jmp     __cfsetispeed
  1823. .Ep 474 src/lib/syscall/cfsetospeed.s
  1824. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1825. src/lib/syscall/cfsetospeed.s    
  1826. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1827. 53600 .sect .text
  1828. 53601 .extern __cfsetospeed
  1829. 53602 .define _cfsetospeed
  1830. 53603 .align 2
  1831. 53604
  1832. 53605 _cfsetospeed:
  1833. 53606         jmp     __cfsetospeed
  1834. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1835. src/lib/syscall/chdir.s    
  1836. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1837. 53700 .sect .text
  1838. 53701 .extern __chdir
  1839. 53702 .define _chdir
  1840. 53703 .align 2
  1841. 53704
  1842. 53705 _chdir:
  1843. 53706         jmp     __chdir
  1844. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1845. src/lib/syscall/chmod.s    
  1846. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1847. 53800 .sect .text
  1848. 53801 .extern __chmod
  1849. 53802 .define _chmod
  1850. 53803 .align 2
  1851. 53804
  1852. 53805 _chmod:
  1853. 53806         jmp     __chmod
  1854. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1855. src/lib/syscall/chown.s    
  1856. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1857. 53900 .sect .text
  1858. 53901 .extern __chown
  1859. 53902 .define _chown
  1860. 53903 .align 2
  1861. 53904
  1862. 53905 _chown:
  1863. 53906         jmp     __chown
  1864. .Op 475 src/lib/syscall/chroot.s
  1865. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1866. src/lib/syscall/chroot.s    
  1867. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1868. 54000 .sect .text
  1869. 54001 .extern __chroot
  1870. 54002 .define _chroot
  1871. 54003 .align 2
  1872. 54004
  1873. 54005 _chroot:
  1874. 54006         jmp     __chroot
  1875. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1876. src/lib/syscall/close.s    
  1877. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1878. 54100 .sect .text
  1879. 54101 .extern __close
  1880. 54102 .define _close
  1881. 54103 .align 2
  1882. 54104
  1883. 54105 _close:
  1884. 54106         jmp     __close
  1885. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1886. src/lib/syscall/closedir.s    
  1887. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1888. 54200 .sect .text
  1889. 54201 .extern __closedir
  1890. 54202 .define _closedir
  1891. 54203 .align 2
  1892. 54204
  1893. 54205 _closedir:
  1894. 54206         jmp     __closedir
  1895. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1896. src/lib/syscall/creat.s    
  1897. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1898. 54300 .sect .text
  1899. 54301 .extern __creat
  1900. 54302 .define _creat
  1901. 54303 .align 2
  1902. 54304
  1903. 54305 _creat:
  1904. 54306         jmp     __creat
  1905. .Ep 476 src/lib/syscall/dup.s
  1906. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1907. src/lib/syscall/dup.s    
  1908. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1909. 54400 .sect .text
  1910. 54401 .extern __dup
  1911. 54402 .define _dup
  1912. 54403 .align 2
  1913. 54404
  1914. 54405 _dup:
  1915. 54406         jmp     __dup
  1916. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1917. src/lib/syscall/dup2.s    
  1918. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1919. 54500 .sect .text
  1920. 54501 .extern __dup2
  1921. 54502 .define _dup2
  1922. 54503 .align 2
  1923. 54504
  1924. 54505 _dup2:
  1925. 54506         jmp     __dup2
  1926. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1927. src/lib/syscall/execl.s    
  1928. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1929. 54600 .sect .text
  1930. 54601 .extern __execl
  1931. 54602 .define _execl
  1932. 54603 .align 2
  1933. 54604
  1934. 54605 _execl:
  1935. 54606         jmp     __execl
  1936. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1937. src/lib/syscall/execle.s    
  1938. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1939. 54700 .sect .text
  1940. 54701 .extern __execle
  1941. 54702 .define _execle
  1942. 54703 .align 2
  1943. 54704
  1944. 54705 _execle:
  1945. 54706         jmp     __execle
  1946. .Op 477 src/lib/syscall/execv.s
  1947. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1948. src/lib/syscall/execv.s    
  1949. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1950. 54800 .sect .text
  1951. 54801 .extern __execv
  1952. 54802 .define _execv
  1953. 54803 .align 2
  1954. 54804
  1955. 54805 _execv:
  1956. 54806         jmp     __execv
  1957. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1958. src/lib/syscall/execve.s    
  1959. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1960. 54900 .sect .text
  1961. 54901 .extern __execve
  1962. 54902 .define _execve
  1963. 54903 .align 2
  1964. 54904
  1965. 54905 _execve:
  1966. 54906         jmp     __execve
  1967. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1968. src/lib/syscall/fcntl.s    
  1969. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1970. 55000 .sect .text
  1971. 55001 .extern __fcntl
  1972. 55002 .define _fcntl
  1973. 55003 .align 2
  1974. 55004
  1975. 55005 _fcntl:
  1976. 55006         jmp     __fcntl
  1977. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1978. src/lib/syscall/fork.s    
  1979. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1980. 55100 .sect .text
  1981. 55101 .extern __fork
  1982. 55102 .define _fork
  1983. 55103 .align 2
  1984. 55104
  1985. 55105 _fork:
  1986. 55106         jmp     __fork
  1987. .Ep 478 src/lib/syscall/fpathconf.s
  1988. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1989. src/lib/syscall/fpathconf.s    
  1990. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1991. 55200 .sect .text
  1992. 55201 .extern __fpathconf
  1993. 55202 .define _fpathconf
  1994. 55203 .align 2
  1995. 55204
  1996. 55205 _fpathconf:
  1997. 55206         jmp     __fpathconf
  1998. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1999. src/lib/syscall/fstat.s    
  2000. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2001. 55300 .sect .text
  2002. 55301 .extern __fstat
  2003. 55302 .define _fstat
  2004. 55303 .align 2
  2005. 55304
  2006. 55305 _fstat:
  2007. 55306         jmp     __fstat
  2008. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2009. src/lib/syscall/getcwd.s    
  2010. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2011. 55400 .sect .text
  2012. 55401 .extern __getcwd
  2013. 55402 .define _getcwd
  2014. 55403 .align 2
  2015. 55404
  2016. 55405 _getcwd:
  2017. 55406         jmp     __getcwd
  2018. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2019. src/lib/syscall/getegid.s    
  2020. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2021. 55500 .sect .text
  2022. 55501 .extern __getegid
  2023. 55502 .define _getegid
  2024. 55503 .align 2
  2025. 55504
  2026. 55505 _getegid:
  2027. 55506         jmp     __getegid
  2028. .Op 479 src/lib/syscall/geteuid.s
  2029. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2030. src/lib/syscall/geteuid.s    
  2031. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2032. 55600 .sect .text
  2033. 55601 .extern __geteuid
  2034. 55602 .define _geteuid
  2035. 55603 .align 2
  2036. 55604
  2037. 55605 _geteuid:
  2038. 55606         jmp     __geteuid
  2039. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2040. src/lib/syscall/getgid.s    
  2041. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2042. 55700 .sect .text
  2043. 55701 .extern __getgid
  2044. 55702 .define _getgid
  2045. 55703 .align 2
  2046. 55704
  2047. 55705 _getgid:
  2048. 55706         jmp     __getgid
  2049. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2050. src/lib/syscall/getgroups.s    
  2051. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2052. 55800 .sect .text
  2053. 55801 .extern __getgroups
  2054. 55802 .define _getgroups
  2055. 55803 .align 2
  2056. 55804
  2057. 55805 _getgroups:
  2058. 55806         jmp     __getgroups
  2059. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2060. src/lib/syscall/getpgrp.s    
  2061. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2062. 55900 .sect .text
  2063. 55901 .extern __getpgrp
  2064. 55902 .define _getpgrp
  2065. 55903 .align 2
  2066. 55904
  2067. 55905 _getpgrp:
  2068. 55906         jmp     __getpgrp
  2069. .Ep 480 src/lib/syscall/getpid.s
  2070. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2071. src/lib/syscall/getpid.s    
  2072. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2073. 56000 .sect .text
  2074. 56001 .extern __getpid
  2075. 56002 .define _getpid
  2076. 56003 .align 2
  2077. 56004
  2078. 56005 _getpid:
  2079. 56006         jmp     __getpid
  2080. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2081. src/lib/syscall/getppid.s    
  2082. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2083. 56100 .sect .text
  2084. 56101 .extern __getppid
  2085. 56102 .define _getppid
  2086. 56103 .align 2
  2087. 56104
  2088. 56105 _getppid:
  2089. 56106         jmp     __getppid
  2090. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2091. src/lib/syscall/getuid.s    
  2092. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2093. 56200 .sect .text
  2094. 56201 .extern __getuid
  2095. 56202 .define _getuid
  2096. 56203 .align 2
  2097. 56204
  2098. 56205 _getuid:
  2099. 56206         jmp     __getuid
  2100. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2101. src/lib/syscall/ioctl.s    
  2102. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2103. 56300 .sect .text
  2104. 56301 .extern __ioctl
  2105. 56302 .define _ioctl
  2106. 56303 .align 2
  2107. 56304
  2108. 56305 _ioctl:
  2109. 56306         jmp     __ioctl
  2110. .Op 481 src/lib/syscall/isatty.s
  2111. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2112. src/lib/syscall/isatty.s    
  2113. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2114. 56400 .sect .text
  2115. 56401 .extern __isatty
  2116. 56402 .define _isatty
  2117. 56403 .align 2
  2118. 56404
  2119. 56405 _isatty:
  2120. 56406         jmp     __isatty
  2121. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2122. src/lib/syscall/kill.s    
  2123. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2124. 56500 .sect .text
  2125. 56501 .extern __kill
  2126. 56502 .define _kill
  2127. 56503 .align 2
  2128. 56504
  2129. 56505 _kill:
  2130. 56506         jmp     __kill
  2131. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2132. src/lib/syscall/link.s    
  2133. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2134. 56600 .sect .text
  2135. 56601 .extern __link
  2136. 56602 .define _link
  2137. 56603 .align 2
  2138. 56604
  2139. 56605 _link:
  2140. 56606         jmp     __link
  2141. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2142. src/lib/syscall/lseek.s    
  2143. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2144. 56700 .sect .text
  2145. 56701 .extern __lseek
  2146. 56702 .define _lseek
  2147. 56703 .align 2
  2148. 56704
  2149. 56705 _lseek:
  2150. 56706         jmp     __lseek
  2151. .Ep 482 src/lib/syscall/mkdir.s
  2152. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2153. src/lib/syscall/mkdir.s    
  2154. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2155. 56800 .sect .text
  2156. 56801 .extern __mkdir
  2157. 56802 .define _mkdir
  2158. 56803 .align 2
  2159. 56804
  2160. 56805 _mkdir:
  2161. 56806         jmp     __mkdir
  2162. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2163. src/lib/syscall/mkfifo.s    
  2164. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2165. 56900 .sect .text
  2166. 56901 .extern __mkfifo
  2167. 56902 .define _mkfifo
  2168. 56903 .align 2
  2169. 56904
  2170. 56905 _mkfifo:
  2171. 56906         jmp     __mkfifo
  2172. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2173. src/lib/syscall/mknod.s    
  2174. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2175. 57000 .sect .text
  2176. 57001 .extern __mknod
  2177. 57002 .define _mknod
  2178. 57003 .align 2
  2179. 57004
  2180. 57005 _mknod:
  2181. 57006         jmp     __mknod
  2182. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2183. src/lib/syscall/mktemp.s    
  2184. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2185. 57100 .sect .text
  2186. 57101 .extern __mktemp
  2187. 57102 .define _mktemp
  2188. 57103 .align 2
  2189. 57104
  2190. 57105 _mktemp:
  2191. 57106         jmp     __mktemp
  2192. .Op 483 src/lib/syscall/mount.s
  2193. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2194. src/lib/syscall/mount.s    
  2195. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2196. 57200 .sect .text
  2197. 57201 .extern __mount
  2198. 57202 .define _mount
  2199. 57203 .align 2
  2200. 57204
  2201. 57205 _mount:
  2202. 57206         jmp     __mount
  2203. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2204. src/lib/syscall/open.s    
  2205. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2206. 57300 .sect .text
  2207. 57301 .extern __open
  2208. 57302 .define _open
  2209. 57303 .align 2
  2210. 57304
  2211. 57305 _open:
  2212. 57306         jmp     __open
  2213. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2214. src/lib/syscall/opendir.s    
  2215. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2216. 57400 .sect .text
  2217. 57401 .extern __opendir
  2218. 57402 .define _opendir
  2219. 57403 .align 2
  2220. 57404
  2221. 57405 _opendir:
  2222. 57406         jmp     __opendir
  2223. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2224. src/lib/syscall/pathconf.s    
  2225. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2226. 57500 .sect .text
  2227. 57501 .extern __pathconf
  2228. 57502 .define _pathconf
  2229. 57503 .align 2
  2230. 57504
  2231. 57505 _pathconf:
  2232. 57506         jmp     __pathconf
  2233. .Ep 484 src/lib/syscall/pause.s
  2234. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2235. src/lib/syscall/pause.s    
  2236. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2237. 57600 .sect .text
  2238. 57601 .extern __pause
  2239. 57602 .define _pause
  2240. 57603 .align 2
  2241. 57604
  2242. 57605 _pause:
  2243. 57606         jmp     __pause
  2244. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2245. src/lib/syscall/pipe.s    
  2246. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2247. 57700 .sect .text
  2248. 57701 .extern __pipe
  2249. 57702 .define _pipe
  2250. 57703 .align 2
  2251. 57704
  2252. 57705 _pipe:
  2253. 57706         jmp     __pipe
  2254. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2255. src/lib/syscall/ptrace.s    
  2256. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2257. 57800 .sect .text
  2258. 57801 .extern __ptrace
  2259. 57802 .define _ptrace
  2260. 57803 .align 2
  2261. 57804
  2262. 57805 _ptrace:
  2263. 57806         jmp     __ptrace
  2264. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2265. src/lib/syscall/read.s    
  2266. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2267. 57900 .sect .text
  2268. 57901 .extern __read
  2269. 57902 .define _read
  2270. 57903 .align 2
  2271. 57904
  2272. 57905 _read:
  2273. 57906         jmp     __read
  2274. .Op 485 src/lib/syscall/readdir.s
  2275. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2276. src/lib/syscall/readdir.s    
  2277. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2278. 58000 .sect .text
  2279. 58001 .extern __readdir
  2280. 58002 .define _readdir
  2281. 58003 .align 2
  2282. 58004
  2283. 58005 _readdir:
  2284. 58006         jmp     __readdir
  2285. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2286. src/lib/syscall/reboot.s    
  2287. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2288. 58100 .sect .text
  2289. 58101 .extern __reboot
  2290. 58102 .define _reboot
  2291. 58103 .align 2
  2292. 58104
  2293. 58105 _reboot:
  2294. 58106         jmp     __reboot
  2295. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2296. src/lib/syscall/rename.s    
  2297. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2298. 58200 .sect .text
  2299. 58201 .extern __rename
  2300. 58202 .define _rename
  2301. 58203 .align 2
  2302. 58204
  2303. 58205 _rename:
  2304. 58206         jmp     __rename
  2305. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2306. src/lib/syscall/rewinddir.s    
  2307. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2308. 58300 .sect .text
  2309. 58301 .extern __rewinddir
  2310. 58302 .define _rewinddir
  2311. 58303 .align 2
  2312. 58304
  2313. 58305 _rewinddir:
  2314. 58306         jmp     __rewinddir
  2315. .Ep 486 src/lib/syscall/rmdir.s
  2316. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2317. src/lib/syscall/rmdir.s    
  2318. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2319. 58400 .sect .text
  2320. 58401 .extern __rmdir
  2321. 58402 .define _rmdir
  2322. 58403 .align 2
  2323. 58404
  2324. 58405 _rmdir:
  2325. 58406         jmp     __rmdir
  2326. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2327. src/lib/syscall/sbrk.s    
  2328. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2329. 58500 .sect .text
  2330. 58501 .extern __sbrk
  2331. 58502 .define _sbrk
  2332. 58503 .align 2
  2333. 58504
  2334. 58505 _sbrk:
  2335. 58506         jmp     __sbrk
  2336. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2337. src/lib/syscall/seekdir.s    
  2338. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2339. 58600 .sect .text
  2340. 58601 .extern __seekdir
  2341. 58602 .define _seekdir
  2342. 58603 .align 2
  2343. 58604
  2344. 58605 _seekdir:
  2345. 58606         jmp     __seekdir
  2346. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2347. src/lib/syscall/setgid.s    
  2348. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2349. 58700 .sect .text
  2350. 58701 .extern __setgid
  2351. 58702 .define _setgid
  2352. 58703 .align 2
  2353. 58704
  2354. 58705 _setgid:
  2355. 58706         jmp     __setgid
  2356. .Op 487 src/lib/syscall/setsid.s
  2357. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2358. src/lib/syscall/setsid.s    
  2359. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2360. 58800 .sect .text
  2361. 58801 .extern __setsid
  2362. 58802 .define _setsid
  2363. 58803 .align 2
  2364. 58804
  2365. 58805 _setsid:
  2366. 58806         jmp     __setsid
  2367. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2368. src/lib/syscall/setuid.s    
  2369. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2370. 58900 .sect .text
  2371. 58901 .extern __setuid
  2372. 58902 .define _setuid
  2373. 58903 .align 2
  2374. 58904
  2375. 58905 _setuid:
  2376. 58906         jmp     __setuid
  2377. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2378. src/lib/syscall/sigaction.s    
  2379. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2380. 59000 .sect .text
  2381. 59001 .extern __sigaction
  2382. 59002 .define _sigaction
  2383. 59003 .align 2
  2384. 59004
  2385. 59005 _sigaction:
  2386. 59006         jmp     __sigaction
  2387. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2388. src/lib/syscall/sigaddset.s    
  2389. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2390. 59100 .sect .text
  2391. 59101 .extern __sigaddset
  2392. 59102 .define _sigaddset
  2393. 59103 .align 2
  2394. 59104
  2395. 59105 _sigaddset:
  2396. 59106         jmp     __sigaddset
  2397. .Ep 488 src/lib/syscall/sigdelset.s
  2398. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2399. src/lib/syscall/sigdelset.s    
  2400. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2401. 59200 .sect .text
  2402. 59201 .extern __sigdelset
  2403. 59202 .define _sigdelset
  2404. 59203 .align 2
  2405. 59204
  2406. 59205 _sigdelset:
  2407. 59206         jmp     __sigdelset
  2408. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2409. src/lib/syscall/sigemptyset.s    
  2410. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2411. 59300 .sect .text
  2412. 59301 .extern __sigemptyset
  2413. 59302 .define _sigemptyset
  2414. 59303 .align 2
  2415. 59304
  2416. 59305 _sigemptyset:
  2417. 59306         jmp     __sigemptyset
  2418. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2419. src/lib/syscall/sigfillset.s    
  2420. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2421. 59400 .sect .text
  2422. 59401 .extern __sigfillset
  2423. 59402 .define _sigfillset
  2424. 59403 .align 2
  2425. 59404
  2426. 59405 _sigfillset:
  2427. 59406         jmp     __sigfillset
  2428. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2429. src/lib/syscall/sigismember.s    
  2430. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2431. 59500 .sect .text
  2432. 59501 .extern __sigismember
  2433. 59502 .define _sigismember
  2434. 59503 .align 2
  2435. 59504
  2436. 59505 _sigismember:
  2437. 59506         jmp     __sigismember
  2438. .Op 489 src/lib/syscall/sigpending.s
  2439. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2440. src/lib/syscall/sigpending.s    
  2441. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2442. 59600 .sect .text
  2443. 59601 .extern __sigpending
  2444. 59602 .define _sigpending
  2445. 59603 .align 2
  2446. 59604
  2447. 59605 _sigpending:
  2448. 59606         jmp     __sigpending
  2449. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2450. src/lib/syscall/sigprocmask.s    
  2451. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2452. 59700 .sect .text
  2453. 59701 .extern __sigprocmask
  2454. 59702 .define _sigprocmask
  2455. 59703 .align 2
  2456. 59704
  2457. 59705 _sigprocmask:
  2458. 59706         jmp     __sigprocmask
  2459. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2460. src/lib/syscall/sigreturn.s    
  2461. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2462. 59800 .sect .text
  2463. 59801 .extern __sigreturn
  2464. 59802 .define _sigreturn
  2465. 59803 .align 2
  2466. 59804
  2467. 59805 _sigreturn:
  2468. 59806         jmp     __sigreturn
  2469. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2470. src/lib/syscall/sigsuspend.s    
  2471. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2472. 59900 .sect .text
  2473. 59901 .extern __sigsuspend
  2474. 59902 .define _sigsuspend
  2475. 59903 .align 2
  2476. 59904
  2477. 59905 _sigsuspend:
  2478. 59906         jmp     __sigsuspend
  2479. .Ep 490 src/lib/syscall/sleep.s
  2480. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2481. src/lib/syscall/sleep.s    
  2482. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2483. 60000 .sect .text
  2484. 60001 .extern __sleep
  2485. 60002 .define _sleep
  2486. 60003 .align 2
  2487. 60004
  2488. 60005 _sleep:
  2489. 60006         jmp     __sleep
  2490. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2491. src/lib/syscall/stat.s    
  2492. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2493. 60100 .sect .text
  2494. 60101 .extern __stat
  2495. 60102 .define _stat
  2496. 60103 .align 2
  2497. 60104
  2498. 60105 _stat:
  2499. 60106         jmp     __stat
  2500. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2501. src/lib/syscall/stime.s    
  2502. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2503. 60200 .sect .text
  2504. 60201 .extern __stime
  2505. 60202 .define _stime
  2506. 60203 .align 2
  2507. 60204
  2508. 60205 _stime:
  2509. 60206         jmp     __stime
  2510. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2511. src/lib/syscall/sync.s    
  2512. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2513. 60300 .sect .text
  2514. 60301 .extern __sync
  2515. 60302 .define _sync
  2516. 60303 .align 2
  2517. 60304
  2518. 60305 _sync:
  2519. 60306         jmp     __sync
  2520. .Op 491 src/lib/syscall/tcdrain.s
  2521. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2522. src/lib/syscall/tcdrain.s    
  2523. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2524. 60400 .sect .text
  2525. 60401 .extern __tcdrain
  2526. 60402 .define _tcdrain
  2527. 60403 .align 2
  2528. 60404
  2529. 60405 _tcdrain:
  2530. 60406         jmp     __tcdrain
  2531. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2532. src/lib/syscall/tcflow.s    
  2533. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2534. 60500 .sect .text
  2535. 60501 .extern __tcflow
  2536. 60502 .define _tcflow
  2537. 60503 .align 2
  2538. 60504
  2539. 60505 _tcflow:
  2540. 60506         jmp     __tcflow
  2541. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2542. src/lib/syscall/tcflush.s    
  2543. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2544. 60600 .sect .text
  2545. 60601 .extern __tcflush
  2546. 60602 .define _tcflush
  2547. 60603 .align 2
  2548. 60604
  2549. 60605 _tcflush:
  2550. 60606         jmp     __tcflush
  2551. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2552. src/lib/syscall/tcgetattr.s    
  2553. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2554. 60700 .sect .text
  2555. 60701 .extern __tcgetattr
  2556. 60702 .define _tcgetattr
  2557. 60703 .align 2
  2558. 60704
  2559. 60705 _tcgetattr:
  2560. 60706         jmp     __tcgetattr
  2561. .Ep 492 src/lib/syscall/tcsendbreak.s
  2562. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2563. src/lib/syscall/tcsendbreak.s    
  2564. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2565. 60800 .sect .text
  2566. 60801 .extern __tcsendbreak
  2567. 60802 .define _tcsendbreak
  2568. 60803 .align 2
  2569. 60804
  2570. 60805 _tcsendbreak:
  2571. 60806         jmp     __tcsendbreak
  2572. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2573. src/lib/syscall/tcsetattr.s    
  2574. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2575. 60900 .sect .text
  2576. 60901 .extern __tcsetattr
  2577. 60902 .define _tcsetattr
  2578. 60903 .align 2
  2579. 60904
  2580. 60905 _tcsetattr:
  2581. 60906         jmp     __tcsetattr
  2582. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2583. src/lib/syscall/time.s    
  2584. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2585. 61000 .sect .text
  2586. 61001 .extern __time
  2587. 61002 .define _time
  2588. 61003 .align 2
  2589. 61004
  2590. 61005 _time:
  2591. 61006         jmp     __time
  2592. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2593. src/lib/syscall/times.s    
  2594. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2595. 61100 .sect .text
  2596. 61101 .extern __times
  2597. 61102 .define _times
  2598. 61103 .align 2
  2599. 61104
  2600. 61105 _times:
  2601. 61106         jmp     __times
  2602. .Op 493 src/lib/syscall/umask.s
  2603. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2604. src/lib/syscall/umask.s    
  2605. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2606. 61200 .sect .text
  2607. 61201 .extern __umask
  2608. 61202 .define _umask
  2609. 61203 .align 2
  2610. 61204
  2611. 61205 _umask:
  2612. 61206         jmp     __umask
  2613. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2614. src/lib/syscall/umount.s    
  2615. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2616. 61300 .sect .text
  2617. 61301 .extern __umount
  2618. 61302 .define _umount
  2619. 61303 .align 2
  2620. 61304
  2621. 61305 _umount:
  2622. 61306         jmp     __umount
  2623. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2624. src/lib/syscall/uname.s    
  2625. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2626. 61400 .sect .text
  2627. 61401 .extern __uname
  2628. 61402 .define _uname
  2629. 61403 .align 2
  2630. 61404
  2631. 61405 _uname:
  2632. 61406         jmp     __uname
  2633. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2634. src/lib/syscall/unlink.s    
  2635. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2636. 61500 .sect .text
  2637. 61501 .extern __unlink
  2638. 61502 .define _unlink
  2639. 61503 .align 2
  2640. 61504
  2641. 61505 _unlink:
  2642. 61506         jmp     __unlink
  2643. .Ep 494 src/lib/syscall/utime.s
  2644. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2645. src/lib/syscall/utime.s    
  2646. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2647. 61600 .sect .text
  2648. 61601 .extern __utime
  2649. 61602 .define _utime
  2650. 61603 .align 2
  2651. 61604
  2652. 61605 _utime:
  2653. 61606         jmp     __utime
  2654. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2655. src/lib/syscall/wait.s    
  2656. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2657. 61700 .sect .text
  2658. 61701 .extern __wait
  2659. 61702 .define _wait
  2660. 61703 .align 2
  2661. 61704
  2662. 61705 _wait:
  2663. 61706         jmp     __wait
  2664. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2665. src/lib/syscall/waitpid.s    
  2666. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2667. 61800 .sect .text
  2668. 61801 .extern __waitpid
  2669. 61802 .define _waitpid
  2670. 61803 .align 2
  2671. 61804
  2672. 61805 _waitpid:
  2673. 61806         jmp     __waitpid
  2674. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2675. src/lib/syscall/write.s    
  2676. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2677. 61900 .sect .text
  2678. 61901 .extern __write
  2679. 61902 .define _write
  2680. 61903 .align 2
  2681. 61904
  2682. 61905 _write:
  2683. 61906         jmp     __write
  2684. .Op 495 src/lib/syslib/syslib.h
  2685. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2686. src/lib/syslib/syslib.h    
  2687. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2688. 62000 /*      syslib.h - System library common definitions.   */
  2689. 62001
  2690. 62002 #define _SYSTEM
  2691. 62003
  2692. 62004 #include <lib.h>
  2693. 62005 #include <minix/com.h>
  2694. 62006 #include <minix/syslib.h>
  2695. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2696. src/lib/syslib/sys_abort.c    
  2697. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2698. 62100 #include "syslib.h"
  2699. 62101 #include <stdarg.h>
  2700. 62102 #include <unistd.h>
  2701. 62103
  2702. 62104 PUBLIC int sys_abort(int how, ...)
  2703. 62105 {
  2704. 62106 /* Something awful has happened.  Abandon ship. */
  2705. 62107
  2706. 62108   message m;
  2707. 62109   va_list ap;
  2708. 62110
  2709. 62111   va_start(ap, how);
  2710. 62112   if ((m.m1_i1 = how) == RBT_MONITOR) m.m1_p1 = va_arg(ap, char *);
  2711. 62113   va_end(ap);
  2712. 62114
  2713. 62115   return(_taskcall(SYSTASK, SYS_ABORT, &m));
  2714. 62116 }
  2715. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2716. src/lib/syslib/sys_copy.c    
  2717. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2718. 62200 #include "syslib.h"
  2719. 62201
  2720. 62202 PUBLIC int sys_copy(src_proc, src_seg, src_vir,
  2721. 62203                                         dst_proc, dst_seg, dst_vir, bytes)
  2722. 62204 int src_proc;                   /* source process */
  2723. 62205 int src_seg;                    /* source segment: T, D, or S */
  2724. 62206 phys_bytes src_vir;             /* source virtual address (phys addr for ABS)*/
  2725. 62207 int dst_proc;                   /* dest process */
  2726. 62208 int dst_seg;                    /* dest segment: T, D, or S */
  2727. 62209 phys_bytes dst_vir;             /* dest virtual address (phys addr for ABS) */
  2728. 62210 phys_bytes bytes;               /* how many bytes */
  2729. 62211 {
  2730. 62212 /* Transfer a block of data.  The source and destination can each either be a
  2731. 62213  * process (including MM) or absolute memory, indicate by setting 'src_proc'
  2732. 62214  * or 'dst_proc' to ABS.
  2733. .Ep 496 src/lib/syslib/sys_copy.c
  2734. 62215  */
  2735. 62216
  2736. 62217   message copy_mess;
  2737. 62218
  2738. 62219   if (bytes == 0L) return(OK);
  2739. 62220   copy_mess.SRC_SPACE = src_seg;
  2740. 62221   copy_mess.SRC_PROC_NR = src_proc;
  2741. 62222   copy_mess.SRC_BUFFER = (long) src_vir;
  2742. 62223
  2743. 62224   copy_mess.DST_SPACE = dst_seg;
  2744. 62225   copy_mess.DST_PROC_NR = dst_proc;
  2745. 62226   copy_mess.DST_BUFFER = (long) dst_vir;
  2746. 62227
  2747. 62228   copy_mess.COPY_BYTES = (long) bytes;
  2748. 62229   return(_taskcall(SYSTASK, SYS_COPY, &copy_mess));
  2749. 62230 }
  2750. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2751. src/lib/syslib/sys_endsig.c    
  2752. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2753. 62300 #include "syslib.h"
  2754. 62301
  2755. 62302 PUBLIC int sys_endsig(proc)
  2756. 62303 int proc;
  2757. 62304 {
  2758. 62305   message m;
  2759. 62306
  2760. 62307   m.m1_i1 = proc;
  2761. 62308   return(_taskcall(SYSTASK, SYS_ENDSIG, &m));
  2762. 62309 }
  2763. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2764. src/lib/syslib/sys_exec.c    
  2765. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2766. 62400 #include "syslib.h"
  2767. 62401
  2768. 62402 PUBLIC int sys_exec(proc, ptr, traced, prog_name, initpc)
  2769. 62403 int proc;                       /* process that did exec */
  2770. 62404 char *ptr;                      /* new stack pointer */
  2771. 62405 int traced;                     /* is tracing enabled? */
  2772. 62406 char *prog_name;                /* name of the new program */
  2773. 62407 vir_bytes initpc;
  2774. 62408 {
  2775. 62409 /* A process has exec'd.  Tell the kernel. */
  2776. 62410
  2777. 62411   message m;
  2778. 62412
  2779. 62413   m.m1_i1 = proc;
  2780. 62414   m.m1_i2 = traced;
  2781. .Op 497 src/lib/syslib/sys_exec.c
  2782. 62415   m.m1_p1 = ptr;
  2783. 62416   m.m1_p2 = prog_name;
  2784. 62417   m.m1_p3 = (char *)initpc;
  2785. 62418   return(_taskcall(SYSTASK, SYS_EXEC, &m));
  2786. 62419 }
  2787. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2788. src/lib/syslib/sys_fork.c    
  2789. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2790. 62500 #include "syslib.h"
  2791. 62501
  2792. 62502 PUBLIC int sys_fork(parent, child, pid, child_base_or_shadow)
  2793. 62503 int parent;                     /* process doing the fork */
  2794. 62504 int child;                      /* which proc has been created by the fork */
  2795. 62505 int pid;                        /* process id assigned by MM */
  2796. 62506 phys_clicks child_base_or_shadow;       /* position for child [VM386];
  2797. 62507                                  * memory allocated for shadow [68000] */
  2798. 62508 {
  2799. 62509 /* A process has forked.  Tell the kernel. */
  2800. 62510
  2801. 62511   message m;
  2802. 62512
  2803. 62513   m.m1_i1 = parent;
  2804. 62514   m.m1_i2 = child;
  2805. 62515   m.m1_i3 = pid;
  2806. 62516   m.m1_p1 = (char *) child_base_or_shadow;
  2807. 62517   return(_taskcall(SYSTASK, SYS_FORK, &m));
  2808. 62518 }
  2809. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2810. src/lib/syslib/sys_fresh.c    
  2811. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2812. 62600 #include "syslib.h"
  2813. 62601
  2814. 62602 PUBLIC int sys_fresh(proc, ptr, dc, basep, sizep)
  2815. 62603 int proc;                       /* process whose map is to be changed */
  2816. 62604 struct mem_map *ptr;            /* pointer to new map */
  2817. 62605 phys_clicks dc;                 /* size of initialized data */
  2818. 62606 phys_clicks *basep, *sizep;     /* base and size for free_mem() */
  2819. 62607 {
  2820. 62608 /* Create a fresh process image for exec().  Tell the kernel. */
  2821. 62609
  2822. 62610   message m;
  2823. 62611   int r;
  2824. 62612
  2825. 62613   m.m1_i1 = proc;
  2826. 62614   m.m1_i2 = (int) dc;
  2827. 62615   m.m1_p1 = (char *) ptr;
  2828. 62616   r = _taskcall(SYSTASK, SYS_FRESH, &m);
  2829. 62617   *basep = (phys_clicks) m.m1_i1;
  2830. 62618   *sizep = (phys_clicks) m.m1_i2;
  2831. 62619   return(r);
  2832. .Ep 498 src/lib/syslib/sys_fresh.c
  2833. 62620 }
  2834. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2835. src/lib/syslib/sys_getmap.c    
  2836. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2837. 62700 #include "syslib.h"
  2838. 62701
  2839. 62702 PUBLIC int sys_getmap(proc, ptr)
  2840. 62703 int proc;                       /* process whose map is to be fetched */
  2841. 62704 struct mem_map *ptr;            /* pointer to new map */
  2842. 62705 {
  2843. 62706 /* Want to know map of a process, ask the kernel. */
  2844. 62707
  2845. 62708   message m;
  2846. 62709
  2847. 62710   m.m1_i1 = proc;
  2848. 62711   m.m1_p1 = (char *) ptr;
  2849. 62712   return(_taskcall(SYSTASK, SYS_GETMAP, &m));
  2850. 62713 }
  2851. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2852. src/lib/syslib/sys_getsp.c    
  2853. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2854. 62800 #include "syslib.h"
  2855. 62801
  2856. 62802 PUBLIC int sys_getsp(proc, newsp)
  2857. 62803 int proc;                       /* process whose sp is wanted */
  2858. 62804 vir_bytes *newsp;               /* place to put sp read from kernel */
  2859. 62805 {
  2860. 62806 /* Ask the kernel what the sp is. */
  2861. 62807
  2862. 62808   message m;
  2863. 62809   int r;
  2864. 62810
  2865. 62811   m.m1_i1 = proc;
  2866. 62812   r = _taskcall(SYSTASK, SYS_GETSP, &m);
  2867. 62813   *newsp = (vir_bytes) m.STACK_PTR;
  2868. 62814   return(r);
  2869. 62815 }
  2870. .Op 499 src/lib/syslib/sys_kill.c
  2871. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2872. src/lib/syslib/sys_kill.c    
  2873. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2874. 62900 #include "syslib.h"
  2875. 62901
  2876. 62902 PUBLIC int sys_kill(proc, signr)
  2877. 62903 int proc;                       /* which proc has exited */
  2878. 62904 int signr;                      /* signal number: 1 - 16 */
  2879. 62905 {
  2880. 62906 /* A proc has to be signaled via MM.  Tell the kernel. */
  2881. 62907   message m;
  2882. 62908
  2883. 62909   m.m6_i1 = proc;
  2884. 62910   m.m6_i2 = signr;
  2885. 62911   return(_taskcall(SYSTASK, SYS_KILL, &m));
  2886. 62912 }
  2887. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2888. src/lib/syslib/sys_newmap.c    
  2889. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2890. 63000 #include "syslib.h"
  2891. 63001
  2892. 63002 PUBLIC int sys_newmap(proc, ptr)
  2893. 63003 int proc;                       /* process whose map is to be changed */
  2894. 63004 struct mem_map *ptr;            /* pointer to new map */
  2895. 63005 {
  2896. 63006 /* A process has been assigned a new memory map.  Tell the kernel. */
  2897. 63007
  2898. 63008   message m;
  2899. 63009
  2900. 63010   m.m1_i1 = proc;
  2901. 63011   m.m1_p1 = (char *) ptr;
  2902. 63012   return(_taskcall(SYSTASK, SYS_NEWMAP, &m));
  2903. 63013 }
  2904. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2905. src/lib/syslib/sys_oldsig.c    
  2906. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2907. 63100 #include "syslib.h"
  2908. 63101
  2909. 63102 PUBLIC int sys_oldsig(proc, sig, sighandler)
  2910. 63103 int proc;                       /* process to be signaled  */
  2911. 63104 int sig;                        /* signal number: 1 to _NSIG */
  2912. 63105 sighandler_t sighandler;        /* pointer to signal handler in user space */
  2913. 63106 {
  2914. 63107 /* A proc has to be signaled.  Tell the kernel. This function is obsolete. */
  2915. 63108
  2916. 63109   message m;
  2917. 63110
  2918. 63111   m.m6_i1 = proc;
  2919. 63112   m.m6_i2 = sig;
  2920. 63113   m.m6_f1 = sighandler;
  2921. 63114   return(_taskcall(SYSTASK, SYS_OLDSIG, &m));
  2922. .Ep 500 src/lib/syslib/sys_oldsig.c
  2923. 63115 }
  2924. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2925. src/lib/syslib/sys_sendsig.c    
  2926. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2927. 63200 #include "syslib.h"
  2928. 63201
  2929. 63202 PUBLIC int sys_sendsig(proc, smp)
  2930. 63203 int proc;
  2931. 63204 struct sigmsg *smp;
  2932. 63205 {
  2933. 63206   message m;
  2934. 63207
  2935. 63208   m.m1_i1 = proc;
  2936. 63209   m.m1_p1 = (char *) smp;
  2937. 63210   return(_taskcall(SYSTASK, SYS_SENDSIG, &m));
  2938. 63211 }
  2939. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2940. src/lib/syslib/sys_sigret.c    
  2941. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2942. 63300 #include "syslib.h"
  2943. 63301
  2944. 63302 PUBLIC int sys_sigreturn(proc, scp, flags)
  2945. 63303 int proc;
  2946. 63304 vir_bytes scp;
  2947. 63305 int flags;
  2948. 63306 {
  2949. 63307   message m;
  2950. 63308
  2951. 63309   m.m1_i1 = proc;
  2952. 63310   m.m1_i2 = flags;
  2953. 63311   m.m1_p1 = (char *) scp;
  2954. 63312   return(_taskcall(SYSTASK, SYS_SIGRETURN, &m));
  2955. 63313 }
  2956. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2957. src/lib/syslib/sys_times.c    
  2958. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2959. 63400 #include "syslib.h"
  2960. 63401
  2961. 63402 PUBLIC int sys_times(proc, ptr)
  2962. 63403 int proc;                       /* proc whose times are needed */
  2963. 63404 clock_t ptr[5];                 /* pointer to time buffer */
  2964. 63405 {
  2965. 63406 /* Fetch the accounting info for a proc. */
  2966. 63407   message m;
  2967. 63408   int r;
  2968. 63409
  2969. .Op 501 src/lib/syslib/sys_times.c
  2970. 63410   m.m1_i1 = proc;
  2971. 63411   m.m1_p1 = (char *)ptr;
  2972. 63412   r = _taskcall(SYSTASK, SYS_TIMES, &m);
  2973. 63413   ptr[0] = m.USER_TIME;
  2974. 63414   ptr[1] = m.SYSTEM_TIME;
  2975. 63415   ptr[2] = m.CHILD_UTIME;
  2976. 63416   ptr[3] = m.CHILD_STIME;
  2977. 63417   ptr[4] = m.BOOT_TICKS;
  2978. 63418   return(r);
  2979. 63419 }
  2980. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2981. src/lib/syslib/sys_trace.c    
  2982. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2983. 63500 #include "syslib.h"
  2984. 63501
  2985. 63502 PUBLIC int sys_trace(req, procnr, addr, data_p)
  2986. 63503 int req, procnr;
  2987. 63504 long addr, *data_p;
  2988. 63505 {
  2989. 63506   message m;
  2990. 63507   int r;
  2991. 63508
  2992. 63509   m.m2_i1 = procnr;
  2993. 63510   m.m2_i2 = req;
  2994. 63511   m.m2_l1 = addr;
  2995. 63512   if (data_p) m.m2_l2 = *data_p;
  2996. 63513   r = _taskcall(SYSTASK, SYS_TRACE, &m);
  2997. 63514   if (data_p) *data_p = m.m2_l2;
  2998. 63515   return(r);
  2999. 63516 }
  3000. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3001. src/lib/syslib/sys_xit.c    
  3002. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3003. 63600 #include "syslib.h"
  3004. 63601
  3005. 63602 PUBLIC int sys_xit(parent, proc, basep, sizep)
  3006. 63603 int parent;                     /* parent of exiting process */
  3007. 63604 int proc;                       /* which process has exited */
  3008. 63605 phys_clicks *basep;             /* where to return base of shadow [68000] */
  3009. 63606 phys_clicks *sizep;             /* where to return size of shadow [68000] */
  3010. 63607 {
  3011. 63608 /* A process has exited.  Tell the kernel. */
  3012. 63609
  3013. 63610   message m;
  3014. 63611   int r;
  3015. 63612
  3016. 63613   m.m1_i1 = parent;
  3017. 63614   m.m1_i2 = proc;
  3018. .Ep 502 src/lib/syslib/sys_xit.c
  3019. 63615   r = _taskcall(SYSTASK, SYS_XIT, &m);
  3020. 63616   *basep = (phys_clicks) m.m1_i1;
  3021. 63617   *sizep = (phys_clicks) m.m1_i2;
  3022. 63618   return(r);
  3023. 63619 }
  3024. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3025. src/lib/syslib/taskcall.c    
  3026. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3027. 63700 /* _taskcall() is the same as _syscall() except it returns negative error
  3028. 63701  * codes directly and not in errno.  This is a better interface for MM and
  3029. 63702  * FS.
  3030. 63703  */
  3031. 63704
  3032. 63705 #include <lib.h>
  3033. 63706 #include <minix/syslib.h>
  3034. 63707
  3035. 63708 PUBLIC int _taskcall(who, syscallnr, msgptr)
  3036. 63709 int who;
  3037. 63710 int syscallnr;
  3038. 63711 register message *msgptr;
  3039. 63712 {
  3040. 63713   int status;
  3041. 63714
  3042. 63715   msgptr->m_type = syscallnr;
  3043. 63716   status = _sendrec(who, msgptr);
  3044. 63717   if (status != 0) return(status);
  3045. 63718   return(msgptr->m_type);
  3046. 63719 }