BOOK.PS
上传用户:jnzhq888
上传日期:2007-01-18
资源大小:51694k
文件大小:2328k
源码类别:

操作系统开发

开发平台:

WINDOWS

  1. (I_PIPE))294 2412 A
  2. (return(ESPIPE);)630 2748 A
  3. 4410 V
  4. (23379)210 648 A
  5. 4500 V
  6. (23380)210 648 A
  7. 1110(/*)S
  8. (The)126 1236 A
  9. (value)210 1404 A
  10. 1656(of)S
  11. ('whence')336 1782 A
  12. (determines)420 2160 A
  13. (the)126 2622 A
  14. (start)210 2790 A
  15. (position)336 3042 A
  16. 3420(to)S
  17. (use.)168 3546 A
  18. 3756(*/)S
  19. 4590 V
  20. (23381)210 648 A
  21. (switch(whence))588 1110 A
  22. 1740({)S
  23. 4680 V
  24. (23382)210 648 A
  25. (case)168 1362 A
  26. 1572(0:)S
  27. (pos)126 1698 A
  28. 1866(=)S
  29. 1950(0;)S
  30. (break;)252 2370 A
  31. 4770 V
  32. (23383)210 648 A
  33. (case)168 1362 A
  34. 1572(1:)S
  35. (pos)126 1698 A
  36. 1866(=)S
  37. (rfilp->filp_pos;)672 1950 A
  38. (break;)252 2706 A
  39. 4860 V
  40. (23384)210 648 A
  41. (case)168 1362 A
  42. 1572(2:)S
  43. (pos)126 1698 A
  44. 1866(=)S
  45. (rfilp->filp_ino->i_size;)1008 1950 A
  46. (break;)252 3042 A
  47. 4950 V
  48. (23385)210 648 A
  49. (default:)336 1362 A
  50. (return(EINVAL);)630 1740 A
  51. 5040 V
  52. (23386)210 648 A
  53. 1110(})S
  54. 5130 V
  55. (23387)210 648 A
  56. 5220 V
  57. (23388)210 648 A
  58. 1110(/*)S
  59. (Check)210 1236 A
  60. (for)126 1488 A
  61. (overflow.)378 1656 A
  62. 2076(*/)S
  63. 5310 V
  64. (23389)210 648 A
  65. 1110(if)S
  66. ((((long)offset)588 1236 A
  67. 1866(>)S
  68. 1950(0))S
  69. 2076(&&)S
  70. (((long)(pos)462 2202 A
  71. 2706(+)S
  72. (offset))294 2790 A
  73. 3126(<)S
  74. ((long)pos)))462 3210 A
  75. (return(EINVAL);)630 3714 A
  76. 5400 V
  77. (23390)210 648 A
  78. 1110(if)S
  79. ((((long)offset)588 1236 A
  80. 1866(<)S
  81. 1950(0))S
  82. 2076(&&)S
  83. (((long)(pos)462 2202 A
  84. 2706(+)S
  85. (offset))294 2790 A
  86. 3126(>)S
  87. ((long)pos)))462 3210 A
  88. (return(EINVAL);)630 3714 A
  89. 5490 V
  90. (23391)210 648 A
  91. (pos)126 1110 A
  92. 1278(=)S
  93. (pos)126 1362 A
  94. 1530(+)S
  95. (offset;)294 1614 A
  96. 5580 V
  97. (23392)210 648 A
  98. 5670 V
  99. (23393)210 648 A
  100. 1110(if)S
  101. ((pos)168 1236 A
  102. 1446(!=)S
  103. (rfilp->filp_pos))672 1572 A
  104. 5760 V
  105. (23394)210 648 A
  106. (rfilp->filp_ino->i_seek)966 1362 A
  107. 2370(=)S
  108. (ISEEK;)252 2454 A
  109. 3042(/*)S
  110. (inhibit)294 3168 A
  111. (read)168 3504 A
  112. (ahead)210 3714 A
  113. 3966(*/)S
  114. 5850 V
  115. (23395)210 648 A
  116. (rfilp->filp_pos)630 1110 A
  117. 1782(=)S
  118. (pos;)168 1866 A
  119. 5940 V
  120. (23396)210 648 A
  121. (reply_l1)336 1110 A
  122. 1488(=)S
  123. (pos;)168 1572 A
  124. 2370(/*)S
  125. (insert)252 2496 A
  126. (the)126 2790 A
  127. (long)168 2958 A
  128. (into)168 3168 A
  129. (the)126 3378 A
  130. (output)252 3546 A
  131. (message)294 3840 A
  132. 4176(*/)S
  133. 6030 V
  134. (23397)210 648 A
  135. (return(OK);)462 1110 A
  136. 6120 V
  137. (23398)210 648 A
  138. 1026(})S
  139. 8418 V
  140. EP
  141. %%Page: 321 321
  142. BP
  143. /slant 0 def
  144. /height 0 def
  145. 630 V
  146. 10 R
  147. 648(MINIX)S
  148. 976(SOURCE)S
  149. 1399(CODE)S
  150. 11 R
  151. 2150(File:)S
  152. 2383(src/fs/read.c)S
  153. 12 B
  154. (321)180 4248 A
  155. 990 V
  156. 7 LST
  157. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  158. 1080 V
  159. (src/fs/read.c)546 2034 A
  160. 1170 V
  161. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  162. 1350 V
  163. (23400)210 648 A
  164. 1026(/*)S
  165. (This)168 1152 A
  166. (file)168 1362 A
  167. (contains)336 1572 A
  168. (the)126 1950 A
  169. (heart)210 2118 A
  170. 2370(of)S
  171. (the)126 2496 A
  172. (mechanism)378 2664 A
  173. (used)168 3084 A
  174. 3294(to)S
  175. (read)168 3420 A
  176. ((and)168 3630 A
  177. (write))252 3840 A
  178. 1440 V
  179. (23401)210 648 A
  180. 1068(*)S
  181. (files.)252 1152 A
  182. (Read)168 1488 A
  183. (and)126 1698 A
  184. (write)210 1866 A
  185. (requests)336 2118 A
  186. (are)126 2496 A
  187. (split)210 2664 A
  188. 2916(up)S
  189. (into)168 3042 A
  190. (chunks)252 3252 A
  191. (that)168 3546 A
  192. 3756(do)S
  193. (not)126 3882 A
  194. (cross)210 4050 A
  195. 1530 V
  196. (23402)210 648 A
  197. 1068(*)S
  198. (block)210 1152 A
  199. (boundaries.)462 1404 A
  200. (Each)168 1950 A
  201. (chunk)210 2160 A
  202. 2412(is)S
  203. (then)168 2538 A
  204. (processed)378 2748 A
  205. 3168(in)S
  206. (turn.)210 3294 A
  207. (Reads)210 3588 A
  208. 3840(on)S
  209. (special)294 3966 A
  210. 1620 V
  211. (23403)210 648 A
  212. 1068(*)S
  213. (files)210 1152 A
  214. (are)126 1404 A
  215. (also)168 1572 A
  216. (detected)336 1782 A
  217. (and)126 2160 A
  218. (handled.)336 2328 A
  219. 1710 V
  220. (23404)210 648 A
  221. 1068(*)S
  222. 1800 V
  223. (23405)210 648 A
  224. 1068(*)S
  225. (The)126 1152 A
  226. (entry)210 1320 A
  227. (points)252 1572 A
  228. (into)168 1866 A
  229. (this)168 2076 A
  230. (file)168 2286 A
  231. (are)126 2496 A
  232. 1890 V
  233. (23406)210 648 A
  234. 1068(*)S
  235. (do_read:)336 1236 A
  236. (perform)294 1740 A
  237. (the)126 2076 A
  238. (READ)168 2244 A
  239. (system)252 2454 A
  240. (call)168 2748 A
  241. 2958(by)S
  242. (calling)294 3084 A
  243. (read_write)420 3420 A
  244. 1980 V
  245. (23407)210 648 A
  246. 1068(*)S
  247. (read_write:)462 1236 A
  248. (actually)336 1740 A
  249. 2118(do)S
  250. (the)126 2244 A
  251. (work)168 2412 A
  252. 2622(of)S
  253. (READ)168 2748 A
  254. (and)126 2958 A
  255. (WRITE)210 3126 A
  256. 2070 V
  257. (23408)210 648 A
  258. 1068(*)S
  259. (read_map:)378 1236 A
  260. (given)210 1740 A
  261. 1992(an)S
  262. (inode)210 2118 A
  263. (and)126 2370 A
  264. (file)168 2538 A
  265. (position,)378 2748 A
  266. (look)168 3168 A
  267. 3378(up)S
  268. (its)126 3504 A
  269. (zone)168 3672 A
  270. (number)252 3882 A
  271. 2160 V
  272. (23409)210 648 A
  273. 1068(*)S
  274. (rd_indir:)378 1236 A
  275. (read)168 1740 A
  276. 1950(an)S
  277. (entry)210 2076 A
  278. 2328(in)S
  279. 2454(an)S
  280. (indirect)336 2580 A
  281. (block)210 2958 A
  282. 2250 V
  283. (23410)210 648 A
  284. 1068(*)S
  285. (read_ahead:)462 1236 A
  286. (manage)252 1740 A
  287. (the)126 2034 A
  288. (block)210 2202 A
  289. (read)168 2454 A
  290. (ahead)210 2664 A
  291. (business)336 2916 A
  292. 2340 V
  293. (23411)210 648 A
  294. 1068(*/)S
  295. 2430 V
  296. (23412)210 648 A
  297. 2520 V
  298. (23413)210 648 A
  299. (#include)336 1026 A
  300. ("fs.h")252 1404 A
  301. 2610 V
  302. (23414)210 648 A
  303. (#include)336 1026 A
  304. (<fcntl.h>)378 1404 A
  305. 2700 V
  306. (23415)210 648 A
  307. (#include)336 1026 A
  308. (<minix/com.h>)546 1404 A
  309. 2790 V
  310. (23416)210 648 A
  311. (#include)336 1026 A
  312. ("buf.h")294 1404 A
  313. 2880 V
  314. (23417)210 648 A
  315. (#include)336 1026 A
  316. ("file.h")336 1404 A
  317. 2970 V
  318. (23418)210 648 A
  319. (#include)336 1026 A
  320. ("fproc.h")378 1404 A
  321. 3060 V
  322. (23419)210 648 A
  323. (#include)336 1026 A
  324. ("inode.h")378 1404 A
  325. 3150 V
  326. (23420)210 648 A
  327. (#include)336 1026 A
  328. ("param.h")378 1404 A
  329. 3240 V
  330. (23421)210 648 A
  331. (#include)336 1026 A
  332. ("super.h")378 1404 A
  333. 3330 V
  334. (23422)210 648 A
  335. 3420 V
  336. (23423)210 648 A
  337. (#define)294 1026 A
  338. (FD_MASK)294 1362 A
  339. (077)126 2076 A
  340. 2370(/*)S
  341. (max)126 2496 A
  342. (file)168 2664 A
  343. (descriptor)420 2874 A
  344. 3336(is)S
  345. 3462(63)S
  346. 3588(*/)S
  347. 3510 V
  348. (23424)210 648 A
  349. 3600 V
  350. (23425)210 648 A
  351. (PRIVATE)294 1026 A
  352. (message)294 1362 A
  353. (umess;)252 1698 A
  354. 2370(/*)S
  355. (message)294 2496 A
  356. (for)126 2832 A
  357. (asking)252 3000 A
  358. (SYSTASK)294 3294 A
  359. (for)126 3630 A
  360. (user)168 3798 A
  361. (copy)168 4008 A
  362. 4218(*/)S
  363. 3690 V
  364. (23426)210 648 A
  365. 3780 V
  366. (23427)210 648 A
  367. (FORWARD)294 1026 A
  368. (_PROTOTYPE()462 1362 A
  369. (int)126 1866 A
  370. (rw_chunk,)378 2034 A
  371. ((struct)294 2454 A
  372. (inode)210 2790 A
  373. (*rip,)210 3042 A
  374. (off_t)210 3294 A
  375. (position,)378 3546 A
  376. 3870 V
  377. (23428)210 648 A
  378. (unsigned)336 2034 A
  379. (off,)168 2412 A
  380. (int)126 2622 A
  381. (chunk,)252 2790 A
  382. (unsigned)336 3084 A
  383. (left,)210 3462 A
  384. (int)126 3714 A
  385. (rw_flag,)336 3882 A
  386. 3960 V
  387. (23429)210 648 A
  388. (char)168 2034 A
  389. (*buff,)252 2244 A
  390. (int)126 2538 A
  391. (seg,)168 2706 A
  392. (int)126 2916 A
  393. (usr))168 3084 A
  394. 4050();)S
  395. 4050 V
  396. (23430)210 648 A
  397. 4140 V
  398. (23431)210 648 A
  399. (/*===========================================================================*)3276 1026 A
  400. 4230 V
  401. (23432)210 648 A
  402. 1068(*)S
  403. (do_read)294 2370 A
  404. 4260(*)S
  405. 4320 V
  406. (23433)210 648 A
  407. (*===========================================================================*/)3276 1068 A
  408. 4410 V
  409. (23434)210 648 A
  410. (PUBLIC)252 1026 A
  411. (int)126 1320 A
  412. (do_read())378 1488 A
  413. 4500 V
  414. (23435)210 648 A
  415. 1026({)S
  416. 4590 V
  417. (23436)210 648 A
  418. (return(read_write(READING));)1176 1110 A
  419. 4680 V
  420. (23437)210 648 A
  421. 1026(})S
  422. 4950 V
  423. (23440)210 648 A
  424. (/*===========================================================================*)3276 1026 A
  425. 5040 V
  426. (23441)210 648 A
  427. 1068(*)S
  428. (read_write)420 2370 A
  429. 4260(*)S
  430. 5130 V
  431. (23442)210 648 A
  432. (*===========================================================================*/)3276 1068 A
  433. 5220 V
  434. (23443)210 648 A
  435. (PUBLIC)252 1026 A
  436. (int)126 1320 A
  437. (read_write(rw_flag))798 1488 A
  438. 5310 V
  439. (23444)210 648 A
  440. (int)126 1026 A
  441. (rw_flag;)336 1194 A
  442. 2370(/*)S
  443. (READING)294 2496 A
  444. 2832(or)S
  445. (WRITING)294 2958 A
  446. 3294(*/)S
  447. 5400 V
  448. (23445)210 648 A
  449. 1026({)S
  450. 5490 V
  451. (23446)210 648 A
  452. 1026(/*)S
  453. (Perform)294 1152 A
  454. (read(fd,)336 1488 A
  455. (buffer,)294 1866 A
  456. (nbytes))294 2202 A
  457. 2538(or)S
  458. (write(fd,)378 2664 A
  459. (buffer,)294 3084 A
  460. (nbytes))294 3420 A
  461. (call.)210 3756 A
  462. 4008(*/)S
  463. 5580 V
  464. (23447)210 648 A
  465. 5670 V
  466. (23448)210 648 A
  467. (register)336 1110 A
  468. (struct)252 1488 A
  469. (inode)210 1782 A
  470. (*rip;)210 2034 A
  471. 5760 V
  472. (23449)210 648 A
  473. (register)336 1110 A
  474. (struct)252 1488 A
  475. (filp)168 1782 A
  476. (*f;)126 1992 A
  477. 5850 V
  478. (23450)210 648 A
  479. (off_t)210 1110 A
  480. (bytes_left,)462 1362 A
  481. (f_size,)294 1866 A
  482. (position;)378 2202 A
  483. 5940 V
  484. (23451)210 648 A
  485. (unsigned)336 1110 A
  486. (int)126 1488 A
  487. (off,)168 1656 A
  488. (cum_io;)294 1866 A
  489. 6030 V
  490. (23452)210 648 A
  491. (int)126 1110 A
  492. (op,)126 1278 A
  493. (oflags,)294 1446 A
  494. 1782(r,)S
  495. (chunk,)252 1908 A
  496. (usr,)168 2202 A
  497. (seg,)168 2412 A
  498. (block_spec,)462 2622 A
  499. (char_spec;)420 3126 A
  500. 6120 V
  501. (23453)210 648 A
  502. (int)126 1110 A
  503. (regular,)336 1278 A
  504. (partial_pipe)504 1656 A
  505. 2202(=)S
  506. 2286(0,)S
  507. (partial_cnt)462 2412 A
  508. 2916(=)S
  509. 3000(0;)S
  510. 6210 V
  511. (23454)210 648 A
  512. (dev_t)210 1110 A
  513. (dev;)168 1362 A
  514. 8418 V
  515. EP
  516. %%Page: 322 322
  517. BP
  518. /slant 0 def
  519. /height 0 def
  520. 630 V
  521. 12 B
  522. (322)180 648 A
  523. 11 R
  524. 2150(File:)S
  525. 2383(src/fs/read.c)S
  526. 10 R
  527. 3402(MINIX)S
  528. 3730(SOURCE)S
  529. 4153(CODE)S
  530. 900 V
  531. 7 LST
  532. (23455)210 648 A
  533. (mode_t)252 1110 A
  534. (mode_word;)420 1404 A
  535. 990 V
  536. (23456)210 648 A
  537. (struct)252 1110 A
  538. (filp)168 1404 A
  539. (*wf;)168 1614 A
  540. 1080 V
  541. (23457)210 648 A
  542. 1170 V
  543. (23458)210 648 A
  544. 1110(/*)S
  545. 1236(MM)S
  546. (loads)210 1362 A
  547. (segments)336 1614 A
  548. 1992(by)S
  549. (putting)294 2118 A
  550. (funny)210 2454 A
  551. (things)252 2706 A
  552. 3000(in)S
  553. (upper)210 3126 A
  554. 3378(10)S
  555. (bits)168 3504 A
  556. 3714(of)S
  557. ('fd'.)210 3840 A
  558. 4092(*/)S
  559. 1260 V
  560. (23459)210 648 A
  561. 1110(if)S
  562. ((who)168 1236 A
  563. 1446(==)S
  564. (MM_PROC_NR)420 1572 A
  565. 2034(&&)S
  566. ((fd)126 2160 A
  567. 2328(&)S
  568. ((304BYTE)))336 2412 A
  569. 2790())S
  570. 2874({)S
  571. 1350 V
  572. (23460)210 648 A
  573. (usr)126 1362 A
  574. 1530(=)S
  575. ((fd)126 1614 A
  576. 1782(>>)S
  577. 1908(8))S
  578. 2034(&)S
  579. (BYTE;)210 2118 A
  580. 1440 V
  581. (23461)210 648 A
  582. (seg)126 1362 A
  583. 1530(=)S
  584. ((fd)126 1614 A
  585. 1782(>>)S
  586. 1908(6))S
  587. 2034(&)S
  588. (03;)126 2118 A
  589. 1530 V
  590. (23462)210 648 A
  591. 1362(fd)S
  592. 1488(&=)S
  593. (FD_MASK;)336 1614 A
  594. 2370(/*)S
  595. (get)126 2496 A
  596. (rid)126 2664 A
  597. 2832(of)S
  598. (user)168 2958 A
  599. (and)126 3168 A
  600. (segment)294 3336 A
  601. (bits)168 3672 A
  602. 3882(*/)S
  603. 1620 V
  604. (23463)210 648 A
  605. 1110(})S
  606. (else)168 1194 A
  607. 1404({)S
  608. 1710 V
  609. (23464)210 648 A
  610. (usr)126 1362 A
  611. 1530(=)S
  612. (who;)168 1614 A
  613. 2370(/*)S
  614. (normal)252 2496 A
  615. (case)168 2790 A
  616. 3000(*/)S
  617. 1800 V
  618. (23465)210 648 A
  619. (seg)126 1362 A
  620. 1530(=)S
  621. 1614(D;)S
  622. 1890 V
  623. (23466)210 648 A
  624. 1110(})S
  625. 1980 V
  626. (23467)210 648 A
  627. 2070 V
  628. (23468)210 648 A
  629. 1110(/*)S
  630. 1236(If)S
  631. (the)126 1362 A
  632. (file)168 1530 A
  633. (descriptor)420 1740 A
  634. 2202(is)S
  635. (valid,)252 2328 A
  636. (get)126 2622 A
  637. (the)126 2790 A
  638. (inode,)252 2958 A
  639. (size)168 3252 A
  640. (and)126 3462 A
  641. (mode.)210 3630 A
  642. 3882(*/)S
  643. 2160 V
  644. (23469)210 648 A
  645. 1110(if)S
  646. ((nbytes)294 1236 A
  647. 1572(<)S
  648. 1656(0))S
  649. (return(EINVAL);)630 1782 A
  650. 2250 V
  651. (23470)210 648 A
  652. 1110(if)S
  653. (((f)126 1236 A
  654. 1404(=)S
  655. (get_filp(fd)))546 1488 A
  656. 2076(==)S
  657. (NIL_FILP))378 2202 A
  658. (return(err_code);)714 2622 A
  659. 2340 V
  660. (23471)210 648 A
  661. 1110(if)S
  662. ((((f->filp_mode))672 1236 A
  663. 1950(&)S
  664. ((rw_flag)336 2034 A
  665. 2412(==)S
  666. (READING)294 2538 A
  667. 2874(?)S
  668. (R_BIT)210 2958 A
  669. 3210(:)S
  670. (W_BIT)))294 3294 A
  671. 3630(==)S
  672. 3756(0))S
  673. 3882({)S
  674. 2430 V
  675. (23472)210 648 A
  676. (return(f->filp_mode)798 1362 A
  677. 2202(==)S
  678. (FILP_CLOSED)462 2328 A
  679. 2832(?)S
  680. (EIO)126 2916 A
  681. 3084(:)S
  682. (EBADF);)294 3168 A
  683. 2520 V
  684. (23473)210 648 A
  685. 1110(})S
  686. 2610 V
  687. (23474)210 648 A
  688. 1110(if)S
  689. ((nbytes)294 1236 A
  690. 1572(==)S
  691. 1698(0))S
  692. (return(0);)420 1824 A
  693. 2370(/*)S
  694. 2496(so)S
  695. (char)168 2622 A
  696. (special)294 2832 A
  697. (files)210 3168 A
  698. (need)168 3420 A
  699. (not)126 3630 A
  700. (check)210 3798 A
  701. (for)126 4050 A
  702. (0*/)126 4218 A
  703. 2700 V
  704. (23475)210 648 A
  705. (position)336 1110 A
  706. 1488(=)S
  707. (f->filp_pos;)504 1572 A
  708. 2790 V
  709. (23476)210 648 A
  710. 1110(if)S
  711. ((position)378 1236 A
  712. 1656(>)S
  713. (MAX_FILE_POS))546 1740 A
  714. (return(EINVAL);)630 2328 A
  715. 2880 V
  716. (23477)210 648 A
  717. 1110(if)S
  718. ((position)378 1236 A
  719. 1656(+)S
  720. (nbytes)252 1740 A
  721. 2034(<)S
  722. (position))378 2118 A
  723. (return(EINVAL);)630 2538 A
  724. 3210(/*)S
  725. (unsigned)336 3336 A
  726. (overflow)336 3714 A
  727. 4092(*/)S
  728. 2970 V
  729. (23478)210 648 A
  730. (oflags)252 1110 A
  731. 1404(=)S
  732. (f->filp_flags;)588 1488 A
  733. 3060 V
  734. (23479)210 648 A
  735. (rip)126 1110 A
  736. 1278(=)S
  737. (f->filp_ino;)504 1362 A
  738. 3150 V
  739. (23480)210 648 A
  740. (f_size)252 1110 A
  741. 1404(=)S
  742. (rip->i_size;)504 1488 A
  743. 3240 V
  744. (23481)210 648 A
  745. 1110(r)S
  746. 1194(=)S
  747. (OK;)126 1278 A
  748. 3330 V
  749. (23482)210 648 A
  750. 1110(if)S
  751. ((rip->i_pipe)504 1236 A
  752. 1782(==)S
  753. (I_PIPE))294 1908 A
  754. 2244({)S
  755. 3420 V
  756. (23483)210 648 A
  757. 1362(/*)S
  758. (fp->fp_cum_io_partial)882 1488 A
  759. 2412(is)S
  760. (only)168 2538 A
  761. (nonzero)294 2748 A
  762. (when)168 3084 A
  763. (doing)210 3294 A
  764. (partial)294 3546 A
  765. (writes)252 3882 A
  766. 4176(*/)S
  767. 3510 V
  768. (23484)210 648 A
  769. (cum_io)252 1362 A
  770. 1656(=)S
  771. (fp->fp_cum_io_partial;)924 1740 A
  772. 3600 V
  773. (23485)210 648 A
  774. 1110(})S
  775. (else)168 1194 A
  776. 1404({)S
  777. 3690 V
  778. (23486)210 648 A
  779. (cum_io)252 1362 A
  780. 1656(=)S
  781. 1740(0;)S
  782. 3780 V
  783. (23487)210 648 A
  784. 1110(})S
  785. 3870 V
  786. (23488)210 648 A
  787. 1110(op)S
  788. 1236(=)S
  789. ((rw_flag)336 1320 A
  790. 1698(==)S
  791. (READING)294 1824 A
  792. 2160(?)S
  793. (DEV_READ)336 2244 A
  794. 2622(:)S
  795. (DEV_WRITE);)462 2706 A
  796. 3960 V
  797. (23489)210 648 A
  798. (mode_word)378 1110 A
  799. 1530(=)S
  800. (rip->i_mode)462 1614 A
  801. 2118(&)S
  802. (I_TYPE;)294 2202 A
  803. 4050 V
  804. (23490)210 648 A
  805. (regular)294 1110 A
  806. 1446(=)S
  807. (mode_word)378 1530 A
  808. 1950(==)S
  809. (I_REGULAR)378 2076 A
  810. 2496(||)S
  811. (mode_word)378 2622 A
  812. 3042(==)S
  813. (I_NAMED_PIPE;)546 3168 A
  814. 4140 V
  815. (23491)210 648 A
  816. 4230 V
  817. (23492)210 648 A
  818. (char_spec)378 1110 A
  819. 1530(=)S
  820. ((mode_word)420 1614 A
  821. 2076(==)S
  822. (I_CHAR_SPECIAL)588 2202 A
  823. 2832(?)S
  824. 2916(1)S
  825. 3000(:)S
  826. (0);)126 3084 A
  827. 4320 V
  828. (23493)210 648 A
  829. (block_spec)420 1110 A
  830. 1572(=)S
  831. ((mode_word)420 1656 A
  832. 2118(==)S
  833. (I_BLOCK_SPECIAL)630 2244 A
  834. 2916(?)S
  835. 3000(1)S
  836. 3084(:)S
  837. (0);)126 3168 A
  838. 4410 V
  839. (23494)210 648 A
  840. 1110(if)S
  841. ((block_spec))504 1236 A
  842. (f_size)252 1782 A
  843. 2076(=)S
  844. (LONG_MAX;)378 2160 A
  845. 4500 V
  846. (23495)210 648 A
  847. (rdwt_err)336 1110 A
  848. 1488(=)S
  849. (OK;)126 1572 A
  850. 2370(/*)S
  851. (set)126 2496 A
  852. 2664(to)S
  853. (EIO)126 2790 A
  854. 2958(if)S
  855. (disk)168 3084 A
  856. (error)210 3294 A
  857. (occurs)252 3546 A
  858. 3840(*/)S
  859. 4590 V
  860. (23496)210 648 A
  861. 4680 V
  862. (23497)210 648 A
  863. 1110(/*)S
  864. (Check)210 1236 A
  865. (for)126 1488 A
  866. (character)378 1656 A
  867. (special)294 2076 A
  868. (files.)252 2412 A
  869. 2706(*/)S
  870. 4770 V
  871. (23498)210 648 A
  872. 1110(if)S
  873. ((char_spec))462 1236 A
  874. 1740({)S
  875. 4860 V
  876. (23499)210 648 A
  877. (dev)126 1362 A
  878. 1530(=)S
  879. ((dev_t))294 1614 A
  880. (rip->i_zone[0];)630 1950 A
  881. 4950 V
  882. (23500)210 648 A
  883. 1362(r)S
  884. 1446(=)S
  885. (dev_io(op,)420 1530 A
  886. (oflags)252 1992 A
  887. 2286(&)S
  888. (O_NONBLOCK,)462 2370 A
  889. (dev,)168 2874 A
  890. (position,)378 3084 A
  891. (nbytes,)294 3504 A
  892. (who,buffer);)504 3840 A
  893. 5040 V
  894. (23501)210 648 A
  895. 1362(if)S
  896. 1488((r)S
  897. 1614(>=)S
  898. 1740(0))S
  899. 1866({)S
  900. 5130 V
  901. (23502)210 648 A
  902. (cum_io)252 1698 A
  903. 1992(=)S
  904. 2076(r;)S
  905. 5220 V
  906. (23503)210 648 A
  907. (position)336 1698 A
  908. 2076(+=)S
  909. 2202(r;)S
  910. 5310 V
  911. (23504)210 648 A
  912. 1698(r)S
  913. 1782(=)S
  914. (OK;)126 1866 A
  915. 5400 V
  916. (23505)210 648 A
  917. 1362(})S
  918. 5490 V
  919. (23506)210 648 A
  920. 1110(})S
  921. (else)168 1194 A
  922. 1404({)S
  923. 5580 V
  924. (23507)210 648 A
  925. 1362(if)S
  926. ((rw_flag)336 1488 A
  927. 1866(==)S
  928. (WRITING)294 1992 A
  929. 2328(&&)S
  930. (block_spec)420 2454 A
  931. 2916(==)S
  932. 3042(0))S
  933. 3168({)S
  934. 5670 V
  935. (23508)210 648 A
  936. 1698(/*)S
  937. (Check)210 1824 A
  938. 2076(in)S
  939. (advance)294 2202 A
  940. 2538(to)S
  941. (see)126 2664 A
  942. 2832(if)S
  943. (file)168 2958 A
  944. (will)168 3168 A
  945. (grow)168 3378 A
  946. (too)126 3588 A
  947. (big.)168 3756 A
  948. 3966(*/)S
  949. 5760 V
  950. (23509)210 648 A
  951. 1698(if)S
  952. ((position)378 1824 A
  953. 2244(>)S
  954. (rip->i_sp->s_max_size)882 2328 A
  955. 3252(-)S
  956. (nbytes))294 3336 A
  957. (return(EFBIG);)588 3672 A
  958. 5850 V
  959. (23510)210 648 A
  960. 5940 V
  961. (23511)210 648 A
  962. 1698(/*)S
  963. (Check)210 1824 A
  964. (for)126 2076 A
  965. (O_APPEND)336 2244 A
  966. (flag.)210 2622 A
  967. 2874(*/)S
  968. 6030 V
  969. (23512)210 648 A
  970. 1698(if)S
  971. ((oflags)294 1824 A
  972. 2160(&)S
  973. (O_APPEND))378 2244 A
  974. (position)336 2664 A
  975. 3042(=)S
  976. (f_size;)294 3126 A
  977. 6120 V
  978. (23513)210 648 A
  979. 6210 V
  980. (23514)210 648 A
  981. 1698(/*)S
  982. (Clear)210 1824 A
  983. (the)126 2076 A
  984. (zone)168 2244 A
  985. (containing)420 2454 A
  986. (present)294 2916 A
  987. (EOF)126 3252 A
  988. 3420(if)S
  989. (hole)168 3546 A
  990. (about)210 3756 A
  991. 8418 V
  992. EP
  993. %%Page: 323 323
  994. BP
  995. /slant 0 def
  996. /height 0 def
  997. 630 V
  998. 10 R
  999. 648(MINIX)S
  1000. 976(SOURCE)S
  1001. 1399(CODE)S
  1002. 11 R
  1003. 2150(File:)S
  1004. 2383(src/fs/read.c)S
  1005. 12 B
  1006. (323)180 4248 A
  1007. 900 V
  1008. 7 LST
  1009. (23515)210 648 A
  1010. 1740(*)S
  1011. 1824(to)S
  1012. 1950(be)S
  1013. (created.)336 2076 A
  1014. (This)168 2496 A
  1015. 2706(is)S
  1016. (necessary)378 2832 A
  1017. (because)294 3252 A
  1018. (all)126 3588 A
  1019. (unwritten)378 3756 A
  1020. 990 V
  1021. (23516)210 648 A
  1022. 1740(*)S
  1023. (blocks)252 1824 A
  1024. (prior)210 2118 A
  1025. 2370(to)S
  1026. (the)126 2496 A
  1027. (EOF)126 2664 A
  1028. (must)168 2832 A
  1029. (read)168 3042 A
  1030. 3252(as)S
  1031. (zeros.)252 3378 A
  1032. 1080 V
  1033. (23517)210 648 A
  1034. 1740(*/)S
  1035. 1170 V
  1036. (23518)210 648 A
  1037. 1698(if)S
  1038. ((position)378 1824 A
  1039. 2244(>)S
  1040. (f_size))294 2328 A
  1041. (clear_zone(rip,)630 2664 A
  1042. (f_size,)294 3336 A
  1043. (0);)126 3672 A
  1044. 1260 V
  1045. (23519)210 648 A
  1046. 1362(})S
  1047. 1350 V
  1048. (23520)210 648 A
  1049. 1440 V
  1050. (23521)210 648 A
  1051. 1362(/*)S
  1052. (Pipes)210 1488 A
  1053. (are)126 1740 A
  1054. 1908(a)S
  1055. (little)252 1992 A
  1056. (different.)420 2286 A
  1057. (Check.)252 2790 A
  1058. 3084(*/)S
  1059. 1530 V
  1060. (23522)210 648 A
  1061. 1362(if)S
  1062. ((rip->i_pipe)504 1488 A
  1063. 2034(==)S
  1064. (I_PIPE))294 2160 A
  1065. 2496({)S
  1066. 1620 V
  1067. (23523)210 648 A
  1068. 1656(r)S
  1069. 1740(=)S
  1070. (pipe_check(rip,rw_flag,oflags,nbytes,position,&partial_cnt);)2520 1824 A
  1071. 1710 V
  1072. (23524)210 648 A
  1073. 1656(if)S
  1074. 1782((r)S
  1075. 1908(<=)S
  1076. 2034(0))S
  1077. (return(r);)420 2160 A
  1078. 1800 V
  1079. (23525)210 648 A
  1080. 1362(})S
  1081. 1890 V
  1082. (23526)210 648 A
  1083. 1980 V
  1084. (23527)210 648 A
  1085. 1362(if)S
  1086. ((partial_cnt)504 1488 A
  1087. 2034(>)S
  1088. 2118(0))S
  1089. (partial_pipe)504 2244 A
  1090. 2790(=)S
  1091. 2874(1;)S
  1092. 2070 V
  1093. (23528)210 648 A
  1094. 2160 V
  1095. (23529)210 648 A
  1096. 1362(/*)S
  1097. (Split)210 1488 A
  1098. (the)126 1740 A
  1099. (transfer)336 1908 A
  1100. (into)168 2286 A
  1101. (chunks)252 2496 A
  1102. (that)168 2790 A
  1103. (don't)210 3000 A
  1104. (span)168 3252 A
  1105. (two)126 3462 A
  1106. (blocks.)294 3630 A
  1107. 3966(*/)S
  1108. 2250 V
  1109. (23530)210 648 A
  1110. (while)210 1362 A
  1111. ((nbytes)294 1614 A
  1112. 1950(!=)S
  1113. 2076(0))S
  1114. 2202({)S
  1115. 2340 V
  1116. (23531)210 648 A
  1117. (off)126 1698 A
  1118. 1866(=)S
  1119. ((unsigned)378 1950 A
  1120. (int))168 2370 A
  1121. ((position)378 2580 A
  1122. 3000(%)S
  1123. (BLOCK_SIZE);/*)588 3084 A
  1124. (offset)252 3714 A
  1125. 4008(in)S
  1126. (blk*/)210 4134 A
  1127. 2430 V
  1128. (23532)210 648 A
  1129. 1698(if)S
  1130. ((partial_pipe))588 1824 A
  1131. 2454({)S
  1132. 2580(/*)S
  1133. (pipes)210 2706 A
  1134. (only)168 2958 A
  1135. 3168(*/)S
  1136. 2520 V
  1137. (23533)210 648 A
  1138. (chunk)210 2034 A
  1139. 2286(=)S
  1140. (MIN(partial_cnt,)672 2370 A
  1141. (BLOCK_SIZE)420 3084 A
  1142. 3546(-)S
  1143. (off);)210 3630 A
  1144. 2610 V
  1145. (23534)210 648 A
  1146. 1698(})S
  1147. (else)168 1782 A
  1148. 2700 V
  1149. (23535)210 648 A
  1150. (chunk)210 2034 A
  1151. 2286(=)S
  1152. (MIN(nbytes,)462 2370 A
  1153. (BLOCK_SIZE)420 2874 A
  1154. 3336(-)S
  1155. (off);)210 3420 A
  1156. 2790 V
  1157. (23536)210 648 A
  1158. 1698(if)S
  1159. ((chunk)252 1824 A
  1160. 2118(<)S
  1161. 2202(0))S
  1162. (chunk)210 2328 A
  1163. 2580(=)S
  1164. (BLOCK_SIZE)420 2664 A
  1165. 3126(-)S
  1166. (off;)168 3210 A
  1167. 2880 V
  1168. (23537)210 648 A
  1169. 2970 V
  1170. (23538)210 648 A
  1171. 1698(if)S
  1172. ((rw_flag)336 1824 A
  1173. 2202(==)S
  1174. (READING))336 2328 A
  1175. 2706({)S
  1176. 3060 V
  1177. (23539)210 648 A
  1178. (bytes_left)420 2034 A
  1179. 2496(=)S
  1180. (f_size)252 2580 A
  1181. 2874(-)S
  1182. (position;)378 2958 A
  1183. 3150 V
  1184. (23540)210 648 A
  1185. 2034(if)S
  1186. ((position)378 2160 A
  1187. 2580(>=)S
  1188. (f_size))294 2706 A
  1189. (break;)252 3042 A
  1190. 3378(/*)S
  1191. 3504(we)S
  1192. (are)126 3630 A
  1193. (beyond)252 3798 A
  1194. (EOF)126 4092 A
  1195. 4260(*/)S
  1196. 3240 V
  1197. (23541)210 648 A
  1198. 2034(if)S
  1199. ((chunk)252 2160 A
  1200. 2454(>)S
  1201. (bytes_left))462 2538 A
  1202. (chunk)210 3042 A
  1203. 3294(=)S
  1204. ((int))210 3378 A
  1205. (bytes_left;)462 3630 A
  1206. 3330 V
  1207. (23542)210 648 A
  1208. 1698(})S
  1209. 3420 V
  1210. (23543)210 648 A
  1211. 3510 V
  1212. (23544)210 648 A
  1213. 1698(/*)S
  1214. (Read)168 1824 A
  1215. 2034(or)S
  1216. (write)210 2160 A
  1217. ('chunk')294 2412 A
  1218. (bytes.)252 2748 A
  1219. 3042(*/)S
  1220. 3600 V
  1221. (23545)210 648 A
  1222. 1698(r)S
  1223. 1782(=)S
  1224. (rw_chunk(rip,)546 1866 A
  1225. (position,)378 2454 A
  1226. (off,)168 2874 A
  1227. (chunk,)252 3084 A
  1228. ((unsigned))420 3378 A
  1229. (nbytes,)294 3840 A
  1230. 3690 V
  1231. (23546)210 648 A
  1232. (rw_flag,)336 2244 A
  1233. (buffer,)294 2622 A
  1234. (seg,)168 2958 A
  1235. (usr);)210 3168 A
  1236. 3780 V
  1237. (23547)210 648 A
  1238. 1698(if)S
  1239. 1824((r)S
  1240. 1950(!=)S
  1241. (OK))126 2076 A
  1242. (break;)252 2244 A
  1243. 2706(/*)S
  1244. (EOF)126 2832 A
  1245. (reached)294 3000 A
  1246. 3336(*/)S
  1247. 3870 V
  1248. (23548)210 648 A
  1249. 1698(if)S
  1250. ((rdwt_err)378 1824 A
  1251. 2244(<)S
  1252. 2328(0))S
  1253. (break;)252 2454 A
  1254. 3960 V
  1255. (23549)210 648 A
  1256. 4050 V
  1257. (23550)210 648 A
  1258. 1698(/*)S
  1259. (Update)252 1824 A
  1260. (counters)336 2118 A
  1261. (and)126 2496 A
  1262. (pointers.)378 2664 A
  1263. 3084(*/)S
  1264. 4140 V
  1265. (23551)210 648 A
  1266. (buffer)252 1698 A
  1267. 1992(+=)S
  1268. (chunk;)252 2118 A
  1269. 2706(/*)S
  1270. (user)168 2832 A
  1271. (buffer)252 3042 A
  1272. (address)294 3336 A
  1273. 3672(*/)S
  1274. 4230 V
  1275. (23552)210 648 A
  1276. (nbytes)252 1698 A
  1277. 1992(-=)S
  1278. (chunk;)252 2118 A
  1279. 2706(/*)S
  1280. (bytes)210 2832 A
  1281. (yet)126 3084 A
  1282. 3252(to)S
  1283. 3378(be)S
  1284. (read)168 3504 A
  1285. 3714(*/)S
  1286. 4320 V
  1287. (23553)210 648 A
  1288. (cum_io)252 1698 A
  1289. 1992(+=)S
  1290. (chunk;)252 2118 A
  1291. 2706(/*)S
  1292. (bytes)210 2832 A
  1293. (read)168 3084 A
  1294. 3294(so)S
  1295. (far)126 3420 A
  1296. 3588(*/)S
  1297. 4410 V
  1298. (23554)210 648 A
  1299. (position)336 1698 A
  1300. 2076(+=)S
  1301. (chunk;)252 2202 A
  1302. 2706(/*)S
  1303. (position)336 2832 A
  1304. (within)252 3210 A
  1305. (the)126 3504 A
  1306. (file)168 3672 A
  1307. 3882(*/)S
  1308. 4500 V
  1309. (23555)210 648 A
  1310. 4590 V
  1311. (23556)210 648 A
  1312. 1698(if)S
  1313. ((partial_pipe))588 1824 A
  1314. 2454({)S
  1315. 4680 V
  1316. (23557)210 648 A
  1317. (partial_cnt)462 2034 A
  1318. 2538(-=)S
  1319. (chunk;)252 2664 A
  1320. 4770 V
  1321. (23558)210 648 A
  1322. 2034(if)S
  1323. ((partial_cnt)504 2160 A
  1324. 2706(<=)S
  1325. 2832(0))S
  1326. (break;)252 3000 A
  1327. 4860 V
  1328. (23559)210 648 A
  1329. 1698(})S
  1330. 4950 V
  1331. (23560)210 648 A
  1332. 1362(})S
  1333. 5040 V
  1334. (23561)210 648 A
  1335. 1110(})S
  1336. 5130 V
  1337. (23562)210 648 A
  1338. 5220 V
  1339. (23563)210 648 A
  1340. 1110(/*)S
  1341. 1236(On)S
  1342. (write,)252 1362 A
  1343. (update)252 1656 A
  1344. (file)168 1950 A
  1345. (size)168 2160 A
  1346. (and)126 2370 A
  1347. (access)252 2538 A
  1348. (time.)210 2832 A
  1349. 3084(*/)S
  1350. 5310 V
  1351. (23564)210 648 A
  1352. 1110(if)S
  1353. ((rw_flag)336 1236 A
  1354. 1614(==)S
  1355. (WRITING))336 1740 A
  1356. 2118({)S
  1357. 5400 V
  1358. (23565)210 648 A
  1359. 1362(if)S
  1360. ((regular)336 1488 A
  1361. 1866(||)S
  1362. (mode_word)378 1992 A
  1363. 2412(==)S
  1364. (I_DIRECTORY))504 2538 A
  1365. 3084({)S
  1366. 5490 V
  1367. (23566)210 648 A
  1368. 1698(if)S
  1369. ((position)378 1824 A
  1370. 2244(>)S
  1371. (f_size))294 2328 A
  1372. (rip->i_size)462 2664 A
  1373. 3168(=)S
  1374. (position;)378 3252 A
  1375. 5580 V
  1376. (23567)210 648 A
  1377. 1362(})S
  1378. 5670 V
  1379. (23568)210 648 A
  1380. 1110(})S
  1381. (else)168 1194 A
  1382. 1404({)S
  1383. 5760 V
  1384. (23569)210 648 A
  1385. 1362(if)S
  1386. ((rip->i_pipe)504 1488 A
  1387. 2034(==)S
  1388. (I_PIPE)252 2160 A
  1389. 2454(&&)S
  1390. (position)336 2580 A
  1391. 2958(>=)S
  1392. (rip->i_size))504 3084 A
  1393. 3630({)S
  1394. 5850 V
  1395. (23570)210 648 A
  1396. 1698(/*)S
  1397. (Reset)210 1824 A
  1398. (pipe)168 2076 A
  1399. (pointers.)378 2286 A
  1400. 2706(*/)S
  1401. 5940 V
  1402. (23571)210 648 A
  1403. (rip->i_size)462 1698 A
  1404. 2202(=)S
  1405. 2286(0;)S
  1406. 2706(/*)S
  1407. 2832(no)S
  1408. (data)168 2958 A
  1409. (left)168 3168 A
  1410. 3378(*/)S
  1411. 6030 V
  1412. (23572)210 648 A
  1413. (position)336 1698 A
  1414. 2076(=)S
  1415. 2160(0;)S
  1416. 2706(/*)S
  1417. (reset)210 2832 A
  1418. (reader(s))378 3084 A
  1419. 3504(*/)S
  1420. 6120 V
  1421. (23573)210 648 A
  1422. 1698(if)S
  1423. 1824(()S
  1424. ((wf)126 1908 A
  1425. 2076(=)S
  1426. (find_filp(rip,)588 2160 A
  1427. (W_BIT)))294 2790 A
  1428. 3126(!=)S
  1429. (NIL_FILP))378 3252 A
  1430. (wf->filp_pos)504 3672 A
  1431. (=0;)126 4218 A
  1432. 6210 V
  1433. (23574)210 648 A
  1434. 1362(})S
  1435. 8418 V
  1436. EP
  1437. %%Page: 324 324
  1438. BP
  1439. /slant 0 def
  1440. /height 0 def
  1441. 630 V
  1442. 12 B
  1443. (324)180 648 A
  1444. 11 R
  1445. 2150(File:)S
  1446. 2383(src/fs/read.c)S
  1447. 10 R
  1448. 3402(MINIX)S
  1449. 3730(SOURCE)S
  1450. 4153(CODE)S
  1451. 900 V
  1452. 7 LST
  1453. (23575)210 648 A
  1454. 1110(})S
  1455. 990 V
  1456. (23576)210 648 A
  1457. (f->filp_pos)462 1110 A
  1458. 1614(=)S
  1459. (position;)378 1698 A
  1460. 1080 V
  1461. (23577)210 648 A
  1462. 1170 V
  1463. (23578)210 648 A
  1464. 1110(/*)S
  1465. (Check)210 1236 A
  1466. 1488(to)S
  1467. (see)126 1614 A
  1468. 1782(if)S
  1469. (read-ahead)420 1908 A
  1470. 2370(is)S
  1471. (called)252 2496 A
  1472. (for,)168 2790 A
  1473. (and)126 3000 A
  1474. 3168(if)S
  1475. (so,)126 3294 A
  1476. (set)126 3462 A
  1477. 3630(it)S
  1478. (up.)126 3756 A
  1479. 3924(*/)S
  1480. 1260 V
  1481. (23579)210 648 A
  1482. 1110(if)S
  1483. ((rw_flag)336 1236 A
  1484. 1614(==)S
  1485. (READING)294 1740 A
  1486. 2076(&&)S
  1487. (rip->i_seek)462 2202 A
  1488. 2706(==)S
  1489. (NO_SEEK)294 2832 A
  1490. 3168(&&)S
  1491. (position)336 3294 A
  1492. 3672(%)S
  1493. (BLOCK_SIZE==)504 3756 A
  1494. 4302(0)S
  1495. 1350 V
  1496. (23580)210 648 A
  1497. 1698(&&)S
  1498. ((regular)336 1824 A
  1499. 2202(||)S
  1500. (mode_word)378 2328 A
  1501. 2748(==)S
  1502. (I_DIRECTORY)))546 2874 A
  1503. 3462({)S
  1504. 1440 V
  1505. (23581)210 648 A
  1506. (rdahed_inode)504 1362 A
  1507. 1908(=)S
  1508. (rip;)168 1992 A
  1509. 1530 V
  1510. (23582)210 648 A
  1511. (rdahedpos)378 1362 A
  1512. 1782(=)S
  1513. (position;)378 1866 A
  1514. 1620 V
  1515. (23583)210 648 A
  1516. 1110(})S
  1517. 1710 V
  1518. (23584)210 648 A
  1519. (rip->i_seek)462 1110 A
  1520. 1614(=)S
  1521. (NO_SEEK;)336 1698 A
  1522. 1800 V
  1523. (23585)210 648 A
  1524. 1890 V
  1525. (23586)210 648 A
  1526. 1110(if)S
  1527. ((rdwt_err)378 1236 A
  1528. 1656(!=)S
  1529. (OK))126 1782 A
  1530. 1950(r)S
  1531. 2034(=)S
  1532. (rdwt_err;)378 2118 A
  1533. 2706(/*)S
  1534. (check)210 2832 A
  1535. (for)126 3084 A
  1536. (disk)168 3252 A
  1537. (error)210 3462 A
  1538. 3714(*/)S
  1539. 1980 V
  1540. (23587)210 648 A
  1541. 1110(if)S
  1542. ((rdwt_err)378 1236 A
  1543. 1656(==)S
  1544. (END_OF_FILE))504 1782 A
  1545. 2328(r)S
  1546. 2412(=)S
  1547. (OK;)126 2496 A
  1548. 2070 V
  1549. (23588)210 648 A
  1550. 1110(if)S
  1551. 1236((r)S
  1552. 1362(==)S
  1553. (OK))126 1488 A
  1554. 1656({)S
  1555. 2160 V
  1556. (23589)210 648 A
  1557. 1362(if)S
  1558. ((rw_flag)336 1488 A
  1559. 1866(==)S
  1560. (READING))336 1992 A
  1561. (rip->i_update)546 2370 A
  1562. 2958(|=)S
  1563. (ATIME;)252 3084 A
  1564. 2250 V
  1565. (23590)210 648 A
  1566. 1362(if)S
  1567. ((rw_flag)336 1488 A
  1568. 1866(==)S
  1569. (WRITING))336 1992 A
  1570. (rip->i_update)546 2370 A
  1571. 2958(|=)S
  1572. (CTIME)210 3084 A
  1573. 3336(|)S
  1574. (MTIME;)252 3420 A
  1575. 2340 V
  1576. (23591)210 648 A
  1577. (rip->i_dirt)462 1362 A
  1578. 1866(=)S
  1579. (DIRTY;)252 1950 A
  1580. 2706(/*)S
  1581. (inode)210 2832 A
  1582. 3084(is)S
  1583. (thus)168 3210 A
  1584. (now)126 3420 A
  1585. (dirty)210 3588 A
  1586. 3840(*/)S
  1587. 2430 V
  1588. (23592)210 648 A
  1589. 1362(if)S
  1590. ((partial_pipe))588 1488 A
  1591. 2118({)S
  1592. 2520 V
  1593. (23593)210 648 A
  1594. (partial_pipe)504 1698 A
  1595. 2244(=)S
  1596. 2328(0;)S
  1597. 2610 V
  1598. (23594)210 648 A
  1599. 2034(/*)S
  1600. (partial)294 2160 A
  1601. (write)210 2496 A
  1602. 2748(on)S
  1603. (pipe)168 2874 A
  1604. (with)168 3084 A
  1605. 3294(*/)S
  1606. 2700 V
  1607. (23595)210 648 A
  1608. 2034(/*)S
  1609. (O_NONBLOCK,)462 2160 A
  1610. (return)252 2664 A
  1611. (write)210 2958 A
  1612. (count)210 3210 A
  1613. 3462(*/)S
  1614. 2790 V
  1615. (23596)210 648 A
  1616. 1698(if)S
  1617. ((!(oflags)378 1824 A
  1618. 2244(&)S
  1619. (O_NONBLOCK)))504 2328 A
  1620. 2874({)S
  1621. 2880 V
  1622. (23597)210 648 A
  1623. (fp->fp_cum_io_partial)882 2034 A
  1624. 2958(=)S
  1625. (cum_io;)294 3042 A
  1626. 2970 V
  1627. (23598)210 648 A
  1628. (suspend(XPIPE);)630 2034 A
  1629. 2706(/*)S
  1630. (partial)294 2832 A
  1631. (write)210 3168 A
  1632. 3420(on)S
  1633. (pipe)168 3546 A
  1634. (with)168 3756 A
  1635. 3966(*/)S
  1636. 3060 V
  1637. (23599)210 648 A
  1638. (return(0);)420 2034 A
  1639. 2706(/*)S
  1640. (nbyte)210 2832 A
  1641. 3084(>)S
  1642. (PIPE_SIZE)378 3168 A
  1643. 3588(-)S
  1644. (non-atomic)420 3672 A
  1645. 4134(*/)S
  1646. 3150 V
  1647. (23600)210 648 A
  1648. 1698(})S
  1649. 3240 V
  1650. (23601)210 648 A
  1651. 1362(})S
  1652. 3330 V
  1653. (23602)210 648 A
  1654. (fp->fp_cum_io_partial)882 1362 A
  1655. 2286(=)S
  1656. 2370(0;)S
  1657. 3420 V
  1658. (23603)210 648 A
  1659. (return(cum_io);)630 1362 A
  1660. 3510 V
  1661. (23604)210 648 A
  1662. 1110(})S
  1663. (else)168 1194 A
  1664. 1404({)S
  1665. 3600 V
  1666. (23605)210 648 A
  1667. (return(r);)420 1362 A
  1668. 3690 V
  1669. (23606)210 648 A
  1670. 1110(})S
  1671. 3780 V
  1672. (23607)210 648 A
  1673. 1026(})S
  1674. 4050 V
  1675. (23610)210 648 A
  1676. (/*===========================================================================*)3276 1026 A
  1677. 4140 V
  1678. (23611)210 648 A
  1679. 1068(*)S
  1680. (rw_chunk)336 2370 A
  1681. 4260(*)S
  1682. 4230 V
  1683. (23612)210 648 A
  1684. (*===========================================================================*/)3276 1068 A
  1685. 4320 V
  1686. (23613)210 648 A
  1687. (PRIVATE)294 1026 A
  1688. (int)126 1362 A
  1689. (rw_chunk(rip,)546 1530 A
  1690. (position,)378 2118 A
  1691. (off,)168 2538 A
  1692. (chunk,)252 2748 A
  1693. (left,)210 3042 A
  1694. (rw_flag,)336 3294 A
  1695. (buff,)210 3672 A
  1696. (seg,)168 3924 A
  1697. (usr))168 4134 A
  1698. 4410 V
  1699. (23614)210 648 A
  1700. (register)336 1026 A
  1701. (struct)252 1404 A
  1702. (inode)210 1698 A
  1703. (*rip;)210 1950 A
  1704. 2370(/*)S
  1705. (pointer)294 2496 A
  1706. 2832(to)S
  1707. (inode)210 2958 A
  1708. (for)126 3210 A
  1709. (file)168 3378 A
  1710. 3588(to)S
  1711. 3714(be)S
  1712. (rd/wr)210 3840 A
  1713. 4092(*/)S
  1714. 4500 V
  1715. (23615)210 648 A
  1716. (off_t)210 1026 A
  1717. (position;)378 1278 A
  1718. 2370(/*)S
  1719. (position)336 2496 A
  1720. (within)252 2874 A
  1721. (file)168 3168 A
  1722. 3378(to)S
  1723. (read)168 3504 A
  1724. 3714(or)S
  1725. (write)210 3840 A
  1726. 4092(*/)S
  1727. 4590 V
  1728. (23616)210 648 A
  1729. (unsigned)336 1026 A
  1730. (off;)168 1404 A
  1731. 2370(/*)S
  1732. (off)126 2496 A
  1733. (within)252 2664 A
  1734. (the)126 2958 A
  1735. (current)294 3126 A
  1736. (block)210 3462 A
  1737. 3714(*/)S
  1738. 4680 V
  1739. (23617)210 648 A
  1740. (int)126 1026 A
  1741. (chunk;)252 1194 A
  1742. 2370(/*)S
  1743. (number)252 2496 A
  1744. 2790(of)S
  1745. (bytes)210 2916 A
  1746. 3168(to)S
  1747. (read)168 3294 A
  1748. 3504(or)S
  1749. (write)210 3630 A
  1750. 3882(*/)S
  1751. 4770 V
  1752. (23618)210 648 A
  1753. (unsigned)336 1026 A
  1754. (left;)210 1404 A
  1755. 2370(/*)S
  1756. (max)126 2496 A
  1757. (number)252 2664 A
  1758. 2958(of)S
  1759. (bytes)210 3084 A
  1760. (wanted)252 3336 A
  1761. (after)210 3630 A
  1762. (position)336 3882 A
  1763. 4260(*/)S
  1764. 4860 V
  1765. (23619)210 648 A
  1766. (int)126 1026 A
  1767. (rw_flag;)336 1194 A
  1768. 2370(/*)S
  1769. (READING)294 2496 A
  1770. 2832(or)S
  1771. (WRITING)294 2958 A
  1772. 3294(*/)S
  1773. 4950 V
  1774. (23620)210 648 A
  1775. (char)168 1026 A
  1776. (*buff;)252 1236 A
  1777. 2370(/*)S
  1778. (virtual)294 2496 A
  1779. (address)294 2832 A
  1780. 3168(of)S
  1781. (the)126 3294 A
  1782. (user)168 3462 A
  1783. (buffer)252 3672 A
  1784. 3966(*/)S
  1785. 5040 V
  1786. (23621)210 648 A
  1787. (int)126 1026 A
  1788. (seg;)168 1194 A
  1789. 2370(/*)S
  1790. 2496(T)S
  1791. 2580(or)S
  1792. 2706(D)S
  1793. (segment)294 2790 A
  1794. 3126(in)S
  1795. (user)168 3252 A
  1796. (space)210 3462 A
  1797. 3714(*/)S
  1798. 5130 V
  1799. (23622)210 648 A
  1800. (int)126 1026 A
  1801. (usr;)168 1194 A
  1802. 2370(/*)S
  1803. (which)210 2496 A
  1804. (user)168 2748 A
  1805. (process)294 2958 A
  1806. 3294(*/)S
  1807. 5220 V
  1808. (23623)210 648 A
  1809. 1026({)S
  1810. 5310 V
  1811. (23624)210 648 A
  1812. 1026(/*)S
  1813. (Read)168 1152 A
  1814. 1362(or)S
  1815. (write)210 1488 A
  1816. ((part)210 1740 A
  1817. (of))126 1992 A
  1818. 2160(a)S
  1819. (block.)252 2244 A
  1820. 2538(*/)S
  1821. 5400 V
  1822. (23625)210 648 A
  1823. 5490 V
  1824. (23626)210 648 A
  1825. (register)336 1110 A
  1826. (struct)252 1488 A
  1827. (buf)126 1782 A
  1828. (*bp;)168 1950 A
  1829. 5580 V
  1830. (23627)210 648 A
  1831. (register)336 1110 A
  1832. (int)126 1488 A
  1833. 1656(r;)S
  1834. 5670 V
  1835. (23628)210 648 A
  1836. (int)126 1110 A
  1837. 1278(n,)S
  1838. (block_spec;)462 1404 A
  1839. 5760 V
  1840. (23629)210 648 A
  1841. (block_t)294 1110 A
  1842. 1446(b;)S
  1843. 5850 V
  1844. (23630)210 648 A
  1845. (dev_t)210 1110 A
  1846. (dev;)168 1362 A
  1847. 5940 V
  1848. (23631)210 648 A
  1849. 6030 V
  1850. (23632)210 648 A
  1851. (block_spec)420 1110 A
  1852. 1572(=)S
  1853. ((rip->i_mode)504 1656 A
  1854. 2202(&)S
  1855. (I_TYPE))294 2286 A
  1856. 2622(==)S
  1857. (I_BLOCK_SPECIAL;)672 2748 A
  1858. 6120 V
  1859. (23633)210 648 A
  1860. 1110(if)S
  1861. ((block_spec))504 1236 A
  1862. 1782({)S
  1863. 6210 V
  1864. (23634)210 648 A
  1865. 1362(b)S
  1866. 1446(=)S
  1867. (position/BLOCK_SIZE;)840 1530 A
  1868. 8418 V
  1869. EP
  1870. %%Page: 325 325
  1871. BP
  1872. /slant 0 def
  1873. /height 0 def
  1874. 630 V
  1875. 10 R
  1876. 648(MINIX)S
  1877. 976(SOURCE)S
  1878. 1399(CODE)S
  1879. 11 R
  1880. 2150(File:)S
  1881. 2383(src/fs/read.c)S
  1882. 12 B
  1883. (325)180 4248 A
  1884. 900 V
  1885. 7 LST
  1886. (23635)210 648 A
  1887. (dev)126 1362 A
  1888. 1530(=)S
  1889. ((dev_t))294 1614 A
  1890. (rip->i_zone[0];)630 1950 A
  1891. 990 V
  1892. (23636)210 648 A
  1893. 1110(})S
  1894. (else)168 1194 A
  1895. 1404({)S
  1896. 1080 V
  1897. (23637)210 648 A
  1898. 1362(b)S
  1899. 1446(=)S
  1900. (read_map(rip,)546 1530 A
  1901. (position);)420 2118 A
  1902. 1170 V
  1903. (23638)210 648 A
  1904. (dev)126 1362 A
  1905. 1530(=)S
  1906. (rip->i_dev;)462 1614 A
  1907. 1260 V
  1908. (23639)210 648 A
  1909. 1110(})S
  1910. 1350 V
  1911. (23640)210 648 A
  1912. 1440 V
  1913. (23641)210 648 A
  1914. 1110(if)S
  1915. ((!block_spec)504 1236 A
  1916. 1782(&&)S
  1917. 1908(b)S
  1918. 1992(==)S
  1919. (NO_BLOCK))378 2118 A
  1920. 2538({)S
  1921. 1530 V
  1922. (23642)210 648 A
  1923. 1362(if)S
  1924. ((rw_flag)336 1488 A
  1925. 1866(==)S
  1926. (READING))336 1992 A
  1927. 2370({)S
  1928. 1620 V
  1929. (23643)210 648 A
  1930. 1698(/*)S
  1931. (Reading)294 1824 A
  1932. (from)168 2160 A
  1933. 2370(a)S
  1934. (nonexistent)462 2454 A
  1935. (block.)252 2958 A
  1936. (Must)168 3294 A
  1937. (read)168 3504 A
  1938. 3714(as)S
  1939. (all)126 3840 A
  1940. (zeros.*/)336 4008 A
  1941. 1710 V
  1942. (23644)210 648 A
  1943. 1698(bp)S
  1944. 1824(=)S
  1945. (get_block(NO_DEV,)714 1908 A
  1946. (NO_BLOCK,)378 2664 A
  1947. (NORMAL);)336 3084 A
  1948. 3588(/*)S
  1949. (get)126 3714 A
  1950. 3882(a)S
  1951. (buffer)252 3966 A
  1952. 4260(*/)S
  1953. 1800 V
  1954. (23645)210 648 A
  1955. (zero_block(bp);)630 1698 A
  1956. 1890 V
  1957. (23646)210 648 A
  1958. 1362(})S
  1959. (else)168 1446 A
  1960. 1656({)S
  1961. 1980 V
  1962. (23647)210 648 A
  1963. 1698(/*)S
  1964. (Writing)294 1824 A
  1965. 2160(to)S
  1966. 2286(a)S
  1967. (nonexistent)462 2370 A
  1968. (block.)252 2874 A
  1969. (Create)252 3168 A
  1970. (and)126 3462 A
  1971. (enter)210 3630 A
  1972. 3882(in)S
  1973. (inode.*/)336 4008 A
  1974. 2070 V
  1975. (23648)210 648 A
  1976. 1698(if)S
  1977. (((bp=)210 1824 A
  1978. (new_block(rip,)588 2076 A
  1979. (position)))420 2706 A
  1980. 3168(==)S
  1981. (NIL_BUF)return(err_code);)1050 3294 A
  1982. 2160 V
  1983. (23649)210 648 A
  1984. 1362(})S
  1985. 2250 V
  1986. (23650)210 648 A
  1987. 1110(})S
  1988. (else)168 1194 A
  1989. 1404(if)S
  1990. ((rw_flag)336 1530 A
  1991. 1908(==)S
  1992. (READING))336 2034 A
  1993. 2412({)S
  1994. 2340 V
  1995. (23651)210 648 A
  1996. 1362(/*)S
  1997. (Read)168 1488 A
  1998. (and)126 1698 A
  1999. (read)168 1866 A
  2000. (ahead)210 2076 A
  2001. 2328(if)S
  2002. (convenient.)462 2454 A
  2003. 2958(*/)S
  2004. 2430 V
  2005. (23652)210 648 A
  2006. 1362(bp)S
  2007. 1488(=)S
  2008. (rahead(rip,)462 1572 A
  2009. 2076(b,)S
  2010. (position,)378 2202 A
  2011. (left);)252 2622 A
  2012. 2520 V
  2013. (23653)210 648 A
  2014. 1110(})S
  2015. (else)168 1194 A
  2016. 1404({)S
  2017. 2610 V
  2018. (23654)210 648 A
  2019. 1362(/*)S
  2020. (Normally)336 1488 A
  2021. 1866(an)S
  2022. (existing)336 1992 A
  2023. (block)210 2370 A
  2024. 2622(to)S
  2025. 2748(be)S
  2026. (partially)378 2874 A
  2027. (overwritten)462 3294 A
  2028. 3798(is)S
  2029. (first)210 3924 A
  2030. (read)168 4176 A
  2031. 2700 V
  2032. (23655)210 648 A
  2033. 1404(*)S
  2034. (in.)126 1488 A
  2035. (However,)336 1698 A
  2036. 2076(a)S
  2037. (full)168 2160 A
  2038. (block)210 2370 A
  2039. (need)168 2622 A
  2040. (not)126 2832 A
  2041. 3000(be)S
  2042. (read)168 3126 A
  2043. (in.)126 3336 A
  2044. 3546(If)S
  2045. 3672(it)S
  2046. 3798(is)S
  2047. (already)294 3924 A
  2048. 4260(in)S
  2049. 2790 V
  2050. (23656)210 648 A
  2051. 1404(*)S
  2052. (the)126 1488 A
  2053. (cache,)252 1656 A
  2054. (acquire)294 1950 A
  2055. (it,)126 2286 A
  2056. (otherwise)378 2454 A
  2057. (just)168 2874 A
  2058. (acquire)294 3084 A
  2059. 3420(a)S
  2060. (free)168 3504 A
  2061. (buffer.)294 3714 A
  2062. 2880 V
  2063. (23657)210 648 A
  2064. 1404(*/)S
  2065. 2970 V
  2066. (23658)210 648 A
  2067. 1362(n)S
  2068. 1446(=)S
  2069. ((chunk)252 1530 A
  2070. 1824(==)S
  2071. (BLOCK_SIZE)420 1950 A
  2072. 2412(?)S
  2073. (NO_READ)294 2496 A
  2074. 2832(:)S
  2075. (NORMAL);)336 2916 A
  2076. 3060 V
  2077. (23659)210 648 A
  2078. 1362(if)S
  2079. ((!block_spec)504 1488 A
  2080. 2034(&&)S
  2081. (off)126 2160 A
  2082. 2328(==)S
  2083. 2454(0)S
  2084. 2538(&&)S
  2085. (position)336 2664 A
  2086. 3042(>=)S
  2087. (rip->i_size))504 3168 A
  2088. 3714(n)S
  2089. 3798(=)S
  2090. (NO_READ;)336 3882 A
  2091. 3150 V
  2092. (23660)210 648 A
  2093. 1362(bp)S
  2094. 1488(=)S
  2095. (get_block(dev,)588 1572 A
  2096. 2202(b,)S
  2097. (n);)126 2328 A
  2098. 3240 V
  2099. (23661)210 648 A
  2100. 1110(})S
  2101. 3330 V
  2102. (23662)210 648 A
  2103. 3420 V
  2104. (23663)210 648 A
  2105. 1110(/*)S
  2106. 1236(In)S
  2107. (all)126 1362 A
  2108. (cases,)252 1530 A
  2109. 1824(bp)S
  2110. (now)126 1950 A
  2111. (points)252 2118 A
  2112. 2412(to)S
  2113. 2538(a)S
  2114. (valid)210 2622 A
  2115. (buffer.)294 2874 A
  2116. 3210(*/)S
  2117. 3510 V
  2118. (23664)210 648 A
  2119. 1110(if)S
  2120. ((rw_flag)336 1236 A
  2121. 1614(==)S
  2122. (WRITING)294 1740 A
  2123. 2076(&&)S
  2124. (chunk)210 2202 A
  2125. 2454(!=)S
  2126. (BLOCK_SIZE)420 2580 A
  2127. 3042(&&)S
  2128. (!block_spec)462 3168 A
  2129. 3672(&&)S
  2130. 3600 V
  2131. (23665)210 648 A
  2132. (position)336 2706 A
  2133. 3084(>=)S
  2134. (rip->i_size)462 3210 A
  2135. 3714(&&)S
  2136. (off)126 3840 A
  2137. 4008(==)S
  2138. 4134(0))S
  2139. 4260({)S
  2140. 3690 V
  2141. (23666)210 648 A
  2142. (zero_block(bp);)630 1362 A
  2143. 3780 V
  2144. (23667)210 648 A
  2145. 1110(})S
  2146. 3870 V
  2147. (23668)210 648 A
  2148. 1110(if)S
  2149. ((rw_flag)336 1236 A
  2150. 1614(==)S
  2151. (READING))336 1740 A
  2152. 2118({)S
  2153. 3960 V
  2154. (23669)210 648 A
  2155. 1362(/*)S
  2156. (Copy)168 1488 A
  2157. 1698(a)S
  2158. (chunk)210 1782 A
  2159. (from)168 2034 A
  2160. (the)126 2244 A
  2161. (block)210 2412 A
  2162. (buffer)252 2664 A
  2163. 2958(to)S
  2164. (user)168 3084 A
  2165. (space.)252 3294 A
  2166. 3588(*/)S
  2167. 4050 V
  2168. (23670)210 648 A
  2169. 1362(r)S
  2170. 1446(=)S
  2171. (sys_copy(FS_PROC_NR,)840 1530 A
  2172. 2412(D,)S
  2173. ((phys_bytes))504 2538 A
  2174. ((bp->b_data+off),)714 3084 A
  2175. 4140 V
  2176. (23671)210 648 A
  2177. (usr,)168 2034 A
  2178. (seg,)168 2244 A
  2179. ((phys_bytes))504 2454 A
  2180. (buff,)210 3000 A
  2181. 4230 V
  2182. (23672)210 648 A
  2183. ((phys_bytes))504 2034 A
  2184. (chunk);)294 2580 A
  2185. 4320 V
  2186. (23673)210 648 A
  2187. 1110(})S
  2188. (else)168 1194 A
  2189. 1404({)S
  2190. 4410 V
  2191. (23674)210 648 A
  2192. 1362(/*)S
  2193. (Copy)168 1488 A
  2194. 1698(a)S
  2195. (chunk)210 1782 A
  2196. (from)168 2034 A
  2197. (user)168 2244 A
  2198. (space)210 2454 A
  2199. 2706(to)S
  2200. (the)126 2832 A
  2201. (block)210 3000 A
  2202. (buffer.)294 3252 A
  2203. 3588(*/)S
  2204. 4500 V
  2205. (23675)210 648 A
  2206. 1362(r)S
  2207. 1446(=)S
  2208. (sys_copy(usr,)546 1530 A
  2209. (seg,)168 2118 A
  2210. ((phys_bytes))504 2328 A
  2211. (buff,)210 2874 A
  2212. 4590 V
  2213. (23676)210 648 A
  2214. (FS_PROC_NR,)462 2034 A
  2215. 2538(D,)S
  2216. ((phys_bytes))504 2664 A
  2217. ((bp->b_data+off),)714 3210 A
  2218. 4680 V
  2219. (23677)210 648 A
  2220. ((phys_bytes))504 2034 A
  2221. (chunk);)294 2580 A
  2222. 4770 V
  2223. (23678)210 648 A
  2224. (bp->b_dirt)420 1362 A
  2225. 1824(=)S
  2226. (DIRTY;)252 1908 A
  2227. 4860 V
  2228. (23679)210 648 A
  2229. 1110(})S
  2230. 4950 V
  2231. (23680)210 648 A
  2232. 1110(n)S
  2233. 1194(=)S
  2234. ((off)168 1278 A
  2235. 1488(+)S
  2236. (chunk)210 1572 A
  2237. 1824(==)S
  2238. (BLOCK_SIZE)420 1950 A
  2239. 2412(?)S
  2240. (FULL_DATA_BLOCK)630 2496 A
  2241. 3168(:)S
  2242. (PARTIAL_DATA_BLOCK);)840 3252 A
  2243. 5040 V
  2244. (23681)210 648 A
  2245. (put_block(bp,)546 1110 A
  2246. (n);)126 1698 A
  2247. 5130 V
  2248. (23682)210 648 A
  2249. (return(r);)420 1110 A
  2250. 5220 V
  2251. (23683)210 648 A
  2252. 1026(})S
  2253. 5490 V
  2254. (23686)210 648 A
  2255. (/*===========================================================================*)3276 1026 A
  2256. 5580 V
  2257. (23687)210 648 A
  2258. 1068(*)S
  2259. (read_map)336 2370 A
  2260. 4260(*)S
  2261. 5670 V
  2262. (23688)210 648 A
  2263. (*===========================================================================*/)3276 1068 A
  2264. 5760 V
  2265. (23689)210 648 A
  2266. (PUBLIC)252 1026 A
  2267. (block_t)294 1320 A
  2268. (read_map(rip,)546 1656 A
  2269. (position))378 2244 A
  2270. 5850 V
  2271. (23690)210 648 A
  2272. (register)336 1026 A
  2273. (struct)252 1404 A
  2274. (inode)210 1698 A
  2275. (*rip;)210 1950 A
  2276. 2370(/*)S
  2277. (ptr)126 2496 A
  2278. 2664(to)S
  2279. (inode)210 2790 A
  2280. 3042(to)S
  2281. (map)126 3168 A
  2282. (from)168 3336 A
  2283. 3546(*/)S
  2284. 5940 V
  2285. (23691)210 648 A
  2286. (off_t)210 1026 A
  2287. (position;)378 1278 A
  2288. 2370(/*)S
  2289. (position)336 2496 A
  2290. 2874(in)S
  2291. (file)168 3000 A
  2292. (whose)210 3210 A
  2293. (blk)126 3462 A
  2294. (wanted)252 3630 A
  2295. 3924(*/)S
  2296. 6030 V
  2297. (23692)210 648 A
  2298. 1026({)S
  2299. 6120 V
  2300. (23693)210 648 A
  2301. 1026(/*)S
  2302. (Given)210 1152 A
  2303. 1404(an)S
  2304. (inode)210 1530 A
  2305. (and)126 1782 A
  2306. 1950(a)S
  2307. (position)336 2034 A
  2308. (within)252 2412 A
  2309. (the)126 2706 A
  2310. (corresponding)546 2874 A
  2311. (file,)210 3462 A
  2312. (locate)252 3714 A
  2313. (the)126 4008 A
  2314. 6210 V
  2315. (23694)210 648 A
  2316. 1068(*)S
  2317. (block)210 1152 A
  2318. ((not)168 1404 A
  2319. (zone))210 1614 A
  2320. (number)252 1866 A
  2321. 2160(in)S
  2322. (which)210 2286 A
  2323. (that)168 2538 A
  2324. (position)336 2748 A
  2325. 3126(is)S
  2326. 3252(to)S
  2327. 3378(be)S
  2328. (found)210 3504 A
  2329. (and)126 3756 A
  2330. (return)252 3924 A
  2331. (it.)126 4218 A
  2332. 8418 V
  2333. EP
  2334. %%Page: 326 326
  2335. BP
  2336. /slant 0 def
  2337. /height 0 def
  2338. 630 V
  2339. 12 B
  2340. (326)180 648 A
  2341. 11 R
  2342. 2150(File:)S
  2343. 2383(src/fs/read.c)S
  2344. 10 R
  2345. 3402(MINIX)S
  2346. 3730(SOURCE)S
  2347. 4153(CODE)S
  2348. 900 V
  2349. 7 LST
  2350. (23695)210 648 A
  2351. 1068(*/)S
  2352. 990 V
  2353. (23696)210 648 A
  2354. 1080 V
  2355. (23697)210 648 A
  2356. (register)336 1110 A
  2357. (struct)252 1488 A
  2358. (buf)126 1782 A
  2359. (*bp;)168 1950 A
  2360. 1170 V
  2361. (23698)210 648 A
  2362. (register)336 1110 A
  2363. (zone_t)252 1488 A
  2364. 1782(z;)S
  2365. 1260 V
  2366. (23699)210 648 A
  2367. (int)126 1110 A
  2368. (scale,)252 1278 A
  2369. (boff,)210 1572 A
  2370. (dzones,)294 1824 A
  2371. (nr_indirects,)546 2160 A
  2372. (index,)252 2748 A
  2373. (zind,)210 3042 A
  2374. (ex;)126 3294 A
  2375. 1350 V
  2376. (23700)210 648 A
  2377. (block_t)294 1110 A
  2378. 1446(b;)S
  2379. 1440 V
  2380. (23701)210 648 A
  2381. (long)168 1110 A
  2382. (excess,)294 1320 A
  2383. (zone,)210 1656 A
  2384. (block_pos;)420 1908 A
  2385. 1530 V
  2386. (23702)210 648 A
  2387. 1620 V
  2388. (23703)210 648 A
  2389. (scale)210 1110 A
  2390. 1362(=)S
  2391. (rip->i_sp->s_log_zone_size;)1134 1446 A
  2392. 2706(/*)S
  2393. (for)126 2832 A
  2394. (block-zone)420 3000 A
  2395. (conversion)420 3462 A
  2396. 3924(*/)S
  2397. 1710 V
  2398. (23704)210 648 A
  2399. (block_pos)378 1110 A
  2400. 1530(=)S
  2401. (position/BLOCK_SIZE;)840 1614 A
  2402. 2706(/*)S
  2403. (relative)336 2832 A
  2404. (blk)126 3210 A
  2405. 3378(#)S
  2406. 3462(in)S
  2407. (file)168 3588 A
  2408. 3798(*/)S
  2409. 1800 V
  2410. (23705)210 648 A
  2411. (zone)168 1110 A
  2412. 1320(=)S
  2413. (block_pos)378 1404 A
  2414. 1824(>>)S
  2415. (scale;)252 1950 A
  2416. 2370(/*)S
  2417. (position's)420 2496 A
  2418. (zone)168 2958 A
  2419. 3168(*/)S
  2420. 1890 V
  2421. (23706)210 648 A
  2422. (boff)168 1110 A
  2423. 1320(=)S
  2424. ((int))210 1404 A
  2425. ((block_pos)420 1656 A
  2426. 2118(-)S
  2427. ((zone)210 2202 A
  2428. 2454(<<)S
  2429. (scale))252 2580 A
  2430. 2874();)S
  2431. 3000(/*)S
  2432. (relative)336 3126 A
  2433. (blk)126 3504 A
  2434. 3672(#)S
  2435. (within)252 3756 A
  2436. (zone)168 4050 A
  2437. 4260(*/)S
  2438. 1980 V
  2439. (23707)210 648 A
  2440. (dzones)252 1110 A
  2441. 1404(=)S
  2442. (rip->i_ndzones;)630 1488 A
  2443. 2070 V
  2444. (23708)210 648 A
  2445. (nr_indirects)504 1110 A
  2446. 1656(=)S
  2447. (rip->i_nindirs;)630 1740 A
  2448. 2160 V
  2449. (23709)210 648 A
  2450. 2250 V
  2451. (23710)210 648 A
  2452. 1110(/*)S
  2453. 1236(Is)S
  2454. ('position')420 1362 A
  2455. 1824(to)S
  2456. 1950(be)S
  2457. (found)210 2076 A
  2458. 2328(in)S
  2459. (the)126 2454 A
  2460. (inode)210 2622 A
  2461. (itself?)294 2874 A
  2462. 3210(*/)S
  2463. 2340 V
  2464. (23711)210 648 A
  2465. 1110(if)S
  2466. ((zone)210 1236 A
  2467. 1488(<)S
  2468. (dzones))294 1572 A
  2469. 1908({)S
  2470. 2430 V
  2471. (23712)210 648 A
  2472. (zind)168 1362 A
  2473. 1572(=)S
  2474. ((int))210 1656 A
  2475. (zone;)210 1908 A
  2476. 2370(/*)S
  2477. (index)210 2496 A
  2478. (should)252 2748 A
  2479. 3042(be)S
  2480. 3168(an)S
  2481. (int)126 3294 A
  2482. 3462(*/)S
  2483. 2520 V
  2484. (23713)210 648 A
  2485. 1362(z)S
  2486. 1446(=)S
  2487. (rip->i_zone[zind];)756 1530 A
  2488. 2610 V
  2489. (23714)210 648 A
  2490. 1362(if)S
  2491. 1488((z)S
  2492. 1614(==)S
  2493. (NO_ZONE))336 1740 A
  2494. (return(NO_BLOCK);)714 2118 A
  2495. 2700 V
  2496. (23715)210 648 A
  2497. 1362(b)S
  2498. 1446(=)S
  2499. (((block_t))420 1530 A
  2500. 1992(z)S
  2501. 2076(<<)S
  2502. (scale))252 2202 A
  2503. 2496(+)S
  2504. (boff;)210 2580 A
  2505. 2790 V
  2506. (23716)210 648 A
  2507. (return(b);)420 1362 A
  2508. 2880 V
  2509. (23717)210 648 A
  2510. 1110(})S
  2511. 2970 V
  2512. (23718)210 648 A
  2513. 3060 V
  2514. (23719)210 648 A
  2515. 1110(/*)S
  2516. 1236(It)S
  2517. 1362(is)S
  2518. (not)126 1488 A
  2519. 1656(in)S
  2520. (the)126 1782 A
  2521. (inode,)252 1950 A
  2522. 2244(so)S
  2523. 2370(it)S
  2524. (must)168 2496 A
  2525. 2706(be)S
  2526. (single)252 2832 A
  2527. 3126(or)S
  2528. (double)252 3252 A
  2529. (indirect.)378 3546 A
  2530. 3966(*/)S
  2531. 3150 V
  2532. (23720)210 648 A
  2533. (excess)252 1110 A
  2534. 1404(=)S
  2535. (zone)168 1488 A
  2536. 1698(-)S
  2537. (dzones;)294 1782 A
  2538. 2370(/*)S
  2539. (first)210 2496 A
  2540. (Vx_NR_DZONES)504 2748 A
  2541. (don't)210 3294 A
  2542. (count)210 3546 A
  2543. 3798(*/)S
  2544. 3240 V
  2545. (23721)210 648 A
  2546. 3330 V
  2547. (23722)210 648 A
  2548. 1110(if)S
  2549. ((excess)294 1236 A
  2550. 1572(<)S
  2551. (nr_indirects))546 1656 A
  2552. 2244({)S
  2553. 3420 V
  2554. (23723)210 648 A
  2555. 1362(/*)S
  2556. ('position')420 1488 A
  2557. (can)126 1950 A
  2558. 2118(be)S
  2559. (located)294 2244 A
  2560. (via)126 2580 A
  2561. (the)126 2748 A
  2562. (single)252 2916 A
  2563. (indirect)336 3210 A
  2564. (block.)252 3588 A
  2565. 3882(*/)S
  2566. 3510 V
  2567. (23724)210 648 A
  2568. 1362(z)S
  2569. 1446(=)S
  2570. (rip->i_zone[dzones];)840 1530 A
  2571. 3600 V
  2572. (23725)210 648 A
  2573. 1110(})S
  2574. (else)168 1194 A
  2575. 1404({)S
  2576. 3690 V
  2577. (23726)210 648 A
  2578. 1362(/*)S
  2579. ('position')420 1488 A
  2580. (can)126 1950 A
  2581. 2118(be)S
  2582. (located)294 2244 A
  2583. (via)126 2580 A
  2584. (the)126 2748 A
  2585. (double)252 2916 A
  2586. (indirect)336 3210 A
  2587. (block.)252 3588 A
  2588. 3882(*/)S
  2589. 3780 V
  2590. (23727)210 648 A
  2591. 1362(if)S
  2592. 1488(()S
  2593. 1572((z)S
  2594. 1698(=)S
  2595. (rip->i_zone[dzones+1]))924 1782 A
  2596. 2748(==)S
  2597. (NO_ZONE))336 2874 A
  2598. (return(NO_BLOCK);)714 3252 A
  2599. 3870 V
  2600. (23728)210 648 A
  2601. (excess)252 1362 A
  2602. 1656(-=)S
  2603. (nr_indirects;)546 1782 A
  2604. 3042(/*)S
  2605. (single)252 3168 A
  2606. (indir)210 3462 A
  2607. (doesn't)294 3714 A
  2608. (count*/)294 4050 A
  2609. 3960 V
  2610. (23729)210 648 A
  2611. 1362(b)S
  2612. 1446(=)S
  2613. ((block_t))378 1530 A
  2614. 1950(z)S
  2615. 2034(<<)S
  2616. (scale;)252 2160 A
  2617. 4050 V
  2618. (23730)210 648 A
  2619. 1362(bp)S
  2620. 1488(=)S
  2621. (get_block(rip->i_dev,)882 1572 A
  2622. 2496(b,)S
  2623. (NORMAL);)336 2622 A
  2624. 3042(/*)S
  2625. (get)126 3168 A
  2626. (double)252 3336 A
  2627. (indirect)336 3630 A
  2628. (block)210 4008 A
  2629. 4260(*/)S
  2630. 4140 V
  2631. (23731)210 648 A
  2632. (index)210 1362 A
  2633. 1614(=)S
  2634. ((int))210 1698 A
  2635. ((excess/nr_indirects);)924 1950 A
  2636. 4230 V
  2637. (23732)210 648 A
  2638. 1362(z)S
  2639. 1446(=)S
  2640. (rd_indir(bp,)504 1530 A
  2641. (index);)294 2076 A
  2642. 3042(/*)S
  2643. 3168(z=)S
  2644. (zone)168 3294 A
  2645. (for)126 3504 A
  2646. (single*/)336 3672 A
  2647. 4320 V
  2648. (23733)210 648 A
  2649. (put_block(bp,)546 1362 A
  2650. (INDIRECT_BLOCK);)672 1950 A
  2651. 3042(/*)S
  2652. (release)294 3168 A
  2653. (double)252 3504 A
  2654. (ind)126 3798 A
  2655. (block)210 3966 A
  2656. 4218(*/)S
  2657. 4410 V
  2658. (23734)210 648 A
  2659. (excess)252 1362 A
  2660. 1656(=)S
  2661. (excess)252 1740 A
  2662. 2034(%)S
  2663. (nr_indirects;)546 2118 A
  2664. 3042(/*)S
  2665. (index)210 3168 A
  2666. (into)168 3420 A
  2667. (single)252 3630 A
  2668. (ind)126 3924 A
  2669. (blk)126 4092 A
  2670. 4260(*/)S
  2671. 4500 V
  2672. (23735)210 648 A
  2673. 1110(})S
  2674. 4590 V
  2675. (23736)210 648 A
  2676. 4680 V
  2677. (23737)210 648 A
  2678. 1110(/*)S
  2679. ('z')126 1236 A
  2680. 1404(is)S
  2681. (zone)168 1530 A
  2682. (num)126 1740 A
  2683. (for)126 1908 A
  2684. (single)252 2076 A
  2685. (indirect)336 2370 A
  2686. (block;)252 2748 A
  2687. ('excess')336 3042 A
  2688. 3420(is)S
  2689. (index)210 3546 A
  2690. (into)168 3798 A
  2691. (it.)126 4008 A
  2692. 4176(*/)S
  2693. 4770 V
  2694. (23738)210 648 A
  2695. 1110(if)S
  2696. 1236((z)S
  2697. 1362(==)S
  2698. (NO_ZONE))336 1488 A
  2699. (return(NO_BLOCK);)714 1866 A
  2700. 4860 V
  2701. (23739)210 648 A
  2702. 1110(b)S
  2703. 1194(=)S
  2704. ((block_t))378 1278 A
  2705. 1698(z)S
  2706. 1782(<<)S
  2707. (scale;)252 1908 A
  2708. 3042(/*)S
  2709. 3168(b)S
  2710. 3252(is)S
  2711. (blk)126 3378 A
  2712. 3546(#)S
  2713. (for)126 3630 A
  2714. (single)252 3798 A
  2715. (ind)126 4092 A
  2716. 4260(*/)S
  2717. 4950 V
  2718. (23740)210 648 A
  2719. 1110(bp)S
  2720. 1236(=)S
  2721. (get_block(rip->i_dev,)882 1320 A
  2722. 2244(b,)S
  2723. (NORMAL);)336 2370 A
  2724. 3042(/*)S
  2725. (get)126 3168 A
  2726. (single)252 3336 A
  2727. (indirect)336 3630 A
  2728. (block)210 4008 A
  2729. 4260(*/)S
  2730. 5040 V
  2731. (23741)210 648 A
  2732. 1110(ex)S
  2733. 1236(=)S
  2734. ((int))210 1320 A
  2735. (excess;)294 1572 A
  2736. 3042(/*)S
  2737. (need)168 3168 A
  2738. 3378(an)S
  2739. (integer)294 3504 A
  2740. 3840(*/)S
  2741. 5130 V
  2742. (23742)210 648 A
  2743. 1110(z)S
  2744. 1194(=)S
  2745. (rd_indir(bp,)504 1278 A
  2746. (ex);)168 1824 A
  2747. 3042(/*)S
  2748. (get)126 3168 A
  2749. (block)210 3336 A
  2750. (pointed)294 3588 A
  2751. 3924(to)S
  2752. 4050(*/)S
  2753. 5220 V
  2754. (23743)210 648 A
  2755. (put_block(bp,)546 1110 A
  2756. (INDIRECT_BLOCK);)672 1698 A
  2757. 3042(/*)S
  2758. (release)294 3168 A
  2759. (single)252 3504 A
  2760. (indir)210 3798 A
  2761. (blk)126 4050 A
  2762. 4218(*/)S
  2763. 5310 V
  2764. (23744)210 648 A
  2765. 1110(if)S
  2766. 1236((z)S
  2767. 1362(==)S
  2768. (NO_ZONE))336 1488 A
  2769. (return(NO_BLOCK);)714 1866 A
  2770. 5400 V
  2771. (23745)210 648 A
  2772. 1110(b)S
  2773. 1194(=)S
  2774. (((block_t))420 1278 A
  2775. 1740(z)S
  2776. 1824(<<)S
  2777. (scale))252 1950 A
  2778. 2244(+)S
  2779. (boff;)210 2328 A
  2780. 5490 V
  2781. (23746)210 648 A
  2782. (return(b);)420 1110 A
  2783. 5580 V
  2784. (23747)210 648 A
  2785. 1026(})S
  2786. 5850 V
  2787. (23750)210 648 A
  2788. (/*===========================================================================*)3276 1026 A
  2789. 5940 V
  2790. (23751)210 648 A
  2791. 1068(*)S
  2792. (rd_indir)336 2370 A
  2793. 4260(*)S
  2794. 6030 V
  2795. (23752)210 648 A
  2796. (*===========================================================================*/)3276 1068 A
  2797. 6120 V
  2798. (23753)210 648 A
  2799. (PUBLIC)252 1026 A
  2800. (zone_t)252 1320 A
  2801. (rd_indir(bp,)504 1614 A
  2802. (index))252 2160 A
  2803. 6210 V
  2804. (23754)210 648 A
  2805. (struct)252 1026 A
  2806. (buf)126 1320 A
  2807. (*bp;)168 1488 A
  2808. 2370(/*)S
  2809. (pointer)294 2496 A
  2810. 2832(to)S
  2811. (indirect)336 2958 A
  2812. (block)210 3336 A
  2813. 3588(*/)S
  2814. 8418 V
  2815. EP
  2816. %%Page: 327 327
  2817. BP
  2818. /slant 0 def
  2819. /height 0 def
  2820. 630 V
  2821. 10 R
  2822. 648(MINIX)S
  2823. 976(SOURCE)S
  2824. 1399(CODE)S
  2825. 11 R
  2826. 2150(File:)S
  2827. 2383(src/fs/read.c)S
  2828. 12 B
  2829. (327)180 4248 A
  2830. 900 V
  2831. 7 LST
  2832. (23755)210 648 A
  2833. (int)126 1026 A
  2834. (index;)252 1194 A
  2835. 2370(/*)S
  2836. (index)210 2496 A
  2837. (into)168 2748 A
  2838. (*bp)126 2958 A
  2839. 3126(*/)S
  2840. 990 V
  2841. (23756)210 648 A
  2842. 1026({)S
  2843. 1080 V
  2844. (23757)210 648 A
  2845. 1026(/*)S
  2846. (Given)210 1152 A
  2847. 1404(a)S
  2848. (pointer)294 1488 A
  2849. 1824(to)S
  2850. 1950(an)S
  2851. (indirect)336 2076 A
  2852. (block,)252 2454 A
  2853. (read)168 2748 A
  2854. (one)126 2958 A
  2855. (entry.)252 3126 A
  2856. (The)126 3462 A
  2857. (reason)252 3630 A
  2858. (for)126 3924 A
  2859. 1170 V
  2860. (23758)210 648 A
  2861. 1068(*)S
  2862. (making)252 1152 A
  2863. 1446(a)S
  2864. (separate)336 1530 A
  2865. (routine)294 1908 A
  2866. (out)126 2244 A
  2867. 2412(of)S
  2868. (this)168 2538 A
  2869. 2748(is)S
  2870. (that)168 2874 A
  2871. (there)210 3084 A
  2872. (are)126 3336 A
  2873. (four)168 3504 A
  2874. (cases:)252 3714 A
  2875. 1260 V
  2876. (23759)210 648 A
  2877. 1068(*)S
  2878. 1152(V1)S
  2879. ((IBM)168 1278 A
  2880. (and)126 1488 A
  2881. (68000),)294 1656 A
  2882. (and)126 1992 A
  2883. 2160(V2)S
  2884. ((IBM)168 2286 A
  2885. (and)126 2496 A
  2886. (68000).)294 2664 A
  2887. 1350 V
  2888. (23760)210 648 A
  2889. 1068(*/)S
  2890. 1440 V
  2891. (23761)210 648 A
  2892. 1530 V
  2893. (23762)210 648 A
  2894. (struct)252 1110 A
  2895. (super_block)462 1404 A
  2896. (*sp;)168 1908 A
  2897. 1620 V
  2898. (23763)210 648 A
  2899. (zone_t)252 1110 A
  2900. (zone;)210 1404 A
  2901. 2370(/*)S
  2902. 2496(V2)S
  2903. (zones)210 2622 A
  2904. (are)126 2874 A
  2905. (longs)210 3042 A
  2906. ((shorts)294 3294 A
  2907. 3630(in)S
  2908. (V1))126 3756 A
  2909. 3924(*/)S
  2910. 1710 V
  2911. (23764)210 648 A
  2912. 1800 V
  2913. (23765)210 648 A
  2914. 1110(sp)S
  2915. 1236(=)S
  2916. (get_super(bp->b_dev);)882 1320 A
  2917. 2370(/*)S
  2918. (need)168 2496 A
  2919. (super)210 2706 A
  2920. (block)210 2958 A
  2921. 3210(to)S
  2922. (find)168 3336 A
  2923. (file)168 3546 A
  2924. (sys)126 3756 A
  2925. (type)168 3924 A
  2926. 4134(*/)S
  2927. 1890 V
  2928. (23766)210 648 A
  2929. 1980 V
  2930. (23767)210 648 A
  2931. 1110(/*)S
  2932. (read)168 1236 A
  2933. 1446(a)S
  2934. (zone)168 1530 A
  2935. (from)168 1740 A
  2936. 1950(an)S
  2937. (indirect)336 2076 A
  2938. (block)210 2454 A
  2939. 2706(*/)S
  2940. 2070 V
  2941. (23768)210 648 A
  2942. 1110(if)S
  2943. ((sp->s_version)588 1236 A
  2944. 1866(==)S
  2945. (V1))126 1992 A
  2946. 2160 V
  2947. (23769)210 648 A
  2948. (zone)168 1362 A
  2949. 1572(=)S
  2950. ((zone_t))336 1656 A
  2951. (conv2(sp->s_native,)798 2034 A
  2952. ((int))210 2874 A
  2953. (bp->b_v1_ind[index]);)882 3168 A
  2954. 2250 V
  2955. (23770)210 648 A
  2956. (else)168 1110 A
  2957. 2340 V
  2958. (23771)210 648 A
  2959. (zone)168 1362 A
  2960. 1572(=)S
  2961. ((zone_t))336 1656 A
  2962. (conv4(sp->s_native,)798 2034 A
  2963. ((long))252 2874 A
  2964. (bp->b_v2_ind[index]);)882 3168 A
  2965. 2430 V
  2966. (23772)210 648 A
  2967. 2520 V
  2968. (23773)210 648 A
  2969. 1110(if)S
  2970. ((zone)210 1236 A
  2971. 1488(!=)S
  2972. (NO_ZONE)294 1614 A
  2973. 1950(&&)S
  2974. 2610 V
  2975. (23774)210 648 A
  2976. ((zone)210 1698 A
  2977. 1950(<)S
  2978. ((zone_t))336 2034 A
  2979. (sp->s_firstdatazone)798 2412 A
  2980. 3252(||)S
  2981. (zone)168 3378 A
  2982. 3588(>=)S
  2983. (sp->s_zones)))546 3714 A
  2984. 4302({)S
  2985. 2700 V
  2986. (23775)210 648 A
  2987. (printf("Illegal)630 1362 A
  2988. (zone)168 2034 A
  2989. (number)252 2244 A
  2990. (%ld)126 2538 A
  2991. 2706(in)S
  2992. (indirect)336 2832 A
  2993. (block,)252 3210 A
  2994. (index)210 3504 A
  2995. (%d\n",)252 3756 A
  2996. 2790 V
  2997. (23776)210 648 A
  2998. ((long))252 1656 A
  2999. (zone,)210 1950 A
  3000. (index);)294 2202 A
  3001. 2880 V
  3002. (23777)210 648 A
  3003. (panic("check)504 1362 A
  3004. (file)168 1908 A
  3005. (system",)336 2118 A
  3006. (NO_NUM);)336 2496 A
  3007. 2970 V
  3008. (23778)210 648 A
  3009. 1110(})S
  3010. 3060 V
  3011. (23779)210 648 A
  3012. (return(zone);)546 1110 A
  3013. 3150 V
  3014. (23780)210 648 A
  3015. 1026(})S
  3016. 3420 V
  3017. (23783)210 648 A
  3018. (/*===========================================================================*)3276 1026 A
  3019. 3510 V
  3020. (23784)210 648 A
  3021. 1068(*)S
  3022. (read_ahead)420 2370 A
  3023. 4260(*)S
  3024. 3600 V
  3025. (23785)210 648 A
  3026. (*===========================================================================*/)3276 1068 A
  3027. 3690 V
  3028. (23786)210 648 A
  3029. (PUBLIC)252 1026 A
  3030. (void)168 1320 A
  3031. (read_ahead())504 1530 A
  3032. 3780 V
  3033. (23787)210 648 A
  3034. 1026({)S
  3035. 3870 V
  3036. (23788)210 648 A
  3037. 1026(/*)S
  3038. (Read)168 1152 A
  3039. 1362(a)S
  3040. (block)210 1446 A
  3041. (into)168 1698 A
  3042. (the)126 1908 A
  3043. (cache)210 2076 A
  3044. (before)252 2328 A
  3045. 2622(it)S
  3046. 2748(is)S
  3047. (needed.)294 2874 A
  3048. 3210(*/)S
  3049. 3960 V
  3050. (23789)210 648 A
  3051. 4050 V
  3052. (23790)210 648 A
  3053. (register)336 1110 A
  3054. (struct)252 1488 A
  3055. (inode)210 1782 A
  3056. (*rip;)210 2034 A
  3057. 4140 V
  3058. (23791)210 648 A
  3059. (struct)252 1110 A
  3060. (buf)126 1404 A
  3061. (*bp;)168 1572 A
  3062. 4230 V
  3063. (23792)210 648 A
  3064. (block_t)294 1110 A
  3065. 1446(b;)S
  3066. 4320 V
  3067. (23793)210 648 A
  3068. 4410 V
  3069. (23794)210 648 A
  3070. (rip)126 1110 A
  3071. 1278(=)S
  3072. (rdahed_inode;)546 1362 A
  3073. 2370(/*)S
  3074. (pointer)294 2496 A
  3075. 2832(to)S
  3076. (inode)210 2958 A
  3077. 3210(to)S
  3078. (read)168 3336 A
  3079. (ahead)210 3546 A
  3080. (from)168 3798 A
  3081. 4008(*/)S
  3082. 4500 V
  3083. (23795)210 648 A
  3084. (rdahed_inode)504 1110 A
  3085. 1656(=)S
  3086. (NIL_INODE;)420 1740 A
  3087. 2370(/*)S
  3088. (turn)168 2496 A
  3089. (off)126 2706 A
  3090. (read)168 2874 A
  3091. (ahead)210 3084 A
  3092. 3336(*/)S
  3093. 4590 V
  3094. (23796)210 648 A
  3095. 1110(if)S
  3096. 1236(()S
  3097. 1320((b)S
  3098. 1446(=)S
  3099. (read_map(rip,)546 1530 A
  3100. (rdahedpos)))462 2118 A
  3101. 2622(==)S
  3102. (NO_BLOCK))378 2748 A
  3103. (return;)294 3168 A
  3104. 3714(/*)S
  3105. 3840(at)S
  3106. (EOF)126 3966 A
  3107. 4134(*/)S
  3108. 4680 V
  3109. (23797)210 648 A
  3110. 1110(bp)S
  3111. 1236(=)S
  3112. (rahead(rip,)462 1320 A
  3113. 1824(b,)S
  3114. (rdahedpos,)420 1950 A
  3115. (BLOCK_SIZE);)504 2412 A
  3116. 4770 V
  3117. (23798)210 648 A
  3118. (put_block(bp,)546 1110 A
  3119. (PARTIAL_DATA_BLOCK);)840 1698 A
  3120. 4860 V
  3121. (23799)210 648 A
  3122. 1026(})S
  3123. 5130 V
  3124. (23802)210 648 A
  3125. (/*===========================================================================*)3276 1026 A
  3126. 5220 V
  3127. (23803)210 648 A
  3128. 1068(*)S
  3129. (rahead)252 2370 A
  3130. 4260(*)S
  3131. 5310 V
  3132. (23804)210 648 A
  3133. (*===========================================================================*/)3276 1068 A
  3134. 5400 V
  3135. (23805)210 648 A
  3136. (PUBLIC)252 1026 A
  3137. (struct)252 1320 A
  3138. (buf)126 1614 A
  3139. (*rahead(rip,)504 1782 A
  3140. (baseblock,)420 2328 A
  3141. (position,)378 2790 A
  3142. (bytes_ahead))504 3210 A
  3143. 5490 V
  3144. (23806)210 648 A
  3145. (register)336 1026 A
  3146. (struct)252 1404 A
  3147. (inode)210 1698 A
  3148. (*rip;)210 1950 A
  3149. 2370(/*)S
  3150. (pointer)294 2496 A
  3151. 2832(to)S
  3152. (inode)210 2958 A
  3153. (for)126 3210 A
  3154. (file)168 3378 A
  3155. 3588(to)S
  3156. 3714(be)S
  3157. (read)168 3840 A
  3158. 4050(*/)S
  3159. 5580 V
  3160. (23807)210 648 A
  3161. (block_t)294 1026 A
  3162. (baseblock;)420 1362 A
  3163. 2370(/*)S
  3164. (block)210 2496 A
  3165. 2748(at)S
  3166. (current)294 2874 A
  3167. (position)336 3210 A
  3168. 3588(*/)S
  3169. 5670 V
  3170. (23808)210 648 A
  3171. (off_t)210 1026 A
  3172. (position;)378 1278 A
  3173. 2370(/*)S
  3174. (position)336 2496 A
  3175. (within)252 2874 A
  3176. (file)168 3168 A
  3177. 3378(*/)S
  3178. 5760 V
  3179. (23809)210 648 A
  3180. (unsigned)336 1026 A
  3181. (bytes_ahead;)504 1404 A
  3182. 2370(/*)S
  3183. (bytes)210 2496 A
  3184. (beyond)252 2748 A
  3185. (position)336 3042 A
  3186. (for)126 3420 A
  3187. (immediate)378 3588 A
  3188. (use)126 4008 A
  3189. 4176(*/)S
  3190. 5850 V
  3191. (23810)210 648 A
  3192. 1026({)S
  3193. 5940 V
  3194. (23811)210 648 A
  3195. 1026(/*)S
  3196. (Fetch)210 1152 A
  3197. 1404(a)S
  3198. (block)210 1488 A
  3199. (from)168 1740 A
  3200. (the)126 1950 A
  3201. (cache)210 2118 A
  3202. 2370(or)S
  3203. (the)126 2496 A
  3204. (device.)294 2664 A
  3205. 3042(If)S
  3206. 3168(a)S
  3207. (physical)336 3252 A
  3208. (read)168 3630 A
  3209. 3840(is)S
  3210. 6030 V
  3211. (23812)210 648 A
  3212. 1068(*)S
  3213. (required,)378 1152 A
  3214. (prefetch)336 1572 A
  3215. 1950(as)S
  3216. (many)168 2076 A
  3217. (more)168 2286 A
  3218. (blocks)252 2496 A
  3219. 2790(as)S
  3220. (convenient)420 2916 A
  3221. (into)168 3378 A
  3222. (the)126 3588 A
  3223. (cache.)252 3756 A
  3224. 6120 V
  3225. (23813)210 648 A
  3226. 1068(*)S
  3227. (This)168 1152 A
  3228. (usually)294 1362 A
  3229. (covers)252 1698 A
  3230. (bytes_ahead)462 1992 A
  3231. (and)126 2496 A
  3232. 2664(is)S
  3233. 2790(at)S
  3234. (least)210 2916 A
  3235. (BLOCKS_MINIMUM.)630 3168 A
  3236. 6210 V
  3237. (23814)210 648 A
  3238. 1068(*)S
  3239. (The)126 1152 A
  3240. (device)252 1320 A
  3241. (driver)252 1614 A
  3242. (may)126 1908 A
  3243. (decide)252 2076 A
  3244. 2370(it)S
  3245. (knows)210 2496 A
  3246. (better)252 2748 A
  3247. (and)126 3042 A
  3248. (stop)168 3210 A
  3249. (reading)294 3420 A
  3250. 3756(at)S
  3251. 3882(a)S
  3252. 8418 V
  3253. EP
  3254. %%Page: 328 328
  3255. BP
  3256. /slant 0 def
  3257. /height 0 def
  3258. 630 V
  3259. 12 B
  3260. (328)180 648 A
  3261. 11 R
  3262. 2150(File:)S
  3263. 2383(src/fs/read.c)S
  3264. 10 R
  3265. 3402(MINIX)S
  3266. 3730(SOURCE)S
  3267. 4153(CODE)S
  3268. 900 V
  3269. 7 LST
  3270. (23815)210 648 A
  3271. 1068(*)S
  3272. (cylinder)336 1152 A
  3273. (boundary)336 1530 A
  3274. ((or)126 1908 A
  3275. (after)210 2076 A
  3276. 2328(an)S
  3277. (error).)294 2454 A
  3278. (Rw_scattered())588 2832 A
  3279. (puts)168 3462 A
  3280. 3672(an)S
  3281. (optional)336 3798 A
  3282. 990 V
  3283. (23816)210 648 A
  3284. 1068(*)S
  3285. (flag)168 1152 A
  3286. 1362(on)S
  3287. (all)126 1488 A
  3288. (reads)210 1656 A
  3289. 1908(to)S
  3290. (allow)210 2034 A
  3291. (this.)210 2286 A
  3292. 1080 V
  3293. (23817)210 648 A
  3294. 1068(*/)S
  3295. 1170 V
  3296. (23818)210 648 A
  3297. 1260 V
  3298. (23819)210 648 A
  3299. 1026(/*)S
  3300. (Minimum)294 1152 A
  3301. (number)252 1488 A
  3302. 1782(of)S
  3303. (blocks)252 1908 A
  3304. 2202(to)S
  3305. (prefetch.)378 2328 A
  3306. 2748(*/)S
  3307. 1350 V
  3308. (23820)210 648 A
  3309. 1026(#)S
  3310. (define)252 1110 A
  3311. (BLOCKS_MINIMUM)588 1404 A
  3312. ((NR_BUFS)336 2370 A
  3313. 2748(<)S
  3314. 2832(50)S
  3315. 2958(?)S
  3316. 3042(18)S
  3317. 3168(:)S
  3318. (32))126 3252 A
  3319. 1440 V
  3320. (23821)210 648 A
  3321. 1530 V
  3322. (23822)210 648 A
  3323. (int)126 1110 A
  3324. (block_spec,)462 1278 A
  3325. (scale,)252 1782 A
  3326. (read_q_size;)504 2076 A
  3327. 1620 V
  3328. (23823)210 648 A
  3329. (unsigned)336 1110 A
  3330. (int)126 1488 A
  3331. (blocks_ahead,)546 1656 A
  3332. (fragment;)378 2244 A
  3333. 1710 V
  3334. (23824)210 648 A
  3335. (block_t)294 1110 A
  3336. (block,)252 1446 A
  3337. (blocks_left;)504 1740 A
  3338. 1800 V
  3339. (23825)210 648 A
  3340. (off_t)210 1110 A
  3341. (ind1_pos;)378 1362 A
  3342. 1890 V
  3343. (23826)210 648 A
  3344. (dev_t)210 1110 A
  3345. (dev;)168 1362 A
  3346. 1980 V
  3347. (23827)210 648 A
  3348. (struct)252 1110 A
  3349. (buf)126 1404 A
  3350. (*bp;)168 1572 A
  3351. 2070 V
  3352. (23828)210 648 A
  3353. (static)252 1110 A
  3354. (struct)252 1404 A
  3355. (buf)126 1698 A
  3356. (*read_q[NR_BUFS];)714 1866 A
  3357. 2160 V
  3358. (23829)210 648 A
  3359. 2250 V
  3360. (23830)210 648 A
  3361. (block_spec)420 1110 A
  3362. 1572(=)S
  3363. ((rip->i_mode)504 1656 A
  3364. 2202(&)S
  3365. (I_TYPE))294 2286 A
  3366. 2622(==)S
  3367. (I_BLOCK_SPECIAL;)672 2748 A
  3368. 2340 V
  3369. (23831)210 648 A
  3370. 1110(if)S
  3371. ((block_spec))504 1236 A
  3372. 1782({)S
  3373. 2430 V
  3374. (23832)210 648 A
  3375. (dev)126 1362 A
  3376. 1530(=)S
  3377. ((dev_t))294 1614 A
  3378. (rip->i_zone[0];)630 1950 A
  3379. 2520 V
  3380. (23833)210 648 A
  3381. 1110(})S
  3382. (else)168 1194 A
  3383. 1404({)S
  3384. 2610 V
  3385. (23834)210 648 A
  3386. (dev)126 1362 A
  3387. 1530(=)S
  3388. (rip->i_dev;)462 1614 A
  3389. 2700 V
  3390. (23835)210 648 A
  3391. 1110(})S
  3392. 2790 V
  3393. (23836)210 648 A
  3394. 2880 V
  3395. (23837)210 648 A
  3396. (block)210 1110 A
  3397. 1362(=)S
  3398. (baseblock;)420 1446 A
  3399. 2970 V
  3400. (23838)210 648 A
  3401. 1110(bp)S
  3402. 1236(=)S
  3403. (get_block(dev,)588 1320 A
  3404. (block,)252 1950 A
  3405. (PREFETCH);)420 2244 A
  3406. 3060 V
  3407. (23839)210 648 A
  3408. 1110(if)S
  3409. ((bp->b_dev)420 1236 A
  3410. 1698(!=)S
  3411. (NO_DEV))294 1824 A
  3412. (return(bp);)462 2160 A
  3413. 3150 V
  3414. (23840)210 648 A
  3415. 3240 V
  3416. (23841)210 648 A
  3417. 1110(/*)S
  3418. (The)126 1236 A
  3419. (best)168 1404 A
  3420. (guess)210 1614 A
  3421. (for)126 1866 A
  3422. (the)126 2034 A
  3423. (number)252 2202 A
  3424. 2496(of)S
  3425. (blocks)252 2622 A
  3426. 2916(to)S
  3427. (prefetch:)378 3042 A
  3428. 3504(A)S
  3429. (lot.)168 3588 A
  3430. 3330 V
  3431. (23842)210 648 A
  3432. 1152(*)S
  3433. 1236(It)S
  3434. 1362(is)S
  3435. (impossible)420 1488 A
  3436. 1950(to)S
  3437. (tell)168 2076 A
  3438. (what)168 2286 A
  3439. (the)126 2496 A
  3440. (device)252 2664 A
  3441. (looks)210 2958 A
  3442. (like,)210 3210 A
  3443. 3462(so)S
  3444. 3588(we)S
  3445. (don't)210 3714 A
  3446. (even)168 3966 A
  3447. 3420 V
  3448. (23843)210 648 A
  3449. 1152(*)S
  3450. (try)126 1236 A
  3451. 1404(to)S
  3452. (guess)210 1530 A
  3453. (the)126 1782 A
  3454. (geometry,)378 1950 A
  3455. (but)126 2370 A
  3456. (leave)210 2538 A
  3457. 2790(it)S
  3458. 2916(to)S
  3459. (the)126 3042 A
  3460. (driver.)294 3210 A
  3461. 3510 V
  3462. (23844)210 648 A
  3463. 1152(*)S
  3464. 3600 V
  3465. (23845)210 648 A
  3466. 1152(*)S
  3467. (The)126 1236 A
  3468. (floppy)252 1404 A
  3469. (driver)252 1698 A
  3470. (can)126 1992 A
  3471. (read)168 2160 A
  3472. 2370(a)S
  3473. (full)168 2454 A
  3474. (track)210 2664 A
  3475. (with)168 2916 A
  3476. 3126(no)S
  3477. (rotational)420 3252 A
  3478. (delay,)252 3714 A
  3479. (and)126 4008 A
  3480. 4176(it)S
  3481. 3690 V
  3482. (23846)210 648 A
  3483. 1152(*)S
  3484. (avoids)252 1236 A
  3485. (reading)294 1530 A
  3486. (partial)294 1866 A
  3487. (tracks)252 2202 A
  3488. 2496(if)S
  3489. 2622(it)S
  3490. (can,)168 2748 A
  3491. 2958(so)S
  3492. (handing)294 3084 A
  3493. 3420(it)S
  3494. (enough)252 3546 A
  3495. (buffers)294 3840 A
  3496. 4176(to)S
  3497. 3780 V
  3498. (23847)210 648 A
  3499. 1152(*)S
  3500. (read)168 1236 A
  3501. (two)126 1446 A
  3502. (tracks)252 1614 A
  3503. 1908(is)S
  3504. (perfect.)336 2034 A
  3505. ((Two,)210 2454 A
  3506. (because)294 2706 A
  3507. (some)168 3042 A
  3508. (diskette)336 3252 A
  3509. (types)210 3630 A
  3510. (have)168 3882 A
  3511. 3870 V
  3512. (23848)210 648 A
  3513. 1152(*)S
  3514. 1236(an)S
  3515. (odd)126 1362 A
  3516. (number)252 1530 A
  3517. 1824(of)S
  3518. (sectors)294 1950 A
  3519. (per)126 2286 A
  3520. (track,)252 2454 A
  3521. 2748(so)S
  3522. 2874(a)S
  3523. (block)210 2958 A
  3524. (may)126 3210 A
  3525. (span)168 3378 A
  3526. (tracks.))336 3588 A
  3527. 3960 V
  3528. (23849)210 648 A
  3529. 1152(*)S
  3530. 4050 V
  3531. (23850)210 648 A
  3532. 1152(*)S
  3533. (The)126 1236 A
  3534. (disk)168 1404 A
  3535. (drivers)294 1614 A
  3536. (don't)210 1950 A
  3537. (try)126 2202 A
  3538. 2370(to)S
  3539. 2496(be)S
  3540. (smart.)252 2622 A
  3541. (With)168 2958 A
  3542. (todays)252 3168 A
  3543. (disks)210 3462 A
  3544. 3714(it)S
  3545. 3840(is)S
  3546. 4140 V
  3547. (23851)210 648 A
  3548. 1152(*)S
  3549. (impossible)420 1236 A
  3550. 1698(to)S
  3551. (tell)168 1824 A
  3552. (what)168 2034 A
  3553. (the)126 2244 A
  3554. (real)168 2412 A
  3555. (geometry)336 2622 A
  3556. (looks)210 3000 A
  3557. (like,)210 3252 A
  3558. 3504(so)S
  3559. 3630(it)S
  3560. 3756(is)S
  3561. (best)168 3882 A
  3562. 4092(to)S
  3563. 4230 V
  3564. (23852)210 648 A
  3565. 1152(*)S
  3566. (read)168 1236 A
  3567. 1446(as)S
  3568. (much)168 1572 A
  3569. 1782(as)S
  3570. (you)126 1908 A
  3571. (can.)168 2076 A
  3572. (With)168 2328 A
  3573. (luck)168 2538 A
  3574. (the)126 2748 A
  3575. (caching)294 2916 A
  3576. 3252(on)S
  3577. (the)126 3378 A
  3578. (drive)210 3546 A
  3579. (allows)252 3798 A
  3580. 4320 V
  3581. (23853)210 648 A
  3582. 1152(*)S
  3583. (for)126 1236 A
  3584. 1404(a)S
  3585. (little)252 1488 A
  3586. (time)168 1782 A
  3587. 1992(to)S
  3588. (start)210 2118 A
  3589. (the)126 2370 A
  3590. (next)168 2538 A
  3591. (read.)210 2748 A
  3592. 4410 V
  3593. (23854)210 648 A
  3594. 1152(*)S
  3595. 4500 V
  3596. (23855)210 648 A
  3597. 1152(*)S
  3598. (The)126 1236 A
  3599. (current)294 1404 A
  3600. (solution)336 1740 A
  3601. (below)210 2118 A
  3602. 2370(is)S
  3603. 2496(a)S
  3604. (bit)126 2580 A
  3605. 2748(of)S
  3606. 2874(a)S
  3607. (hack,)210 2958 A
  3608. 3210(it)S
  3609. (just)168 3336 A
  3610. (reads)210 3546 A
  3611. (blocks)252 3798 A
  3612. (from)168 4092 A
  3613. 4590 V
  3614. (23856)210 648 A
  3615. 1152(*)S
  3616. (the)126 1236 A
  3617. (current)294 1404 A
  3618. (file)168 1740 A
  3619. (position)336 1950 A
  3620. (hoping)252 2328 A
  3621. (that)168 2622 A
  3622. (more)168 2832 A
  3623. 3042(of)S
  3624. (the)126 3168 A
  3625. (file)168 3336 A
  3626. (can)126 3546 A
  3627. 3714(be)S
  3628. (found.)252 3840 A
  3629. 4176(A)S
  3630. 4680 V
  3631. (23857)210 648 A
  3632. 1152(*)S
  3633. (better)252 1236 A
  3634. (solution)336 1530 A
  3635. (must)168 1908 A
  3636. (look)168 2118 A
  3637. 2328(at)S
  3638. (the)126 2454 A
  3639. (already)294 2622 A
  3640. (available)378 2958 A
  3641. (zone)168 3378 A
  3642. (pointers)336 3588 A
  3643. (and)126 3966 A
  3644. 4770 V
  3645. (23858)210 648 A
  3646. 1152(*)S
  3647. (indirect)336 1236 A
  3648. (blocks)252 1614 A
  3649. ((but)168 1908 A
  3650. (don't)210 2118 A
  3651. (call)168 2370 A
  3652. (read_map!).)462 2580 A
  3653. 4860 V
  3654. (23859)210 648 A
  3655. 1152(*/)S
  3656. 4950 V
  3657. (23860)210 648 A
  3658. 5040 V
  3659. (23861)210 648 A
  3660. (fragment)336 1110 A
  3661. 1488(=)S
  3662. (position)336 1572 A
  3663. 1950(%)S
  3664. (BLOCK_SIZE;)462 2034 A
  3665. 5130 V
  3666. (23862)210 648 A
  3667. (position)336 1110 A
  3668. 1488(-=)S
  3669. (fragment;)378 1614 A
  3670. 5220 V
  3671. (23863)210 648 A
  3672. (bytes_ahead)462 1110 A
  3673. 1614(+=)S
  3674. (fragment;)378 1740 A
  3675. 5310 V
  3676. (23864)210 648 A
  3677. 5400 V
  3678. (23865)210 648 A
  3679. (blocks_ahead)504 1110 A
  3680. 1656(=)S
  3681. ((bytes_ahead)504 1740 A
  3682. 2286(+)S
  3683. (BLOCK_SIZE)420 2370 A
  3684. 2832(-)S
  3685. 2916(1))S
  3686. 3042(/)S
  3687. (BLOCK_SIZE;)462 3126 A
  3688. 5490 V
  3689. (23866)210 648 A
  3690. 5580 V
  3691. (23867)210 648 A
  3692. 1110(if)S
  3693. ((block_spec)462 1236 A
  3694. 1740(&&)S
  3695. (rip->i_size)462 1866 A
  3696. 2370(==)S
  3697. 2496(0))S
  3698. 2622({)S
  3699. 5670 V
  3700. (23868)210 648 A
  3701. (blocks_left)462 1362 A
  3702. 1866(=)S
  3703. (NR_IOREQS;)420 1950 A
  3704. 5760 V
  3705. (23869)210 648 A
  3706. 1110(})S
  3707. (else)168 1194 A
  3708. 1404({)S
  3709. 5850 V
  3710. (23870)210 648 A
  3711. (blocks_left)462 1362 A
  3712. 1866(=)S
  3713. ((rip->i_size)504 1950 A
  3714. 2496(-)S
  3715. (position)336 2580 A
  3716. 2958(+)S
  3717. (BLOCK_SIZE)420 3042 A
  3718. 3504(-)S
  3719. 3588(1))S
  3720. 3714(/)S
  3721. (BLOCK_SIZE;)462 3798 A
  3722. 5940 V
  3723. (23871)210 648 A
  3724. 6030 V
  3725. (23872)210 648 A
  3726. 1362(/*)S
  3727. 1488(Go)S
  3728. (for)126 1614 A
  3729. (the)126 1782 A
  3730. (first)210 1950 A
  3731. (indirect)336 2202 A
  3732. (block)210 2580 A
  3733. 2832(if)S
  3734. 2958(we)S
  3735. (are)126 3084 A
  3736. 3252(in)S
  3737. (its)126 3378 A
  3738. (neighborhood.)546 3546 A
  3739. 4134(*/)S
  3740. 6120 V
  3741. (23873)210 648 A
  3742. 1362(if)S
  3743. ((!block_spec))546 1488 A
  3744. 2076({)S
  3745. 6210 V
  3746. (23874)210 648 A
  3747. (scale)210 1698 A
  3748. 1950(=)S
  3749. (rip->i_sp->s_log_zone_size;)1134 2034 A
  3750. 8418 V
  3751. EP
  3752. %%Page: 329 329
  3753. BP
  3754. /slant 0 def
  3755. /height 0 def
  3756. 630 V
  3757. 10 R
  3758. 648(MINIX)S
  3759. 976(SOURCE)S
  3760. 1399(CODE)S
  3761. 11 R
  3762. 2150(File:)S
  3763. 2383(src/fs/read.c)S
  3764. 12 B
  3765. (329)180 4248 A
  3766. 900 V
  3767. 7 LST
  3768. (23875)210 648 A
  3769. (ind1_pos)336 1698 A
  3770. 2076(=)S
  3771. ((off_t))294 2160 A
  3772. (rip->i_ndzones)588 2496 A
  3773. 3126(*)S
  3774. ((BLOCK_SIZE)462 3210 A
  3775. 3714(<<)S
  3776. (scale);)294 3840 A
  3777. 990 V
  3778. (23876)210 648 A
  3779. 1698(if)S
  3780. ((position)378 1824 A
  3781. 2244(<=)S
  3782. (ind1_pos)336 2370 A
  3783. 2748(&&)S
  3784. (rip->i_size)462 2874 A
  3785. 3378(>)S
  3786. (ind1_pos))378 3462 A
  3787. 3882({)S
  3788. 1080 V
  3789. (23877)210 648 A
  3790. (blocks_ahead++;)630 2034 A
  3791. 1170 V
  3792. (23878)210 648 A
  3793. (blocks_left++;)588 2034 A
  3794. 1260 V
  3795. (23879)210 648 A
  3796. 1698(})S
  3797. 1350 V
  3798. (23880)210 648 A
  3799. 1362(})S
  3800. 1440 V
  3801. (23881)210 648 A
  3802. 1110(})S
  3803. 1530 V
  3804. (23882)210 648 A
  3805. 1620 V
  3806. (23883)210 648 A
  3807. 1110(/*)S
  3808. 1236(No)S
  3809. (more)168 1362 A
  3810. (than)168 1572 A
  3811. (the)126 1782 A
  3812. (maximum)294 1950 A
  3813. (request.)336 2286 A
  3814. 2664(*/)S
  3815. 1710 V
  3816. (23884)210 648 A
  3817. 1110(if)S
  3818. ((blocks_ahead)546 1236 A
  3819. 1824(>)S
  3820. (NR_IOREQS))420 1908 A
  3821. (blocks_ahead)504 2370 A
  3822. 2916(=)S
  3823. (NR_IOREQS;)420 3000 A
  3824. 1800 V
  3825. (23885)210 648 A
  3826. 1890 V
  3827. (23886)210 648 A
  3828. 1110(/*)S
  3829. (Read)168 1236 A
  3830. 1446(at)S
  3831. (least)210 1572 A
  3832. (the)126 1824 A
  3833. (minimum)294 1992 A
  3834. (number)252 2328 A
  3835. 2622(of)S
  3836. (blocks,)294 2748 A
  3837. (but)126 3084 A
  3838. (not)126 3252 A
  3839. (after)210 3420 A
  3840. 3672(a)S
  3841. (seek.)210 3756 A
  3842. 4008(*/)S
  3843. 1980 V
  3844. (23887)210 648 A
  3845. 1110(if)S
  3846. ((blocks_ahead)546 1236 A
  3847. 1824(<)S
  3848. (BLOCKS_MINIMUM)588 1908 A
  3849. 2538(&&)S
  3850. (rip->i_seek)462 2664 A
  3851. 3168(==)S
  3852. (NO_SEEK))336 3294 A
  3853. 2070 V
  3854. (23888)210 648 A
  3855. (blocks_ahead)504 1362 A
  3856. 1908(=)S
  3857. (BLOCKS_MINIMUM;)630 1992 A
  3858. 2160 V
  3859. (23889)210 648 A
  3860. 2250 V
  3861. (23890)210 648 A
  3862. 1110(/*)S
  3863. (Can't)210 1236 A
  3864. 1488(go)S
  3865. (past)168 1614 A
  3866. (end)126 1824 A
  3867. 1992(of)S
  3868. (file.)210 2118 A
  3869. 2370(*/)S
  3870. 2340 V
  3871. (23891)210 648 A
  3872. 1110(if)S
  3873. ((blocks_ahead)546 1236 A
  3874. 1824(>)S
  3875. (blocks_left))504 1908 A
  3876. (blocks_ahead)504 2454 A
  3877. 3000(=)S
  3878. (blocks_left;)504 3084 A
  3879. 2430 V
  3880. (23892)210 648 A
  3881. 2520 V
  3882. (23893)210 648 A
  3883. (read_q_size)462 1110 A
  3884. 1614(=)S
  3885. 1698(0;)S
  3886. 2610 V
  3887. (23894)210 648 A
  3888. 2700 V
  3889. (23895)210 648 A
  3890. 1110(/*)S
  3891. (Acquire)294 1236 A
  3892. (block)210 1572 A
  3893. (buffers.)336 1824 A
  3894. 2202(*/)S
  3895. 2790 V
  3896. (23896)210 648 A
  3897. (for)126 1110 A
  3898. ((;;))168 1278 A
  3899. 1488({)S
  3900. 2880 V
  3901. (23897)210 648 A
  3902. (read_q[read_q_size++])882 1362 A
  3903. 2286(=)S
  3904. (bp;)126 2370 A
  3905. 2970 V
  3906. (23898)210 648 A
  3907. 3060 V
  3908. (23899)210 648 A
  3909. 1362(if)S
  3910. ((--blocks_ahead)630 1488 A
  3911. 2160(==)S
  3912. 2286(0))S
  3913. (break;)252 2412 A
  3914. 3150 V
  3915. (23900)210 648 A
  3916. 3240 V
  3917. (23901)210 648 A
  3918. 1362(/*)S
  3919. (Don't)210 1488 A
  3920. (trash)210 1740 A
  3921. (the)126 1992 A
  3922. (cache,)252 2160 A
  3923. (leave)210 2454 A
  3924. 2706(4)S
  3925. (free.)210 2790 A
  3926. 3042(*/)S
  3927. 3330 V
  3928. (23902)210 648 A
  3929. 1362(if)S
  3930. ((bufs_in_use)504 1488 A
  3931. 2034(>=)S
  3932. (NR_BUFS)294 2160 A
  3933. 2496(-)S
  3934. 2580(4))S
  3935. (break;)252 2706 A
  3936. 3420 V
  3937. (23903)210 648 A
  3938. 3510 V
  3939. (23904)210 648 A
  3940. (block++;)336 1362 A
  3941. 3600 V
  3942. (23905)210 648 A
  3943. 3690 V
  3944. (23906)210 648 A
  3945. 1362(bp)S
  3946. 1488(=)S
  3947. (get_block(dev,)588 1572 A
  3948. (block,)252 2202 A
  3949. (PREFETCH);)420 2496 A
  3950. 3780 V
  3951. (23907)210 648 A
  3952. 1362(if)S
  3953. ((bp->b_dev)420 1488 A
  3954. 1950(!=)S
  3955. (NO_DEV))294 2076 A
  3956. 2412({)S
  3957. 3870 V
  3958. (23908)210 648 A
  3959. 1698(/*)S
  3960. (Oops,)210 1824 A
  3961. (block)210 2076 A
  3962. (already)294 2328 A
  3963. 2664(in)S
  3964. (the)126 2790 A
  3965. (cache,)252 2958 A
  3966. (get)126 3252 A
  3967. (out.)168 3420 A
  3968. 3630(*/)S
  3969. 3960 V
  3970. (23909)210 648 A
  3971. (put_block(bp,)546 1698 A
  3972. (FULL_DATA_BLOCK);)714 2286 A
  3973. 4050 V
  3974. (23910)210 648 A
  3975. (break;)252 1698 A
  3976. 4140 V
  3977. (23911)210 648 A
  3978. 1362(})S
  3979. 4230 V
  3980. (23912)210 648 A
  3981. 1110(})S
  3982. 4320 V
  3983. (23913)210 648 A
  3984. (rw_scattered(dev,)714 1110 A
  3985. (read_q,)294 1866 A
  3986. (read_q_size,)504 2202 A
  3987. (READING);)378 2748 A
  3988. 4410 V
  3989. (23914)210 648 A
  3990. (return(get_block(dev,)882 1110 A
  3991. (baseblock,)420 2034 A
  3992. (NORMAL));)378 2496 A
  3993. 4500 V
  3994. (23915)210 648 A
  3995. 1026(})S
  3996. 5040 V
  3997. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  3998. 5130 V
  3999. (src/fs/write.c)588 2034 A
  4000. 5220 V
  4001. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  4002. 5400 V
  4003. (24000)210 648 A
  4004. 1026(/*)S
  4005. (This)168 1152 A
  4006. (file)168 1362 A
  4007. 1572(is)S
  4008. (the)126 1698 A
  4009. (counterpart)462 1866 A
  4010. 2370(of)S
  4011. ("read.c".)378 2496 A
  4012. 2958(It)S
  4013. (contains)336 3084 A
  4014. (the)126 3462 A
  4015. (code)168 3630 A
  4016. (for)126 3840 A
  4017. (writing)294 4008 A
  4018. 5490 V
  4019. (24001)210 648 A
  4020. 1068(*)S
  4021. (insofar)294 1152 A
  4022. 1488(as)S
  4023. (this)168 1614 A
  4024. 1824(is)S
  4025. (not)126 1950 A
  4026. (contained)378 2118 A
  4027. 2538(in)S
  4028. (read_write().)546 2664 A
  4029. 5580 V
  4030. (24002)210 648 A
  4031. 1068(*)S
  4032. 5670 V
  4033. (24003)210 648 A
  4034. 1068(*)S
  4035. (The)126 1152 A
  4036. (entry)210 1320 A
  4037. (points)252 1572 A
  4038. (into)168 1866 A
  4039. (this)168 2076 A
  4040. (file)168 2286 A
  4041. (are)126 2496 A
  4042. 5760 V
  4043. (24004)210 648 A
  4044. 1068(*)S
  4045. (do_write:)378 1236 A
  4046. (call)168 1824 A
  4047. (read_write)420 2034 A
  4048. 2496(to)S
  4049. (perform)294 2622 A
  4050. (the)126 2958 A
  4051. (WRITE)210 3126 A
  4052. (system)252 3378 A
  4053. (call)168 3672 A
  4054. 5850 V
  4055. (24005)210 648 A
  4056. 1068(*)S
  4057. (clear_zone:)462 1236 A
  4058. (erase)210 1824 A
  4059. 2076(a)S
  4060. (zone)168 2160 A
  4061. 2370(in)S
  4062. (the)126 2496 A
  4063. (middle)252 2664 A
  4064. 2958(of)S
  4065. 3084(a)S
  4066. (file)168 3168 A
  4067. 5940 V
  4068. (24006)210 648 A
  4069. 1068(*)S
  4070. (new_block:)420 1236 A
  4071. (acquire)294 1824 A
  4072. 2160(a)S
  4073. (new)126 2244 A
  4074. (block)210 2412 A
  4075. 6030 V
  4076. (24007)210 648 A
  4077. 1068(*/)S
  4078. 6120 V
  4079. (24008)210 648 A
  4080. 6210 V
  4081. (24009)210 648 A
  4082. (#include)336 1026 A
  4083. ("fs.h")252 1404 A
  4084. 8418 V
  4085. EP
  4086. %%Page: 330 330
  4087. BP
  4088. /slant 0 def
  4089. /height 0 def
  4090. 630 V
  4091. 12 B
  4092. (330)180 648 A
  4093. 11 R
  4094. 2132(File:)S
  4095. 2365(src/fs/write.c)S
  4096. 10 R
  4097. 3402(MINIX)S
  4098. 3730(SOURCE)S
  4099. 4153(CODE)S
  4100. 900 V
  4101. 7 LST
  4102. (24010)210 648 A
  4103. (#include)336 1026 A
  4104. (<string.h>)420 1404 A
  4105. 990 V
  4106. (24011)210 648 A
  4107. (#include)336 1026 A
  4108. ("buf.h")294 1404 A
  4109. 1080 V
  4110. (24012)210 648 A
  4111. (#include)336 1026 A
  4112. ("file.h")336 1404 A
  4113. 1170 V
  4114. (24013)210 648 A
  4115. (#include)336 1026 A
  4116. ("fproc.h")378 1404 A
  4117. 1260 V
  4118. (24014)210 648 A
  4119. (#include)336 1026 A
  4120. ("inode.h")378 1404 A
  4121. 1350 V
  4122. (24015)210 648 A
  4123. (#include)336 1026 A
  4124. ("super.h")378 1404 A
  4125. 1440 V
  4126. (24016)210 648 A
  4127. 1530 V
  4128. (24017)210 648 A
  4129. (FORWARD)294 1026 A
  4130. (_PROTOTYPE()462 1362 A
  4131. (int)126 1866 A
  4132. (write_map,)420 2034 A
  4133. ((struct)294 2496 A
  4134. (inode)210 2832 A
  4135. (*rip,)210 3084 A
  4136. (off_t)210 3336 A
  4137. (position,)378 3588 A
  4138. 1620 V
  4139. (24018)210 648 A
  4140. (zone_t)252 2034 A
  4141. (new_zone))378 2328 A
  4142. 4050();)S
  4143. 1710 V
  4144. (24019)210 648 A
  4145. 1800 V
  4146. (24020)210 648 A
  4147. (FORWARD)294 1026 A
  4148. (_PROTOTYPE()462 1362 A
  4149. (void)168 1866 A
  4150. (wr_indir,)378 2076 A
  4151. ((struct)294 2496 A
  4152. (buf)126 2832 A
  4153. (*bp,)168 3000 A
  4154. (int)126 3210 A
  4155. (index,)252 3378 A
  4156. (zone_t)252 3672 A
  4157. (zone))210 3966 A
  4158. 4218();)S
  4159. 1890 V
  4160. (24021)210 648 A
  4161. 1980 V
  4162. (24022)210 648 A
  4163. (/*===========================================================================*)3276 1026 A
  4164. 2070 V
  4165. (24023)210 648 A
  4166. 1068(*)S
  4167. (do_write)336 2370 A
  4168. 4260(*)S
  4169. 2160 V
  4170. (24024)210 648 A
  4171. (*===========================================================================*/)3276 1068 A
  4172. 2250 V
  4173. (24025)210 648 A
  4174. (PUBLIC)252 1026 A
  4175. (int)126 1320 A
  4176. (do_write())420 1488 A
  4177. 2340 V
  4178. (24026)210 648 A
  4179. 1026({)S
  4180. 2430 V
  4181. (24027)210 648 A
  4182. 1026(/*)S
  4183. (Perform)294 1152 A
  4184. (the)126 1488 A
  4185. (write(fd,)378 1656 A
  4186. (buffer,)294 2076 A
  4187. (nbytes))294 2412 A
  4188. (system)252 2748 A
  4189. (call.)210 3042 A
  4190. 3294(*/)S
  4191. 2520 V
  4192. (24028)210 648 A
  4193. 2610 V
  4194. (24029)210 648 A
  4195. (return(read_write(WRITING));)1176 1110 A
  4196. 2700 V
  4197. (24030)210 648 A
  4198. 1026(})S
  4199. 2970 V
  4200. (24033)210 648 A
  4201. (/*===========================================================================*)3276 1026 A
  4202. 3060 V
  4203. (24034)210 648 A
  4204. 1068(*)S
  4205. (write_map)378 2370 A
  4206. 4260(*)S
  4207. 3150 V
  4208. (24035)210 648 A
  4209. (*===========================================================================*/)3276 1068 A
  4210. 3240 V
  4211. (24036)210 648 A
  4212. (PRIVATE)294 1026 A
  4213. (int)126 1362 A
  4214. (write_map(rip,)588 1530 A
  4215. (position,)378 2160 A
  4216. (new_zone))378 2580 A
  4217. 3330 V
  4218. (24037)210 648 A
  4219. (register)336 1026 A
  4220. (struct)252 1404 A
  4221. (inode)210 1698 A
  4222. (*rip;)210 1950 A
  4223. 2370(/*)S
  4224. (pointer)294 2496 A
  4225. 2832(to)S
  4226. (inode)210 2958 A
  4227. 3210(to)S
  4228. 3336(be)S
  4229. (changed)294 3462 A
  4230. 3798(*/)S
  4231. 3420 V
  4232. (24038)210 648 A
  4233. (off_t)210 1026 A
  4234. (position;)378 1278 A
  4235. 2370(/*)S
  4236. (file)168 2496 A
  4237. (address)294 2706 A
  4238. 3042(to)S
  4239. 3168(be)S
  4240. (mapped)252 3294 A
  4241. 3588(*/)S
  4242. 3510 V
  4243. (24039)210 648 A
  4244. (zone_t)252 1026 A
  4245. (new_zone;)378 1320 A
  4246. 2370(/*)S
  4247. (zone)168 2496 A
  4248. 2706(#)S
  4249. 2790(to)S
  4250. 2916(be)S
  4251. (inserted)336 3042 A
  4252. 3420(*/)S
  4253. 3600 V
  4254. (24040)210 648 A
  4255. 1026({)S
  4256. 3690 V
  4257. (24041)210 648 A
  4258. 1026(/*)S
  4259. (Write)210 1152 A
  4260. 1404(a)S
  4261. (new)126 1488 A
  4262. (zone)168 1656 A
  4263. (into)168 1866 A
  4264. 2076(an)S
  4265. (inode.)252 2202 A
  4266. 2496(*/)S
  4267. 3780 V
  4268. (24042)210 648 A
  4269. (int)126 1110 A
  4270. (scale,)252 1278 A
  4271. (ind_ex,)294 1572 A
  4272. (new_ind,)336 1908 A
  4273. (new_dbl,)336 2286 A
  4274. (zones,)252 2664 A
  4275. (nr_indirects,)546 2958 A
  4276. (single,)294 3546 A
  4277. (zindex,)294 3882 A
  4278. (ex;)126 4218 A
  4279. 3870 V
  4280. (24043)210 648 A
  4281. (zone_t)252 1110 A
  4282. 1404(z,)S
  4283. (z1;)126 1530 A
  4284. 3960 V
  4285. (24044)210 648 A
  4286. (register)336 1110 A
  4287. (block_t)294 1488 A
  4288. 1824(b;)S
  4289. 4050 V
  4290. (24045)210 648 A
  4291. (long)168 1110 A
  4292. (excess,)294 1320 A
  4293. (zone;)210 1656 A
  4294. 4140 V
  4295. (24046)210 648 A
  4296. (struct)252 1110 A
  4297. (buf)126 1404 A
  4298. (*bp;)168 1572 A
  4299. 4230 V
  4300. (24047)210 648 A
  4301. 4320 V
  4302. (24048)210 648 A
  4303. (rip->i_dirt)462 1110 A
  4304. 1614(=)S
  4305. (DIRTY;)252 1698 A
  4306. 2370(/*)S
  4307. (inode)210 2496 A
  4308. (will)168 2748 A
  4309. 2958(be)S
  4310. (changed)294 3084 A
  4311. 3420(*/)S
  4312. 4410 V
  4313. (24049)210 648 A
  4314. 1110(bp)S
  4315. 1236(=)S
  4316. (NIL_BUF;)336 1320 A
  4317. 4500 V
  4318. (24050)210 648 A
  4319. (scale)210 1110 A
  4320. 1362(=)S
  4321. (rip->i_sp->s_log_zone_size;)1134 1446 A
  4322. 3042(/*)S
  4323. (for)126 3168 A
  4324. (zone-block)420 3336 A
  4325. (conversion)420 3798 A
  4326. 4260(*/)S
  4327. 4590 V
  4328. (24051)210 648 A
  4329. (zone)168 1110 A
  4330. 1320(=)S
  4331. ((position/BLOCK_SIZE))882 1404 A
  4332. 2328(>>)S
  4333. (scale;)252 2454 A
  4334. 3042(/*)S
  4335. (relative)336 3168 A
  4336. (zone)168 3546 A
  4337. 3756(#)S
  4338. 3840(to)S
  4339. (insert)252 3966 A
  4340. 4260(*/)S
  4341. 4680 V
  4342. (24052)210 648 A
  4343. (zones)210 1110 A
  4344. 1362(=)S
  4345. (rip->i_ndzones;)630 1446 A
  4346. 2370(/*)S
  4347. 2496(#)S
  4348. (direct)252 2580 A
  4349. (zones)210 2874 A
  4350. 3126(in)S
  4351. (the)126 3252 A
  4352. (inode)210 3420 A
  4353. 3672(*/)S
  4354. 4770 V
  4355. (24053)210 648 A
  4356. (nr_indirects)504 1110 A
  4357. 1656(=)S
  4358. (rip->i_nindirs;/*)714 1740 A
  4359. 2496(#)S
  4360. (indirect)336 2580 A
  4361. (zones)210 2958 A
  4362. (per)126 3210 A
  4363. (indirect)336 3378 A
  4364. (block)210 3756 A
  4365. 4008(*/)S
  4366. 4860 V
  4367. (24054)210 648 A
  4368. 4950 V
  4369. (24055)210 648 A
  4370. 1110(/*)S
  4371. 1236(Is)S
  4372. ('position')420 1362 A
  4373. 1824(to)S
  4374. 1950(be)S
  4375. (found)210 2076 A
  4376. 2328(in)S
  4377. (the)126 2454 A
  4378. (inode)210 2622 A
  4379. (itself?)294 2874 A
  4380. 3210(*/)S
  4381. 5040 V
  4382. (24056)210 648 A
  4383. 1110(if)S
  4384. ((zone)210 1236 A
  4385. 1488(<)S
  4386. (zones))252 1572 A
  4387. 1866({)S
  4388. 5130 V
  4389. (24057)210 648 A
  4390. (zindex)252 1362 A
  4391. 1656(=)S
  4392. ((int))210 1740 A
  4393. (zone;)210 1992 A
  4394. 2370(/*)S
  4395. 2496(we)S
  4396. (need)168 2622 A
  4397. 2832(an)S
  4398. (integer)294 2958 A
  4399. (here)168 3294 A
  4400. 3504(*/)S
  4401. 5220 V
  4402. (24058)210 648 A
  4403. (rip->i_zone[zindex])798 1362 A
  4404. 2202(=)S
  4405. (new_zone;)378 2286 A
  4406. 5310 V
  4407. (24059)210 648 A
  4408. (return(OK);)462 1362 A
  4409. 5400 V
  4410. (24060)210 648 A
  4411. 1110(})S
  4412. 5490 V
  4413. (24061)210 648 A
  4414. 5580 V
  4415. (24062)210 648 A
  4416. 1110(/*)S
  4417. 1236(It)S
  4418. 1362(is)S
  4419. (not)126 1488 A
  4420. 1656(in)S
  4421. (the)126 1782 A
  4422. (inode,)252 1950 A
  4423. 2244(so)S
  4424. 2370(it)S
  4425. (must)168 2496 A
  4426. 2706(be)S
  4427. (single)252 2832 A
  4428. 3126(or)S
  4429. (double)252 3252 A
  4430. (indirect.)378 3546 A
  4431. 3966(*/)S
  4432. 5670 V
  4433. (24063)210 648 A
  4434. (excess)252 1110 A
  4435. 1404(=)S
  4436. (zone)168 1488 A
  4437. 1698(-)S
  4438. (zones;)252 1782 A
  4439. 2370(/*)S
  4440. (first)210 2496 A
  4441. (Vx_NR_DZONES)504 2748 A
  4442. (don't)210 3294 A
  4443. (count)210 3546 A
  4444. 3798(*/)S
  4445. 5760 V
  4446. (24064)210 648 A
  4447. (new_ind)294 1110 A
  4448. 1446(=)S
  4449. (FALSE;)252 1530 A
  4450. 5850 V
  4451. (24065)210 648 A
  4452. (new_dbl)294 1110 A
  4453. 1446(=)S
  4454. (FALSE;)252 1530 A
  4455. 5940 V
  4456. (24066)210 648 A
  4457. 6030 V
  4458. (24067)210 648 A
  4459. 1110(if)S
  4460. ((excess)294 1236 A
  4461. 1572(<)S
  4462. (nr_indirects))546 1656 A
  4463. 2244({)S
  4464. 6120 V
  4465. (24068)210 648 A
  4466. 1362(/*)S
  4467. ('position')420 1488 A
  4468. (can)126 1950 A
  4469. 2118(be)S
  4470. (located)294 2244 A
  4471. (via)126 2580 A
  4472. (the)126 2748 A
  4473. (single)252 2916 A
  4474. (indirect)336 3210 A
  4475. (block.)252 3588 A
  4476. 3882(*/)S
  4477. 6210 V
  4478. (24069)210 648 A
  4479. 1362(z1)S
  4480. 1488(=)S
  4481. (rip->i_zone[zones];)798 1572 A
  4482. 2706(/*)S
  4483. (single)252 2832 A
  4484. (indirect)336 3126 A
  4485. (zone)168 3504 A
  4486. 3714(*/)S
  4487. 8418 V
  4488. EP
  4489. %%Page: 331 331
  4490. BP
  4491. /slant 0 def
  4492. /height 0 def
  4493. 630 V
  4494. 10 R
  4495. 648(MINIX)S
  4496. 976(SOURCE)S
  4497. 1399(CODE)S
  4498. 11 R
  4499. 2132(File:)S
  4500. 2365(src/fs/write.c)S
  4501. 12 B
  4502. (331)180 4248 A
  4503. 900 V
  4504. 7 LST
  4505. (24070)210 648 A
  4506. (single)252 1362 A
  4507. 1656(=)S
  4508. (TRUE;)210 1740 A
  4509. 990 V
  4510. (24071)210 648 A
  4511. 1110(})S
  4512. (else)168 1194 A
  4513. 1404({)S
  4514. 1080 V
  4515. (24072)210 648 A
  4516. 1362(/*)S
  4517. ('position')420 1488 A
  4518. (can)126 1950 A
  4519. 2118(be)S
  4520. (located)294 2244 A
  4521. (via)126 2580 A
  4522. (the)126 2748 A
  4523. (double)252 2916 A
  4524. (indirect)336 3210 A
  4525. (block.)252 3588 A
  4526. 3882(*/)S
  4527. 1170 V
  4528. (24073)210 648 A
  4529. 1362(if)S
  4530. 1488(()S
  4531. 1572((z)S
  4532. 1698(=)S
  4533. (rip->i_zone[zones+1]))882 1782 A
  4534. 2706(==)S
  4535. (NO_ZONE))336 2832 A
  4536. 3210({)S
  4537. 1260 V
  4538. (24074)210 648 A
  4539. 1698(/*)S
  4540. (Create)252 1824 A
  4541. (the)126 2118 A
  4542. (double)252 2286 A
  4543. (indirect)336 2580 A
  4544. (block.)252 2958 A
  4545. 3252(*/)S
  4546. 1350 V
  4547. (24075)210 648 A
  4548. 1698(if)S
  4549. 1824(()S
  4550. 1908((z)S
  4551. 2034(=)S
  4552. (alloc_zone(rip->i_dev,)924 2118 A
  4553. (rip->i_zone[0])))672 3084 A
  4554. 3798(==)S
  4555. (NO_ZONE))336 3924 A
  4556. 1440 V
  4557. (24076)210 648 A
  4558. (return(err_code);)714 2034 A
  4559. 1530 V
  4560. (24077)210 648 A
  4561. (rip->i_zone[zones+1])840 1698 A
  4562. 2580(=)S
  4563. 2664(z;)S
  4564. 1620 V
  4565. (24078)210 648 A
  4566. (new_dbl)294 1698 A
  4567. 2034(=)S
  4568. (TRUE;)210 2118 A
  4569. 2370(/*)S
  4570. (set)126 2496 A
  4571. (flag)168 2664 A
  4572. (for)126 2874 A
  4573. (later)210 3042 A
  4574. 3294(*/)S
  4575. 1710 V
  4576. (24079)210 648 A
  4577. 1362(})S
  4578. 1800 V
  4579. (24080)210 648 A
  4580. 1890 V
  4581. (24081)210 648 A
  4582. 1362(/*)S
  4583. (Either)252 1488 A
  4584. (way,)168 1782 A
  4585. ('z')126 1992 A
  4586. 2160(is)S
  4587. (zone)168 2286 A
  4588. (number)252 2496 A
  4589. (for)126 2790 A
  4590. (double)252 2958 A
  4591. (indirect)336 3252 A
  4592. (block.)252 3630 A
  4593. 3924(*/)S
  4594. 1980 V
  4595. (24082)210 648 A
  4596. (excess)252 1362 A
  4597. 1656(-=)S
  4598. (nr_indirects;)546 1782 A
  4599. 2370(/*)S
  4600. (single)252 2496 A
  4601. (indirect)336 2790 A
  4602. (doesn't)294 3168 A
  4603. (count)210 3504 A
  4604. 3756(*/)S
  4605. 2070 V
  4606. (24083)210 648 A
  4607. (ind_ex)252 1362 A
  4608. 1656(=)S
  4609. ((int))210 1740 A
  4610. ((excess)294 1992 A
  4611. 2328(/)S
  4612. (nr_indirects);)588 2412 A
  4613. 2160 V
  4614. (24084)210 648 A
  4615. (excess)252 1362 A
  4616. 1656(=)S
  4617. (excess)252 1740 A
  4618. 2034(%)S
  4619. (nr_indirects;)546 2118 A
  4620. 2250 V
  4621. (24085)210 648 A
  4622. 1362(if)S
  4623. ((ind_ex)294 1488 A
  4624. 1824(>=)S
  4625. (nr_indirects))546 1950 A
  4626. (return(EFBIG);)588 2538 A
  4627. 2340 V
  4628. (24086)210 648 A
  4629. 1362(b)S
  4630. 1446(=)S
  4631. ((block_t))378 1530 A
  4632. 1950(z)S
  4633. 2034(<<)S
  4634. (scale;)252 2160 A
  4635. 2430 V
  4636. (24087)210 648 A
  4637. 1362(bp)S
  4638. 1488(=)S
  4639. (get_block(rip->i_dev,)882 1572 A
  4640. 2496(b,)S
  4641. ((new_dbl)336 2622 A
  4642. 3000(?)S
  4643. (NO_READ)294 3084 A
  4644. 3420(:)S
  4645. (NORMAL));)378 3504 A
  4646. 2520 V
  4647. (24088)210 648 A
  4648. 1362(if)S
  4649. ((new_dbl))378 1488 A
  4650. (zero_block(bp);)630 1908 A
  4651. 2610 V
  4652. (24089)210 648 A
  4653. 1362(z1)S
  4654. 1488(=)S
  4655. (rd_indir(bp,)504 1572 A
  4656. (ind_ex);)336 2118 A
  4657. 2700 V
  4658. (24090)210 648 A
  4659. (single)252 1362 A
  4660. 1656(=)S
  4661. (FALSE;)252 1740 A
  4662. 2790 V
  4663. (24091)210 648 A
  4664. 1110(})S
  4665. 2880 V
  4666. (24092)210 648 A
  4667. 2970 V
  4668. (24093)210 648 A
  4669. 1110(/*)S
  4670. 1236(z1)S
  4671. 1362(is)S
  4672. (now)126 1488 A
  4673. (single)252 1656 A
  4674. (indirect)336 1950 A
  4675. (zone;)210 2328 A
  4676. ('excess')336 2580 A
  4677. 2958(is)S
  4678. (index.)252 3084 A
  4679. 3378(*/)S
  4680. 3060 V
  4681. (24094)210 648 A
  4682. 1110(if)S
  4683. ((z1)126 1236 A
  4684. 1404(==)S
  4685. (NO_ZONE))336 1530 A
  4686. 1908({)S
  4687. 3150 V
  4688. (24095)210 648 A
  4689. 1362(/*)S
  4690. (Create)252 1488 A
  4691. (indirect)336 1782 A
  4692. (block)210 2160 A
  4693. (and)126 2412 A
  4694. (store)210 2580 A
  4695. (zone)168 2832 A
  4696. 3042(#)S
  4697. 3126(in)S
  4698. (inode)210 3252 A
  4699. 3504(or)S
  4700. (dbl)126 3630 A
  4701. (indir)210 3798 A
  4702. (blk.)168 4050 A
  4703. 4260(*/)S
  4704. 3240 V
  4705. (24096)210 648 A
  4706. 1362(z1)S
  4707. 1488(=)S
  4708. (alloc_zone(rip->i_dev,)924 1572 A
  4709. (rip->i_zone[0]);)672 2538 A
  4710. 3330 V
  4711. (24097)210 648 A
  4712. 1362(if)S
  4713. ((single))336 1488 A
  4714. 3420 V
  4715. (24098)210 648 A
  4716. (rip->i_zone[zones])756 1698 A
  4717. 2496(=)S
  4718. (z1;)126 2580 A
  4719. 3042(/*)S
  4720. (update)252 3168 A
  4721. (inode)210 3462 A
  4722. 3714(*/)S
  4723. 3510 V
  4724. (24099)210 648 A
  4725. (else)168 1362 A
  4726. 3600 V
  4727. (24100)210 648 A
  4728. (wr_indir(bp,)504 1698 A
  4729. (ind_ex,)294 2244 A
  4730. (z1);)168 2580 A
  4731. 3042(/*)S
  4732. (update)252 3168 A
  4733. (dbl)126 3462 A
  4734. (indir)210 3630 A
  4735. 3882(*/)S
  4736. 3690 V
  4737. (24101)210 648 A
  4738. 3780 V
  4739. (24102)210 648 A
  4740. (new_ind)294 1362 A
  4741. 1698(=)S
  4742. (TRUE;)210 1782 A
  4743. 3870 V
  4744. (24103)210 648 A
  4745. 1362(if)S
  4746. ((bp)126 1488 A
  4747. 1656(!=)S
  4748. (NIL_BUF))336 1782 A
  4749. (bp->b_dirt)420 2160 A
  4750. 2622(=)S
  4751. (DIRTY;)252 2706 A
  4752. 3042(/*)S
  4753. 3168(if)S
  4754. (double)252 3294 A
  4755. (ind,)168 3588 A
  4756. 3798(it)S
  4757. 3924(is)S
  4758. (dirty*/)294 4050 A
  4759. 3960 V
  4760. (24104)210 648 A
  4761. 1362(if)S
  4762. ((z1)126 1488 A
  4763. 1656(==)S
  4764. (NO_ZONE))336 1782 A
  4765. 2160({)S
  4766. 4050 V
  4767. (24105)210 648 A
  4768. (put_block(bp,)546 1698 A
  4769. (INDIRECT_BLOCK);)672 2286 A
  4770. 3042(/*)S
  4771. (release)294 3168 A
  4772. (dbl)126 3504 A
  4773. (indirect)336 3672 A
  4774. (blk)126 4050 A
  4775. 4218(*/)S
  4776. 4140 V
  4777. (24106)210 648 A
  4778. (return(err_code);)714 1698 A
  4779. 2706(/*)S
  4780. (couldn't)336 2832 A
  4781. (create)252 3210 A
  4782. (single)252 3504 A
  4783. (ind)126 3798 A
  4784. 3966(*/)S
  4785. 4230 V
  4786. (24107)210 648 A
  4787. 1362(})S
  4788. 4320 V
  4789. (24108)210 648 A
  4790. 1110(})S
  4791. 4410 V
  4792. (24109)210 648 A
  4793. (put_block(bp,)546 1110 A
  4794. (INDIRECT_BLOCK);)672 1698 A
  4795. 2706(/*)S
  4796. (release)294 2832 A
  4797. (double)252 3168 A
  4798. (indirect)336 3462 A
  4799. (blk)126 3840 A
  4800. 4008(*/)S
  4801. 4500 V
  4802. (24110)210 648 A
  4803. 4590 V
  4804. (24111)210 648 A
  4805. 1110(/*)S
  4806. 1236(z1)S
  4807. 1362(is)S
  4808. (indirect)336 1488 A
  4809. (block's)294 1866 A
  4810. (zone)168 2202 A
  4811. (number.)294 2412 A
  4812. 2748(*/)S
  4813. 4680 V
  4814. (24112)210 648 A
  4815. 1110(b)S
  4816. 1194(=)S
  4817. ((block_t))378 1278 A
  4818. 1698(z1)S
  4819. 1824(<<)S
  4820. (scale;)252 1950 A
  4821. 4770 V
  4822. (24113)210 648 A
  4823. 1110(bp)S
  4824. 1236(=)S
  4825. (get_block(rip->i_dev,)882 1320 A
  4826. 2244(b,)S
  4827. ((new_ind)336 2370 A
  4828. 2748(?)S
  4829. (NO_READ)294 2832 A
  4830. 3168(:)S
  4831. (NORMAL))294 3252 A
  4832. 3588();)S
  4833. 4860 V
  4834. (24114)210 648 A
  4835. 1110(if)S
  4836. ((new_ind))378 1236 A
  4837. (zero_block(bp);)630 1656 A
  4838. 4950 V
  4839. (24115)210 648 A
  4840. 1110(ex)S
  4841. 1236(=)S
  4842. ((int))210 1320 A
  4843. (excess;)294 1572 A
  4844. 2706(/*)S
  4845. 2832(we)S
  4846. (need)168 2958 A
  4847. 3168(an)S
  4848. (int)126 3294 A
  4849. (here)168 3462 A
  4850. 3672(*/)S
  4851. 5040 V
  4852. (24116)210 648 A
  4853. (wr_indir(bp,)504 1110 A
  4854. (ex,)126 1656 A
  4855. (new_zone);)420 1824 A
  4856. 5130 V
  4857. (24117)210 648 A
  4858. (bp->b_dirt)420 1110 A
  4859. 1572(=)S
  4860. (DIRTY;)252 1656 A
  4861. 5220 V
  4862. (24118)210 648 A
  4863. (put_block(bp,)546 1110 A
  4864. (INDIRECT_BLOCK);)672 1698 A
  4865. 5310 V
  4866. (24119)210 648 A
  4867. 5400 V
  4868. (24120)210 648 A
  4869. (return(OK);)462 1110 A
  4870. 5490 V
  4871. (24121)210 648 A
  4872. 1026(})S
  4873. 5760 V
  4874. (24124)210 648 A
  4875. (/*===========================================================================*)3276 1026 A
  4876. 5850 V
  4877. (24125)210 648 A
  4878. 1068(*)S
  4879. (wr_indir)336 2370 A
  4880. 4260(*)S
  4881. 5940 V
  4882. (24126)210 648 A
  4883. (*===========================================================================*/)3276 1068 A
  4884. 6030 V
  4885. (24127)210 648 A
  4886. (PRIVATE)294 1026 A
  4887. (void)168 1362 A
  4888. (wr_indir(bp,)504 1572 A
  4889. (index,)252 2118 A
  4890. (zone))210 2412 A
  4891. 6120 V
  4892. (24128)210 648 A
  4893. (struct)252 1026 A
  4894. (buf)126 1320 A
  4895. (*bp;)168 1488 A
  4896. 2370(/*)S
  4897. (pointer)294 2496 A
  4898. 2832(to)S
  4899. (indirect)336 2958 A
  4900. (block)210 3336 A
  4901. 3588(*/)S
  4902. 6210 V
  4903. (24129)210 648 A
  4904. (int)126 1026 A
  4905. (index;)252 1194 A
  4906. 2370(/*)S
  4907. (index)210 2496 A
  4908. (into)168 2748 A
  4909. (*bp)126 2958 A
  4910. 3126(*/)S
  4911. 8418 V
  4912. EP
  4913. %%Page: 332 332
  4914. BP
  4915. /slant 0 def
  4916. /height 0 def
  4917. 630 V
  4918. 12 B
  4919. (332)180 648 A
  4920. 11 R
  4921. 2132(File:)S
  4922. 2365(src/fs/write.c)S
  4923. 10 R
  4924. 3402(MINIX)S
  4925. 3730(SOURCE)S
  4926. 4153(CODE)S
  4927. 900 V
  4928. 7 LST
  4929. (24130)210 648 A
  4930. (zone_t)252 1026 A
  4931. (zone;)210 1320 A
  4932. 2370(/*)S
  4933. (zone)168 2496 A
  4934. 2706(to)S
  4935. (write)210 2832 A
  4936. 3084(*/)S
  4937. 990 V
  4938. (24131)210 648 A
  4939. 1026({)S
  4940. 1080 V
  4941. (24132)210 648 A
  4942. 1026(/*)S
  4943. (Given)210 1152 A
  4944. 1404(a)S
  4945. (pointer)294 1488 A
  4946. 1824(to)S
  4947. 1950(an)S
  4948. (indirect)336 2076 A
  4949. (block,)252 2454 A
  4950. (write)210 2748 A
  4951. (one)126 3000 A
  4952. (entry.)252 3168 A
  4953. 3462(*/)S
  4954. 1170 V
  4955. (24133)210 648 A
  4956. 1260 V
  4957. (24134)210 648 A
  4958. (struct)252 1110 A
  4959. (super_block)462 1404 A
  4960. (*sp;)168 1908 A
  4961. 1350 V
  4962. (24135)210 648 A
  4963. 1440 V
  4964. (24136)210 648 A
  4965. 1110(sp)S
  4966. 1236(=)S
  4967. (get_super(bp->b_dev);)882 1320 A
  4968. 2370(/*)S
  4969. (need)168 2496 A
  4970. (super)210 2706 A
  4971. (block)210 2958 A
  4972. 3210(to)S
  4973. (find)168 3336 A
  4974. (file)168 3546 A
  4975. (sys)126 3756 A
  4976. (type)168 3924 A
  4977. 4134(*/)S
  4978. 1530 V
  4979. (24137)210 648 A
  4980. 1620 V
  4981. (24138)210 648 A
  4982. 1110(/*)S
  4983. (write)210 1236 A
  4984. 1488(a)S
  4985. (zone)168 1572 A
  4986. (into)168 1782 A
  4987. 1992(an)S
  4988. (indirect)336 2118 A
  4989. (block)210 2496 A
  4990. 2748(*/)S
  4991. 1710 V
  4992. (24139)210 648 A
  4993. 1110(if)S
  4994. ((sp->s_version)588 1236 A
  4995. 1866(==)S
  4996. (V1))126 1992 A
  4997. 1800 V
  4998. (24140)210 648 A
  4999. (bp->b_v1_ind[index])798 1362 A
  5000. 2202(=)S
  5001. ((zone1_t))378 2286 A
  5002. (conv2(sp->s_native,)798 2706 A
  5003. ((int))210 3546 A
  5004. (zone);)252 3840 A
  5005. 1890 V
  5006. (24141)210 648 A
  5007. (else)168 1110 A
  5008. 1980 V
  5009. (24142)210 648 A
  5010. (bp->b_v2_ind[index])798 1362 A
  5011. 2202(=)S
  5012. ((zone_t))336 2286 A
  5013. (conv4(sp->s_native,)798 2706 A
  5014. ((long))252 3546 A
  5015. (zone);)252 3840 A
  5016. 2070 V
  5017. (24143)210 648 A
  5018. 1026(})S
  5019. 2340 V
  5020. (24146)210 648 A
  5021. (/*===========================================================================*)3276 1026 A
  5022. 2430 V
  5023. (24147)210 648 A
  5024. 1068(*)S
  5025. (clear_zone)420 2370 A
  5026. 4260(*)S
  5027. 2520 V
  5028. (24148)210 648 A
  5029. (*===========================================================================*/)3276 1068 A
  5030. 2610 V
  5031. (24149)210 648 A
  5032. (PUBLIC)252 1026 A
  5033. (void)168 1320 A
  5034. (clear_zone(rip,)630 1530 A
  5035. (pos,)168 2202 A
  5036. (flag))210 2412 A
  5037. 2700 V
  5038. (24150)210 648 A
  5039. (register)336 1026 A
  5040. (struct)252 1404 A
  5041. (inode)210 1698 A
  5042. (*rip;)210 1950 A
  5043. 2370(/*)S
  5044. (inode)210 2496 A
  5045. 2748(to)S
  5046. (clear)210 2874 A
  5047. 3126(*/)S
  5048. 2790 V
  5049. (24151)210 648 A
  5050. (off_t)210 1026 A
  5051. (pos;)168 1278 A
  5052. 2370(/*)S
  5053. (points)252 2496 A
  5054. 2790(to)S
  5055. (block)210 2916 A
  5056. 3168(to)S
  5057. (clear)210 3294 A
  5058. 3546(*/)S
  5059. 2880 V
  5060. (24152)210 648 A
  5061. (int)126 1026 A
  5062. (flag;)210 1194 A
  5063. 2370(/*)S
  5064. 2496(0)S
  5065. 2580(if)S
  5066. (called)252 2706 A
  5067. 3000(by)S
  5068. (read_write,)462 3126 A
  5069. 3630(1)S
  5070. 3714(by)S
  5071. (new_block)378 3840 A
  5072. 4260(*/)S
  5073. 2970 V
  5074. (24153)210 648 A
  5075. 1026({)S
  5076. 3060 V
  5077. (24154)210 648 A
  5078. 1026(/*)S
  5079. (Zero)168 1152 A
  5080. 1362(a)S
  5081. (zone,)210 1446 A
  5082. (possibly)336 1698 A
  5083. (starting)336 2076 A
  5084. 2454(in)S
  5085. (the)126 2580 A
  5086. (middle.)294 2748 A
  5087. (The)126 3126 A
  5088. (parameter)378 3294 A
  5089. ('pos')210 3714 A
  5090. (gives)210 3966 A
  5091. 3150 V
  5092. (24155)210 648 A
  5093. 1068(*)S
  5094. 1152(a)S
  5095. (byte)168 1236 A
  5096. 1446(in)S
  5097. (the)126 1572 A
  5098. (first)210 1740 A
  5099. (block)210 1992 A
  5100. 2244(to)S
  5101. 2370(be)S
  5102. (zeroed.)294 2496 A
  5103. (Clearzone())462 2874 A
  5104. 3378(is)S
  5105. (called)252 3504 A
  5106. (from)168 3798 A
  5107. 3240 V
  5108. (24156)210 648 A
  5109. 1068(*)S
  5110. (read_write)420 1152 A
  5111. (and)126 1614 A
  5112. (new_block().)504 1782 A
  5113. 3330 V
  5114. (24157)210 648 A
  5115. 1068(*/)S
  5116. 3420 V
  5117. (24158)210 648 A
  5118. 3510 V
  5119. (24159)210 648 A
  5120. (register)336 1110 A
  5121. (struct)252 1488 A
  5122. (buf)126 1782 A
  5123. (*bp;)168 1950 A
  5124. 3600 V
  5125. (24160)210 648 A
  5126. (register)336 1110 A
  5127. (block_t)294 1488 A
  5128. 1824(b,)S
  5129. (blo,)168 1950 A
  5130. (bhi;)168 2160 A
  5131. 3690 V
  5132. (24161)210 648 A
  5133. (register)336 1110 A
  5134. (off_t)210 1488 A
  5135. (next;)210 1740 A
  5136. 3780 V
  5137. (24162)210 648 A
  5138. (register)336 1110 A
  5139. (int)126 1488 A
  5140. (scale;)252 1656 A
  5141. 3870 V
  5142. (24163)210 648 A
  5143. (register)336 1110 A
  5144. (zone_t)252 1488 A
  5145. (zone_size;)420 1782 A
  5146. 3960 V
  5147. (24164)210 648 A
  5148. 4050 V
  5149. (24165)210 648 A
  5150. 1110(/*)S
  5151. 1236(If)S
  5152. (the)126 1362 A
  5153. (block)210 1530 A
  5154. (size)168 1782 A
  5155. (and)126 1992 A
  5156. (zone)168 2160 A
  5157. (size)168 2370 A
  5158. (are)126 2580 A
  5159. (the)126 2748 A
  5160. (same,)210 2916 A
  5161. (clear_zone())504 3168 A
  5162. (not)126 3714 A
  5163. (needed.)294 3882 A
  5164. 4218(*/)S
  5165. 4140 V
  5166. (24166)210 648 A
  5167. (scale)210 1110 A
  5168. 1362(=)S
  5169. (rip->i_sp->s_log_zone_size;)1134 1446 A
  5170. 4230 V
  5171. (24167)210 648 A
  5172. 1110(if)S
  5173. ((scale)252 1236 A
  5174. 1530(==)S
  5175. 1656(0))S
  5176. (return;)294 1782 A
  5177. 4320 V
  5178. (24168)210 648 A
  5179. 4410 V
  5180. (24169)210 648 A
  5181. (zone_size)378 1110 A
  5182. 1530(=)S
  5183. ((zone_t))336 1614 A
  5184. (BLOCK_SIZE)420 1992 A
  5185. 2454(<<)S
  5186. (scale;)252 2580 A
  5187. 4500 V
  5188. (24170)210 648 A
  5189. 1110(if)S
  5190. ((flag)210 1236 A
  5191. 1488(==)S
  5192. 1614(1))S
  5193. (pos)126 1740 A
  5194. 1908(=)S
  5195. ((pos/zone_size))630 1992 A
  5196. 2664(*)S
  5197. (zone_size;)420 2748 A
  5198. 4590 V
  5199. (24171)210 648 A
  5200. (next)168 1110 A
  5201. 1320(=)S
  5202. (pos)126 1404 A
  5203. 1572(+)S
  5204. (BLOCK_SIZE)420 1656 A
  5205. 2118(-)S
  5206. 2202(1;)S
  5207. 4680 V
  5208. (24172)210 648 A
  5209. 4770 V
  5210. (24173)210 648 A
  5211. 1110(/*)S
  5212. 1236(If)S
  5213. ('pos')210 1362 A
  5214. 1614(is)S
  5215. 1740(in)S
  5216. (the)126 1866 A
  5217. (last)168 2034 A
  5218. (block)210 2244 A
  5219. 2496(of)S
  5220. 2622(a)S
  5221. (zone,)210 2706 A
  5222. 2958(do)S
  5223. (not)126 3084 A
  5224. (clear)210 3252 A
  5225. (the)126 3504 A
  5226. (zone.)210 3672 A
  5227. 3924(*/)S
  5228. 4860 V
  5229. (24174)210 648 A
  5230. 1110(if)S
  5231. ((next/zone_size)630 1236 A
  5232. 1908(!=)S
  5233. (pos/zone_size))588 2034 A
  5234. (return;)294 2664 A
  5235. 4950 V
  5236. (24175)210 648 A
  5237. 1110(if)S
  5238. 1236(()S
  5239. ((blo)168 1320 A
  5240. 1530(=)S
  5241. (read_map(rip,)546 1614 A
  5242. (next)))252 2202 A
  5243. 2496(==)S
  5244. (NO_BLOCK))378 2622 A
  5245. (return;)294 3042 A
  5246. 5040 V
  5247. (24176)210 648 A
  5248. (bhi)126 1110 A
  5249. 1278(=)S
  5250. 1362(()S
  5251. (((blo>>scale)+1))672 1488 A
  5252. 2202(<<)S
  5253. (scale))252 2328 A
  5254. 2706(-)S
  5255. 2790(1;)S
  5256. 5130 V
  5257. (24177)210 648 A
  5258. 5220 V
  5259. (24178)210 648 A
  5260. 1110(/*)S
  5261. (Clear)210 1236 A
  5262. (all)126 1488 A
  5263. (the)126 1656 A
  5264. (blocks)252 1824 A
  5265. (between)294 2118 A
  5266. ('blo')210 2454 A
  5267. (and)126 2706 A
  5268. ('bhi'.)252 2874 A
  5269. 3168(*/)S
  5270. 5310 V
  5271. (24179)210 648 A
  5272. (for)126 1110 A
  5273. 1278((b)S
  5274. 1404(=)S
  5275. (blo;)168 1488 A
  5276. 1698(b)S
  5277. 1782(<=)S
  5278. (bhi;)168 1908 A
  5279. (b++))168 2118 A
  5280. 2328({)S
  5281. 5400 V
  5282. (24180)210 648 A
  5283. 1362(bp)S
  5284. 1488(=)S
  5285. (get_block(rip->i_dev,)882 1572 A
  5286. 2496(b,)S
  5287. (NO_READ);)378 2622 A
  5288. 5490 V
  5289. (24181)210 648 A
  5290. (zero_block(bp);)630 1362 A
  5291. 5580 V
  5292. (24182)210 648 A
  5293. (put_block(bp,)546 1362 A
  5294. (FULL_DATA_BLOCK);)714 1950 A
  5295. 5670 V
  5296. (24183)210 648 A
  5297. 1110(})S
  5298. 5760 V
  5299. (24184)210 648 A
  5300. 1026(})S
  5301. 6030 V
  5302. (24187)210 648 A
  5303. (/*===========================================================================*)3276 1026 A
  5304. 6120 V
  5305. (24188)210 648 A
  5306. 1068(*)S
  5307. (new_block)378 2370 A
  5308. 4260(*)S
  5309. 6210 V
  5310. (24189)210 648 A
  5311. (*===========================================================================*/)3276 1068 A
  5312. 8418 V
  5313. EP
  5314. %%Page: 333 333
  5315. BP
  5316. /slant 0 def
  5317. /height 0 def
  5318. 630 V
  5319. 10 R
  5320. 648(MINIX)S
  5321. 976(SOURCE)S
  5322. 1399(CODE)S
  5323. 11 R
  5324. 2132(File:)S
  5325. 2365(src/fs/write.c)S
  5326. 12 B
  5327. (333)180 4248 A
  5328. 900 V
  5329. 7 LST
  5330. (24190)210 648 A
  5331. (PUBLIC)252 1026 A
  5332. (struct)252 1320 A
  5333. (buf)126 1614 A
  5334. (*new_block(rip,)630 1782 A
  5335. (position))378 2454 A
  5336. 990 V
  5337. (24191)210 648 A
  5338. (register)336 1026 A
  5339. (struct)252 1404 A
  5340. (inode)210 1698 A
  5341. (*rip;)210 1950 A
  5342. 2370(/*)S
  5343. (pointer)294 2496 A
  5344. 2832(to)S
  5345. (inode)210 2958 A
  5346. 3210(*/)S
  5347. 1080 V
  5348. (24192)210 648 A
  5349. (off_t)210 1026 A
  5350. (position;)378 1278 A
  5351. 2370(/*)S
  5352. (file)168 2496 A
  5353. (pointer)294 2706 A
  5354. 3042(*/)S
  5355. 1170 V
  5356. (24193)210 648 A
  5357. 1026({)S
  5358. 1260 V
  5359. (24194)210 648 A
  5360. 1026(/*)S
  5361. (Acquire)294 1152 A
  5362. 1488(a)S
  5363. (new)126 1572 A
  5364. (block)210 1740 A
  5365. (and)126 1992 A
  5366. (return)252 2160 A
  5367. 2454(a)S
  5368. (pointer)294 2538 A
  5369. 2874(to)S
  5370. (it.)126 3000 A
  5371. (Doing)210 3210 A
  5372. 3462(so)S
  5373. (may)126 3588 A
  5374. (require)294 3756 A
  5375. 1350 V
  5376. (24195)210 648 A
  5377. 1068(*)S
  5378. (allocating)420 1152 A
  5379. 1614(a)S
  5380. (complete)336 1698 A
  5381. (zone,)210 2076 A
  5382. (and)126 2328 A
  5383. (then)168 2496 A
  5384. (returning)378 2706 A
  5385. (the)126 3126 A
  5386. (initial)294 3294 A
  5387. (block.)252 3630 A
  5388. 1440 V
  5389. (24196)210 648 A
  5390. 1068(*)S
  5391. 1152(On)S
  5392. (the)126 1278 A
  5393. (other)210 1446 A
  5394. (hand,)210 1698 A
  5395. (the)126 1950 A
  5396. (current)294 2118 A
  5397. (zone)168 2454 A
  5398. (may)126 2664 A
  5399. (still)210 2832 A
  5400. (have)168 3084 A
  5401. (some)168 3294 A
  5402. (unused)252 3504 A
  5403. (blocks.)294 3798 A
  5404. 1530 V
  5405. (24197)210 648 A
  5406. 1068(*/)S
  5407. 1620 V
  5408. (24198)210 648 A
  5409. 1710 V
  5410. (24199)210 648 A
  5411. (register)336 1110 A
  5412. (struct)252 1488 A
  5413. (buf)126 1782 A
  5414. (*bp;)168 1950 A
  5415. 1800 V
  5416. (24200)210 648 A
  5417. (block_t)294 1110 A
  5418. 1446(b,)S
  5419. (base_block;)462 1572 A
  5420. 1890 V
  5421. (24201)210 648 A
  5422. (zone_t)252 1110 A
  5423. 1404(z;)S
  5424. 1980 V
  5425. (24202)210 648 A
  5426. (zone_t)252 1110 A
  5427. (zone_size;)420 1404 A
  5428. 2070 V
  5429. (24203)210 648 A
  5430. (int)126 1110 A
  5431. (scale,)252 1278 A
  5432. 1572(r;)S
  5433. 2160 V
  5434. (24204)210 648 A
  5435. (struct)252 1110 A
  5436. (super_block)462 1404 A
  5437. (*sp;)168 1908 A
  5438. 2250 V
  5439. (24205)210 648 A
  5440. 2340 V
  5441. (24206)210 648 A
  5442. 1110(/*)S
  5443. 1236(Is)S
  5444. (another)294 1362 A
  5445. (block)210 1698 A
  5446. (available)378 1950 A
  5447. 2370(in)S
  5448. (the)126 2496 A
  5449. (current)294 2664 A
  5450. (zone?)210 3000 A
  5451. 3252(*/)S
  5452. 2430 V
  5453. (24207)210 648 A
  5454. 1110(if)S
  5455. 1236(()S
  5456. 1320((b)S
  5457. 1446(=)S
  5458. (read_map(rip,)546 1530 A
  5459. (position)))420 2118 A
  5460. 2580(==)S
  5461. (NO_BLOCK))378 2706 A
  5462. 3126({)S
  5463. 2520 V
  5464. (24208)210 648 A
  5465. 1362(/*)S
  5466. (Choose)252 1488 A
  5467. (first)210 1782 A
  5468. (zone)168 2034 A
  5469. 2244(if)S
  5470. (possible.)378 2370 A
  5471. 2790(*/)S
  5472. 2610 V
  5473. (24209)210 648 A
  5474. 1362(/*)S
  5475. (Lose)168 1488 A
  5476. 1698(if)S
  5477. (the)126 1824 A
  5478. (file)168 1992 A
  5479. 2202(is)S
  5480. (nonempty)336 2328 A
  5481. (but)126 2706 A
  5482. (the)126 2874 A
  5483. (first)210 3042 A
  5484. (zone)168 3294 A
  5485. (number)252 3504 A
  5486. 3798(is)S
  5487. (NO_ZONE)294 3924 A
  5488. 2700 V
  5489. (24210)210 648 A
  5490. 1404(*)S
  5491. (corresponding)546 1488 A
  5492. 2076(to)S
  5493. 2202(a)S
  5494. (zone)168 2286 A
  5495. (full)168 2496 A
  5496. 2706(of)S
  5497. (zeros.)252 2832 A
  5498. 3168(It)S
  5499. (would)210 3294 A
  5500. 3546(be)S
  5501. (better)252 3672 A
  5502. 3966(to)S
  5503. 2790 V
  5504. (24211)210 648 A
  5505. 1404(*)S
  5506. (search)252 1488 A
  5507. (near)168 1782 A
  5508. (the)126 1992 A
  5509. (last)168 2160 A
  5510. (real)168 2370 A
  5511. (zone.)210 2580 A
  5512. 2880 V
  5513. (24212)210 648 A
  5514. 1404(*/)S
  5515. 2970 V
  5516. (24213)210 648 A
  5517. 1362(if)S
  5518. ((rip->i_zone[0])630 1488 A
  5519. 2160(==)S
  5520. (NO_ZONE))336 2286 A
  5521. 2664({)S
  5522. 3060 V
  5523. (24214)210 648 A
  5524. 1698(sp)S
  5525. 1824(=)S
  5526. (rip->i_sp;)420 1908 A
  5527. 3150 V
  5528. (24215)210 648 A
  5529. 1698(z)S
  5530. 1782(=)S
  5531. (sp->s_firstdatazone;)840 1866 A
  5532. 3240 V
  5533. (24216)210 648 A
  5534. 1362(})S
  5535. (else)168 1446 A
  5536. 1656({)S
  5537. 3330 V
  5538. (24217)210 648 A
  5539. 1698(z)S
  5540. 1782(=)S
  5541. (rip->i_zone[0];)630 1866 A
  5542. 2706(/*)S
  5543. (hunt)168 2832 A
  5544. (near)168 3042 A
  5545. (first)210 3252 A
  5546. (zone)168 3504 A
  5547. 3714(*/)S
  5548. 3420 V
  5549. (24218)210 648 A
  5550. 1362(})S
  5551. 3510 V
  5552. (24219)210 648 A
  5553. 1362(if)S
  5554. 1488(()S
  5555. 1572((z)S
  5556. 1698(=)S
  5557. (alloc_zone(rip->i_dev,)924 1782 A
  5558. (z)))126 2748 A
  5559. 2916(==)S
  5560. (NO_ZONE))336 3042 A
  5561. (return(NIL_BUF);)672 3420 A
  5562. 3600 V
  5563. (24220)210 648 A
  5564. 1362(if)S
  5565. 1488(()S
  5566. 1572((r)S
  5567. 1698(=)S
  5568. (write_map(rip,)588 1782 A
  5569. (position,)378 2412 A
  5570. (z)))126 2832 A
  5571. 3000(!=)S
  5572. (OK))126 3126 A
  5573. 3294({)S
  5574. 3690 V
  5575. (24221)210 648 A
  5576. (free_zone(rip->i_dev,)882 1698 A
  5577. (z);)126 2622 A
  5578. 3780 V
  5579. (24222)210 648 A
  5580. (err_code)336 1698 A
  5581. 2076(=)S
  5582. 2160(r;)S
  5583. 3870 V
  5584. (24223)210 648 A
  5585. (return(NIL_BUF);)672 1698 A
  5586. 3960 V
  5587. (24224)210 648 A
  5588. 1362(})S
  5589. 4050 V
  5590. (24225)210 648 A
  5591. 4140 V
  5592. (24226)210 648 A
  5593. 1362(/*)S
  5594. 1488(If)S
  5595. 1614(we)S
  5596. (are)126 1740 A
  5597. (not)126 1908 A
  5598. (writing)294 2076 A
  5599. 2412(at)S
  5600. (EOF,)168 2538 A
  5601. (clear)210 2748 A
  5602. (the)126 3000 A
  5603. (zone,)210 3168 A
  5604. (just)168 3420 A
  5605. 3630(to)S
  5606. 3756(be)S
  5607. (safe.)210 3882 A
  5608. 4134(*/)S
  5609. 4230 V
  5610. (24227)210 648 A
  5611. 1362(if)S
  5612. 1488(()S
  5613. (position)336 1572 A
  5614. 1950(!=)S
  5615. (rip->i_size))504 2076 A
  5616. (clear_zone(rip,)630 2622 A
  5617. (position,)378 3294 A
  5618. (1);)126 3714 A
  5619. 4320 V
  5620. (24228)210 648 A
  5621. (scale)210 1362 A
  5622. 1614(=)S
  5623. (rip->i_sp->s_log_zone_size;)1134 1698 A
  5624. 4410 V
  5625. (24229)210 648 A
  5626. (base_block)420 1362 A
  5627. 1824(=)S
  5628. ((block_t))378 1908 A
  5629. 2328(z)S
  5630. 2412(<<)S
  5631. (scale;)252 2538 A
  5632. 4500 V
  5633. (24230)210 648 A
  5634. (zone_size)378 1362 A
  5635. 1782(=)S
  5636. ((zone_t))336 1866 A
  5637. (BLOCK_SIZE)420 2244 A
  5638. 2706(<<)S
  5639. (scale;)252 2832 A
  5640. 4590 V
  5641. (24231)210 648 A
  5642. 1362(b)S
  5643. 1446(=)S
  5644. (base_block)420 1530 A
  5645. 1992(+)S
  5646. ((block_t)((position)798 2076 A
  5647. 2916(%)S
  5648. (zone_size)/BLOCK_SIZE);)966 3000 A
  5649. 4680 V
  5650. (24232)210 648 A
  5651. 1110(})S
  5652. 4770 V
  5653. (24233)210 648 A
  5654. 4860 V
  5655. (24234)210 648 A
  5656. 1110(bp)S
  5657. 1236(=)S
  5658. (get_block(rip->i_dev,)882 1320 A
  5659. 2244(b,)S
  5660. (NO_READ);)378 2370 A
  5661. 4950 V
  5662. (24235)210 648 A
  5663. (zero_block(bp);)630 1110 A
  5664. 5040 V
  5665. (24236)210 648 A
  5666. (return(bp);)462 1110 A
  5667. 5130 V
  5668. (24237)210 648 A
  5669. 1026(})S
  5670. 5400 V
  5671. (24240)210 648 A
  5672. (/*===========================================================================*)3276 1026 A
  5673. 5490 V
  5674. (24241)210 648 A
  5675. 1068(*)S
  5676. (zero_block)420 2370 A
  5677. 4260(*)S
  5678. 5580 V
  5679. (24242)210 648 A
  5680. (*===========================================================================*/)3276 1068 A
  5681. 5670 V
  5682. (24243)210 648 A
  5683. (PUBLIC)252 1026 A
  5684. (void)168 1320 A
  5685. (zero_block(bp))588 1530 A
  5686. 5760 V
  5687. (24244)210 648 A
  5688. (register)336 1026 A
  5689. (struct)252 1404 A
  5690. (buf)126 1698 A
  5691. (*bp;)168 1866 A
  5692. 2370(/*)S
  5693. (pointer)294 2496 A
  5694. 2832(to)S
  5695. (buffer)252 2958 A
  5696. 3252(to)S
  5697. (zero)168 3378 A
  5698. 3588(*/)S
  5699. 5850 V
  5700. (24245)210 648 A
  5701. 1026({)S
  5702. 5940 V
  5703. (24246)210 648 A
  5704. 1026(/*)S
  5705. (Zero)168 1152 A
  5706. 1362(a)S
  5707. (block.)252 1446 A
  5708. 1740(*/)S
  5709. 6030 V
  5710. (24247)210 648 A
  5711. 6120 V
  5712. (24248)210 648 A
  5713. (memset(bp->b_data,)756 1110 A
  5714. 1908(0,)S
  5715. (BLOCK_SIZE);)504 2034 A
  5716. 6210 V
  5717. (24249)210 648 A
  5718. (bp->b_dirt)420 1110 A
  5719. 1572(=)S
  5720. (DIRTY;)252 1656 A
  5721. 8418 V
  5722. EP
  5723. %%Page: 334 334
  5724. BP
  5725. /slant 0 def
  5726. /height 0 def
  5727. 630 V
  5728. 12 B
  5729. (334)180 648 A
  5730. 11 R
  5731. 2132(File:)S
  5732. 2365(src/fs/write.c)S
  5733. 10 R
  5734. 3402(MINIX)S
  5735. 3730(SOURCE)S
  5736. 4153(CODE)S
  5737. 900 V
  5738. 7 LST
  5739. (24250)210 648 A
  5740. 1026(})S
  5741. 1440 V
  5742. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  5743. 1530 V
  5744. (src/fs/pipe.c)546 2034 A
  5745. 1620 V
  5746. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  5747. 1800 V
  5748. (24300)210 648 A
  5749. 1026(/*)S
  5750. (This)168 1152 A
  5751. (file)168 1362 A
  5752. (deals)210 1572 A
  5753. (with)168 1824 A
  5754. (the)126 2034 A
  5755. (suspension)420 2202 A
  5756. (and)126 2664 A
  5757. (revival)294 2832 A
  5758. 3168(of)S
  5759. (processes.)420 3294 A
  5760. 3798(A)S
  5761. (process)294 3882 A
  5762. (can)126 4218 A
  5763. 1890 V
  5764. (24301)210 648 A
  5765. 1068(*)S
  5766. 1152(be)S
  5767. (suspended)378 1278 A
  5768. (because)294 1698 A
  5769. 2034(it)S
  5770. (wants)210 2160 A
  5771. 2412(to)S
  5772. (read)168 2538 A
  5773. 2748(or)S
  5774. (write)210 2874 A
  5775. (from)168 3126 A
  5776. 3336(a)S
  5777. (pipe)168 3420 A
  5778. (and)126 3630 A
  5779. (can't,)252 3798 A
  5780. 4092(or)S
  5781. 1980 V
  5782. (24302)210 648 A
  5783. 1068(*)S
  5784. (because)294 1152 A
  5785. 1488(it)S
  5786. (wants)210 1614 A
  5787. 1866(to)S
  5788. (read)168 1992 A
  5789. 2202(or)S
  5790. (write)210 2328 A
  5791. (from)168 2580 A
  5792. 2790(a)S
  5793. (special)294 2874 A
  5794. (file)168 3210 A
  5795. (and)126 3420 A
  5796. (can't.)252 3588 A
  5797. (When)168 3924 A
  5798. 4134(a)S
  5799. 2070 V
  5800. (24303)210 648 A
  5801. 1068(*)S
  5802. (process)294 1152 A
  5803. (can't)210 1488 A
  5804. (continue)336 1740 A
  5805. 2118(it)S
  5806. 2244(is)S
  5807. (suspended,)420 2370 A
  5808. (and)126 2832 A
  5809. (revived)294 3000 A
  5810. (later)210 3336 A
  5811. (when)168 3588 A
  5812. 3798(it)S
  5813. 3924(is)S
  5814. (able)168 4050 A
  5815. 2160 V
  5816. (24304)210 648 A
  5817. 1068(*)S
  5818. 1152(to)S
  5819. (continue.)378 1278 A
  5820. 2250 V
  5821. (24305)210 648 A
  5822. 1068(*)S
  5823. 2340 V
  5824. (24306)210 648 A
  5825. 1068(*)S
  5826. (The)126 1152 A
  5827. (entry)210 1320 A
  5828. (points)252 1572 A
  5829. (into)168 1866 A
  5830. (this)168 2076 A
  5831. (file)168 2286 A
  5832. (are)126 2496 A
  5833. 2430 V
  5834. (24307)210 648 A
  5835. 1068(*)S
  5836. (do_pipe:)336 1236 A
  5837. (perform)294 1782 A
  5838. (the)126 2118 A
  5839. (PIPE)168 2286 A
  5840. (system)252 2496 A
  5841. (call)168 2790 A
  5842. 2520 V
  5843. (24308)210 648 A
  5844. 1068(*)S
  5845. (pipe_check:)462 1236 A
  5846. (check)210 1782 A
  5847. 2034(to)S
  5848. (see)126 2160 A
  5849. (that)168 2328 A
  5850. 2538(a)S
  5851. (read)168 2622 A
  5852. 2832(or)S
  5853. (write)210 2958 A
  5854. 3210(on)S
  5855. 3336(a)S
  5856. (pipe)168 3420 A
  5857. 3630(is)S
  5858. (feasible)336 3756 A
  5859. (now)126 4134 A
  5860. 2610 V
  5861. (24309)210 648 A
  5862. 1068(*)S
  5863. (suspend:)336 1236 A
  5864. (suspend)294 1782 A
  5865. 2118(a)S
  5866. (process)294 2202 A
  5867. (that)168 2538 A
  5868. (cannot)252 2748 A
  5869. 3042(do)S
  5870. 3168(a)S
  5871. (requested)378 3252 A
  5872. (read)168 3672 A
  5873. 3882(or)S
  5874. (write)210 4008 A
  5875. 2700 V
  5876. (24310)210 648 A
  5877. 1068(*)S
  5878. (release:)336 1236 A
  5879. (check)210 1782 A
  5880. 2034(to)S
  5881. (see)126 2160 A
  5882. 2328(if)S
  5883. 2454(a)S
  5884. (suspended)378 2538 A
  5885. (process)294 2958 A
  5886. (can)126 3294 A
  5887. 3462(be)S
  5888. (released)336 3588 A
  5889. (and)126 3966 A
  5890. 4134(do)S
  5891. 4260(it)S
  5892. 2790 V
  5893. (24311)210 648 A
  5894. 1068(*)S
  5895. (revive:)294 1236 A
  5896. (mark)168 1782 A
  5897. 1992(a)S
  5898. (suspended)378 2076 A
  5899. (process)294 2496 A
  5900. 2832(as)S
  5901. (able)168 2958 A
  5902. 3168(to)S
  5903. (run)126 3294 A
  5904. (again)210 3462 A
  5905. 2880 V
  5906. (24312)210 648 A
  5907. 1068(*)S
  5908. (do_unpause:)462 1236 A
  5909. 1782(a)S
  5910. (signal)252 1866 A
  5911. (has)126 2160 A
  5912. (been)168 2328 A
  5913. (sent)168 2538 A
  5914. 2748(to)S
  5915. 2874(a)S
  5916. (process;)336 2958 A
  5917. (see)126 3336 A
  5918. 3504(if)S
  5919. 3630(it)S
  5920. (suspended)378 3756 A
  5921. 2970 V
  5922. (24313)210 648 A
  5923. 1068(*/)S
  5924. 3060 V
  5925. (24314)210 648 A
  5926. 3150 V
  5927. (24315)210 648 A
  5928. (#include)336 1026 A
  5929. ("fs.h")252 1404 A
  5930. 3240 V
  5931. (24316)210 648 A
  5932. (#include)336 1026 A
  5933. (<fcntl.h>)378 1404 A
  5934. 3330 V
  5935. (24317)210 648 A
  5936. (#include)336 1026 A
  5937. (<signal.h>)420 1404 A
  5938. 3420 V
  5939. (24318)210 648 A
  5940. (#include)336 1026 A
  5941. (<minix/boot.h>)588 1404 A
  5942. 3510 V
  5943. (24319)210 648 A
  5944. (#include)336 1026 A
  5945. (<minix/callnr.h>)672 1404 A
  5946. 3600 V
  5947. (24320)210 648 A
  5948. (#include)336 1026 A
  5949. (<minix/com.h>)546 1404 A
  5950. 3690 V
  5951. (24321)210 648 A
  5952. (#include)336 1026 A
  5953. ("dev.h")294 1404 A
  5954. 3780 V
  5955. (24322)210 648 A
  5956. (#include)336 1026 A
  5957. ("file.h")336 1404 A
  5958. 3870 V
  5959. (24323)210 648 A
  5960. (#include)336 1026 A
  5961. ("fproc.h")378 1404 A
  5962. 3960 V
  5963. (24324)210 648 A
  5964. (#include)336 1026 A
  5965. ("inode.h")378 1404 A
  5966. 4050 V
  5967. (24325)210 648 A
  5968. (#include)336 1026 A
  5969. ("param.h")378 1404 A
  5970. 4140 V
  5971. (24326)210 648 A
  5972. 4230 V
  5973. (24327)210 648 A
  5974. (PRIVATE)294 1026 A
  5975. (message)294 1362 A
  5976. (mess;)210 1698 A
  5977. 4320 V
  5978. (24328)210 648 A
  5979. 4410 V
  5980. (24329)210 648 A
  5981. (/*===========================================================================*)3276 1026 A
  5982. 4500 V
  5983. (24330)210 648 A
  5984. 1068(*)S
  5985. (do_pipe)294 2370 A
  5986. 4260(*)S
  5987. 4590 V
  5988. (24331)210 648 A
  5989. (*===========================================================================*/)3276 1068 A
  5990. 4680 V
  5991. (24332)210 648 A
  5992. (PUBLIC)252 1026 A
  5993. (int)126 1320 A
  5994. (do_pipe())378 1488 A
  5995. 4770 V
  5996. (24333)210 648 A
  5997. 1026({)S
  5998. 4860 V
  5999. (24334)210 648 A
  6000. 1026(/*)S
  6001. (Perform)294 1152 A
  6002. (the)126 1488 A
  6003. (pipe(fil_des))546 1656 A
  6004. (system)252 2244 A
  6005. (call.)210 2538 A
  6006. 2790(*/)S
  6007. 4950 V
  6008. (24335)210 648 A
  6009. 5040 V
  6010. (24336)210 648 A
  6011. (register)336 1110 A
  6012. (struct)252 1488 A
  6013. (fproc)210 1782 A
  6014. (*rfp;)210 2034 A
  6015. 5130 V
  6016. (24337)210 648 A
  6017. (register)336 1110 A
  6018. (struct)252 1488 A
  6019. (inode)210 1782 A
  6020. (*rip;)210 2034 A
  6021. 5220 V
  6022. (24338)210 648 A
  6023. (int)126 1110 A
  6024. 1278(r;)S
  6025. 5310 V
  6026. (24339)210 648 A
  6027. (struct)252 1110 A
  6028. (filp)168 1404 A
  6029. (*fil_ptr0,)420 1614 A
  6030. (*fil_ptr1;)420 2076 A
  6031. 5400 V
  6032. (24340)210 648 A
  6033. (int)126 1110 A
  6034. (fil_des[2];)462 1278 A
  6035. 2370(/*)S
  6036. (reply)210 2496 A
  6037. (goes)168 2748 A
  6038. (here)168 2958 A
  6039. 3168(*/)S
  6040. 5490 V
  6041. (24341)210 648 A
  6042. 5580 V
  6043. (24342)210 648 A
  6044. 1110(/*)S
  6045. (Acquire)294 1236 A
  6046. (two)126 1572 A
  6047. (file)168 1740 A
  6048. (descriptors.)504 1950 A
  6049. 2496(*/)S
  6050. 5670 V
  6051. (24343)210 648 A
  6052. (rfp)126 1110 A
  6053. 1278(=)S
  6054. (fp;)126 1362 A
  6055. 5760 V
  6056. (24344)210 648 A
  6057. 1110(if)S
  6058. 1236(()S
  6059. 1320((r)S
  6060. 1446(=)S
  6061. (get_fd(0,)378 1530 A
  6062. (R_BIT,)252 1950 A
  6063. (&fil_des[0],)504 2244 A
  6064. (&fil_ptr0)))462 2790 A
  6065. 3294(!=)S
  6066. (OK))126 3420 A
  6067. (return(r);)420 3588 A
  6068. 5850 V
  6069. (24345)210 648 A
  6070. (rfp->fp_filp[fil_des[0]])1008 1110 A
  6071. 2160(=)S
  6072. (fil_ptr0;)378 2244 A
  6073. 5940 V
  6074. (24346)210 648 A
  6075. (fil_ptr0->filp_count)840 1110 A
  6076. 1992(=)S
  6077. 2076(1;)S
  6078. 6030 V
  6079. (24347)210 648 A
  6080. 1110(if)S
  6081. 1236(()S
  6082. 1320((r)S
  6083. 1446(=)S
  6084. (get_fd(0,)378 1530 A
  6085. (W_BIT,)252 1950 A
  6086. (&fil_des[1],)504 2244 A
  6087. (&fil_ptr1)))462 2790 A
  6088. 3294(!=)S
  6089. (OK))126 3420 A
  6090. 3588({)S
  6091. 6120 V
  6092. (24348)210 648 A
  6093. (rfp->fp_filp[fil_des[0]])1008 1362 A
  6094. 2412(=)S
  6095. (NIL_FILP;)378 2496 A
  6096. 6210 V
  6097. (24349)210 648 A
  6098. (fil_ptr0->filp_count)840 1362 A
  6099. 2244(=)S
  6100. 2328(0;)S
  6101. 8418 V
  6102. EP
  6103. %%Page: 335 335
  6104. BP
  6105. /slant 0 def
  6106. /height 0 def
  6107. 630 V
  6108. 10 R
  6109. 648(MINIX)S
  6110. 976(SOURCE)S
  6111. 1399(CODE)S
  6112. 11 R
  6113. 2151(File:)S
  6114. 2384(src/fs/pipe.c)S
  6115. 12 B
  6116. (335)180 4248 A
  6117. 900 V
  6118. 7 LST
  6119. (24350)210 648 A
  6120. (return(r);)420 1362 A
  6121. 990 V
  6122. (24351)210 648 A
  6123. 1110(})S
  6124. 1080 V
  6125. (24352)210 648 A
  6126. (rfp->fp_filp[fil_des[1]])1008 1110 A
  6127. 2160(=)S
  6128. (fil_ptr1;)378 2244 A
  6129. 1170 V
  6130. (24353)210 648 A
  6131. (fil_ptr1->filp_count)840 1110 A
  6132. 1992(=)S
  6133. 2076(1;)S
  6134. 1260 V
  6135. (24354)210 648 A
  6136. 1350 V
  6137. (24355)210 648 A
  6138. 1110(/*)S
  6139. (Make)168 1236 A
  6140. (the)126 1446 A
  6141. (inode)210 1614 A
  6142. 1866(on)S
  6143. (the)126 1992 A
  6144. (pipe)168 2160 A
  6145. (device.)294 2370 A
  6146. 2706(*/)S
  6147. 1440 V
  6148. (24356)210 648 A
  6149. 1110(if)S
  6150. 1236(()S
  6151. ((rip)168 1320 A
  6152. 1530(=)S
  6153. (alloc_inode(PIPE_DEV,)882 1614 A
  6154. (I_REGULAR))420 2538 A
  6155. 3000())S
  6156. 3084(==)S
  6157. (NIL_INODE))420 3210 A
  6158. 3672({)S
  6159. 1530 V
  6160. (24357)210 648 A
  6161. (rfp->fp_filp[fil_des[0]])1008 1362 A
  6162. 2412(=)S
  6163. (NIL_FILP;)378 2496 A
  6164. 1620 V
  6165. (24358)210 648 A
  6166. (fil_ptr0->filp_count)840 1362 A
  6167. 2244(=)S
  6168. 2328(0;)S
  6169. 1710 V
  6170. (24359)210 648 A
  6171. (rfp->fp_filp[fil_des[1]])1008 1362 A
  6172. 2412(=)S
  6173. (NIL_FILP;)378 2496 A
  6174. 1800 V
  6175. (24360)210 648 A
  6176. (fil_ptr1->filp_count)840 1362 A
  6177. 2244(=)S
  6178. 2328(0;)S
  6179. 1890 V
  6180. (24361)210 648 A
  6181. (return(err_code);)714 1362 A
  6182. 1980 V
  6183. (24362)210 648 A
  6184. 1110(})S
  6185. 2070 V
  6186. (24363)210 648 A
  6187. 2160 V
  6188. (24364)210 648 A
  6189. 1110(if)S
  6190. ((read_only(rip))630 1236 A
  6191. 1908(!=)S
  6192. (OK))126 2034 A
  6193. (panic("pipe)462 2202 A
  6194. (device)252 2706 A
  6195. 3000(is)S
  6196. (read)168 3126 A
  6197. (only",)252 3336 A
  6198. (NO_NUM);)336 3630 A
  6199. 2250 V
  6200. (24365)210 648 A
  6201. 2340 V
  6202. (24366)210 648 A
  6203. (rip->i_pipe)462 1110 A
  6204. 1614(=)S
  6205. (I_PIPE;)294 1698 A
  6206. 2430 V
  6207. (24367)210 648 A
  6208. (rip->i_mode)462 1110 A
  6209. 1614(&=)S
  6210. (304I_REGULAR;)462 1740 A
  6211. 2520 V
  6212. (24368)210 648 A
  6213. (rip->i_mode)462 1110 A
  6214. 1614(|=)S
  6215. (I_NAMED_PIPE;)546 1740 A
  6216. 2370(/*)S
  6217. (pipes)210 2496 A
  6218. (and)126 2748 A
  6219. (FIFOs)210 2916 A
  6220. (have)168 3168 A
  6221. (this)168 3378 A
  6222. (bit)126 3588 A
  6223. (set)126 3756 A
  6224. 3924(*/)S
  6225. 2610 V
  6226. (24369)210 648 A
  6227. (fil_ptr0->filp_ino)756 1110 A
  6228. 1908(=)S
  6229. (rip;)168 1992 A
  6230. 2700 V
  6231. (24370)210 648 A
  6232. (fil_ptr0->filp_flags)840 1110 A
  6233. 1992(=)S
  6234. (O_RDONLY;)378 2076 A
  6235. 2790 V
  6236. (24371)210 648 A
  6237. (dup_inode(rip);)630 1110 A
  6238. 2370(/*)S
  6239. (for)126 2496 A
  6240. (double)252 2664 A
  6241. (usage)210 2958 A
  6242. 3210(*/)S
  6243. 2880 V
  6244. (24372)210 648 A
  6245. (fil_ptr1->filp_ino)756 1110 A
  6246. 1908(=)S
  6247. (rip;)168 1992 A
  6248. 2970 V
  6249. (24373)210 648 A
  6250. (fil_ptr1->filp_flags)840 1110 A
  6251. 1992(=)S
  6252. (O_WRONLY;)378 2076 A
  6253. 3060 V
  6254. (24374)210 648 A
  6255. (rw_inode(rip,)546 1110 A
  6256. (WRITING);)378 1698 A
  6257. 2370(/*)S
  6258. (mark)168 2496 A
  6259. (inode)210 2706 A
  6260. 2958(as)S
  6261. (allocated)378 3084 A
  6262. 3504(*/)S
  6263. 3150 V
  6264. (24375)210 648 A
  6265. (reply_i1)336 1110 A
  6266. 1488(=)S
  6267. (fil_des[0];)462 1572 A
  6268. 3240 V
  6269. (24376)210 648 A
  6270. (reply_i2)336 1110 A
  6271. 1488(=)S
  6272. (fil_des[1];)462 1572 A
  6273. 3330 V
  6274. (24377)210 648 A
  6275. (rip->i_update)546 1110 A
  6276. 1698(=)S
  6277. (ATIME)210 1782 A
  6278. 2034(|)S
  6279. (CTIME)210 2118 A
  6280. 2370(|)S
  6281. (MTIME;)252 2454 A
  6282. 3420 V
  6283. (24378)210 648 A
  6284. (return(OK);)462 1110 A
  6285. 3510 V
  6286. (24379)210 648 A
  6287. 1026(})S
  6288. 3780 V
  6289. (24382)210 648 A
  6290. (/*===========================================================================*)3276 1026 A
  6291. 3870 V
  6292. (24383)210 648 A
  6293. 1068(*)S
  6294. (pipe_check)420 2370 A
  6295. 4260(*)S
  6296. 3960 V
  6297. (24384)210 648 A
  6298. (*===========================================================================*/)3276 1068 A
  6299. 4050 V
  6300. (24385)210 648 A
  6301. (PUBLIC)252 1026 A
  6302. (int)126 1320 A
  6303. (pipe_check(rip,)630 1488 A
  6304. (rw_flag,)336 2160 A
  6305. (oflags,)294 2538 A
  6306. (bytes,)252 2874 A
  6307. (position,)378 3168 A
  6308. (canwrite))378 3588 A
  6309. 4140 V
  6310. (24386)210 648 A
  6311. (register)336 1026 A
  6312. (struct)252 1404 A
  6313. (inode)210 1698 A
  6314. (*rip;)210 1950 A
  6315. 2370(/*)S
  6316. (the)126 2496 A
  6317. (inode)210 2664 A
  6318. 2916(of)S
  6319. (the)126 3042 A
  6320. (pipe)168 3210 A
  6321. 3420(*/)S
  6322. 4230 V
  6323. (24387)210 648 A
  6324. (int)126 1026 A
  6325. (rw_flag;)336 1194 A
  6326. 2370(/*)S
  6327. (READING)294 2496 A
  6328. 2832(or)S
  6329. (WRITING)294 2958 A
  6330. 3294(*/)S
  6331. 4320 V
  6332. (24388)210 648 A
  6333. (int)126 1026 A
  6334. (oflags;)294 1194 A
  6335. 2370(/*)S
  6336. (flags)210 2496 A
  6337. (set)126 2748 A
  6338. 2916(by)S
  6339. (open)168 3042 A
  6340. 3252(or)S
  6341. (fcntl)210 3378 A
  6342. 3630(*/)S
  6343. 4410 V
  6344. (24389)210 648 A
  6345. (register)336 1026 A
  6346. (int)126 1404 A
  6347. (bytes;)252 1572 A
  6348. 2370(/*)S
  6349. (bytes)210 2496 A
  6350. 2748(to)S
  6351. 2874(be)S
  6352. (read)168 3000 A
  6353. 3210(or)S
  6354. (written)294 3336 A
  6355. ((all)168 3672 A
  6356. (chunks))294 3882 A
  6357. 4218(*/)S
  6358. 4500 V
  6359. (24390)210 648 A
  6360. (register)336 1026 A
  6361. (off_t)210 1404 A
  6362. (position;)378 1656 A
  6363. 2370(/*)S
  6364. (current)294 2496 A
  6365. (file)168 2832 A
  6366. (position)336 3042 A
  6367. 3420(*/)S
  6368. 4590 V
  6369. (24391)210 648 A
  6370. (int)126 1026 A
  6371. (*canwrite;)420 1194 A
  6372. 2370(/*)S
  6373. (return:)294 2496 A
  6374. (number)252 2832 A
  6375. 3126(of)S
  6376. (bytes)210 3252 A
  6377. 3504(we)S
  6378. (can)126 3630 A
  6379. (write)210 3798 A
  6380. 4050(*/)S
  6381. 4680 V
  6382. (24392)210 648 A
  6383. 1026({)S
  6384. 4770 V
  6385. (24393)210 648 A
  6386. 1026(/*)S
  6387. (Pipes)210 1152 A
  6388. (are)126 1404 A
  6389. 1572(a)S
  6390. (little)252 1656 A
  6391. (different.)420 1950 A
  6392. 2454(If)S
  6393. 2580(a)S
  6394. (process)294 2664 A
  6395. (reads)210 3000 A
  6396. (from)168 3252 A
  6397. 3462(an)S
  6398. (empty)210 3588 A
  6399. (pipe)168 3840 A
  6400. (for)126 4050 A
  6401. 4860 V
  6402. (24394)210 648 A
  6403. 1068(*)S
  6404. (which)210 1152 A
  6405. 1404(a)S
  6406. (writer)252 1488 A
  6407. (still)210 1782 A
  6408. (exists,)294 2034 A
  6409. (suspend)294 2370 A
  6410. (the)126 2706 A
  6411. (reader.)294 2874 A
  6412. 3252(If)S
  6413. (the)126 3378 A
  6414. (pipe)168 3546 A
  6415. 3756(is)S
  6416. (empty)210 3882 A
  6417. 4950 V
  6418. (24395)210 648 A
  6419. 1068(*)S
  6420. (and)126 1152 A
  6421. (there)210 1320 A
  6422. 1572(is)S
  6423. 1698(no)S
  6424. (writer,)294 1824 A
  6425. (return)252 2160 A
  6426. 2454(0)S
  6427. (bytes.)252 2538 A
  6428. 2874(If)S
  6429. 3000(a)S
  6430. (process)294 3084 A
  6431. 3420(is)S
  6432. (writing)294 3546 A
  6433. 3882(to)S
  6434. 4008(a)S
  6435. 5040 V
  6436. (24396)210 648 A
  6437. 1068(*)S
  6438. (pipe)168 1152 A
  6439. (and)126 1362 A
  6440. 1530(no)S
  6441. (one)126 1656 A
  6442. 1824(is)S
  6443. (reading)294 1950 A
  6444. (from)168 2286 A
  6445. (it,)126 2496 A
  6446. (give)168 2664 A
  6447. 2874(a)S
  6448. (broken)252 2958 A
  6449. (pipe)168 3252 A
  6450. (error.)252 3462 A
  6451. 5130 V
  6452. (24397)210 648 A
  6453. 1068(*/)S
  6454. 5220 V
  6455. (24398)210 648 A
  6456. 5310 V
  6457. (24399)210 648 A
  6458. (int)126 1110 A
  6459. 1278(r)S
  6460. 1362(=)S
  6461. 1446(0;)S
  6462. 5400 V
  6463. (24400)210 648 A
  6464. 5490 V
  6465. (24401)210 648 A
  6466. 1110(/*)S
  6467. 1236(If)S
  6468. (reading,)336 1362 A
  6469. (check)210 1740 A
  6470. (for)126 1992 A
  6471. (empty)210 2160 A
  6472. (pipe.)210 2412 A
  6473. 2664(*/)S
  6474. 5580 V
  6475. (24402)210 648 A
  6476. 1110(if)S
  6477. ((rw_flag)336 1236 A
  6478. 1614(==)S
  6479. (READING))336 1740 A
  6480. 2118({)S
  6481. 5670 V
  6482. (24403)210 648 A
  6483. 1362(if)S
  6484. ((position)378 1488 A
  6485. 1908(>=)S
  6486. (rip->i_size))504 2034 A
  6487. 2580({)S
  6488. 5760 V
  6489. (24404)210 648 A
  6490. 1698(/*)S
  6491. (Process)294 1824 A
  6492. 2160(is)S
  6493. (reading)294 2286 A
  6494. (from)168 2622 A
  6495. 2832(an)S
  6496. (empty)210 2958 A
  6497. (pipe.)210 3210 A
  6498. 3462(*/)S
  6499. 5850 V
  6500. (24405)210 648 A
  6501. 1698(if)S
  6502. ((find_filp(rip,)630 1824 A
  6503. (W_BIT))252 2496 A
  6504. 2790(!=)S
  6505. (NIL_FILP))378 2916 A
  6506. 3336({)S
  6507. 5940 V
  6508. (24406)210 648 A
  6509. 2034(/*)S
  6510. (Writer)252 2160 A
  6511. (exists)252 2454 A
  6512. 2748(*/)S
  6513. 6030 V
  6514. (24407)210 648 A
  6515. 2034(if)S
  6516. ((oflags)294 2160 A
  6517. 2496(&)S
  6518. (O_NONBLOCK))462 2580 A
  6519. 6120 V
  6520. (24408)210 648 A
  6521. 2370(r)S
  6522. 2454(=)S
  6523. (EAGAIN;)294 2538 A
  6524. 6210 V
  6525. (24409)210 648 A
  6526. (else)168 2034 A
  6527. 8418 V
  6528. EP
  6529. %%Page: 336 336
  6530. BP
  6531. /slant 0 def
  6532. /height 0 def
  6533. 630 V
  6534. 12 B
  6535. (336)180 648 A
  6536. 11 R
  6537. 2151(File:)S
  6538. 2384(src/fs/pipe.c)S
  6539. 10 R
  6540. 3402(MINIX)S
  6541. 3730(SOURCE)S
  6542. 4153(CODE)S
  6543. 900 V
  6544. 7 LST
  6545. (24410)210 648 A
  6546. (suspend(XPIPE);)630 2370 A
  6547. 3042(/*)S
  6548. (block)210 3168 A
  6549. (reader)252 3420 A
  6550. 3714(*/)S
  6551. 990 V
  6552. (24411)210 648 A
  6553. 1080 V
  6554. (24412)210 648 A
  6555. 2034(/*)S
  6556. 2160(If)S
  6557. (need)168 2286 A
  6558. (be,)126 2496 A
  6559. (activate)336 2664 A
  6560. (sleeping)336 3042 A
  6561. (writers.)336 3420 A
  6562. 3798(*/)S
  6563. 1170 V
  6564. (24413)210 648 A
  6565. 2034(if)S
  6566. ((susp_count)462 2160 A
  6567. 2664(>)S
  6568. 2748(0))S
  6569. (release(rip,)504 2874 A
  6570. (WRITE,)252 3420 A
  6571. (susp_count);)504 3714 A
  6572. 1260 V
  6573. (24414)210 648 A
  6574. 1698(})S
  6575. 1350 V
  6576. (24415)210 648 A
  6577. (return(r);)420 1698 A
  6578. 1440 V
  6579. (24416)210 648 A
  6580. 1362(})S
  6581. 1530 V
  6582. (24417)210 648 A
  6583. 1110(})S
  6584. (else)168 1194 A
  6585. 1404({)S
  6586. 1620 V
  6587. (24418)210 648 A
  6588. 1362(/*)S
  6589. (Process)294 1488 A
  6590. 1824(is)S
  6591. (writing)294 1950 A
  6592. 2286(to)S
  6593. 2412(a)S
  6594. (pipe.)210 2496 A
  6595. 2748(*/)S
  6596. 1710 V
  6597. (24419)210 648 A
  6598. 1026(/*)S
  6599. 1362(if)S
  6600. ((bytes)252 1488 A
  6601. 1782(>)S
  6602. (PIPE_SIZE))420 1866 A
  6603. (return(EFBIG);)588 2328 A
  6604. 2958(*/)S
  6605. 1800 V
  6606. (24420)210 648 A
  6607. 1362(if)S
  6608. ((find_filp(rip,)630 1488 A
  6609. (R_BIT))252 2160 A
  6610. 2454(==)S
  6611. (NIL_FILP))378 2580 A
  6612. 3000({)S
  6613. 1890 V
  6614. (24421)210 648 A
  6615. 1698(/*)S
  6616. (Tell)168 1824 A
  6617. (kernel)252 2034 A
  6618. 2328(to)S
  6619. (generate)336 2454 A
  6620. 2832(a)S
  6621. (SIGPIPE)294 2916 A
  6622. (signal.)294 3252 A
  6623. 3588(*/)S
  6624. 1980 V
  6625. (24422)210 648 A
  6626. (sys_kill((int)(fp)714 1698 A
  6627. 2454(-)S
  6628. (fproc),)294 2538 A
  6629. (SIGPIPE);)378 2874 A
  6630. 2070 V
  6631. (24423)210 648 A
  6632. (return(EPIPE);)588 1698 A
  6633. 2160 V
  6634. (24424)210 648 A
  6635. 1362(})S
  6636. 2250 V
  6637. (24425)210 648 A
  6638. 2340 V
  6639. (24426)210 648 A
  6640. 1362(if)S
  6641. ((position)378 1488 A
  6642. 1908(+)S
  6643. (bytes)210 1992 A
  6644. 2244(>)S
  6645. (PIPE_SIZE))420 2328 A
  6646. 2790({)S
  6647. 2430 V
  6648. (24427)210 648 A
  6649. 1698(if)S
  6650. (((oflags)336 1824 A
  6651. 2202(&)S
  6652. (O_NONBLOCK))462 2286 A
  6653. 2790(&&)S
  6654. (bytes)210 2916 A
  6655. 3168(<)S
  6656. (PIPE_SIZE))420 3252 A
  6657. 2520 V
  6658. (24428)210 648 A
  6659. (return(EAGAIN);)630 2034 A
  6660. 2610 V
  6661. (24429)210 648 A
  6662. (else)168 1698 A
  6663. 1908(if)S
  6664. (((oflags)336 2034 A
  6665. 2412(&)S
  6666. (O_NONBLOCK))462 2496 A
  6667. 3000(&&)S
  6668. (bytes)210 3126 A
  6669. 3378(>)S
  6670. (PIPE_SIZE))420 3462 A
  6671. 3924({)S
  6672. 2700 V
  6673. (24430)210 648 A
  6674. 2034(if)S
  6675. 2160(()S
  6676. ((*canwrite)420 2244 A
  6677. 2706(=)S
  6678. ((PIPE_SIZE)420 2790 A
  6679. 3252(-)S
  6680. (position)))420 3336 A
  6681. 3798(>)S
  6682. 3882(0))S
  6683. 4050({)S
  6684. 2790 V
  6685. (24431)210 648 A
  6686. 2370(/*)S
  6687. 2496(Do)S
  6688. 2622(a)S
  6689. (partial)294 2706 A
  6690. (write.)252 3042 A
  6691. (Need)168 3336 A
  6692. 3546(to)S
  6693. (wakeup)252 3672 A
  6694. (reader)252 3966 A
  6695. 4260(*/)S
  6696. 2880 V
  6697. (24432)210 648 A
  6698. (release(rip,)504 2370 A
  6699. (READ,)210 2916 A
  6700. (susp_count);)504 3168 A
  6701. 2970 V
  6702. (24433)210 648 A
  6703. (return(1);)420 2370 A
  6704. 3060 V
  6705. (24434)210 648 A
  6706. 2034(})S
  6707. (else)168 2118 A
  6708. 2328({)S
  6709. 3150 V
  6710. (24435)210 648 A
  6711. (return(EAGAIN);)630 2370 A
  6712. 3240 V
  6713. (24436)210 648 A
  6714. 2034(})S
  6715. 3330 V
  6716. (24437)210 648 A
  6717. 1908(})S
  6718. 3420 V
  6719. (24438)210 648 A
  6720. 1698(if)S
  6721. ((bytes)252 1824 A
  6722. 2118(>)S
  6723. (PIPE_SIZE))420 2202 A
  6724. 2664({)S
  6725. 3510 V
  6726. (24439)210 648 A
  6727. 2034(if)S
  6728. (((*canwrite)462 2160 A
  6729. 2664(=)S
  6730. (PIPE_SIZE)378 2748 A
  6731. 3168(-)S
  6732. (position))378 3252 A
  6733. 3672(>)S
  6734. 3756(0))S
  6735. 3882({)S
  6736. 3600 V
  6737. (24440)210 648 A
  6738. 2370(/*)S
  6739. 2496(Do)S
  6740. 2622(a)S
  6741. (partial)294 2706 A
  6742. (write.)252 3042 A
  6743. (Need)168 3336 A
  6744. 3546(to)S
  6745. (wakeup)252 3672 A
  6746. (reader)252 3966 A
  6747. 3690 V
  6748. (24441)210 648 A
  6749. 2412(*)S
  6750. (since)210 2496 A
  6751. (we'll)210 2748 A
  6752. (suspend)294 3000 A
  6753. (ourself)294 3336 A
  6754. 3672(in)S
  6755. (read_write())504 3798 A
  6756. 3780 V
  6757. (24442)210 648 A
  6758. 2412(*/)S
  6759. 3870 V
  6760. (24443)210 648 A
  6761. (release(rip,)504 2370 A
  6762. (READ,)210 2916 A
  6763. (susp_count);)504 3168 A
  6764. 3960 V
  6765. (24444)210 648 A
  6766. (return(1);)420 2370 A
  6767. 4050 V
  6768. (24445)210 648 A
  6769. 2034(})S
  6770. 4140 V
  6771. (24446)210 648 A
  6772. 1698(})S
  6773. 4230 V
  6774. (24447)210 648 A
  6775. (suspend(XPIPE);)630 1698 A
  6776. 2370(/*)S
  6777. (stop)168 2496 A
  6778. (writer)252 2706 A
  6779. 3000(--)S
  6780. (pipe)168 3126 A
  6781. (full)168 3336 A
  6782. 3546(*/)S
  6783. 4320 V
  6784. (24448)210 648 A
  6785. (return(0);)420 1698 A
  6786. 4410 V
  6787. (24449)210 648 A
  6788. 1362(})S
  6789. 4500 V
  6790. (24450)210 648 A
  6791. 4590 V
  6792. (24451)210 648 A
  6793. 1362(/*)S
  6794. (Writing)294 1488 A
  6795. 1824(to)S
  6796. 1950(an)S
  6797. (empty)210 2076 A
  6798. (pipe.)210 2328 A
  6799. (Search)252 2622 A
  6800. (for)126 2916 A
  6801. (suspended)378 3084 A
  6802. (reader.)294 3504 A
  6803. 3840(*/)S
  6804. 4680 V
  6805. (24452)210 648 A
  6806. 1362(if)S
  6807. ((position)378 1488 A
  6808. 1908(==)S
  6809. 2034(0))S
  6810. (release(rip,)504 2160 A
  6811. (READ,)210 2706 A
  6812. (susp_count);)504 2958 A
  6813. 4770 V
  6814. (24453)210 648 A
  6815. 1110(})S
  6816. 4860 V
  6817. (24454)210 648 A
  6818. 4950 V
  6819. (24455)210 648 A
  6820. (*canwrite)378 1110 A
  6821. 1530(=)S
  6822. 1614(0;)S
  6823. 5040 V
  6824. (24456)210 648 A
  6825. (return(1);)420 1110 A
  6826. 5130 V
  6827. (24457)210 648 A
  6828. 1026(})S
  6829. 5400 V
  6830. (24460)210 648 A
  6831. (/*===========================================================================*)3276 1026 A
  6832. 5490 V
  6833. (24461)210 648 A
  6834. 1068(*)S
  6835. (suspend)294 2370 A
  6836. 4260(*)S
  6837. 5580 V
  6838. (24462)210 648 A
  6839. (*===========================================================================*/)3276 1068 A
  6840. 5670 V
  6841. (24463)210 648 A
  6842. (PUBLIC)252 1026 A
  6843. (void)168 1320 A
  6844. (suspend(task))546 1530 A
  6845. 5760 V
  6846. (24464)210 648 A
  6847. (int)126 1026 A
  6848. (task;)210 1194 A
  6849. 2370(/*)S
  6850. (who)126 2496 A
  6851. 2664(is)S
  6852. (proc)168 2790 A
  6853. (waiting)294 3000 A
  6854. (for?)168 3336 A
  6855. ((PIPE)210 3546 A
  6856. 3798(=)S
  6857. (pipe))210 3882 A
  6858. 4134(*/)S
  6859. 5850 V
  6860. (24465)210 648 A
  6861. 1026({)S
  6862. 5940 V
  6863. (24466)210 648 A
  6864. 1026(/*)S
  6865. (Take)168 1152 A
  6866. (measures)336 1362 A
  6867. 1740(to)S
  6868. (suspend)294 1866 A
  6869. (the)126 2202 A
  6870. (processing)420 2370 A
  6871. 2832(of)S
  6872. (the)126 2958 A
  6873. (present)294 3126 A
  6874. (system)252 3462 A
  6875. (call.)210 3756 A
  6876. 6030 V
  6877. (24467)210 648 A
  6878. 1068(*)S
  6879. (Store)210 1152 A
  6880. (the)126 1404 A
  6881. (parameters)420 1572 A
  6882. 2034(to)S
  6883. 2160(be)S
  6884. (used)168 2286 A
  6885. (upon)168 2496 A
  6886. (resuming)336 2706 A
  6887. 3084(in)S
  6888. (the)126 3210 A
  6889. (process)294 3378 A
  6890. (table.)252 3714 A
  6891. 6120 V
  6892. (24468)210 648 A
  6893. 1068(*)S
  6894. ((Actually)378 1152 A
  6895. (they)168 1572 A
  6896. (are)126 1782 A
  6897. (not)126 1950 A
  6898. (used)168 2118 A
  6899. (when)168 2328 A
  6900. 2538(a)S
  6901. (process)294 2622 A
  6902. 2958(is)S
  6903. (waiting)294 3084 A
  6904. (for)126 3420 A
  6905. 3588(an)S
  6906. (I/O)126 3714 A
  6907. (device,)294 3882 A
  6908. 6210 V
  6909. (24469)210 648 A
  6910. 1068(*)S
  6911. (but)126 1152 A
  6912. (they)168 1320 A
  6913. (are)126 1530 A
  6914. (needed)252 1698 A
  6915. (for)126 1992 A
  6916. (pipes,)252 2160 A
  6917. (and)126 2454 A
  6918. 2622(it)S
  6919. 2748(is)S
  6920. (not)126 2874 A
  6921. (worth)210 3042 A
  6922. (making)252 3294 A
  6923. (the)126 3588 A
  6924. (distinction.))546 3756 A
  6925. 8418 V
  6926. EP
  6927. %%Page: 337 337
  6928. BP
  6929. /slant 0 def
  6930. /height 0 def
  6931. 630 V
  6932. 10 R
  6933. 648(MINIX)S
  6934. 976(SOURCE)S
  6935. 1399(CODE)S
  6936. 11 R
  6937. 2151(File:)S
  6938. 2384(src/fs/pipe.c)S
  6939. 12 B
  6940. (337)180 4248 A
  6941. 900 V
  6942. 7 LST
  6943. (24470)210 648 A
  6944. 1068(*/)S
  6945. 990 V
  6946. (24471)210 648 A
  6947. 1080 V
  6948. (24472)210 648 A
  6949. 1110(if)S
  6950. ((task)210 1236 A
  6951. 1488(==)S
  6952. (XPIPE)210 1614 A
  6953. 1866(||)S
  6954. (task)168 1992 A
  6955. 2202(==)S
  6956. (XPOPEN))294 2328 A
  6957. (susp_count++;/*)630 2664 A
  6958. (#procs)252 3336 A
  6959. (susp'ed)294 3630 A
  6960. 3966(on)S
  6961. (pipe*/)252 4092 A
  6962. 1170 V
  6963. (24473)210 648 A
  6964. (fp->fp_suspended)672 1110 A
  6965. 1824(=)S
  6966. (SUSPENDED;)420 1908 A
  6967. 1260 V
  6968. (24474)210 648 A
  6969. (fp->fp_fd)378 1110 A
  6970. 1530(=)S
  6971. 1614(fd)S
  6972. 1740(<<)S
  6973. 1866(8)S
  6974. 1950(|)S
  6975. (fs_call;)336 2034 A
  6976. 1350 V
  6977. (24475)210 648 A
  6978. (fp->fp_task)462 1110 A
  6979. 1614(=)S
  6980. (-task;)252 1698 A
  6981. 1440 V
  6982. (24476)210 648 A
  6983. 1110(if)S
  6984. ((task)210 1236 A
  6985. 1488(==)S
  6986. (XLOCK))252 1614 A
  6987. 1908({)S
  6988. 1530 V
  6989. (24477)210 648 A
  6990. (fp->fp_buffer)546 1362 A
  6991. 1950(=)S
  6992. ((char)210 2034 A
  6993. 2286(*))S
  6994. (name1;)252 2412 A
  6995. 2706(/*)S
  6996. (third)210 2874 A
  6997. (arg)126 3126 A
  6998. 3294(to)S
  6999. (fcntl())294 3420 A
  7000. 3756(*/)S
  7001. 1620 V
  7002. (24478)210 648 A
  7003. (fp->fp_nbytes)546 1362 A
  7004. (=request;)378 1950 A
  7005. 2706(/*)S
  7006. (second)252 2832 A
  7007. (arg)126 3126 A
  7008. 3294(to)S
  7009. (fcntl())294 3420 A
  7010. 3756(*/)S
  7011. 1710 V
  7012. (24479)210 648 A
  7013. 1110(})S
  7014. (else)168 1194 A
  7015. 1404({)S
  7016. 1800 V
  7017. (24480)210 648 A
  7018. (fp->fp_buffer)546 1362 A
  7019. 1950(=)S
  7020. (buffer;)294 2034 A
  7021. 2706(/*)S
  7022. (for)126 2832 A
  7023. (reads)210 3000 A
  7024. (and)126 3252 A
  7025. (writes)252 3420 A
  7026. 3714(*/)S
  7027. 1890 V
  7028. (24481)210 648 A
  7029. (fp->fp_nbytes)546 1362 A
  7030. 1950(=)S
  7031. (nbytes;)294 2034 A
  7032. 1980 V
  7033. (24482)210 648 A
  7034. 1110(})S
  7035. 2070 V
  7036. (24483)210 648 A
  7037. (dont_reply)420 1110 A
  7038. 1572(=)S
  7039. (TRUE;)210 1656 A
  7040. 2370(/*)S
  7041. 2496(do)S
  7042. (not)126 2622 A
  7043. (send)168 2790 A
  7044. (caller)252 3000 A
  7045. 3294(a)S
  7046. (reply)210 3378 A
  7047. (message)294 3630 A
  7048. (now)126 3966 A
  7049. 4134(*/)S
  7050. 2160 V
  7051. (24484)210 648 A
  7052. 1026(})S
  7053. 2430 V
  7054. (24487)210 648 A
  7055. (/*===========================================================================*)3276 1026 A
  7056. 2520 V
  7057. (24488)210 648 A
  7058. 1068(*)S
  7059. (release)294 2370 A
  7060. 4260(*)S
  7061. 2610 V
  7062. (24489)210 648 A
  7063. (*===========================================================================*/)3276 1068 A
  7064. 2700 V
  7065. (24490)210 648 A
  7066. (PUBLIC)252 1026 A
  7067. (void)168 1320 A
  7068. (release(ip,)462 1530 A
  7069. (call_nr,)336 2034 A
  7070. (count))252 2412 A
  7071. 2790 V
  7072. (24491)210 648 A
  7073. (register)336 1026 A
  7074. (struct)252 1404 A
  7075. (inode)210 1698 A
  7076. (*ip;)168 1950 A
  7077. 2370(/*)S
  7078. (inode)210 2496 A
  7079. 2748(of)S
  7080. (pipe)168 2874 A
  7081. 3084(*/)S
  7082. 2880 V
  7083. (24492)210 648 A
  7084. (int)126 1026 A
  7085. (call_nr;)336 1194 A
  7086. 2370(/*)S
  7087. (READ,)210 2496 A
  7088. (WRITE,)252 2748 A
  7089. (OPEN)168 3042 A
  7090. 3252(or)S
  7091. (CREAT)210 3378 A
  7092. 3630(*/)S
  7093. 2970 V
  7094. (24493)210 648 A
  7095. (int)126 1026 A
  7096. (count;)252 1194 A
  7097. 2370(/*)S
  7098. (max)126 2496 A
  7099. (number)252 2664 A
  7100. 2958(of)S
  7101. (processes)378 3084 A
  7102. 3504(to)S
  7103. (release)294 3630 A
  7104. 3966(*/)S
  7105. 3060 V
  7106. (24494)210 648 A
  7107. 1026({)S
  7108. 3150 V
  7109. (24495)210 648 A
  7110. 1026(/*)S
  7111. (Check)210 1152 A
  7112. 1404(to)S
  7113. (see)126 1530 A
  7114. 1698(if)S
  7115. (any)126 1824 A
  7116. (process)294 1992 A
  7117. 2328(is)S
  7118. (hanging)294 2454 A
  7119. 2790(on)S
  7120. (the)126 2916 A
  7121. (pipe)168 3084 A
  7122. (whose)210 3294 A
  7123. (inode)210 3546 A
  7124. 3798(is)S
  7125. 3924(in)S
  7126. ('ip'.)210 4050 A
  7127. 3240 V
  7128. (24496)210 648 A
  7129. 1068(*)S
  7130. 1152(If)S
  7131. (one)126 1278 A
  7132. (is,)126 1446 A
  7133. (and)126 1614 A
  7134. 1782(it)S
  7135. (was)126 1908 A
  7136. (trying)252 2076 A
  7137. 2370(to)S
  7138. (perform)294 2496 A
  7139. (the)126 2832 A
  7140. (call)168 3000 A
  7141. (indicated)378 3210 A
  7142. 3630(by)S
  7143. ('call_nr',)420 3756 A
  7144. 3330 V
  7145. (24497)210 648 A
  7146. 1068(*)S
  7147. (release)294 1152 A
  7148. (it.)126 1488 A
  7149. 3420 V
  7150. (24498)210 648 A
  7151. 1068(*/)S
  7152. 3510 V
  7153. (24499)210 648 A
  7154. 3600 V
  7155. (24500)210 648 A
  7156. (register)336 1110 A
  7157. (struct)252 1488 A
  7158. (fproc)210 1782 A
  7159. (*rp;)168 2034 A
  7160. 3690 V
  7161. (24501)210 648 A
  7162. 3780 V
  7163. (24502)210 648 A
  7164. 1110(/*)S
  7165. (Search)252 1236 A
  7166. (the)126 1530 A
  7167. (proc)168 1698 A
  7168. (table.)252 1908 A
  7169. 2202(*/)S
  7170. 3870 V
  7171. (24503)210 648 A
  7172. (for)126 1110 A
  7173. ((rp)126 1278 A
  7174. 1446(=)S
  7175. (&fproc[0];)420 1530 A
  7176. 1992(rp)S
  7177. 2118(<)S
  7178. (&fproc[NR_PROCS];)714 2202 A
  7179. (rp++))210 2958 A
  7180. 3210({)S
  7181. 3960 V
  7182. (24504)210 648 A
  7183. 1362(if)S
  7184. ((rp->fp_suspended)714 1488 A
  7185. 2244(==)S
  7186. (SUSPENDED)378 2370 A
  7187. 2790(&&)S
  7188. 4050 V
  7189. (24505)210 648 A
  7190. (rp->fp_revived)588 2034 A
  7191. 2664(==)S
  7192. (NOT_REVIVING)504 2790 A
  7193. 3336(&&)S
  7194. 4140 V
  7195. (24506)210 648 A
  7196. ((rp->fp_fd)420 2034 A
  7197. 2496(&)S
  7198. (BYTE))210 2580 A
  7199. 2832(==)S
  7200. (call_nr)294 2958 A
  7201. 3294(&&)S
  7202. 4230 V
  7203. (24507)210 648 A
  7204. (rp->fp_filp[rp->fp_fd>>8]->filp_ino)1470 2034 A
  7205. 3546(==)S
  7206. (ip))126 3672 A
  7207. 3840({)S
  7208. 4320 V
  7209. (24508)210 648 A
  7210. (revive((int)(rp)630 1698 A
  7211. 2370(-)S
  7212. (fproc),)294 2454 A
  7213. (0);)126 2790 A
  7214. 4410 V
  7215. (24509)210 648 A
  7216. (susp_count--;)546 1698 A
  7217. 2370(/*)S
  7218. (keep)168 2496 A
  7219. (track)210 2706 A
  7220. 2958(of)S
  7221. (who)126 3084 A
  7222. 3252(is)S
  7223. (suspended)378 3378 A
  7224. 3798(*/)S
  7225. 4500 V
  7226. (24510)210 648 A
  7227. 1698(if)S
  7228. ((--count)336 1824 A
  7229. 2202(==)S
  7230. 2328(0))S
  7231. (return;)294 2454 A
  7232. 4590 V
  7233. (24511)210 648 A
  7234. 1362(})S
  7235. 4680 V
  7236. (24512)210 648 A
  7237. 1110(})S
  7238. 4770 V
  7239. (24513)210 648 A
  7240. 1026(})S
  7241. 5040 V
  7242. (24516)210 648 A
  7243. (/*===========================================================================*)3276 1026 A
  7244. 5130 V
  7245. (24517)210 648 A
  7246. 1068(*)S
  7247. (revive)252 2370 A
  7248. 4260(*)S
  7249. 5220 V
  7250. (24518)210 648 A
  7251. (*===========================================================================*/)3276 1068 A
  7252. 5310 V
  7253. (24519)210 648 A
  7254. (PUBLIC)252 1026 A
  7255. (void)168 1320 A
  7256. (revive(proc_nr,)630 1530 A
  7257. (bytes))252 2202 A
  7258. 5400 V
  7259. (24520)210 648 A
  7260. (int)126 1026 A
  7261. (proc_nr;)336 1194 A
  7262. 2370(/*)S
  7263. (process)294 2496 A
  7264. 2832(to)S
  7265. (revive)252 2958 A
  7266. 3252(*/)S
  7267. 5490 V
  7268. (24521)210 648 A
  7269. (int)126 1026 A
  7270. (bytes;)252 1194 A
  7271. 2370(/*)S
  7272. 2496(if)S
  7273. (hanging)294 2622 A
  7274. 2958(on)S
  7275. (task,)210 3084 A
  7276. (how)126 3336 A
  7277. (many)168 3504 A
  7278. (bytes)210 3714 A
  7279. (read)168 3966 A
  7280. 4176(*/)S
  7281. 5580 V
  7282. (24522)210 648 A
  7283. 1026({)S
  7284. 5670 V
  7285. (24523)210 648 A
  7286. 1026(/*)S
  7287. (Revive)252 1152 A
  7288. 1446(a)S
  7289. (previously)420 1530 A
  7290. (blocked)294 1992 A
  7291. (process.)336 2328 A
  7292. (When)168 2706 A
  7293. 2916(a)S
  7294. (process)294 3000 A
  7295. (hangs)210 3336 A
  7296. 3588(on)S
  7297. (tty,)168 3714 A
  7298. (this)168 3924 A
  7299. 5760 V
  7300. (24524)210 648 A
  7301. 1068(*)S
  7302. 1152(is)S
  7303. (the)126 1278 A
  7304. (way)126 1446 A
  7305. 1614(it)S
  7306. 1740(is)S
  7307. (eventually)420 1866 A
  7308. (released.)378 2328 A
  7309. 5850 V
  7310. (24525)210 648 A
  7311. 1068(*/)S
  7312. 5940 V
  7313. (24526)210 648 A
  7314. 6030 V
  7315. (24527)210 648 A
  7316. (register)336 1110 A
  7317. (struct)252 1488 A
  7318. (fproc)210 1782 A
  7319. (*rfp;)210 2034 A
  7320. 6120 V
  7321. (24528)210 648 A
  7322. (register)336 1110 A
  7323. (int)126 1488 A
  7324. (task;)210 1656 A
  7325. 6210 V
  7326. (24529)210 648 A
  7327. 8418 V
  7328. EP
  7329. %%Page: 338 338
  7330. BP
  7331. /slant 0 def
  7332. /height 0 def
  7333. 630 V
  7334. 12 B
  7335. (338)180 648 A
  7336. 11 R
  7337. 2151(File:)S
  7338. 2384(src/fs/pipe.c)S
  7339. 10 R
  7340. 3402(MINIX)S
  7341. 3730(SOURCE)S
  7342. 4153(CODE)S
  7343. 900 V
  7344. 7 LST
  7345. (24530)210 648 A
  7346. 1110(if)S
  7347. ((proc_nr)336 1236 A
  7348. 1614(<)S
  7349. 1698(0)S
  7350. 1782(||)S
  7351. (proc_nr)294 1908 A
  7352. 2244(>=)S
  7353. (NR_PROCS))378 2370 A
  7354. (panic("revive)546 2790 A
  7355. (err",)210 3378 A
  7356. (proc_nr);)378 3630 A
  7357. 990 V
  7358. (24531)210 648 A
  7359. (rfp)126 1110 A
  7360. 1278(=)S
  7361. (&fproc[proc_nr];)672 1362 A
  7362. 1080 V
  7363. (24532)210 648 A
  7364. 1110(if)S
  7365. ((rfp->fp_suspended)756 1236 A
  7366. 2034(==)S
  7367. (NOT_SUSPENDED)546 2160 A
  7368. 2748(||)S
  7369. (rfp->fp_revived)630 2874 A
  7370. 3546(==)S
  7371. (REVIVING)return;)672 3672 A
  7372. 1170 V
  7373. (24533)210 648 A
  7374. 1260 V
  7375. (24534)210 648 A
  7376. 1110(/*)S
  7377. (The)126 1236 A
  7378. ('reviving')420 1404 A
  7379. (flag)168 1866 A
  7380. (only)168 2076 A
  7381. (applies)294 2286 A
  7382. 2622(to)S
  7383. (pipes.)252 2748 A
  7384. (Processes)378 3084 A
  7385. (waiting)294 3504 A
  7386. (for)126 3840 A
  7387. (TTY)126 4008 A
  7388. (get)126 4176 A
  7389. 1350 V
  7390. (24535)210 648 A
  7391. 1152(*)S
  7392. 1236(a)S
  7393. (message)294 1320 A
  7394. (right)210 1656 A
  7395. (away.)210 1908 A
  7396. (The)126 2202 A
  7397. (revival)294 2370 A
  7398. (process)294 2706 A
  7399. 3042(is)S
  7400. (different)378 3168 A
  7401. (for)126 3588 A
  7402. (TTY)126 3756 A
  7403. (and)126 3924 A
  7404. (pipes.)252 4092 A
  7405. 1440 V
  7406. (24536)210 648 A
  7407. 1152(*)S
  7408. (For)126 1236 A
  7409. (TTY)126 1404 A
  7410. (revival,)336 1572 A
  7411. (the)126 1950 A
  7412. (work)168 2118 A
  7413. 2328(is)S
  7414. (already)294 2454 A
  7415. (done,)210 2790 A
  7416. (for)126 3042 A
  7417. (pipes)210 3210 A
  7418. 3462(it)S
  7419. 3588(is)S
  7420. (not:)168 3714 A
  7421. (the)126 3924 A
  7422. (proc)168 4092 A
  7423. 1530 V
  7424. (24537)210 648 A
  7425. 1152(*)S
  7426. (must)168 1236 A
  7427. 1446(be)S
  7428. (restarted)378 1572 A
  7429. 1992(so)S
  7430. 2118(it)S
  7431. (can)126 2244 A
  7432. (try)126 2412 A
  7433. (again.)252 2580 A
  7434. 1620 V
  7435. (24538)210 648 A
  7436. 1152(*/)S
  7437. 1710 V
  7438. (24539)210 648 A
  7439. (task)168 1110 A
  7440. 1320(=)S
  7441. (-rfp->fp_task;)588 1404 A
  7442. 1800 V
  7443. (24540)210 648 A
  7444. 1110(if)S
  7445. ((task)210 1236 A
  7446. 1488(==)S
  7447. (XPIPE)210 1614 A
  7448. 1866(||)S
  7449. (task)168 1992 A
  7450. 2202(==)S
  7451. (XLOCK))252 2328 A
  7452. 2622({)S
  7453. 1890 V
  7454. (24541)210 648 A
  7455. 1362(/*)S
  7456. (Revive)252 1488 A
  7457. 1782(a)S
  7458. (process)294 1866 A
  7459. (suspended)378 2202 A
  7460. 2622(on)S
  7461. 2748(a)S
  7462. (pipe)168 2832 A
  7463. 3042(or)S
  7464. (lock.)210 3168 A
  7465. 3420(*/)S
  7466. 1980 V
  7467. (24542)210 648 A
  7468. (rfp->fp_revived)630 1362 A
  7469. 2034(=)S
  7470. (REVIVING;)378 2118 A
  7471. 2070 V
  7472. (24543)210 648 A
  7473. (reviving++;)462 1362 A
  7474. 2370(/*)S
  7475. (process)294 2496 A
  7476. (was)126 2832 A
  7477. (waiting)294 3000 A
  7478. 3336(on)S
  7479. (pipe)168 3462 A
  7480. 3672(or)S
  7481. (lock)168 3798 A
  7482. 4008(*/)S
  7483. 2160 V
  7484. (24544)210 648 A
  7485. 1110(})S
  7486. (else)168 1194 A
  7487. 1404({)S
  7488. 2250 V
  7489. (24545)210 648 A
  7490. (rfp->fp_suspended)714 1362 A
  7491. 2118(=)S
  7492. (NOT_SUSPENDED;)588 2202 A
  7493. 2340 V
  7494. (24546)210 648 A
  7495. 1362(if)S
  7496. ((task)210 1488 A
  7497. 1740(==)S
  7498. (XPOPEN))294 1866 A
  7499. 2202(/*)S
  7500. (process)294 2328 A
  7501. (blocked)294 2664 A
  7502. 3000(in)S
  7503. (open)168 3126 A
  7504. 3336(or)S
  7505. (create)252 3462 A
  7506. 3756(*/)S
  7507. 2430 V
  7508. (24547)210 648 A
  7509. (reply(proc_nr,)588 1698 A
  7510. (rfp->fp_fd>>8);)630 2328 A
  7511. 2520 V
  7512. (24548)210 648 A
  7513. (else)168 1362 A
  7514. 1572({)S
  7515. 2610 V
  7516. (24549)210 648 A
  7517. 1698(/*)S
  7518. (Revive)252 1824 A
  7519. 2118(a)S
  7520. (process)294 2202 A
  7521. (suspended)378 2538 A
  7522. 2958(on)S
  7523. (TTY)126 3084 A
  7524. 3252(or)S
  7525. (other)210 3378 A
  7526. (device.)294 3630 A
  7527. 3966(*/)S
  7528. 2700 V
  7529. (24550)210 648 A
  7530. (rfp->fp_nbytes)588 1698 A
  7531. 2328(=)S
  7532. (bytes;)252 2412 A
  7533. (/*pretend)378 2706 A
  7534. 3126(it)S
  7535. (wants)210 3252 A
  7536. (only)168 3504 A
  7537. (what)168 3714 A
  7538. (there)210 3924 A
  7539. (is*/)168 4176 A
  7540. 2790 V
  7541. (24551)210 648 A
  7542. (reply(proc_nr,)588 1698 A
  7543. (bytes);)294 2328 A
  7544. 2706(/*)S
  7545. (unblock)294 2832 A
  7546. (the)126 3168 A
  7547. (process)294 3336 A
  7548. 3672(*/)S
  7549. 2880 V
  7550. (24552)210 648 A
  7551. 1362(})S
  7552. 2970 V
  7553. (24553)210 648 A
  7554. 1110(})S
  7555. 3060 V
  7556. (24554)210 648 A
  7557. 1026(})S
  7558. 3330 V
  7559. (24557)210 648 A
  7560. (/*===========================================================================*)3276 1026 A
  7561. 3420 V
  7562. (24558)210 648 A
  7563. 1068(*)S
  7564. (do_unpause)420 2370 A
  7565. 4260(*)S
  7566. 3510 V
  7567. (24559)210 648 A
  7568. (*===========================================================================*/)3276 1068 A
  7569. 3600 V
  7570. (24560)210 648 A
  7571. (PUBLIC)252 1026 A
  7572. (int)126 1320 A
  7573. (do_unpause())504 1488 A
  7574. 3690 V
  7575. (24561)210 648 A
  7576. 1026({)S
  7577. 3780 V
  7578. (24562)210 648 A
  7579. 1026(/*)S
  7580. 1152(A)S
  7581. (signal)252 1236 A
  7582. (has)126 1530 A
  7583. (been)168 1698 A
  7584. (sent)168 1908 A
  7585. 2118(to)S
  7586. 2244(a)S
  7587. (user)168 2328 A
  7588. (who)126 2538 A
  7589. 2706(is)S
  7590. (paused)252 2832 A
  7591. 3126(on)S
  7592. (the)126 3252 A
  7593. (file)168 3420 A
  7594. (system.)294 3630 A
  7595. 3870 V
  7596. (24563)210 648 A
  7597. 1068(*)S
  7598. (Abort)210 1152 A
  7599. (the)126 1404 A
  7600. (system)252 1572 A
  7601. (call)168 1866 A
  7602. (with)168 2076 A
  7603. (the)126 2286 A
  7604. (EINTR)210 2454 A
  7605. (error)210 2706 A
  7606. (message.)336 2958 A
  7607. 3960 V
  7608. (24564)210 648 A
  7609. 1068(*/)S
  7610. 4050 V
  7611. (24565)210 648 A
  7612. 4140 V
  7613. (24566)210 648 A
  7614. (register)336 1110 A
  7615. (struct)252 1488 A
  7616. (fproc)210 1782 A
  7617. (*rfp;)210 2034 A
  7618. 4230 V
  7619. (24567)210 648 A
  7620. (int)126 1110 A
  7621. (proc_nr,)336 1278 A
  7622. (task,)210 1656 A
  7623. (fild;)210 1908 A
  7624. 4320 V
  7625. (24568)210 648 A
  7626. (struct)252 1110 A
  7627. (filp)168 1404 A
  7628. (*f;)126 1614 A
  7629. 4410 V
  7630. (24569)210 648 A
  7631. (dev_t)210 1110 A
  7632. (dev;)168 1362 A
  7633. 4500 V
  7634. (24570)210 648 A
  7635. 4590 V
  7636. (24571)210 648 A
  7637. 1110(if)S
  7638. ((who)168 1236 A
  7639. 1446(>)S
  7640. (MM_PROC_NR))462 1530 A
  7641. (return(EPERM);)588 2034 A
  7642. 4680 V
  7643. (24572)210 648 A
  7644. (proc_nr)294 1110 A
  7645. 1446(=)S
  7646. (pro;)168 1530 A
  7647. 4770 V
  7648. (24573)210 648 A
  7649. 1110(if)S
  7650. ((proc_nr)336 1236 A
  7651. 1614(<)S
  7652. 1698(0)S
  7653. 1782(||)S
  7654. (proc_nr)294 1908 A
  7655. 2244(>=)S
  7656. (NR_PROCS))378 2370 A
  7657. (panic("unpause)588 2790 A
  7658. (err)126 3420 A
  7659. (1",)126 3588 A
  7660. (proc_nr);)378 3756 A
  7661. 4860 V
  7662. (24574)210 648 A
  7663. (rfp)126 1110 A
  7664. 1278(=)S
  7665. (&fproc[proc_nr];)672 1362 A
  7666. 4950 V
  7667. (24575)210 648 A
  7668. 1110(if)S
  7669. ((rfp->fp_suspended)756 1236 A
  7670. 2034(==)S
  7671. (NOT_SUSPENDED))588 2160 A
  7672. (return(OK);)462 2790 A
  7673. 5040 V
  7674. (24576)210 648 A
  7675. (task)168 1110 A
  7676. 1320(=)S
  7677. (-rfp->fp_task;)588 1404 A
  7678. 5130 V
  7679. (24577)210 648 A
  7680. 5220 V
  7681. (24578)210 648 A
  7682. (switch(task))504 1110 A
  7683. 1656({)S
  7684. 5310 V
  7685. (24579)210 648 A
  7686. (case)168 1362 A
  7687. (XPIPE:)252 1572 A
  7688. 2370(/*)S
  7689. (process)294 2496 A
  7690. (trying)252 2832 A
  7691. 3126(to)S
  7692. (read)168 3252 A
  7693. 3462(or)S
  7694. (write)210 3588 A
  7695. 3840(a)S
  7696. (pipe)168 3924 A
  7697. 4134(*/)S
  7698. 5400 V
  7699. (24580)210 648 A
  7700. (break;)252 1698 A
  7701. 5490 V
  7702. (24581)210 648 A
  7703. 5580 V
  7704. (24582)210 648 A
  7705. (case)168 1362 A
  7706. (XOPEN:)252 1572 A
  7707. 2370(/*)S
  7708. (process)294 2496 A
  7709. (trying)252 2832 A
  7710. 3126(to)S
  7711. (open)168 3252 A
  7712. 3462(a)S
  7713. (special)294 3546 A
  7714. (file)168 3882 A
  7715. 4092(*/)S
  7716. 5670 V
  7717. (24583)210 648 A
  7718. (panic)210 1698 A
  7719. (("fs/do_unpause)630 1950 A
  7720. (called)252 2622 A
  7721. (with)168 2916 A
  7722. (XOPEN\n",)378 3126 A
  7723. (NO_NUM);)336 3546 A
  7724. 5760 V
  7725. (24584)210 648 A
  7726. 5850 V
  7727. (24585)210 648 A
  7728. (case)168 1362 A
  7729. (XLOCK:)252 1572 A
  7730. 2370(/*)S
  7731. (process)294 2496 A
  7732. (trying)252 2832 A
  7733. 3126(to)S
  7734. (set)126 3252 A
  7735. 3420(a)S
  7736. (lock)168 3504 A
  7737. (with)168 3714 A
  7738. (FCNTL)210 3924 A
  7739. 4176(*/)S
  7740. 5940 V
  7741. (24586)210 648 A
  7742. (break;)252 1698 A
  7743. 6030 V
  7744. (24587)210 648 A
  7745. 6120 V
  7746. (24588)210 648 A
  7747. (case)168 1362 A
  7748. (XPOPEN:)294 1572 A
  7749. 2370(/*)S
  7750. (process)294 2496 A
  7751. (trying)252 2832 A
  7752. 3126(to)S
  7753. (open)168 3252 A
  7754. 3462(a)S
  7755. (fifo)168 3546 A
  7756. 3756(*/)S
  7757. 6210 V
  7758. (24589)210 648 A
  7759. (break;)252 1698 A
  7760. 8418 V
  7761. EP
  7762. %%Page: 339 339
  7763. BP
  7764. /slant 0 def
  7765. /height 0 def
  7766. 630 V
  7767. 10 R
  7768. 648(MINIX)S
  7769. 976(SOURCE)S
  7770. 1399(CODE)S
  7771. 11 R
  7772. 2151(File:)S
  7773. 2384(src/fs/pipe.c)S
  7774. 12 B
  7775. (339)180 4248 A
  7776. 900 V
  7777. 7 LST
  7778. (24590)210 648 A
  7779. 990 V
  7780. (24591)210 648 A
  7781. (default:)336 1362 A
  7782. 2370(/*)S
  7783. (process)294 2496 A
  7784. (trying)252 2832 A
  7785. 3126(to)S
  7786. 3252(do)S
  7787. (device)252 3378 A
  7788. (I/O)126 3672 A
  7789. ((e.g.)210 3840 A
  7790. (tty)*/)252 4092 A
  7791. 1080 V
  7792. (24592)210 648 A
  7793. (fild)168 1698 A
  7794. 1908(=)S
  7795. ((rfp->fp_fd)462 1992 A
  7796. 2496(>>)S
  7797. 2622(8))S
  7798. 2748(&)S
  7799. (BYTE;/*)294 2832 A
  7800. (extract)294 3168 A
  7801. (file)168 3504 A
  7802. (descriptor)420 3714 A
  7803. 4176(*/)S
  7804. 1170 V
  7805. (24593)210 648 A
  7806. 1698(if)S
  7807. ((fild)210 1824 A
  7808. 2076(<)S
  7809. 2160(0)S
  7810. 2244(||)S
  7811. (fild)168 2370 A
  7812. 2580(>=)S
  7813. (OPEN_MAX)panic("unpause)966 2706 A
  7814. (err)126 3714 A
  7815. (2",NO_NUM);)462 3882 A
  7816. 1260 V
  7817. (24594)210 648 A
  7818. 1698(f)S
  7819. 1782(=)S
  7820. (rfp->fp_filp[fild];)798 1866 A
  7821. 1350 V
  7822. (24595)210 648 A
  7823. (dev)126 1698 A
  7824. 1866(=)S
  7825. ((dev_t))294 1950 A
  7826. (f->filp_ino->i_zone[0];)966 2286 A
  7827. 3378(/*)S
  7828. (device)252 3504 A
  7829. (hung)168 3798 A
  7830. 4008(on)S
  7831. 4134(*/)S
  7832. 1440 V
  7833. (24596)210 648 A
  7834. (mess.TTY_LINE)546 1698 A
  7835. 2286(=)S
  7836. ((dev)168 2370 A
  7837. 2580(>>)S
  7838. (MINOR))252 2706 A
  7839. 3000(&)S
  7840. (BYTE;)210 3084 A
  7841. 1530 V
  7842. (24597)210 648 A
  7843. (mess.PROC_NR)504 1698 A
  7844. 2244(=)S
  7845. (proc_nr;)336 2328 A
  7846. 1620 V
  7847. (24598)210 648 A
  7848. 1710 V
  7849. (24599)210 648 A
  7850. 1698(/*)S
  7851. (Tell)168 1824 A
  7852. (kernel)252 2034 A
  7853. 2328(R)S
  7854. 2412(or)S
  7855. 2538(W.)S
  7856. (Mode)168 2664 A
  7857. 2874(is)S
  7858. (from)168 3000 A
  7859. (current)294 3210 A
  7860. (call,)210 3546 A
  7861. (not)126 3798 A
  7862. (open.)210 3966 A
  7863. 4218(*/)S
  7864. 1800 V
  7865. (24600)210 648 A
  7866. (mess.COUNT)420 1698 A
  7867. 2160(=)S
  7868. ((rfp->fp_fd)462 2244 A
  7869. 2748(&)S
  7870. (BYTE))210 2832 A
  7871. 3084(==)S
  7872. (READ)168 3210 A
  7873. 3420(?)S
  7874. (R_BIT)210 3504 A
  7875. 3756(:)S
  7876. (W_BIT;)252 3840 A
  7877. 1890 V
  7878. (24601)210 648 A
  7879. (mess.m_type)462 1698 A
  7880. 2202(=)S
  7881. (CANCEL;)294 2286 A
  7882. 1980 V
  7883. (24602)210 648 A
  7884. 1698(fp)S
  7885. 1824(=)S
  7886. (rfp;)168 1908 A
  7887. 2370(/*)S
  7888. (hack)168 2496 A
  7889. 2706(-)S
  7890. (call_ctty)378 2790 A
  7891. (uses)168 3210 A
  7892. 3420(fp)S
  7893. 3546(*/)S
  7894. 2070 V
  7895. (24603)210 648 A
  7896. ((*dmap[(dev)462 1698 A
  7897. 2202(>>)S
  7898. (MAJOR))252 2328 A
  7899. 2622(&)S
  7900. (BYTE].dmap_rw)(task,)840 2706 A
  7901. (&mess);)294 3588 A
  7902. 2160 V
  7903. (24604)210 648 A
  7904. 1110(})S
  7905. 2250 V
  7906. (24605)210 648 A
  7907. 2340 V
  7908. (24606)210 648 A
  7909. (rfp->fp_suspended)714 1110 A
  7910. 1866(=)S
  7911. (NOT_SUSPENDED;)588 1950 A
  7912. 2430 V
  7913. (24607)210 648 A
  7914. (reply(proc_nr,)588 1110 A
  7915. (EINTR);)294 1740 A
  7916. 2370(/*)S
  7917. (signal)252 2496 A
  7918. (interrupted)462 2790 A
  7919. (call)168 3294 A
  7920. 3504(*/)S
  7921. 2520 V
  7922. (24608)210 648 A
  7923. (return(OK);)462 1110 A
  7924. 2610 V
  7925. (24609)210 648 A
  7926. 1026(})S
  7927. 3240 V
  7928. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  7929. 3330 V
  7930. (src/fs/path.c)546 2034 A
  7931. 3420 V
  7932. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  7933. 3600 V
  7934. (24700)210 648 A
  7935. 1026(/*)S
  7936. (This)168 1152 A
  7937. (file)168 1362 A
  7938. (contains)336 1572 A
  7939. (the)126 1950 A
  7940. (procedures)420 2118 A
  7941. (that)168 2580 A
  7942. (look)168 2790 A
  7943. 3000(up)S
  7944. (path)168 3126 A
  7945. (names)210 3336 A
  7946. 3588(in)S
  7947. (the)126 3714 A
  7948. (directory)378 3882 A
  7949. 3690 V
  7950. (24701)210 648 A
  7951. 1068(*)S
  7952. (system)252 1152 A
  7953. (and)126 1446 A
  7954. (determine)378 1614 A
  7955. (the)126 2034 A
  7956. (inode)210 2202 A
  7957. (number)252 2454 A
  7958. (that)168 2748 A
  7959. (goes)168 2958 A
  7960. (with)168 3168 A
  7961. 3378(a)S
  7962. (given)210 3462 A
  7963. (path)168 3714 A
  7964. (name.)210 3924 A
  7965. 3780 V
  7966. (24702)210 648 A
  7967. 1068(*)S
  7968. 3870 V
  7969. (24703)210 648 A
  7970. 1068(*)S
  7971. (The)126 1194 A
  7972. (entry)210 1362 A
  7973. (points)252 1614 A
  7974. (into)168 1908 A
  7975. (this)168 2118 A
  7976. (file)168 2328 A
  7977. (are)126 2538 A
  7978. 3960 V
  7979. (24704)210 648 A
  7980. 1068(*)S
  7981. (eat_path:)378 1236 A
  7982. (the)126 1740 A
  7983. ('main')252 1908 A
  7984. (routine)294 2202 A
  7985. 2538(of)S
  7986. (the)126 2664 A
  7987. (path-to-inode)546 2832 A
  7988. (conversion)420 3420 A
  7989. (mechanism)378 3882 A
  7990. 4050 V
  7991. (24705)210 648 A
  7992. 1068(*)S
  7993. (last_dir:)378 1236 A
  7994. (find)168 1740 A
  7995. (the)126 1950 A
  7996. (final)210 2118 A
  7997. (directory)378 2370 A
  7998. 2790(on)S
  7999. 2916(a)S
  8000. (given)210 3000 A
  8001. (path)168 3252 A
  8002. 4140 V
  8003. (24706)210 648 A
  8004. 1068(*)S
  8005. (advance:)336 1236 A
  8006. (parse)210 1740 A
  8007. (one)126 1992 A
  8008. (component)378 2160 A
  8009. 2580(of)S
  8010. 2706(a)S
  8011. (path)168 2790 A
  8012. (name)168 3000 A
  8013. 4230 V
  8014. (24707)210 648 A
  8015. 1068(*)S
  8016. (search_dir:)462 1236 A
  8017. (search)252 1740 A
  8018. 2034(a)S
  8019. (directory)378 2118 A
  8020. (for)126 2538 A
  8021. 2706(a)S
  8022. (string)252 2790 A
  8023. (and)126 3084 A
  8024. (return)252 3252 A
  8025. (its)126 3546 A
  8026. (inode)210 3714 A
  8027. (number)252 3966 A
  8028. 4320 V
  8029. (24708)210 648 A
  8030. 1068(*/)S
  8031. 4410 V
  8032. (24709)210 648 A
  8033. 4500 V
  8034. (24710)210 648 A
  8035. (#include)336 1026 A
  8036. ("fs.h")252 1404 A
  8037. 4590 V
  8038. (24711)210 648 A
  8039. (#include)336 1026 A
  8040. (<string.h>)420 1404 A
  8041. 4680 V
  8042. (24712)210 648 A
  8043. (#include)336 1026 A
  8044. (<minix/callnr.h>)672 1404 A
  8045. 4770 V
  8046. (24713)210 648 A
  8047. (#include)336 1026 A
  8048. ("buf.h")294 1404 A
  8049. 4860 V
  8050. (24714)210 648 A
  8051. (#include)336 1026 A
  8052. ("file.h")336 1404 A
  8053. 4950 V
  8054. (24715)210 648 A
  8055. (#include)336 1026 A
  8056. ("fproc.h")378 1404 A
  8057. 5040 V
  8058. (24716)210 648 A
  8059. (#include)336 1026 A
  8060. ("inode.h")378 1404 A
  8061. 5130 V
  8062. (24717)210 648 A
  8063. (#include)336 1026 A
  8064. ("super.h")378 1404 A
  8065. 5220 V
  8066. (24718)210 648 A
  8067. 5310 V
  8068. (24719)210 648 A
  8069. (PUBLIC)252 1026 A
  8070. (char)168 1320 A
  8071. (dot1[2])294 1530 A
  8072. 1866(=)S
  8073. (".";)168 1950 A
  8074. 2370(/*)S
  8075. (used)168 2496 A
  8076. (for)126 2706 A