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

操作系统开发

开发平台:

WINDOWS

  1. 1152(*/)S
  2. 2610 V
  3. (26024)210 648 A
  4. 1110(if)S
  5. ((fetch_name(name1,)756 1236 A
  6. (name1_length,)546 2034 A
  7. (M1))126 2622 A
  8. 2790(!=)S
  9. (OK))126 2916 A
  10. (return(err_code);)714 3084 A
  11. 2700 V
  12. (26025)210 648 A
  13. 1110(if)S
  14. 1236(()S
  15. ((rip)168 1320 A
  16. 1530(=)S
  17. (eat_path(user_path)))840 1614 A
  18. 2496(==)S
  19. (NIL_INODE))420 2622 A
  20. (return(err_code);)714 3084 A
  21. 2790 V
  22. (26026)210 648 A
  23. 1110(r)S
  24. 1194(=)S
  25. (stat_inode(rip,)630 1278 A
  26. (NIL_FILP,)378 1950 A
  27. (name2);)294 2370 A
  28. 2706(/*)S
  29. (actually)336 2832 A
  30. 3210(do)S
  31. (the)126 3336 A
  32. (work.*/)294 3504 A
  33. 2880 V
  34. (26027)210 648 A
  35. (put_inode(rip);)630 1110 A
  36. 2370(/*)S
  37. (release)294 2496 A
  38. (the)126 2832 A
  39. (inode)210 3000 A
  40. 3252(*/)S
  41. 2970 V
  42. (26028)210 648 A
  43. (return(r);)420 1110 A
  44. 3060 V
  45. (26029)210 648 A
  46. 1026(})S
  47. 3330 V
  48. (26032)210 648 A
  49. (/*===========================================================================*)3276 1026 A
  50. 3420 V
  51. (26033)210 648 A
  52. 1068(*)S
  53. (do_fstat)336 2370 A
  54. 4260(*)S
  55. 3510 V
  56. (26034)210 648 A
  57. (*===========================================================================*/)3276 1068 A
  58. 3600 V
  59. (26035)210 648 A
  60. (PUBLIC)252 1026 A
  61. (int)126 1320 A
  62. (do_fstat())420 1488 A
  63. 3690 V
  64. (26036)210 648 A
  65. 1026({)S
  66. 3780 V
  67. (26037)210 648 A
  68. 1026(/*)S
  69. (Perform)294 1152 A
  70. (the)126 1488 A
  71. (fstat(fd,)378 1656 A
  72. (buf))168 2076 A
  73. (system)252 2286 A
  74. (call.)210 2580 A
  75. 2832(*/)S
  76. 3870 V
  77. (26038)210 648 A
  78. 3960 V
  79. (26039)210 648 A
  80. (register)336 1110 A
  81. (struct)252 1488 A
  82. (filp)168 1782 A
  83. (*rfilp;)294 1992 A
  84. 4050 V
  85. (26040)210 648 A
  86. 4140 V
  87. (26041)210 648 A
  88. 1110(/*)S
  89. 1236(Is)S
  90. (the)126 1362 A
  91. (file)168 1530 A
  92. (descriptor)420 1740 A
  93. (valid?)252 2202 A
  94. 2496(*/)S
  95. 4230 V
  96. (26042)210 648 A
  97. 1110(if)S
  98. 1236(()S
  99. ((rfilp)252 1320 A
  100. 1614(=)S
  101. (get_filp(fd)))546 1698 A
  102. 2286(==)S
  103. (NIL_FILP))378 2412 A
  104. (return(err_code);)714 2832 A
  105. 4320 V
  106. (26043)210 648 A
  107. 4410 V
  108. (26044)210 648 A
  109. (return(stat_inode(rfilp->filp_ino,)1428 1110 A
  110. (rfilp,)252 2580 A
  111. (buffer));)378 2874 A
  112. 4500 V
  113. (26045)210 648 A
  114. 1026(})S
  115. 4770 V
  116. (26048)210 648 A
  117. (/*===========================================================================*)3276 1026 A
  118. 4860 V
  119. (26049)210 648 A
  120. 1068(*)S
  121. (stat_inode)420 2370 A
  122. 4260(*)S
  123. 4950 V
  124. (26050)210 648 A
  125. (*===========================================================================*/)3276 1068 A
  126. 5040 V
  127. (26051)210 648 A
  128. (PRIVATE)294 1026 A
  129. (int)126 1362 A
  130. (stat_inode(rip,)630 1530 A
  131. (fil_ptr,)336 2202 A
  132. (user_addr))420 2580 A
  133. 5130 V
  134. (26052)210 648 A
  135. (register)336 1026 A
  136. (struct)252 1404 A
  137. (inode)210 1698 A
  138. (*rip;)210 1950 A
  139. 2370(/*)S
  140. (pointer)294 2496 A
  141. 2832(to)S
  142. (inode)210 2958 A
  143. 3210(to)S
  144. (stat)168 3336 A
  145. 3546(*/)S
  146. 5220 V
  147. (26053)210 648 A
  148. (struct)252 1026 A
  149. (filp)168 1320 A
  150. (*fil_ptr;)378 1530 A
  151. 2370(/*)S
  152. (filp)168 2496 A
  153. (pointer,)336 2706 A
  154. (supplied)336 3084 A
  155. 3462(by)S
  156. ('fstat')294 3588 A
  157. 3924(*/)S
  158. 5310 V
  159. (26054)210 648 A
  160. (char)168 1026 A
  161. (*user_addr;)462 1236 A
  162. 2370(/*)S
  163. (user)168 2496 A
  164. (space)210 2706 A
  165. (address)294 2958 A
  166. (where)210 3294 A
  167. (stat)168 3546 A
  168. (buf)126 3756 A
  169. (goes)168 3924 A
  170. 4134(*/)S
  171. 5400 V
  172. (26055)210 648 A
  173. 1026({)S
  174. 5490 V
  175. (26056)210 648 A
  176. 1026(/*)S
  177. (Common)252 1152 A
  178. (code)168 1446 A
  179. (for)126 1656 A
  180. (stat)168 1824 A
  181. (and)126 2034 A
  182. (fstat)210 2202 A
  183. (system)252 2454 A
  184. (calls.)252 2748 A
  185. 3042(*/)S
  186. 5580 V
  187. (26057)210 648 A
  188. 5670 V
  189. (26058)210 648 A
  190. (struct)252 1110 A
  191. (stat)168 1404 A
  192. (statbuf;)336 1614 A
  193. 5760 V
  194. (26059)210 648 A
  195. (mode_t)252 1110 A
  196. (mo;)126 1404 A
  197. 5850 V
  198. (26060)210 648 A
  199. (int)126 1110 A
  200. 1278(r,)S
  201. 1404(s;)S
  202. 5940 V
  203. (26061)210 648 A
  204. 6030 V
  205. (26062)210 648 A
  206. 1110(/*)S
  207. (Update)252 1236 A
  208. (the)126 1530 A
  209. (atime,)252 1698 A
  210. (ctime,)252 1992 A
  211. (and)126 2286 A
  212. (mtime)210 2454 A
  213. (fields)252 2706 A
  214. 3000(in)S
  215. (the)126 3126 A
  216. (inode,)252 3294 A
  217. 3588(if)S
  218. (need)168 3714 A
  219. (be.)126 3924 A
  220. 4092(*/)S
  221. 6120 V
  222. (26063)210 648 A
  223. 1110(if)S
  224. ((rip->i_update))630 1236 A
  225. (update_times(rip);)756 1908 A
  226. 6210 V
  227. (26064)210 648 A
  228. 8418 V
  229. EP
  230. %%Page: 360 360
  231. BP
  232. /slant 0 def
  233. /height 0 def
  234. 630 V
  235. 12 B
  236. (360)180 648 A
  237. 11 R
  238. 2123(File:)S
  239. 2356(src/fs/stadir.c)S
  240. 10 R
  241. 3402(MINIX)S
  242. 3730(SOURCE)S
  243. 4153(CODE)S
  244. 900 V
  245. 7 LST
  246. (26065)210 648 A
  247. 1110(/*)S
  248. (Fill)168 1236 A
  249. 1446(in)S
  250. (the)126 1572 A
  251. (statbuf)294 1740 A
  252. (struct.)294 2076 A
  253. 2412(*/)S
  254. 990 V
  255. (26066)210 648 A
  256. 1110(mo)S
  257. 1236(=)S
  258. (rip->i_mode)462 1320 A
  259. 1824(&)S
  260. (I_TYPE;)294 1908 A
  261. 1080 V
  262. (26067)210 648 A
  263. 1110(s)S
  264. 1194(=)S
  265. ((mo)126 1278 A
  266. 1446(==)S
  267. (I_CHAR_SPECIAL)588 1572 A
  268. 2202(||)S
  269. 2328(mo)S
  270. 2454(==)S
  271. (I_BLOCK_SPECIAL);)714 2580 A
  272. 3378(/*)S
  273. (true)168 3504 A
  274. (iff)126 3714 A
  275. (special)294 3882 A
  276. 4218(*/)S
  277. 1170 V
  278. (26068)210 648 A
  279. (statbuf.st_dev)588 1110 A
  280. 1740(=)S
  281. (rip->i_dev;)462 1824 A
  282. 1260 V
  283. (26069)210 648 A
  284. (statbuf.st_ino)588 1110 A
  285. 1740(=)S
  286. (rip->i_num;)462 1824 A
  287. 1350 V
  288. (26070)210 648 A
  289. (statbuf.st_mode)630 1110 A
  290. 1782(=)S
  291. (rip->i_mode;)504 1866 A
  292. 1440 V
  293. (26071)210 648 A
  294. (statbuf.st_nlink)672 1110 A
  295. 1824(=)S
  296. (rip->i_nlinks)546 1908 A
  297. 2496(&)S
  298. (BYTE;)210 2580 A
  299. 1530 V
  300. (26072)210 648 A
  301. (statbuf.st_uid)588 1110 A
  302. 1740(=)S
  303. (rip->i_uid;)462 1824 A
  304. 1620 V
  305. (26073)210 648 A
  306. (statbuf.st_gid)588 1110 A
  307. 1740(=)S
  308. (rip->i_gid)420 1824 A
  309. 2286(&)S
  310. (BYTE;)210 2370 A
  311. 1710 V
  312. (26074)210 648 A
  313. (statbuf.st_rdev)630 1110 A
  314. 1782(=)S
  315. ((dev_t))294 1866 A
  316. 2202((s)S
  317. 2328(?)S
  318. (rip->i_zone[0])588 2412 A
  319. 3042(:)S
  320. (NO_DEV);)336 3126 A
  321. 1800 V
  322. (26075)210 648 A
  323. (statbuf.st_size)630 1110 A
  324. 1782(=)S
  325. (rip->i_size;)504 1866 A
  326. 1890 V
  327. (26076)210 648 A
  328. 1980 V
  329. (26077)210 648 A
  330. 1110(if)S
  331. ((rip->i_pipe)504 1236 A
  332. 1782(==)S
  333. (I_PIPE))294 1908 A
  334. 2244({)S
  335. 2070 V
  336. (26078)210 648 A
  337. (statbuf.st_mode)630 1362 A
  338. 2034(&=)S
  339. (304I_REGULAR;)462 2160 A
  340. 2706(/*)S
  341. (wipe)168 2832 A
  342. (out)126 3042 A
  343. (I_REGULAR)378 3210 A
  344. (bit)126 3630 A
  345. (for)126 3798 A
  346. (pipes)210 3966 A
  347. 4218(*/)S
  348. 2160 V
  349. (26079)210 648 A
  350. 1362(if)S
  351. ((fil_ptr)336 1488 A
  352. 1866(!=)S
  353. (NIL_FILP)336 1992 A
  354. 2370(&&)S
  355. (fil_ptr->filp_mode)756 2496 A
  356. 3294(&)S
  357. (R_BIT))252 3378 A
  358. 2250 V
  359. (26080)210 648 A
  360. (statbuf.st_size)630 1698 A
  361. 2370(-=)S
  362. (fil_ptr->filp_pos;)756 2496 A
  363. 2340 V
  364. (26081)210 648 A
  365. 1110(})S
  366. 2430 V
  367. (26082)210 648 A
  368. 2520 V
  369. (26083)210 648 A
  370. (statbuf.st_atime)672 1110 A
  371. 1824(=)S
  372. (rip->i_atime;)546 1908 A
  373. 2610 V
  374. (26084)210 648 A
  375. (statbuf.st_mtime)672 1110 A
  376. 1824(=)S
  377. (rip->i_mtime;)546 1908 A
  378. 2700 V
  379. (26085)210 648 A
  380. (statbuf.st_ctime)672 1110 A
  381. 1824(=)S
  382. (rip->i_ctime;)546 1908 A
  383. 2790 V
  384. (26086)210 648 A
  385. 2880 V
  386. (26087)210 648 A
  387. 1110(/*)S
  388. (Copy)168 1236 A
  389. (the)126 1446 A
  390. (struct)252 1614 A
  391. 1908(to)S
  392. (user)168 2034 A
  393. (space.)252 2244 A
  394. 2538(*/)S
  395. 2970 V
  396. (26088)210 648 A
  397. 1110(r)S
  398. 1194(=)S
  399. (sys_copy(FS_PROC_NR,)840 1278 A
  400. 2160(D,)S
  401. ((phys_bytes))504 2286 A
  402. (&statbuf,)378 2832 A
  403. 3060 V
  404. (26089)210 648 A
  405. (who,)168 1698 A
  406. 1908(D,)S
  407. ((phys_bytes))504 2034 A
  408. (user_addr,)420 2580 A
  409. ((phys_bytes))504 3042 A
  410. (sizeof(statbuf));)714 3588 A
  411. 3150 V
  412. (26090)210 648 A
  413. (return(r);)420 1110 A
  414. 3240 V
  415. (26091)210 648 A
  416. 1026(})S
  417. 3690 V
  418. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  419. 3780 V
  420. (src/fs/protect.c)672 2034 A
  421. 3870 V
  422. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  423. 4050 V
  424. (26100)210 648 A
  425. 1026(/*)S
  426. (This)168 1152 A
  427. (file)168 1362 A
  428. (deals)210 1572 A
  429. (with)168 1824 A
  430. (protection)420 2034 A
  431. 2496(in)S
  432. (the)126 2622 A
  433. (file)168 2790 A
  434. (system.)294 3000 A
  435. 3378(It)S
  436. (contains)336 3504 A
  437. (the)126 3882 A
  438. (code)168 4050 A
  439. 4140 V
  440. (26101)210 648 A
  441. 1068(*)S
  442. (for)126 1152 A
  443. (four)168 1320 A
  444. (system)252 1530 A
  445. (calls)210 1824 A
  446. (that)168 2076 A
  447. (relate)252 2286 A
  448. 2580(to)S
  449. (protection.)462 2706 A
  450. 4230 V
  451. (26102)210 648 A
  452. 1068(*)S
  453. 4320 V
  454. (26103)210 648 A
  455. 1068(*)S
  456. (The)126 1152 A
  457. (entry)210 1320 A
  458. (points)252 1572 A
  459. (into)168 1866 A
  460. (this)168 2076 A
  461. (file)168 2286 A
  462. (are)126 2496 A
  463. 4410 V
  464. (26104)210 648 A
  465. 1068(*)S
  466. (do_chmod:)378 1236 A
  467. (perform)294 1698 A
  468. (the)126 2034 A
  469. (CHMOD)210 2202 A
  470. (system)252 2454 A
  471. (call)168 2748 A
  472. 4500 V
  473. (26105)210 648 A
  474. 1068(*)S
  475. (do_chown:)378 1236 A
  476. (perform)294 1698 A
  477. (the)126 2034 A
  478. (CHOWN)210 2202 A
  479. (system)252 2454 A
  480. (call)168 2748 A
  481. 4590 V
  482. (26106)210 648 A
  483. 1068(*)S
  484. (do_umask:)378 1236 A
  485. (perform)294 1698 A
  486. (the)126 2034 A
  487. (UMASK)210 2202 A
  488. (system)252 2454 A
  489. (call)168 2748 A
  490. 4680 V
  491. (26107)210 648 A
  492. 1068(*)S
  493. (do_access:)420 1236 A
  494. (perform)294 1698 A
  495. (the)126 2034 A
  496. (ACCESS)252 2202 A
  497. (system)252 2496 A
  498. (call)168 2790 A
  499. 4770 V
  500. (26108)210 648 A
  501. 1068(*)S
  502. (forbidden:)420 1236 A
  503. (check)210 1698 A
  504. 1950(to)S
  505. (see)126 2076 A
  506. 2244(if)S
  507. 2370(a)S
  508. (given)210 2454 A
  509. (access)252 2706 A
  510. 3000(is)S
  511. (allowed)294 3126 A
  512. 3462(on)S
  513. 3588(a)S
  514. (given)210 3672 A
  515. (inode)210 3924 A
  516. 4860 V
  517. (26109)210 648 A
  518. 1068(*/)S
  519. 4950 V
  520. (26110)210 648 A
  521. 5040 V
  522. (26111)210 648 A
  523. (#include)336 1026 A
  524. ("fs.h")252 1404 A
  525. 5130 V
  526. (26112)210 648 A
  527. (#include)336 1026 A
  528. (<unistd.h>)420 1404 A
  529. 5220 V
  530. (26113)210 648 A
  531. (#include)336 1026 A
  532. (<minix/callnr.h>)672 1404 A
  533. 5310 V
  534. (26114)210 648 A
  535. (#include)336 1026 A
  536. ("buf.h")294 1404 A
  537. 5400 V
  538. (26115)210 648 A
  539. (#include)336 1026 A
  540. ("file.h")336 1404 A
  541. 5490 V
  542. (26116)210 648 A
  543. (#include)336 1026 A
  544. ("fproc.h")378 1404 A
  545. 5580 V
  546. (26117)210 648 A
  547. (#include)336 1026 A
  548. ("inode.h")378 1404 A
  549. 5670 V
  550. (26118)210 648 A
  551. (#include)336 1026 A
  552. ("param.h")378 1404 A
  553. 5760 V
  554. (26119)210 648 A
  555. (#include)336 1026 A
  556. ("super.h")378 1404 A
  557. 5850 V
  558. (26120)210 648 A
  559. 5940 V
  560. (26121)210 648 A
  561. (/*===========================================================================*)3276 1026 A
  562. 6030 V
  563. (26122)210 648 A
  564. 1068(*)S
  565. (do_chmod)336 2370 A
  566. 4260(*)S
  567. 6120 V
  568. (26123)210 648 A
  569. (*===========================================================================*/)3276 1068 A
  570. 6210 V
  571. (26124)210 648 A
  572. (PUBLIC)252 1026 A
  573. (int)126 1320 A
  574. (do_chmod())420 1488 A
  575. 8418 V
  576. EP
  577. %%Page: 361 361
  578. BP
  579. /slant 0 def
  580. /height 0 def
  581. 630 V
  582. 10 R
  583. 648(MINIX)S
  584. 976(SOURCE)S
  585. 1399(CODE)S
  586. 11 R
  587. 2092(File:)S
  588. 2325(src/fs/protect.c)S
  589. 12 B
  590. (361)180 4248 A
  591. 900 V
  592. 7 LST
  593. (26125)210 648 A
  594. 1026({)S
  595. 990 V
  596. (26126)210 648 A
  597. 1026(/*)S
  598. (Perform)294 1152 A
  599. (the)126 1488 A
  600. (chmod(name,)462 1656 A
  601. (mode))210 2160 A
  602. (system)252 2412 A
  603. (call.)210 2706 A
  604. 2958(*/)S
  605. 1080 V
  606. (26127)210 648 A
  607. 1170 V
  608. (26128)210 648 A
  609. (register)336 1110 A
  610. (struct)252 1488 A
  611. (inode)210 1782 A
  612. (*rip;)210 2034 A
  613. 1260 V
  614. (26129)210 648 A
  615. (register)336 1110 A
  616. (int)126 1488 A
  617. 1656(r;)S
  618. 1350 V
  619. (26130)210 648 A
  620. 1440 V
  621. (26131)210 648 A
  622. 1110(/*)S
  623. (Temporarily)462 1236 A
  624. (open)168 1740 A
  625. (the)126 1950 A
  626. (file.)210 2118 A
  627. 2370(*/)S
  628. 1530 V
  629. (26132)210 648 A
  630. 1110(if)S
  631. ((fetch_name(name,)714 1236 A
  632. (name_length,)504 1992 A
  633. (M3))126 2538 A
  634. 2706(!=)S
  635. (OK))126 2832 A
  636. (return(err_code);)714 3000 A
  637. 1620 V
  638. (26133)210 648 A
  639. 1110(if)S
  640. 1236(()S
  641. ((rip)168 1320 A
  642. 1530(=)S
  643. (eat_path(user_path)))840 1614 A
  644. 2496(==)S
  645. (NIL_INODE))420 2622 A
  646. (return(err_code);)714 3084 A
  647. 1710 V
  648. (26134)210 648 A
  649. 1800 V
  650. (26135)210 648 A
  651. 1110(/*)S
  652. (Only)168 1236 A
  653. (the)126 1446 A
  654. (owner)210 1614 A
  655. 1866(or)S
  656. (the)126 1992 A
  657. (super_user)420 2160 A
  658. (may)126 2622 A
  659. (change)252 2790 A
  660. (the)126 3084 A
  661. (mode)168 3252 A
  662. 3462(of)S
  663. 3588(a)S
  664. (file.)210 3672 A
  665. 1890 V
  666. (26136)210 648 A
  667. 1152(*)S
  668. 1236(No)S
  669. (one)126 1362 A
  670. (may)126 1530 A
  671. (change)252 1698 A
  672. (the)126 1992 A
  673. (mode)168 2160 A
  674. 2370(of)S
  675. 2496(a)S
  676. (file)168 2580 A
  677. 2790(on)S
  678. 2916(a)S
  679. (read-only)378 3000 A
  680. (file)168 3420 A
  681. (system.)294 3630 A
  682. 1980 V
  683. (26137)210 648 A
  684. 1152(*/)S
  685. 2070 V
  686. (26138)210 648 A
  687. 1110(if)S
  688. ((rip->i_uid)462 1236 A
  689. 1740(!=)S
  690. (fp->fp_effuid)546 1866 A
  691. 2454(&&)S
  692. (!super_user))504 2580 A
  693. 2160 V
  694. (26139)210 648 A
  695. 1362(r)S
  696. 1446(=)S
  697. (EPERM;)252 1530 A
  698. 2250 V
  699. (26140)210 648 A
  700. (else)168 1110 A
  701. 2340 V
  702. (26141)210 648 A
  703. 1362(r)S
  704. 1446(=)S
  705. (read_only(rip);)630 1530 A
  706. 2430 V
  707. (26142)210 648 A
  708. 2520 V
  709. (26143)210 648 A
  710. 1110(/*)S
  711. 1236(If)S
  712. (error,)252 1362 A
  713. (return)252 1656 A
  714. (inode.)252 1950 A
  715. 2244(*/)S
  716. 2610 V
  717. (26144)210 648 A
  718. 1110(if)S
  719. 1236((r)S
  720. 1362(!=)S
  721. (OK))126 1488 A
  722. 1698({)S
  723. 2700 V
  724. (26145)210 648 A
  725. (put_inode(rip);)630 1362 A
  726. 2790 V
  727. (26146)210 648 A
  728. (return(r);)420 1362 A
  729. 2880 V
  730. (26147)210 648 A
  731. 1110(})S
  732. 2970 V
  733. (26148)210 648 A
  734. 3060 V
  735. (26149)210 648 A
  736. 1110(/*)S
  737. (Now)126 1236 A
  738. (make)168 1404 A
  739. (the)126 1614 A
  740. (change.)294 1782 A
  741. (Clear)210 2118 A
  742. (setgid)252 2370 A
  743. (bit)126 2664 A
  744. 2832(if)S
  745. (file)168 2958 A
  746. 3168(is)S
  747. (not)126 3294 A
  748. 3462(in)S
  749. (caller's)336 3588 A
  750. (grp)126 3966 A
  751. 4134(*/)S
  752. 3150 V
  753. (26150)210 648 A
  754. (rip->i_mode)462 1110 A
  755. 1614(=)S
  756. ((rip->i_mode)504 1698 A
  757. 2244(&)S
  758. (304ALL_MODES))462 2328 A
  759. 2832(|)S
  760. ((mode)210 2916 A
  761. 3168(&)S
  762. (ALL_MODES);)462 3252 A
  763. 3240 V
  764. (26151)210 648 A
  765. 1110(if)S
  766. ((!super_user)504 1236 A
  767. 1782(&&)S
  768. (rip->i_gid)420 1908 A
  769. 2370(!=)S
  770. (fp->fp_effgid)rip->i_mode)1050 2496 A
  771. 3588(&=)S
  772. (304I_SET_GID_BIT;)630 3714 A
  773. 3330 V
  774. (26152)210 648 A
  775. (rip->i_update)546 1110 A
  776. 1698(|=)S
  777. (CTIME;)252 1824 A
  778. 3420 V
  779. (26153)210 648 A
  780. (rip->i_dirt)462 1110 A
  781. 1614(=)S
  782. (DIRTY;)252 1698 A
  783. 3510 V
  784. (26154)210 648 A
  785. 3600 V
  786. (26155)210 648 A
  787. (put_inode(rip);)630 1110 A
  788. 3690 V
  789. (26156)210 648 A
  790. (return(OK);)462 1110 A
  791. 3780 V
  792. (26157)210 648 A
  793. 1026(})S
  794. 4050 V
  795. (26160)210 648 A
  796. (/*===========================================================================*)3276 1026 A
  797. 4140 V
  798. (26161)210 648 A
  799. 1068(*)S
  800. (do_chown)336 2370 A
  801. 4260(*)S
  802. 4230 V
  803. (26162)210 648 A
  804. (*===========================================================================*/)3276 1068 A
  805. 4320 V
  806. (26163)210 648 A
  807. (PUBLIC)252 1026 A
  808. (int)126 1320 A
  809. (do_chown())420 1488 A
  810. 4410 V
  811. (26164)210 648 A
  812. 1026({)S
  813. 4500 V
  814. (26165)210 648 A
  815. 1026(/*)S
  816. (Perform)294 1152 A
  817. (the)126 1488 A
  818. (chown(name,)462 1656 A
  819. (owner,)252 2160 A
  820. (group))252 2454 A
  821. (system)252 2748 A
  822. (call.)210 3042 A
  823. 3294(*/)S
  824. 4590 V
  825. (26166)210 648 A
  826. 4680 V
  827. (26167)210 648 A
  828. (register)336 1110 A
  829. (struct)252 1488 A
  830. (inode)210 1782 A
  831. (*rip;)210 2034 A
  832. 4770 V
  833. (26168)210 648 A
  834. (register)336 1110 A
  835. (int)126 1488 A
  836. 1656(r;)S
  837. 4860 V
  838. (26169)210 648 A
  839. 4950 V
  840. (26170)210 648 A
  841. 1110(/*)S
  842. (Temporarily)462 1236 A
  843. (open)168 1740 A
  844. (the)126 1950 A
  845. (file.)210 2118 A
  846. 2370(*/)S
  847. 5040 V
  848. (26171)210 648 A
  849. 1110(if)S
  850. ((fetch_name(name1,)756 1236 A
  851. (name1_length,)546 2034 A
  852. (M1))126 2622 A
  853. 2790(!=)S
  854. (OK))126 2916 A
  855. (return(err_code);)714 3084 A
  856. 5130 V
  857. (26172)210 648 A
  858. 1110(if)S
  859. 1236(()S
  860. ((rip)168 1320 A
  861. 1530(=)S
  862. (eat_path(user_path)))840 1614 A
  863. 2496(==)S
  864. (NIL_INODE))420 2622 A
  865. (return(err_code);)714 3084 A
  866. 5220 V
  867. (26173)210 648 A
  868. 5310 V
  869. (26174)210 648 A
  870. 1110(/*)S
  871. (Not)126 1236 A
  872. (permitted)378 1404 A
  873. 1824(to)S
  874. (change)252 1950 A
  875. (the)126 2244 A
  876. (owner)210 2412 A
  877. 2664(of)S
  878. 2790(a)S
  879. (file)168 2874 A
  880. 3084(on)S
  881. 3210(a)S
  882. (read-only)378 3294 A
  883. (file)168 3714 A
  884. (sys.)168 3924 A
  885. 4134(*/)S
  886. 5400 V
  887. (26175)210 648 A
  888. 1110(r)S
  889. 1194(=)S
  890. (read_only(rip);)630 1278 A
  891. 5490 V
  892. (26176)210 648 A
  893. 1110(if)S
  894. 1236((r)S
  895. 1362(==)S
  896. (OK))126 1488 A
  897. 1656({)S
  898. 5580 V
  899. (26177)210 648 A
  900. 1362(/*)S
  901. 1488(FS)S
  902. 1614(is)S
  903. (R/W.)168 1740 A
  904. (Whether)294 1992 A
  905. (call)168 2328 A
  906. 2538(is)S
  907. (allowed)294 2664 A
  908. (depends)294 3000 A
  909. 3336(on)S
  910. (ownership,)420 3462 A
  911. (etc.)168 3924 A
  912. 4134(*/)S
  913. 5670 V
  914. (26178)210 648 A
  915. 1362(if)S
  916. ((super_user))504 1488 A
  917. 2034({)S
  918. 5760 V
  919. (26179)210 648 A
  920. 1698(/*)S
  921. (The)126 1824 A
  922. (super)210 1992 A
  923. (user)168 2244 A
  924. (can)126 2454 A
  925. 2622(do)S
  926. (anything.)378 2748 A
  927. 3168(*/)S
  928. 5850 V
  929. (26180)210 648 A
  930. (rip->i_uid)420 1698 A
  931. 2160(=)S
  932. (owner;)252 2244 A
  933. 2706(/*)S
  934. (others)252 2832 A
  935. (later)210 3126 A
  936. 3378(*/)S
  937. 5940 V
  938. (26181)210 648 A
  939. 1362(})S
  940. (else)168 1446 A
  941. 1656({)S
  942. 6030 V
  943. (26182)210 648 A
  944. 1698(/*)S
  945. (Regular)294 1824 A
  946. (users)210 2160 A
  947. (can)126 2412 A
  948. (only)168 2580 A
  949. (change)252 2790 A
  950. (groups)252 3084 A
  951. 3378(of)S
  952. (their)210 3504 A
  953. (own)126 3756 A
  954. (files.)252 3924 A
  955. 4218(*/)S
  956. 6120 V
  957. (26183)210 648 A
  958. 1698(if)S
  959. ((rip->i_uid)462 1824 A
  960. 2328(!=)S
  961. (fp->fp_effuid))588 2454 A
  962. 3084(r)S
  963. 3168(=)S
  964. (EPERM;)252 3252 A
  965. 6210 V
  966. (26184)210 648 A
  967. 1698(if)S
  968. ((rip->i_uid)462 1824 A
  969. 2328(!=)S
  970. (owner))252 2454 A
  971. 2748(r)S
  972. 2832(=)S
  973. (EPERM;)252 2916 A
  974. 3378(/*)S
  975. 3504(no)S
  976. (giving)252 3630 A
  977. (away)168 3924 A
  978. 4134(*/)S
  979. 8418 V
  980. EP
  981. %%Page: 362 362
  982. BP
  983. /slant 0 def
  984. /height 0 def
  985. 630 V
  986. 12 B
  987. (362)180 648 A
  988. 11 R
  989. 2092(File:)S
  990. 2325(src/fs/protect.c)S
  991. 10 R
  992. 3402(MINIX)S
  993. 3730(SOURCE)S
  994. 4153(CODE)S
  995. 900 V
  996. 7 LST
  997. (26185)210 648 A
  998. 1698(if)S
  999. ((fp->fp_effgid)588 1824 A
  1000. 2454(!=)S
  1001. (group))252 2580 A
  1002. 2874(r)S
  1003. 2958(=)S
  1004. (EPERM;)252 3042 A
  1005. 990 V
  1006. (26186)210 648 A
  1007. 1362(})S
  1008. 1080 V
  1009. (26187)210 648 A
  1010. 1110(})S
  1011. 1170 V
  1012. (26188)210 648 A
  1013. 1110(if)S
  1014. 1236((r)S
  1015. 1362(==)S
  1016. (OK))126 1488 A
  1017. 1656({)S
  1018. 1260 V
  1019. (26189)210 648 A
  1020. (rip->i_gid)420 1362 A
  1021. 1824(=)S
  1022. (group;)252 1908 A
  1023. 1350 V
  1024. (26190)210 648 A
  1025. (rip->i_mode)462 1362 A
  1026. 1866(&=)S
  1027. (304(I_SET_UID_BIT)630 1992 A
  1028. 2664(|)S
  1029. (I_SET_GID_BIT);)630 2748 A
  1030. 1440 V
  1031. (26191)210 648 A
  1032. (rip->i_update)546 1362 A
  1033. 1950(|=)S
  1034. (CTIME;)252 2076 A
  1035. 1530 V
  1036. (26192)210 648 A
  1037. (rip->i_dirt)462 1362 A
  1038. 1866(=)S
  1039. (DIRTY;)252 1950 A
  1040. 1620 V
  1041. (26193)210 648 A
  1042. 1110(})S
  1043. 1710 V
  1044. (26194)210 648 A
  1045. 1800 V
  1046. (26195)210 648 A
  1047. (put_inode(rip);)630 1110 A
  1048. 1890 V
  1049. (26196)210 648 A
  1050. (return(r);)420 1110 A
  1051. 1980 V
  1052. (26197)210 648 A
  1053. 1026(})S
  1054. 2250 V
  1055. (26200)210 648 A
  1056. (/*===========================================================================*)3276 1026 A
  1057. 2340 V
  1058. (26201)210 648 A
  1059. 1068(*)S
  1060. (do_umask)336 2370 A
  1061. 4260(*)S
  1062. 2430 V
  1063. (26202)210 648 A
  1064. (*===========================================================================*/)3276 1068 A
  1065. 2520 V
  1066. (26203)210 648 A
  1067. (PUBLIC)252 1026 A
  1068. (int)126 1320 A
  1069. (do_umask())420 1488 A
  1070. 2610 V
  1071. (26204)210 648 A
  1072. 1026({)S
  1073. 2700 V
  1074. (26205)210 648 A
  1075. 1026(/*)S
  1076. (Perform)294 1152 A
  1077. (the)126 1488 A
  1078. (umask(co_mode))588 1656 A
  1079. (system)252 2286 A
  1080. (call.)210 2580 A
  1081. 2832(*/)S
  1082. 2790 V
  1083. (26206)210 648 A
  1084. (register)336 1110 A
  1085. (mode_t)252 1488 A
  1086. 1782(r;)S
  1087. 2880 V
  1088. (26207)210 648 A
  1089. 2970 V
  1090. (26208)210 648 A
  1091. 1110(r)S
  1092. 1194(=)S
  1093. (304fp->fp_umask;)588 1278 A
  1094. 2370(/*)S
  1095. (set)126 2496 A
  1096. ('r')126 2664 A
  1097. 2832(to)S
  1098. (complement)420 2958 A
  1099. 3420(of)S
  1100. (old)126 3546 A
  1101. (mask)168 3714 A
  1102. 3924(*/)S
  1103. 3060 V
  1104. (26209)210 648 A
  1105. (fp->fp_umask)504 1110 A
  1106. 1656(=)S
  1107. (304(co_mode)378 1740 A
  1108. 2160(&)S
  1109. (RWX_MODES);)462 2244 A
  1110. 3150 V
  1111. (26210)210 648 A
  1112. (return(r);)420 1110 A
  1113. 2370(/*)S
  1114. (return)252 2496 A
  1115. (complement)420 2790 A
  1116. 3252(of)S
  1117. (old)126 3378 A
  1118. (mask)168 3546 A
  1119. 3756(*/)S
  1120. 3240 V
  1121. (26211)210 648 A
  1122. 1026(})S
  1123. 3510 V
  1124. (26214)210 648 A
  1125. (/*===========================================================================*)3276 1026 A
  1126. 3600 V
  1127. (26215)210 648 A
  1128. 1068(*)S
  1129. (do_access)378 2370 A
  1130. 4260(*)S
  1131. 3690 V
  1132. (26216)210 648 A
  1133. (*===========================================================================*/)3276 1068 A
  1134. 3780 V
  1135. (26217)210 648 A
  1136. (PUBLIC)252 1026 A
  1137. (int)126 1320 A
  1138. (do_access())462 1488 A
  1139. 3870 V
  1140. (26218)210 648 A
  1141. 1026({)S
  1142. 3960 V
  1143. (26219)210 648 A
  1144. 1026(/*)S
  1145. (Perform)294 1152 A
  1146. (the)126 1488 A
  1147. (access(name,)504 1656 A
  1148. (mode))210 2202 A
  1149. (system)252 2454 A
  1150. (call.)210 2748 A
  1151. 3000(*/)S
  1152. 4050 V
  1153. (26220)210 648 A
  1154. 4140 V
  1155. (26221)210 648 A
  1156. (struct)252 1110 A
  1157. (inode)210 1404 A
  1158. (*rip;)210 1656 A
  1159. 4230 V
  1160. (26222)210 648 A
  1161. (register)336 1110 A
  1162. (int)126 1488 A
  1163. 1656(r;)S
  1164. 4320 V
  1165. (26223)210 648 A
  1166. 4410 V
  1167. (26224)210 648 A
  1168. 1110(/*)S
  1169. (First)210 1236 A
  1170. (check)210 1488 A
  1171. 1740(to)S
  1172. (see)126 1866 A
  1173. 2034(if)S
  1174. (the)126 2160 A
  1175. (mode)168 2328 A
  1176. 2538(is)S
  1177. (correct.)336 2664 A
  1178. 3042(*/)S
  1179. 4500 V
  1180. (26225)210 648 A
  1181. 1110(if)S
  1182. 1236(()S
  1183. ((mode)210 1320 A
  1184. 1572(&)S
  1185. (304(R_OK)252 1656 A
  1186. 1950(|)S
  1187. (W_OK)168 2034 A
  1188. 2244(|)S
  1189. (X_OK)))252 2328 A
  1190. 2622(!=)S
  1191. 2748(0)S
  1192. 2832(&&)S
  1193. (mode)168 2958 A
  1194. 3168(!=)S
  1195. (F_OK))210 3294 A
  1196. 4590 V
  1197. (26226)210 648 A
  1198. (return(EINVAL);)630 1362 A
  1199. 4680 V
  1200. (26227)210 648 A
  1201. 4770 V
  1202. (26228)210 648 A
  1203. 1110(/*)S
  1204. (Temporarily)462 1236 A
  1205. (open)168 1740 A
  1206. (the)126 1950 A
  1207. (file)168 2118 A
  1208. (whose)210 2328 A
  1209. (access)252 2580 A
  1210. 2874(is)S
  1211. 3000(to)S
  1212. 3126(be)S
  1213. (checked.)336 3252 A
  1214. 3630(*/)S
  1215. 4860 V
  1216. (26229)210 648 A
  1217. 1110(if)S
  1218. ((fetch_name(name,)714 1236 A
  1219. (name_length,)504 1992 A
  1220. (M3))126 2538 A
  1221. 2706(!=)S
  1222. (OK))126 2832 A
  1223. (return(err_code);)714 3000 A
  1224. 4950 V
  1225. (26230)210 648 A
  1226. 1110(if)S
  1227. 1236(()S
  1228. ((rip)168 1320 A
  1229. 1530(=)S
  1230. (eat_path(user_path)))840 1614 A
  1231. 2496(==)S
  1232. (NIL_INODE))420 2622 A
  1233. (return(err_code);)714 3084 A
  1234. 5040 V
  1235. (26231)210 648 A
  1236. 5130 V
  1237. (26232)210 648 A
  1238. 1110(/*)S
  1239. (Now)126 1236 A
  1240. (check)210 1404 A
  1241. (the)126 1656 A
  1242. (permissions.)504 1824 A
  1243. 2370(*/)S
  1244. 5220 V
  1245. (26233)210 648 A
  1246. 1110(r)S
  1247. 1194(=)S
  1248. (forbidden(rip,)588 1278 A
  1249. ((mode_t))336 1908 A
  1250. (mode);)252 2286 A
  1251. 5310 V
  1252. (26234)210 648 A
  1253. (put_inode(rip);)630 1110 A
  1254. 5400 V
  1255. (26235)210 648 A
  1256. (return(r);)420 1110 A
  1257. 5490 V
  1258. (26236)210 648 A
  1259. 1026(})S
  1260. 5760 V
  1261. (26239)210 648 A
  1262. (/*===========================================================================*)3276 1026 A
  1263. 5850 V
  1264. (26240)210 648 A
  1265. 1068(*)S
  1266. (forbidden)378 2370 A
  1267. 4260(*)S
  1268. 5940 V
  1269. (26241)210 648 A
  1270. (*===========================================================================*/)3276 1068 A
  1271. 6030 V
  1272. (26242)210 648 A
  1273. (PUBLIC)252 1026 A
  1274. (int)126 1320 A
  1275. (forbidden(rip,)588 1488 A
  1276. (access_desired))630 2118 A
  1277. 6120 V
  1278. (26243)210 648 A
  1279. (register)336 1026 A
  1280. (struct)252 1404 A
  1281. (inode)210 1698 A
  1282. (*rip;)210 1950 A
  1283. 2370(/*)S
  1284. (pointer)294 2496 A
  1285. 2832(to)S
  1286. (inode)210 2958 A
  1287. 3210(to)S
  1288. 3336(be)S
  1289. (checked)294 3462 A
  1290. 3798(*/)S
  1291. 6210 V
  1292. (26244)210 648 A
  1293. (mode_t)252 1026 A
  1294. (access_desired;)630 1320 A
  1295. 2034(/*)S
  1296. (RWX)126 2160 A
  1297. (bits)168 2328 A
  1298. 2538(*/)S
  1299. 8418 V
  1300. EP
  1301. %%Page: 363 363
  1302. BP
  1303. /slant 0 def
  1304. /height 0 def
  1305. 630 V
  1306. 10 R
  1307. 648(MINIX)S
  1308. 976(SOURCE)S
  1309. 1399(CODE)S
  1310. 11 R
  1311. 2092(File:)S
  1312. 2325(src/fs/protect.c)S
  1313. 12 B
  1314. (363)180 4248 A
  1315. 900 V
  1316. 7 LST
  1317. (26245)210 648 A
  1318. 1026({)S
  1319. 990 V
  1320. (26246)210 648 A
  1321. 1026(/*)S
  1322. (Given)210 1152 A
  1323. 1404(a)S
  1324. (pointer)294 1488 A
  1325. 1824(to)S
  1326. 1950(an)S
  1327. (inode,)252 2076 A
  1328. ('rip',)252 2370 A
  1329. (and)126 2664 A
  1330. (the)126 2832 A
  1331. (access)252 3000 A
  1332. (desired,)336 3294 A
  1333. (determine)378 3672 A
  1334. 1080 V
  1335. (26247)210 648 A
  1336. 1068(*)S
  1337. 1152(if)S
  1338. (the)126 1278 A
  1339. (access)252 1446 A
  1340. 1740(is)S
  1341. (allowed,)336 1866 A
  1342. (and)126 2244 A
  1343. 2412(if)S
  1344. (not)126 2538 A
  1345. (why)126 2706 A
  1346. (not.)168 2874 A
  1347. (The)126 3126 A
  1348. (routine)294 3294 A
  1349. (looks)210 3630 A
  1350. 3882(up)S
  1351. (the)126 4008 A
  1352. 1170 V
  1353. (26248)210 648 A
  1354. 1068(*)S
  1355. (caller's)336 1152 A
  1356. (uid)126 1530 A
  1357. 1698(in)S
  1358. (the)126 1824 A
  1359. ('fproc')294 1992 A
  1360. (table.)252 2328 A
  1361. 2664(If)S
  1362. (access)252 2790 A
  1363. 3084(is)S
  1364. (allowed,)336 3210 A
  1365. 3588(OK)S
  1366. 3714(is)S
  1367. (returned)336 3840 A
  1368. 1260 V
  1369. (26249)210 648 A
  1370. 1068(*)S
  1371. 1152(if)S
  1372. 1278(it)S
  1373. 1404(is)S
  1374. (forbidden,)420 1530 A
  1375. (EACCES)252 1992 A
  1376. 2286(is)S
  1377. (returned.)378 2412 A
  1378. 1350 V
  1379. (26250)210 648 A
  1380. 1068(*/)S
  1381. 1440 V
  1382. (26251)210 648 A
  1383. 1530 V
  1384. (26252)210 648 A
  1385. (register)336 1110 A
  1386. (struct)252 1488 A
  1387. (inode)210 1782 A
  1388. (*old_rip)336 2034 A
  1389. 2412(=)S
  1390. (rip;)168 2496 A
  1391. 1620 V
  1392. (26253)210 648 A
  1393. (register)336 1110 A
  1394. (struct)252 1488 A
  1395. (super_block)462 1782 A
  1396. (*sp;)168 2286 A
  1397. 1710 V
  1398. (26254)210 648 A
  1399. (register)336 1110 A
  1400. (mode_t)252 1488 A
  1401. (bits,)210 1782 A
  1402. (perm_bits;)420 2034 A
  1403. 1800 V
  1404. (26255)210 648 A
  1405. (int)126 1110 A
  1406. 1278(r,)S
  1407. (shift,)252 1404 A
  1408. (test_uid,)378 1698 A
  1409. (test_gid;)378 2118 A
  1410. 1890 V
  1411. (26256)210 648 A
  1412. 1980 V
  1413. (26257)210 648 A
  1414. 1110(if)S
  1415. ((rip->i_mount)546 1236 A
  1416. 1824(==)S
  1417. (I_MOUNT))336 1950 A
  1418. 2370(/*)S
  1419. (The)126 2496 A
  1420. (inode)210 2664 A
  1421. 2916(is)S
  1422. (mounted)294 3042 A
  1423. (on.)126 3378 A
  1424. 3546(*/)S
  1425. 2070 V
  1426. (26258)210 648 A
  1427. (for)126 1362 A
  1428. ((sp)126 1530 A
  1429. 1698(=)S
  1430. (&super_block[1];)672 1782 A
  1431. 2496(sp)S
  1432. 2622(<)S
  1433. (&super_block[NR_SUPERS];)1008 2706 A
  1434. (sp++))210 3756 A
  1435. 2160 V
  1436. (26259)210 648 A
  1437. 1698(if)S
  1438. ((sp->s_imount)546 1824 A
  1439. 2412(==)S
  1440. (rip))168 2538 A
  1441. 2748({)S
  1442. 2250 V
  1443. (26260)210 648 A
  1444. (rip)126 2034 A
  1445. 2202(=)S
  1446. (get_inode(sp->s_dev,)840 2286 A
  1447. (ROOT_INODE);)504 3168 A
  1448. 2340 V
  1449. (26261)210 648 A
  1450. (break;)252 2034 A
  1451. 2430 V
  1452. (26262)210 648 A
  1453. 1698(})S
  1454. 1782(/*)S
  1455. 1908(if)S
  1456. 2034(*/)S
  1457. 2520 V
  1458. (26263)210 648 A
  1459. 2610 V
  1460. (26264)210 648 A
  1461. 1110(/*)S
  1462. (Isolate)294 1236 A
  1463. (the)126 1572 A
  1464. (relevant)336 1740 A
  1465. (rwx)126 2118 A
  1466. (bits)168 2286 A
  1467. (from)168 2496 A
  1468. (the)126 2706 A
  1469. (mode.)210 2874 A
  1470. 3126(*/)S
  1471. 2700 V
  1472. (26265)210 648 A
  1473. (bits)168 1110 A
  1474. 1320(=)S
  1475. (rip->i_mode;)504 1404 A
  1476. 2790 V
  1477. (26266)210 648 A
  1478. (test_uid)336 1110 A
  1479. 1488(=)S
  1480. ((fs_call)336 1572 A
  1481. 1950(==)S
  1482. (ACCESS)252 2076 A
  1483. 2370(?)S
  1484. (fp->fp_realuid)588 2454 A
  1485. 3084(:)S
  1486. (fp->fp_effuid);)630 3168 A
  1487. 2880 V
  1488. (26267)210 648 A
  1489. (test_gid)336 1110 A
  1490. 1488(=)S
  1491. ((fs_call)336 1572 A
  1492. 1950(==)S
  1493. (ACCESS)252 2076 A
  1494. 2370(?)S
  1495. (fp->fp_realgid)588 2454 A
  1496. 3084(:)S
  1497. (fp->fp_effgid);)630 3168 A
  1498. 2970 V
  1499. (26268)210 648 A
  1500. 1110(if)S
  1501. ((test_uid)378 1236 A
  1502. 1656(==)S
  1503. (SU_UID))294 1782 A
  1504. 2118({)S
  1505. 3060 V
  1506. (26269)210 648 A
  1507. 1362(/*)S
  1508. (Grant)210 1488 A
  1509. (read)168 1740 A
  1510. (and)126 1950 A
  1511. (write)210 2118 A
  1512. (permission.)462 2370 A
  1513. (Grant)210 2916 A
  1514. (search)252 3168 A
  1515. (permission)420 3462 A
  1516. (for)126 3924 A
  1517. 3150 V
  1518. (26270)210 648 A
  1519. 1404(*)S
  1520. (directories.)504 1488 A
  1521. (Grant)210 2076 A
  1522. (execute)294 2328 A
  1523. (permission)420 2664 A
  1524. ((for)168 3126 A
  1525. (non-directories))672 3336 A
  1526. 4050(if)S
  1527. 3240 V
  1528. (26271)210 648 A
  1529. 1404(*)S
  1530. (and)126 1488 A
  1531. (only)168 1656 A
  1532. 1866(if)S
  1533. (one)126 1992 A
  1534. 2160(of)S
  1535. (the)126 2286 A
  1536. ('X')126 2454 A
  1537. (bits)168 2622 A
  1538. 2832(is)S
  1539. (set.)168 2958 A
  1540. 3330 V
  1541. (26272)210 648 A
  1542. 1404(*/)S
  1543. 3420 V
  1544. (26273)210 648 A
  1545. 1362(if)S
  1546. 1488(()S
  1547. ((bits)210 1572 A
  1548. 1824(&)S
  1549. (I_TYPE))294 1908 A
  1550. 2244(==)S
  1551. (I_DIRECTORY)462 2370 A
  1552. 2874(||)S
  1553. 3510 V
  1554. (26274)210 648 A
  1555. (bits)168 1572 A
  1556. 1782(&)S
  1557. (((X_BIT)294 1866 A
  1558. 2202(<<)S
  1559. 2328(6))S
  1560. 2454(|)S
  1561. ((X_BIT)252 2538 A
  1562. 2832(<<)S
  1563. 2958(3))S
  1564. 3084(|)S
  1565. (X_BIT)))294 3168 A
  1566. 3600 V
  1567. (26275)210 648 A
  1568. (perm_bits)378 1698 A
  1569. 2118(=)S
  1570. (R_BIT)210 2202 A
  1571. 2454(|)S
  1572. (W_BIT)210 2538 A
  1573. 2790(|)S
  1574. (X_BIT;)252 2874 A
  1575. 3690 V
  1576. (26276)210 648 A
  1577. (else)168 1362 A
  1578. 3780 V
  1579. (26277)210 648 A
  1580. (perm_bits)378 1698 A
  1581. 2118(=)S
  1582. (R_BIT)210 2202 A
  1583. 2454(|)S
  1584. (W_BIT;)252 2538 A
  1585. 3870 V
  1586. (26278)210 648 A
  1587. 1110(})S
  1588. (else)168 1194 A
  1589. 1404({)S
  1590. 3960 V
  1591. (26279)210 648 A
  1592. 1362(if)S
  1593. ((test_uid)378 1488 A
  1594. 1908(==)S
  1595. (rip->i_uid))462 2034 A
  1596. (shift)210 2538 A
  1597. 2790(=)S
  1598. 2874(6;)S
  1599. 3378(/*)S
  1600. (owner)210 3504 A
  1601. 3756(*/)S
  1602. 4050 V
  1603. (26280)210 648 A
  1604. (else)168 1362 A
  1605. 1572(if)S
  1606. ((test_gid)378 1698 A
  1607. 2118(==)S
  1608. (rip->i_gid)420 2244 A
  1609. 2706())S
  1610. (shift)210 2790 A
  1611. 3042(=)S
  1612. 3126(3;)S
  1613. 3378(/*)S
  1614. (group)210 3504 A
  1615. 3756(*/)S
  1616. 4140 V
  1617. (26281)210 648 A
  1618. (else)168 1362 A
  1619. (shift)210 1572 A
  1620. 1824(=)S
  1621. 1908(0;)S
  1622. 3378(/*)S
  1623. (other)210 3504 A
  1624. 3756(*/)S
  1625. 4230 V
  1626. (26282)210 648 A
  1627. (perm_bits)378 1362 A
  1628. 1782(=)S
  1629. ((bits)210 1866 A
  1630. 2118(>>)S
  1631. (shift))252 2244 A
  1632. 2538(&)S
  1633. ((R_BIT)252 2622 A
  1634. 2916(|)S
  1635. (W_BIT)210 3000 A
  1636. 3252(|)S
  1637. (X_BIT);)294 3336 A
  1638. 4320 V
  1639. (26283)210 648 A
  1640. 1110(})S
  1641. 4410 V
  1642. (26284)210 648 A
  1643. 4500 V
  1644. (26285)210 648 A
  1645. 1110(/*)S
  1646. 1236(If)S
  1647. (access)252 1362 A
  1648. (desired)294 1656 A
  1649. 1992(is)S
  1650. (not)126 2118 A
  1651. 2286(a)S
  1652. (subset)252 2370 A
  1653. 2664(of)S
  1654. (what)168 2790 A
  1655. 3000(is)S
  1656. (allowed,)336 3126 A
  1657. 3504(it)S
  1658. 3630(is)S
  1659. (refused.)336 3756 A
  1660. 4134(*/)S
  1661. 4590 V
  1662. (26286)210 648 A
  1663. 1110(r)S
  1664. 1194(=)S
  1665. (OK;)126 1278 A
  1666. 4680 V
  1667. (26287)210 648 A
  1668. 1110(if)S
  1669. (((perm_bits)462 1236 A
  1670. 1740(|)S
  1671. (access_desired))630 1824 A
  1672. 2496(!=)S
  1673. (perm_bits))420 2622 A
  1674. 3084(r)S
  1675. 3168(=)S
  1676. (EACCES;)294 3252 A
  1677. 4770 V
  1678. (26288)210 648 A
  1679. 4860 V
  1680. (26289)210 648 A
  1681. 1110(/*)S
  1682. (Check)210 1236 A
  1683. 1488(to)S
  1684. (see)126 1614 A
  1685. 1782(if)S
  1686. (someone)294 1908 A
  1687. 2244(is)S
  1688. (trying)252 2370 A
  1689. 2664(to)S
  1690. (write)210 2790 A
  1691. 3042(on)S
  1692. 3168(a)S
  1693. (file)168 3252 A
  1694. (system)252 3462 A
  1695. (that)168 3756 A
  1696. 3966(is)S
  1697. 4950 V
  1698. (26290)210 648 A
  1699. 1152(*)S
  1700. (mounted)294 1236 A
  1701. (read-only.)420 1572 A
  1702. 5040 V
  1703. (26291)210 648 A
  1704. 1152(*/)S
  1705. 5130 V
  1706. (26292)210 648 A
  1707. 1110(if)S
  1708. 1236((r)S
  1709. 1362(==)S
  1710. (OK))126 1488 A
  1711. 5220 V
  1712. (26293)210 648 A
  1713. 1362(if)S
  1714. ((access_desired)630 1488 A
  1715. 2160(&)S
  1716. (W_BIT))252 2244 A
  1717. 2538(r)S
  1718. 2622(=)S
  1719. (read_only(rip);)630 2706 A
  1720. 5310 V
  1721. (26294)210 648 A
  1722. 5400 V
  1723. (26295)210 648 A
  1724. 1110(if)S
  1725. ((rip)168 1236 A
  1726. 1446(!=)S
  1727. (old_rip))336 1572 A
  1728. (put_inode(rip);)630 1950 A
  1729. 5490 V
  1730. (26296)210 648 A
  1731. 5580 V
  1732. (26297)210 648 A
  1733. (return(r);)420 1110 A
  1734. 5670 V
  1735. (26298)210 648 A
  1736. 1026(})S
  1737. 5940 V
  1738. (26301)210 648 A
  1739. (/*===========================================================================*)3276 1026 A
  1740. 6030 V
  1741. (26302)210 648 A
  1742. 1068(*)S
  1743. (read_only)378 2370 A
  1744. 4260(*)S
  1745. 6120 V
  1746. (26303)210 648 A
  1747. (*===========================================================================*/)3276 1068 A
  1748. 6210 V
  1749. (26304)210 648 A
  1750. (PUBLIC)252 1026 A
  1751. (int)126 1320 A
  1752. (read_only(ip))546 1488 A
  1753. 8418 V
  1754. EP
  1755. %%Page: 364 364
  1756. BP
  1757. /slant 0 def
  1758. /height 0 def
  1759. 630 V
  1760. 12 B
  1761. (364)180 648 A
  1762. 11 R
  1763. 2092(File:)S
  1764. 2325(src/fs/protect.c)S
  1765. 10 R
  1766. 3402(MINIX)S
  1767. 3730(SOURCE)S
  1768. 4153(CODE)S
  1769. 900 V
  1770. 7 LST
  1771. (26305)210 648 A
  1772. (struct)252 1026 A
  1773. (inode)210 1320 A
  1774. (*ip;)168 1572 A
  1775. 2370(/*)S
  1776. (ptr)126 2496 A
  1777. 2664(to)S
  1778. (inode)210 2790 A
  1779. (whose)210 3042 A
  1780. (file)168 3294 A
  1781. (sys)126 3504 A
  1782. 3672(is)S
  1783. 3798(to)S
  1784. 3924(be)S
  1785. (cked)168 4050 A
  1786. 4260(*/)S
  1787. 990 V
  1788. (26306)210 648 A
  1789. 1026({)S
  1790. 1080 V
  1791. (26307)210 648 A
  1792. 1026(/*)S
  1793. (Check)210 1152 A
  1794. 1404(to)S
  1795. (see)126 1530 A
  1796. 1698(if)S
  1797. (the)126 1824 A
  1798. (file)168 1992 A
  1799. (system)252 2202 A
  1800. 2496(on)S
  1801. (which)210 2622 A
  1802. (the)126 2874 A
  1803. (inode)210 3042 A
  1804. ('ip')168 3294 A
  1805. (resides)294 3504 A
  1806. 3840(is)S
  1807. (mounted)294 3966 A
  1808. 1170 V
  1809. (26308)210 648 A
  1810. 1068(*)S
  1811. (read)168 1152 A
  1812. (only.)210 1362 A
  1813. 1656(If)S
  1814. (so,)126 1782 A
  1815. (return)252 1950 A
  1816. (EROFS,)252 2244 A
  1817. (else)168 2538 A
  1818. (return)252 2748 A
  1819. (OK.)126 3042 A
  1820. 1260 V
  1821. (26309)210 648 A
  1822. 1068(*/)S
  1823. 1350 V
  1824. (26310)210 648 A
  1825. 1440 V
  1826. (26311)210 648 A
  1827. (register)336 1110 A
  1828. (struct)252 1488 A
  1829. (super_block)462 1782 A
  1830. (*sp;)168 2286 A
  1831. 1530 V
  1832. (26312)210 648 A
  1833. 1620 V
  1834. (26313)210 648 A
  1835. 1110(sp)S
  1836. 1236(=)S
  1837. (ip->i_sp;)378 1320 A
  1838. 1710 V
  1839. (26314)210 648 A
  1840. (return(sp->s_rd_only)840 1110 A
  1841. 1992(?)S
  1842. (EROFS)210 2076 A
  1843. 2328(:)S
  1844. (OK);)168 2412 A
  1845. 1800 V
  1846. (26315)210 648 A
  1847. 1026(})S
  1848. 2340 V
  1849. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  1850. 2430 V
  1851. (src/fs/time.c)546 2034 A
  1852. 2520 V
  1853. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  1854. 2700 V
  1855. (26400)210 648 A
  1856. 1026(/*)S
  1857. (This)168 1152 A
  1858. (file)168 1362 A
  1859. (takes)210 1572 A
  1860. (care)168 1824 A
  1861. 2034(of)S
  1862. (those)210 2160 A
  1863. (system)252 2412 A
  1864. (calls)210 2706 A
  1865. (that)168 2958 A
  1866. (deal)168 3168 A
  1867. (with)168 3378 A
  1868. (time.)210 3588 A
  1869. 2790 V
  1870. (26401)210 648 A
  1871. 1068(*)S
  1872. 2880 V
  1873. (26402)210 648 A
  1874. 1068(*)S
  1875. (The)126 1152 A
  1876. (entry)210 1320 A
  1877. (points)252 1572 A
  1878. (into)168 1866 A
  1879. (this)168 2076 A
  1880. (file)168 2286 A
  1881. (are)126 2496 A
  1882. 2970 V
  1883. (26403)210 648 A
  1884. 1068(*)S
  1885. (do_utime:)378 1236 A
  1886. (perform)294 1698 A
  1887. (the)126 2034 A
  1888. (UTIME)210 2202 A
  1889. (system)252 2454 A
  1890. (call)168 2748 A
  1891. 3060 V
  1892. (26404)210 648 A
  1893. 1068(*)S
  1894. (do_time:)336 1236 A
  1895. (perform)294 1698 A
  1896. (the)126 2034 A
  1897. (TIME)168 2202 A
  1898. (system)252 2412 A
  1899. (call)168 2706 A
  1900. 3150 V
  1901. (26405)210 648 A
  1902. 1068(*)S
  1903. (do_stime:)378 1236 A
  1904. (perform)294 1698 A
  1905. (the)126 2034 A
  1906. (STIME)210 2202 A
  1907. (system)252 2454 A
  1908. (call)168 2748 A
  1909. 3240 V
  1910. (26406)210 648 A
  1911. 1068(*)S
  1912. (do_tims:)336 1236 A
  1913. (perform)294 1698 A
  1914. (the)126 2034 A
  1915. (TIMES)210 2202 A
  1916. (system)252 2454 A
  1917. (call)168 2748 A
  1918. 3330 V
  1919. (26407)210 648 A
  1920. 1068(*/)S
  1921. 3420 V
  1922. (26408)210 648 A
  1923. 3510 V
  1924. (26409)210 648 A
  1925. (#include)336 1026 A
  1926. ("fs.h")252 1404 A
  1927. 3600 V
  1928. (26410)210 648 A
  1929. (#include)336 1026 A
  1930. (<minix/callnr.h>)672 1404 A
  1931. 3690 V
  1932. (26411)210 648 A
  1933. (#include)336 1026 A
  1934. (<minix/com.h>)546 1404 A
  1935. 3780 V
  1936. (26412)210 648 A
  1937. (#include)336 1026 A
  1938. ("file.h")336 1404 A
  1939. 3870 V
  1940. (26413)210 648 A
  1941. (#include)336 1026 A
  1942. ("fproc.h")378 1404 A
  1943. 3960 V
  1944. (26414)210 648 A
  1945. (#include)336 1026 A
  1946. ("inode.h")378 1404 A
  1947. 4050 V
  1948. (26415)210 648 A
  1949. (#include)336 1026 A
  1950. ("param.h")378 1404 A
  1951. 4140 V
  1952. (26416)210 648 A
  1953. 4230 V
  1954. (26417)210 648 A
  1955. (PRIVATE)294 1026 A
  1956. (message)294 1362 A
  1957. (clock_mess;)462 1698 A
  1958. 4320 V
  1959. (26418)210 648 A
  1960. 4410 V
  1961. (26419)210 648 A
  1962. (/*===========================================================================*)3276 1026 A
  1963. 4500 V
  1964. (26420)210 648 A
  1965. 1068(*)S
  1966. (do_utime)336 2370 A
  1967. 4260(*)S
  1968. 4590 V
  1969. (26421)210 648 A
  1970. (*===========================================================================*/)3276 1068 A
  1971. 4680 V
  1972. (26422)210 648 A
  1973. (PUBLIC)252 1026 A
  1974. (int)126 1320 A
  1975. (do_utime())420 1488 A
  1976. 4770 V
  1977. (26423)210 648 A
  1978. 1026({)S
  1979. 4860 V
  1980. (26424)210 648 A
  1981. 1026(/*)S
  1982. (Perform)294 1152 A
  1983. (the)126 1488 A
  1984. (utime(name,)462 1656 A
  1985. (timep))252 2160 A
  1986. (system)252 2454 A
  1987. (call.)210 2748 A
  1988. 3000(*/)S
  1989. 4950 V
  1990. (26425)210 648 A
  1991. 5040 V
  1992. (26426)210 648 A
  1993. (register)336 1110 A
  1994. (struct)252 1488 A
  1995. (inode)210 1782 A
  1996. (*rip;)210 2034 A
  1997. 5130 V
  1998. (26427)210 648 A
  1999. (register)336 1110 A
  2000. (int)126 1488 A
  2001. (len,)168 1656 A
  2002. 1866(r;)S
  2003. 5220 V
  2004. (26428)210 648 A
  2005. 5310 V
  2006. (26429)210 648 A
  2007. 1110(/*)S
  2008. (Adjust)252 1236 A
  2009. (for)126 1530 A
  2010. (case)168 1698 A
  2011. 1908(of)S
  2012. (NULL)168 2034 A
  2013. ('timep'.)336 2244 A
  2014. 2622(*/)S
  2015. 5400 V
  2016. (26430)210 648 A
  2017. (len)126 1110 A
  2018. 1278(=)S
  2019. (utime_length;)546 1362 A
  2020. 5490 V
  2021. (26431)210 648 A
  2022. 1110(if)S
  2023. ((len)168 1236 A
  2024. 1446(==)S
  2025. 1572(0))S
  2026. (len)126 1698 A
  2027. 1866(=)S
  2028. (m.m2_i2;)336 1950 A
  2029. 5580 V
  2030. (26432)210 648 A
  2031. 5670 V
  2032. (26433)210 648 A
  2033. 1110(/*)S
  2034. (Temporarily)462 1236 A
  2035. (open)168 1740 A
  2036. (the)126 1950 A
  2037. (file.)210 2118 A
  2038. 2370(*/)S
  2039. 5760 V
  2040. (26434)210 648 A
  2041. 1110(if)S
  2042. ((fetch_name(utime_file,)966 1236 A
  2043. (len,)168 2244 A
  2044. (M1))126 2454 A
  2045. 2622(!=)S
  2046. (OK))126 2748 A
  2047. (return(err_code);)714 2916 A
  2048. 5850 V
  2049. (26435)210 648 A
  2050. 1110(if)S
  2051. 1236(()S
  2052. ((rip)168 1320 A
  2053. 1530(=)S
  2054. (eat_path(user_path)))840 1614 A
  2055. 2496(==)S
  2056. (NIL_INODE))420 2622 A
  2057. (return(err_code);)714 3084 A
  2058. 5940 V
  2059. (26436)210 648 A
  2060. 6030 V
  2061. (26437)210 648 A
  2062. 1110(/*)S
  2063. (Only)168 1236 A
  2064. (the)126 1446 A
  2065. (owner)210 1614 A
  2066. 1866(of)S
  2067. 1992(a)S
  2068. (file)168 2076 A
  2069. 2286(or)S
  2070. (the)126 2412 A
  2071. (super_user)420 2580 A
  2072. (can)126 3042 A
  2073. (change)252 3210 A
  2074. (its)126 3504 A
  2075. (time.)210 3672 A
  2076. 3924(*/)S
  2077. 6120 V
  2078. (26438)210 648 A
  2079. 1110(r)S
  2080. 1194(=)S
  2081. (OK;)126 1278 A
  2082. 6210 V
  2083. (26439)210 648 A
  2084. 1110(if)S
  2085. ((rip->i_uid)462 1236 A
  2086. 1740(!=)S
  2087. (fp->fp_effuid)546 1866 A
  2088. 2454(&&)S
  2089. (!super_user))504 2580 A
  2090. 3126(r)S
  2091. 3210(=)S
  2092. (EPERM;)252 3294 A
  2093. 8418 V
  2094. EP
  2095. %%Page: 365 365
  2096. BP
  2097. /slant 0 def
  2098. /height 0 def
  2099. 630 V
  2100. 10 R
  2101. 648(MINIX)S
  2102. 976(SOURCE)S
  2103. 1399(CODE)S
  2104. 11 R
  2105. 2147(File:)S
  2106. (src/fs/time.c)548 2380 A
  2107. 12 B
  2108. (365)180 4248 A
  2109. 900 V
  2110. 7 LST
  2111. (26440)210 648 A
  2112. 1110(if)S
  2113. ((utime_length)546 1236 A
  2114. 1824(==)S
  2115. 1950(0)S
  2116. 2034(&&)S
  2117. 2160(r)S
  2118. 2244(!=)S
  2119. (OK))126 2370 A
  2120. 2538(r)S
  2121. 2622(=)S
  2122. (forbidden(rip,)588 2706 A
  2123. (W_BIT);)294 3336 A
  2124. 990 V
  2125. (26441)210 648 A
  2126. 1110(if)S
  2127. ((read_only(rip))630 1236 A
  2128. 1908(!=)S
  2129. (OK))126 2034 A
  2130. 2202(r)S
  2131. 2286(=)S
  2132. (EROFS;)252 2370 A
  2133. 2706(/*)S
  2134. (not)126 2832 A
  2135. (even)168 3000 A
  2136. 3210(su)S
  2137. (can)126 3336 A
  2138. (touch)210 3504 A
  2139. 3756(if)S
  2140. (R/O)126 3882 A
  2141. 4050(*/)S
  2142. 1080 V
  2143. (26442)210 648 A
  2144. 1110(if)S
  2145. 1236((r)S
  2146. 1362(==)S
  2147. (OK))126 1488 A
  2148. 1656({)S
  2149. 1170 V
  2150. (26443)210 648 A
  2151. 1362(if)S
  2152. ((utime_length)546 1488 A
  2153. 2076(==)S
  2154. 2202(0))S
  2155. 2328({)S
  2156. 1260 V
  2157. (26444)210 648 A
  2158. (rip->i_atime)504 1698 A
  2159. 2244(=)S
  2160. (clock_time();)546 2328 A
  2161. 1350 V
  2162. (26445)210 648 A
  2163. (rip->i_mtime)504 1698 A
  2164. 2244(=)S
  2165. (rip->i_atime;)546 2328 A
  2166. 1440 V
  2167. (26446)210 648 A
  2168. 1362(})S
  2169. (else)168 1446 A
  2170. 1656({)S
  2171. 1530 V
  2172. (26447)210 648 A
  2173. (rip->i_atime)504 1698 A
  2174. 2244(=)S
  2175. (utime_actime;)546 2328 A
  2176. 1620 V
  2177. (26448)210 648 A
  2178. (rip->i_mtime)504 1698 A
  2179. 2244(=)S
  2180. (utime_modtime;)588 2328 A
  2181. 1710 V
  2182. (26449)210 648 A
  2183. 1362(})S
  2184. 1800 V
  2185. (26450)210 648 A
  2186. (rip->i_update)546 1362 A
  2187. 1950(=)S
  2188. (CTIME;)252 2034 A
  2189. 2370(/*)S
  2190. (discard)294 2496 A
  2191. (any)126 2832 A
  2192. (stale)210 3000 A
  2193. (ATIME)210 3252 A
  2194. (and)126 3504 A
  2195. (MTIME)210 3672 A
  2196. (flags)210 3924 A
  2197. 4176(*/)S
  2198. 1890 V
  2199. (26451)210 648 A
  2200. (rip->i_dirt)462 1362 A
  2201. 1866(=)S
  2202. (DIRTY;)252 1950 A
  2203. 1980 V
  2204. (26452)210 648 A
  2205. 1110(})S
  2206. 2070 V
  2207. (26453)210 648 A
  2208. 2160 V
  2209. (26454)210 648 A
  2210. (put_inode(rip);)630 1110 A
  2211. 2250 V
  2212. (26455)210 648 A
  2213. (return(r);)420 1110 A
  2214. 2340 V
  2215. (26456)210 648 A
  2216. 1026(})S
  2217. 2610 V
  2218. (26459)210 648 A
  2219. (/*===========================================================================*)3276 1026 A
  2220. 2700 V
  2221. (26460)210 648 A
  2222. 1068(*)S
  2223. (do_time)294 2370 A
  2224. 4260(*)S
  2225. 2790 V
  2226. (26461)210 648 A
  2227. (*===========================================================================*/)3276 1068 A
  2228. 2880 V
  2229. (26462)210 648 A
  2230. (PUBLIC)252 1026 A
  2231. (int)126 1320 A
  2232. (do_time())378 1488 A
  2233. 2970 V
  2234. (26463)210 648 A
  2235. 3060 V
  2236. (26464)210 648 A
  2237. 1026({)S
  2238. 3150 V
  2239. (26465)210 648 A
  2240. 1026(/*)S
  2241. (Perform)294 1152 A
  2242. (the)126 1488 A
  2243. (time(tp))336 1656 A
  2244. (system)252 2034 A
  2245. (call.)210 2328 A
  2246. 2580(*/)S
  2247. 3240 V
  2248. (26466)210 648 A
  2249. 3330 V
  2250. (26467)210 648 A
  2251. (reply_l1)336 1110 A
  2252. 1488(=)S
  2253. (clock_time();)546 1572 A
  2254. 2370(/*)S
  2255. (return)252 2496 A
  2256. (time)168 2790 A
  2257. 3000(in)S
  2258. (seconds)294 3126 A
  2259. 3462(*/)S
  2260. 3420 V
  2261. (26468)210 648 A
  2262. (return(OK);)462 1110 A
  2263. 3510 V
  2264. (26469)210 648 A
  2265. 1026(})S
  2266. 3780 V
  2267. (26472)210 648 A
  2268. (/*===========================================================================*)3276 1026 A
  2269. 3870 V
  2270. (26473)210 648 A
  2271. 1068(*)S
  2272. (do_stime)336 2370 A
  2273. 4260(*)S
  2274. 3960 V
  2275. (26474)210 648 A
  2276. (*===========================================================================*/)3276 1068 A
  2277. 4050 V
  2278. (26475)210 648 A
  2279. (PUBLIC)252 1026 A
  2280. (int)126 1320 A
  2281. (do_stime())420 1488 A
  2282. 4140 V
  2283. (26476)210 648 A
  2284. 1026({)S
  2285. 4230 V
  2286. (26477)210 648 A
  2287. 1026(/*)S
  2288. (Perform)294 1152 A
  2289. (the)126 1488 A
  2290. (stime(tp))378 1656 A
  2291. (system)252 2076 A
  2292. (call.)210 2370 A
  2293. 2622(*/)S
  2294. 4320 V
  2295. (26478)210 648 A
  2296. 4410 V
  2297. (26479)210 648 A
  2298. (register)336 1110 A
  2299. (int)126 1488 A
  2300. 1656(k;)S
  2301. 4500 V
  2302. (26480)210 648 A
  2303. 4590 V
  2304. (26481)210 648 A
  2305. 1110(if)S
  2306. ((!super_user))546 1236 A
  2307. (return(EPERM);)588 1824 A
  2308. 4680 V
  2309. (26482)210 648 A
  2310. (clock_mess.m_type)714 1110 A
  2311. 1866(=)S
  2312. (SET_TIME;)378 1950 A
  2313. 4770 V
  2314. (26483)210 648 A
  2315. (clock_mess.NEW_TIME)798 1110 A
  2316. 1950(=)S
  2317. ((long))252 2034 A
  2318. (tp;)126 2328 A
  2319. 4860 V
  2320. (26484)210 648 A
  2321. 1110(if)S
  2322. 1236(()S
  2323. 1320((k)S
  2324. 1446(=)S
  2325. (sendrec(CLOCK,)588 1530 A
  2326. (&clock_mess)))546 2160 A
  2327. 2748(!=)S
  2328. (OK))126 2874 A
  2329. (panic("do_stime)630 3042 A
  2330. (error",)294 3714 A
  2331. (k);)126 4050 A
  2332. 4950 V
  2333. (26485)210 648 A
  2334. (return(OK);)462 1110 A
  2335. 5040 V
  2336. (26486)210 648 A
  2337. 1026(})S
  2338. 5310 V
  2339. (26489)210 648 A
  2340. (/*===========================================================================*)3276 1026 A
  2341. 5400 V
  2342. (26490)210 648 A
  2343. 1068(*)S
  2344. (do_tims)294 2370 A
  2345. 4260(*)S
  2346. 5490 V
  2347. (26491)210 648 A
  2348. (*===========================================================================*/)3276 1068 A
  2349. 5580 V
  2350. (26492)210 648 A
  2351. (PUBLIC)252 1026 A
  2352. (int)126 1320 A
  2353. (do_tims())378 1488 A
  2354. 5670 V
  2355. (26493)210 648 A
  2356. 1026({)S
  2357. 5760 V
  2358. (26494)210 648 A
  2359. 1026(/*)S
  2360. (Perform)294 1152 A
  2361. (the)126 1488 A
  2362. (times(buffer))546 1656 A
  2363. (system)252 2244 A
  2364. (call.)210 2538 A
  2365. 2790(*/)S
  2366. 5850 V
  2367. (26495)210 648 A
  2368. 5940 V
  2369. (26496)210 648 A
  2370. (clock_t)294 1110 A
  2371. (t[5];)210 1446 A
  2372. 6030 V
  2373. (26497)210 648 A
  2374. 6120 V
  2375. (26498)210 648 A
  2376. (sys_times(who,)588 1110 A
  2377. (t);)126 1740 A
  2378. 6210 V
  2379. (26499)210 648 A
  2380. (reply_t1)336 1110 A
  2381. 1488(=)S
  2382. (t[0];)210 1572 A
  2383. 8418 V
  2384. EP
  2385. %%Page: 366 366
  2386. BP
  2387. /slant 0 def
  2388. /height 0 def
  2389. 630 V
  2390. 12 B
  2391. (366)180 648 A
  2392. 11 R
  2393. 2147(File:)S
  2394. (src/fs/time.c)548 2380 A
  2395. 10 R
  2396. 3402(MINIX)S
  2397. 3730(SOURCE)S
  2398. 4153(CODE)S
  2399. 900 V
  2400. 7 LST
  2401. (26500)210 648 A
  2402. (reply_t2)336 1110 A
  2403. 1488(=)S
  2404. (t[1];)210 1572 A
  2405. 990 V
  2406. (26501)210 648 A
  2407. (reply_t3)336 1110 A
  2408. 1488(=)S
  2409. (t[2];)210 1572 A
  2410. 1080 V
  2411. (26502)210 648 A
  2412. (reply_t4)336 1110 A
  2413. 1488(=)S
  2414. (t[3];)210 1572 A
  2415. 1170 V
  2416. (26503)210 648 A
  2417. (reply_t5)336 1110 A
  2418. 1488(=)S
  2419. (t[4];)210 1572 A
  2420. 1260 V
  2421. (26504)210 648 A
  2422. (return(OK);)462 1110 A
  2423. 1350 V
  2424. (26505)210 648 A
  2425. 1026(})S
  2426. 1890 V
  2427. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  2428. 1980 V
  2429. (src/fs/misc.c)546 2034 A
  2430. 2070 V
  2431. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  2432. 2250 V
  2433. (26600)210 648 A
  2434. 1026(/*)S
  2435. (This)168 1152 A
  2436. (file)168 1362 A
  2437. (contains)336 1572 A
  2438. 1950(a)S
  2439. (collection)420 2034 A
  2440. 2496(of)S
  2441. (miscellaneous)546 2622 A
  2442. (procedures.)462 3210 A
  2443. (Some)168 3756 A
  2444. 3966(of)S
  2445. (them)168 4092 A
  2446. 2340 V
  2447. (26601)210 648 A
  2448. 1068(*)S
  2449. (perform)294 1152 A
  2450. (simple)252 1488 A
  2451. (system)252 1782 A
  2452. (calls.)252 2076 A
  2453. (Some)168 2412 A
  2454. (others)252 2622 A
  2455. 2916(do)S
  2456. 3042(a)S
  2457. (little)252 3126 A
  2458. (part)168 3420 A
  2459. 3630(of)S
  2460. (system)252 3756 A
  2461. (calls)210 4050 A
  2462. 2430 V
  2463. (26602)210 648 A
  2464. 1068(*)S
  2465. (that)168 1152 A
  2466. (are)126 1362 A
  2467. (mostly)252 1530 A
  2468. (performed)378 1824 A
  2469. 2244(by)S
  2470. (the)126 2370 A
  2471. (Memory)252 2538 A
  2472. (Manager.)336 2832 A
  2473. 2520 V
  2474. (26603)210 648 A
  2475. 1068(*)S
  2476. 2610 V
  2477. (26604)210 648 A
  2478. 1068(*)S
  2479. (The)126 1152 A
  2480. (entry)210 1320 A
  2481. (points)252 1572 A
  2482. (into)168 1866 A
  2483. (this)168 2076 A
  2484. (file)168 2286 A
  2485. (are)126 2496 A
  2486. 2700 V
  2487. (26605)210 648 A
  2488. 1068(*)S
  2489. (do_dup:)294 1236 A
  2490. (perform)294 1782 A
  2491. (the)126 2118 A
  2492. (DUP)126 2286 A
  2493. (system)252 2454 A
  2494. (call)168 2748 A
  2495. 2790 V
  2496. (26606)210 648 A
  2497. 1068(*)S
  2498. (do_fcntl:)378 1236 A
  2499. (perform)294 1782 A
  2500. (the)126 2118 A
  2501. (FCNTL)210 2286 A
  2502. (system)252 2538 A
  2503. (call)168 2832 A
  2504. 2880 V
  2505. (26607)210 648 A
  2506. 1068(*)S
  2507. (do_sync:)336 1236 A
  2508. (perform)294 1782 A
  2509. (the)126 2118 A
  2510. (SYNC)168 2286 A
  2511. (system)252 2496 A
  2512. (call)168 2790 A
  2513. 2970 V
  2514. (26608)210 648 A
  2515. 1068(*)S
  2516. (do_fork:)336 1236 A
  2517. (adjust)252 1782 A
  2518. (the)126 2076 A
  2519. (tables)252 2244 A
  2520. (after)210 2538 A
  2521. 2790(MM)S
  2522. (has)126 2916 A
  2523. (performed)378 3084 A
  2524. 3504(a)S
  2525. (FORK)168 3588 A
  2526. (system)252 3798 A
  2527. (call)168 4092 A
  2528. 3060 V
  2529. (26609)210 648 A
  2530. 1068(*)S
  2531. (do_exec:)336 1236 A
  2532. (handle)252 1782 A
  2533. (files)210 2076 A
  2534. (with)168 2328 A
  2535. (FD_CLOEXEC)420 2538 A
  2536. 3000(on)S
  2537. (after)210 3126 A
  2538. 3378(MM)S
  2539. (has)126 3504 A
  2540. (done)168 3672 A
  2541. 3882(an)S
  2542. (EXEC)168 4008 A
  2543. 3150 V
  2544. (26610)210 648 A
  2545. 1068(*)S
  2546. (do_exit:)336 1236 A
  2547. 1782(a)S
  2548. (process)294 1866 A
  2549. (has)126 2202 A
  2550. (exited;)294 2370 A
  2551. (note)168 2706 A
  2552. (that)168 2916 A
  2553. 3126(in)S
  2554. (the)126 3252 A
  2555. (tables)252 3420 A
  2556. 3240 V
  2557. (26611)210 648 A
  2558. 1068(*)S
  2559. (do_set:)294 1236 A
  2560. (set)126 1782 A
  2561. (uid)126 1950 A
  2562. 2118(or)S
  2563. (gid)126 2244 A
  2564. (for)126 2412 A
  2565. (some)168 2580 A
  2566. (process)294 2790 A
  2567. 3330 V
  2568. (26612)210 648 A
  2569. 1068(*)S
  2570. (do_revive:)420 1236 A
  2571. (revive)252 1782 A
  2572. 2076(a)S
  2573. (process)294 2160 A
  2574. (that)168 2496 A
  2575. (was)126 2706 A
  2576. (waiting)294 2874 A
  2577. (for)126 3210 A
  2578. (something)378 3378 A
  2579. ((e.g.)210 3798 A
  2580. (TTY))168 4050 A
  2581. 3420 V
  2582. (26613)210 648 A
  2583. 1068(*/)S
  2584. 3510 V
  2585. (26614)210 648 A
  2586. 3600 V
  2587. (26615)210 648 A
  2588. (#include)336 1026 A
  2589. ("fs.h")252 1404 A
  2590. 3690 V
  2591. (26616)210 648 A
  2592. (#include)336 1026 A
  2593. (<fcntl.h>)378 1404 A
  2594. 3780 V
  2595. (26617)210 648 A
  2596. (#include)336 1026 A
  2597. (<unistd.h>)420 1404 A
  2598. 2034(/*)S
  2599. 2160(cc)S
  2600. (runs)168 2286 A
  2601. (out)126 2496 A
  2602. 2664(of)S
  2603. (memory)252 2790 A
  2604. (with)168 3084 A
  2605. (unistd.h)336 3294 A
  2606. (:-()126 3672 A
  2607. 3840(*/)S
  2608. 3870 V
  2609. (26618)210 648 A
  2610. (#include)336 1026 A
  2611. (<minix/callnr.h>)672 1404 A
  2612. 3960 V
  2613. (26619)210 648 A
  2614. (#include)336 1026 A
  2615. (<minix/com.h>)546 1404 A
  2616. 4050 V
  2617. (26620)210 648 A
  2618. (#include)336 1026 A
  2619. (<minix/boot.h>)588 1404 A
  2620. 4140 V
  2621. (26621)210 648 A
  2622. (#include)336 1026 A
  2623. ("buf.h")294 1404 A
  2624. 4230 V
  2625. (26622)210 648 A
  2626. (#include)336 1026 A
  2627. ("file.h")336 1404 A
  2628. 4320 V
  2629. (26623)210 648 A
  2630. (#include)336 1026 A
  2631. ("fproc.h")378 1404 A
  2632. 4410 V
  2633. (26624)210 648 A
  2634. (#include)336 1026 A
  2635. ("inode.h")378 1404 A
  2636. 4500 V
  2637. (26625)210 648 A
  2638. (#include)336 1026 A
  2639. ("dev.h")294 1404 A
  2640. 4590 V
  2641. (26626)210 648 A
  2642. (#include)336 1026 A
  2643. ("param.h")378 1404 A
  2644. 4680 V
  2645. (26627)210 648 A
  2646. 4770 V
  2647. (26628)210 648 A
  2648. 4860 V
  2649. (26629)210 648 A
  2650. (/*===========================================================================*)3276 1026 A
  2651. 4950 V
  2652. (26630)210 648 A
  2653. 1068(*)S
  2654. (do_dup)252 2370 A
  2655. 4260(*)S
  2656. 5040 V
  2657. (26631)210 648 A
  2658. (*===========================================================================*/)3276 1068 A
  2659. 5130 V
  2660. (26632)210 648 A
  2661. (PUBLIC)252 1026 A
  2662. (int)126 1320 A
  2663. (do_dup())336 1488 A
  2664. 5220 V
  2665. (26633)210 648 A
  2666. 1026({)S
  2667. 5310 V
  2668. (26634)210 648 A
  2669. 1026(/*)S
  2670. (Perform)294 1152 A
  2671. (the)126 1488 A
  2672. (dup(fd))294 1656 A
  2673. 1992(or)S
  2674. (dup2(fd,fd2))504 2118 A
  2675. (system)252 2664 A
  2676. (call.)210 2958 A
  2677. (These)210 3210 A
  2678. (system)252 3462 A
  2679. (calls)210 3756 A
  2680. (are)126 4008 A
  2681. 5400 V
  2682. (26635)210 648 A
  2683. 1068(*)S
  2684. (obsolete.)378 1152 A
  2685. 1614(In)S
  2686. (fact,)210 1740 A
  2687. 1992(it)S
  2688. 2118(is)S
  2689. (not)126 2244 A
  2690. (even)168 2412 A
  2691. (possible)336 2622 A
  2692. 3000(to)S
  2693. (invoke)252 3126 A
  2694. (them)168 3420 A
  2695. (using)210 3630 A
  2696. (the)126 3882 A
  2697. 5490 V
  2698. (26636)210 648 A
  2699. 1068(*)S
  2700. (current)294 1152 A
  2701. (library)294 1488 A
  2702. (because)294 1824 A
  2703. (the)126 2160 A
  2704. (library)294 2328 A
  2705. (routines)336 2664 A
  2706. (call)168 3042 A
  2707. (fcntl().)336 3252 A
  2708. (They)168 3672 A
  2709. (are)126 3882 A
  2710. 5580 V
  2711. (26637)210 648 A
  2712. 1068(*)S
  2713. (provided)336 1152 A
  2714. 1530(to)S
  2715. (permit)252 1656 A
  2716. (old)126 1950 A
  2717. (binary)252 2118 A
  2718. (programs)336 2412 A
  2719. 2790(to)S
  2720. (continue)336 2916 A
  2721. 3294(to)S
  2722. (run.)168 3420 A
  2723. 5670 V
  2724. (26638)210 648 A
  2725. 1068(*/)S
  2726. 5760 V
  2727. (26639)210 648 A
  2728. 5850 V
  2729. (26640)210 648 A
  2730. (register)336 1110 A
  2731. (int)126 1488 A
  2732. (rfd;)168 1656 A
  2733. 5940 V
  2734. (26641)210 648 A
  2735. (register)336 1110 A
  2736. (struct)252 1488 A
  2737. (filp)168 1782 A
  2738. (*f;)126 1992 A
  2739. 6030 V
  2740. (26642)210 648 A
  2741. (struct)252 1110 A
  2742. (filp)168 1404 A
  2743. (*dummy;)294 1614 A
  2744. 6120 V
  2745. (26643)210 648 A
  2746. (int)126 1110 A
  2747. 1278(r;)S
  2748. 6210 V
  2749. (26644)210 648 A
  2750. 8418 V
  2751. EP
  2752. %%Page: 367 367
  2753. BP
  2754. /slant 0 def
  2755. /height 0 def
  2756. 630 V
  2757. 10 R
  2758. 648(MINIX)S
  2759. 976(SOURCE)S
  2760. 1399(CODE)S
  2761. 11 R
  2762. 2141(File:)S
  2763. 2374(src/fs/misc.c)S
  2764. 12 B
  2765. (367)180 4248 A
  2766. 900 V
  2767. 7 LST
  2768. (26645)210 648 A
  2769. 1110(/*)S
  2770. 1236(Is)S
  2771. (the)126 1362 A
  2772. (file)168 1530 A
  2773. (descriptor)420 1740 A
  2774. (valid?)252 2202 A
  2775. 2496(*/)S
  2776. 990 V
  2777. (26646)210 648 A
  2778. (rfd)126 1110 A
  2779. 1278(=)S
  2780. 1362(fd)S
  2781. 1488(&)S
  2782. (304DUP_MASK;)420 1572 A
  2783. 2370(/*)S
  2784. (kill)168 2496 A
  2785. (off)126 2706 A
  2786. (dup2)168 2874 A
  2787. (bit,)168 3084 A
  2788. 3294(if)S
  2789. 3420(on)S
  2790. 3546(*/)S
  2791. 1080 V
  2792. (26647)210 648 A
  2793. 1110(if)S
  2794. (((f)126 1236 A
  2795. 1404(=)S
  2796. (get_filp(rfd)))588 1488 A
  2797. 2118(==)S
  2798. (NIL_FILP))378 2244 A
  2799. (return(err_code);)714 2664 A
  2800. 1170 V
  2801. (26648)210 648 A
  2802. 1260 V
  2803. (26649)210 648 A
  2804. 1110(/*)S
  2805. (Distinguish)462 1236 A
  2806. (between)294 1740 A
  2807. (dup)126 2076 A
  2808. (and)126 2244 A
  2809. (dup2.)210 2412 A
  2810. 2664(*/)S
  2811. 1350 V
  2812. (26650)210 648 A
  2813. 1110(if)S
  2814. ((fd)126 1236 A
  2815. 1404(==)S
  2816. (rfd))168 1530 A
  2817. 1740({)S
  2818. 2706(/*)S
  2819. (bit)126 2832 A
  2820. (not)126 3000 A
  2821. 3168(on)S
  2822. 3294(*/)S
  2823. 1440 V
  2824. (26651)210 648 A
  2825. 1362(/*)S
  2826. (dup(fd))294 1488 A
  2827. 1824(*/)S
  2828. 1530 V
  2829. (26652)210 648 A
  2830. 1362(if)S
  2831. 1488(()S
  2832. 1572((r)S
  2833. 1698(=)S
  2834. (get_fd(0,)378 1782 A
  2835. 2202(0,)S
  2836. (&fd2,)210 2328 A
  2837. (&dummy)))336 2580 A
  2838. 2958(!=)S
  2839. (OK))126 3084 A
  2840. (return(r);)420 3252 A
  2841. 1620 V
  2842. (26653)210 648 A
  2843. 1110(})S
  2844. (else)168 1194 A
  2845. 1404({)S
  2846. 1710 V
  2847. (26654)210 648 A
  2848. 1362(/*)S
  2849. (dup2(fd,)336 1488 A
  2850. (fd2))168 1866 A
  2851. 2076(*/)S
  2852. 1800 V
  2853. (26655)210 648 A
  2854. 1362(if)S
  2855. ((fd2)168 1488 A
  2856. 1698(<)S
  2857. 1782(0)S
  2858. 1866(||)S
  2859. (fd2)126 1992 A
  2860. 2160(>=)S
  2861. (OPEN_MAX))378 2286 A
  2862. (return(EBADF);)588 2706 A
  2863. 1890 V
  2864. (26656)210 648 A
  2865. 1362(if)S
  2866. ((rfd)168 1488 A
  2867. 1698(==)S
  2868. (fd2))168 1824 A
  2869. (return(fd2);)504 2034 A
  2870. 2706(/*)S
  2871. (ignore)252 2832 A
  2872. (the)126 3126 A
  2873. (call:)210 3294 A
  2874. (dup2(x,)294 3546 A
  2875. 3882(x))S
  2876. 4008(*/)S
  2877. 1980 V
  2878. (26657)210 648 A
  2879. 1362(fd)S
  2880. 1488(=)S
  2881. (fd2;)168 1572 A
  2882. 2370(/*)S
  2883. (prepare)294 2496 A
  2884. 2832(to)S
  2885. (close)210 2958 A
  2886. (fd2)126 3210 A
  2887. 3378(*/)S
  2888. 2070 V
  2889. (26658)210 648 A
  2890. ((void))252 1362 A
  2891. (do_close();)462 1656 A
  2892. 2370(/*)S
  2893. (cannot)252 2496 A
  2894. (fail)168 2790 A
  2895. 3000(*/)S
  2896. 2160 V
  2897. (26659)210 648 A
  2898. 1110(})S
  2899. 2250 V
  2900. (26660)210 648 A
  2901. 2340 V
  2902. (26661)210 648 A
  2903. 1110(/*)S
  2904. (Success.)336 1236 A
  2905. (Set)126 1614 A
  2906. 1782(up)S
  2907. (new)126 1908 A
  2908. (file)168 2076 A
  2909. (descriptors.)504 2286 A
  2910. 2832(*/)S
  2911. 2430 V
  2912. (26662)210 648 A
  2913. (f->filp_count++;)672 1110 A
  2914. 2520 V
  2915. (26663)210 648 A
  2916. (fp->fp_filp[fd2])672 1110 A
  2917. 1824(=)S
  2918. 1908(f;)S
  2919. 2610 V
  2920. (26664)210 648 A
  2921. (return(fd2);)504 1110 A
  2922. 2700 V
  2923. (26665)210 648 A
  2924. 1026(})S
  2925. 2880 V
  2926. (26667)210 648 A
  2927. (/*===========================================================================*)3276 1026 A
  2928. 2970 V
  2929. (26668)210 648 A
  2930. 1068(*)S
  2931. (do_fcntl)336 2370 A
  2932. 4260(*)S
  2933. 3060 V
  2934. (26669)210 648 A
  2935. (*===========================================================================*/)3276 1068 A
  2936. 3150 V
  2937. (26670)210 648 A
  2938. (PUBLIC)252 1026 A
  2939. (int)126 1320 A
  2940. (do_fcntl())420 1488 A
  2941. 3240 V
  2942. (26671)210 648 A
  2943. 1026({)S
  2944. 3330 V
  2945. (26672)210 648 A
  2946. 1026(/*)S
  2947. (Perform)294 1152 A
  2948. (the)126 1488 A
  2949. (fcntl(fd,)378 1656 A
  2950. (request,)336 2076 A
  2951. (...))168 2454 A
  2952. (system)252 2664 A
  2953. (call.)210 2958 A
  2954. 3210(*/)S
  2955. 3420 V
  2956. (26673)210 648 A
  2957. 3510 V
  2958. (26674)210 648 A
  2959. (register)336 1110 A
  2960. (struct)252 1488 A
  2961. (filp)168 1782 A
  2962. (*f;)126 1992 A
  2963. 3600 V
  2964. (26675)210 648 A
  2965. (int)126 1110 A
  2966. (new_fd,)294 1278 A
  2967. 1614(r,)S
  2968. (fl;)126 1740 A
  2969. 3690 V
  2970. (26676)210 648 A
  2971. (long)168 1110 A
  2972. (cloexec_mask;)546 1320 A
  2973. 2370(/*)S
  2974. (bit)126 2496 A
  2975. (map)126 2664 A
  2976. (for)126 2832 A
  2977. (the)126 3000 A
  2978. (FD_CLOEXEC)420 3168 A
  2979. (flag)168 3630 A
  2980. 3840(*/)S
  2981. 3780 V
  2982. (26677)210 648 A
  2983. (long)168 1110 A
  2984. (clo_value;)420 1320 A
  2985. 2370(/*)S
  2986. (FD_CLOEXEC)420 2496 A
  2987. (flag)168 2958 A
  2988. 3168(in)S
  2989. (proper)252 3294 A
  2990. (position)336 3588 A
  2991. 3966(*/)S
  2992. 3870 V
  2993. (26678)210 648 A
  2994. (struct)252 1110 A
  2995. (filp)168 1404 A
  2996. (*dummy;)294 1614 A
  2997. 3960 V
  2998. (26679)210 648 A
  2999. 4050 V
  3000. (26680)210 648 A
  3001. 1110(/*)S
  3002. 1236(Is)S
  3003. (the)126 1362 A
  3004. (file)168 1530 A
  3005. (descriptor)420 1740 A
  3006. (valid?)252 2202 A
  3007. 2496(*/)S
  3008. 4140 V
  3009. (26681)210 648 A
  3010. 1110(if)S
  3011. (((f)126 1236 A
  3012. 1404(=)S
  3013. (get_filp(fd)))546 1488 A
  3014. 2076(==)S
  3015. (NIL_FILP))378 2202 A
  3016. (return(err_code);)714 2622 A
  3017. 4230 V
  3018. (26682)210 648 A
  3019. 4320 V
  3020. (26683)210 648 A
  3021. (switch)252 1110 A
  3022. ((request))378 1404 A
  3023. 1824({)S
  3024. 4410 V
  3025. (26684)210 648 A
  3026. (case)168 1236 A
  3027. (F_DUPFD:)336 1446 A
  3028. 4500 V
  3029. (26685)210 648 A
  3030. 1362(/*)S
  3031. (This)168 1488 A
  3032. (replaces)336 1698 A
  3033. (the)126 2076 A
  3034. (old)126 2244 A
  3035. (dup())210 2412 A
  3036. (system)252 2664 A
  3037. (call.)210 2958 A
  3038. 3210(*/)S
  3039. 4590 V
  3040. (26686)210 648 A
  3041. 1362(if)S
  3042. ((addr)210 1488 A
  3043. 1740(<)S
  3044. 1824(0)S
  3045. 1908(||)S
  3046. (addr)168 2034 A
  3047. 2244(>=)S
  3048. (OPEN_MAX))378 2370 A
  3049. (return(EINVAL);)630 2790 A
  3050. 4680 V
  3051. (26687)210 648 A
  3052. 1362(if)S
  3053. (((r)126 1488 A
  3054. 1656(=)S
  3055. (get_fd(addr,)504 1740 A
  3056. 2286(0,)S
  3057. (&new_fd,)336 2412 A
  3058. (&dummy)))336 2790 A
  3059. 3168(!=)S
  3060. (OK))126 3294 A
  3061. (return(r);)420 3462 A
  3062. 4770 V
  3063. (26688)210 648 A
  3064. (f->filp_count++;)672 1362 A
  3065. 4860 V
  3066. (26689)210 648 A
  3067. (fp->fp_filp[new_fd])798 1362 A
  3068. 2202(=)S
  3069. 2286(f;)S
  3070. 4950 V
  3071. (26690)210 648 A
  3072. (return(new_fd);)630 1362 A
  3073. 5040 V
  3074. (26691)210 648 A
  3075. 5130 V
  3076. (26692)210 648 A
  3077. (case)168 1236 A
  3078. (F_GETFD:)336 1446 A
  3079. 5220 V
  3080. (26693)210 648 A
  3081. 1362(/*)S
  3082. (Get)126 1488 A
  3083. (close-on-exec)546 1656 A
  3084. (flag)168 2244 A
  3085. ((FD_CLOEXEC)462 2454 A
  3086. 2958(in)S
  3087. (POSIX)210 3084 A
  3088. (Table)210 3336 A
  3089. (6-2).)210 3588 A
  3090. 3840(*/)S
  3091. 5310 V
  3092. (26694)210 648 A
  3093. (return()294 1362 A
  3094. (((fp->fp_cloexec)672 1698 A
  3095. 2412(>>)S
  3096. (fd))126 2538 A
  3097. 2706(&)S
  3098. (01))126 2790 A
  3099. 2958(?)S
  3100. (FD_CLOEXEC)420 3042 A
  3101. 3504(:)S
  3102. (0);)126 3588 A
  3103. 5400 V
  3104. (26695)210 648 A
  3105. 5490 V
  3106. (26696)210 648 A
  3107. (case)168 1236 A
  3108. (F_SETFD:)336 1446 A
  3109. 5580 V
  3110. (26697)210 648 A
  3111. 1362(/*)S
  3112. (Set)126 1488 A
  3113. (close-on-exec)546 1656 A
  3114. (flag)168 2244 A
  3115. ((FD_CLOEXEC)462 2454 A
  3116. 2958(in)S
  3117. (POSIX)210 3084 A
  3118. (Table)210 3336 A
  3119. (6-2).)210 3588 A
  3120. 3840(*/)S
  3121. 5670 V
  3122. (26698)210 648 A
  3123. (cloexec_mask)504 1362 A
  3124. 1908(=)S
  3125. 1992(1L)S
  3126. 2118(<<)S
  3127. (fd;)126 2244 A
  3128. 2706(/*)S
  3129. (singleton)378 2832 A
  3130. (set)126 3252 A
  3131. (position)336 3420 A
  3132. 3798(ok)S
  3133. 3924(*/)S
  3134. 5760 V
  3135. (26699)210 648 A
  3136. (clo_value)378 1362 A
  3137. 1782(=)S
  3138. ((addr)210 1866 A
  3139. 2118(&)S
  3140. (FD_CLOEXEC)420 2202 A
  3141. 2664(?)S
  3142. (cloexec_mask)504 2748 A
  3143. 3294(:)S
  3144. (0L);)168 3378 A
  3145. 5850 V
  3146. (26700)210 648 A
  3147. (fp->fp_cloexec)588 1362 A
  3148. 1992(=)S
  3149. ((fp->fp_cloexec)630 2076 A
  3150. 2748(&)S
  3151. (304cloexec_mask))588 2832 A
  3152. 3462(|)S
  3153. (clo_value;)420 3546 A
  3154. 5940 V
  3155. (26701)210 648 A
  3156. (return(OK);)462 1362 A
  3157. 6030 V
  3158. (26702)210 648 A
  3159. 6120 V
  3160. (26703)210 648 A
  3161. (case)168 1236 A
  3162. (F_GETFL:)336 1446 A
  3163. 6210 V
  3164. (26704)210 648 A
  3165. 1362(/*)S
  3166. (Get)126 1488 A
  3167. (file)168 1656 A
  3168. (status)252 1866 A
  3169. (flags)210 2160 A
  3170. ((O_NONBLOCK)462 2412 A
  3171. (and)126 2916 A
  3172. (O_APPEND).)420 3084 A
  3173. 3546(*/)S
  3174. 8418 V
  3175. EP
  3176. %%Page: 368 368
  3177. BP
  3178. /slant 0 def
  3179. /height 0 def
  3180. 630 V
  3181. 12 B
  3182. (368)180 648 A
  3183. 11 R
  3184. 2141(File:)S
  3185. 2374(src/fs/misc.c)S
  3186. 10 R
  3187. 3402(MINIX)S
  3188. 3730(SOURCE)S
  3189. 4153(CODE)S
  3190. 900 V
  3191. 7 LST
  3192. (26705)210 648 A
  3193. 1362(fl)S
  3194. 1488(=)S
  3195. (f->filp_flags)546 1572 A
  3196. 2160(&)S
  3197. ((O_NONBLOCK)462 2244 A
  3198. 2748(|)S
  3199. (O_APPEND)336 2832 A
  3200. 3210(|)S
  3201. (O_ACCMODE);)462 3294 A
  3202. 990 V
  3203. (26706)210 648 A
  3204. (return(fl);)462 1362 A
  3205. 1080 V
  3206. (26707)210 648 A
  3207. 1170 V
  3208. (26708)210 648 A
  3209. (case)168 1236 A
  3210. (F_SETFL:)336 1446 A
  3211. 1260 V
  3212. (26709)210 648 A
  3213. 1362(/*)S
  3214. (Set)126 1488 A
  3215. (file)168 1656 A
  3216. (status)252 1866 A
  3217. (flags)210 2160 A
  3218. ((O_NONBLOCK)462 2412 A
  3219. (and)126 2916 A
  3220. (O_APPEND).)420 3084 A
  3221. 3546(*/)S
  3222. 1350 V
  3223. (26710)210 648 A
  3224. 1362(fl)S
  3225. 1488(=)S
  3226. (O_NONBLOCK)420 1572 A
  3227. 2034(|)S
  3228. (O_APPEND;)378 2118 A
  3229. 1440 V
  3230. (26711)210 648 A
  3231. (f->filp_flags)546 1362 A
  3232. 1950(=)S
  3233. ((f->filp_flags)588 2034 A
  3234. 2664(&)S
  3235. (304fl))168 2748 A
  3236. 2958(|)S
  3237. ((addr)210 3042 A
  3238. 3294(&)S
  3239. (fl);)168 3378 A
  3240. 1530 V
  3241. (26712)210 648 A
  3242. (return(OK);)462 1362 A
  3243. 1620 V
  3244. (26713)210 648 A
  3245. 1710 V
  3246. (26714)210 648 A
  3247. (case)168 1236 A
  3248. (F_GETLK:)336 1446 A
  3249. 1800 V
  3250. (26715)210 648 A
  3251. (case)168 1236 A
  3252. (F_SETLK:)336 1446 A
  3253. 1890 V
  3254. (26716)210 648 A
  3255. (case)168 1236 A
  3256. (F_SETLKW:)378 1446 A
  3257. 1980 V
  3258. (26717)210 648 A
  3259. 1362(/*)S
  3260. (Set)126 1488 A
  3261. 1656(or)S
  3262. (clear)210 1782 A
  3263. 2034(a)S
  3264. (file)168 2118 A
  3265. (lock.)210 2328 A
  3266. 2580(*/)S
  3267. 2070 V
  3268. (26718)210 648 A
  3269. 1362(r)S
  3270. 1446(=)S
  3271. (lock_op(f,)420 1530 A
  3272. (request);)378 1992 A
  3273. 2160 V
  3274. (26719)210 648 A
  3275. (return(r);)420 1362 A
  3276. 2250 V
  3277. (26720)210 648 A
  3278. 2340 V
  3279. (26721)210 648 A
  3280. (default:)336 1236 A
  3281. 2430 V
  3282. (26722)210 648 A
  3283. (return(EINVAL);)630 1362 A
  3284. 2520 V
  3285. (26723)210 648 A
  3286. 1110(})S
  3287. 2610 V
  3288. (26724)210 648 A
  3289. 1026(})S
  3290. 2880 V
  3291. (26727)210 648 A
  3292. (/*===========================================================================*)3276 1026 A
  3293. 2970 V
  3294. (26728)210 648 A
  3295. 1068(*)S
  3296. (do_sync)294 2370 A
  3297. 4260(*)S
  3298. 3060 V
  3299. (26729)210 648 A
  3300. (*===========================================================================*/)3276 1068 A
  3301. 3150 V
  3302. (26730)210 648 A
  3303. (PUBLIC)252 1026 A
  3304. (int)126 1320 A
  3305. (do_sync())378 1488 A
  3306. 3240 V
  3307. (26731)210 648 A
  3308. 1026({)S
  3309. 3330 V
  3310. (26732)210 648 A
  3311. 1026(/*)S
  3312. (Perform)294 1152 A
  3313. (the)126 1488 A
  3314. (sync())252 1656 A
  3315. (system)252 1950 A
  3316. (call.)210 2244 A
  3317. (Flush)210 2538 A
  3318. (all)126 2790 A
  3319. (the)126 2958 A
  3320. (tables.)294 3126 A
  3321. 3462(*/)S
  3322. 3420 V
  3323. (26733)210 648 A
  3324. 3510 V
  3325. (26734)210 648 A
  3326. (register)336 1110 A
  3327. (struct)252 1488 A
  3328. (inode)210 1782 A
  3329. (*rip;)210 2034 A
  3330. 3600 V
  3331. (26735)210 648 A
  3332. (register)336 1110 A
  3333. (struct)252 1488 A
  3334. (buf)126 1782 A
  3335. (*bp;)168 1950 A
  3336. 3690 V
  3337. (26736)210 648 A
  3338. 3780 V
  3339. (26737)210 648 A
  3340. 1110(/*)S
  3341. (The)126 1236 A
  3342. (order)210 1404 A
  3343. 1656(in)S
  3344. (which)210 1782 A
  3345. (the)126 2034 A
  3346. (various)294 2202 A
  3347. (tables)252 2538 A
  3348. (are)126 2832 A
  3349. (flushed)294 3000 A
  3350. 3336(is)S
  3351. (critical.)378 3462 A
  3352. (The)126 3924 A
  3353. 3870 V
  3354. (26738)210 648 A
  3355. 1152(*)S
  3356. (blocks)252 1236 A
  3357. (must)168 1530 A
  3358. 1740(be)S
  3359. (flushed)294 1866 A
  3360. (last,)210 2202 A
  3361. (since)210 2454 A
  3362. (rw_inode())420 2706 A
  3363. (leaves)252 3168 A
  3364. (its)126 3462 A
  3365. (results)294 3630 A
  3366. 3966(in)S
  3367. 3960 V
  3368. (26739)210 648 A
  3369. 1152(*)S
  3370. (the)126 1236 A
  3371. (block)210 1404 A
  3372. (cache.)252 1656 A
  3373. 4050 V
  3374. (26740)210 648 A
  3375. 1152(*/)S
  3376. 4140 V
  3377. (26741)210 648 A
  3378. 4230 V
  3379. (26742)210 648 A
  3380. 1110(/*)S
  3381. (Write)210 1236 A
  3382. (all)126 1488 A
  3383. (the)126 1656 A
  3384. (dirty)210 1824 A
  3385. (inodes)252 2076 A
  3386. 2370(to)S
  3387. (the)126 2496 A
  3388. (disk.)210 2664 A
  3389. 2916(*/)S
  3390. 4320 V
  3391. (26743)210 648 A
  3392. (for)126 1110 A
  3393. ((rip)168 1278 A
  3394. 1488(=)S
  3395. (&inode[0];)420 1572 A
  3396. (rip)126 2034 A
  3397. 2202(<)S
  3398. (&inode[NR_INODES];)756 2286 A
  3399. (rip++))252 3084 A
  3400. 4410 V
  3401. (26744)210 648 A
  3402. 1362(if)S
  3403. ((rip->i_count)546 1488 A
  3404. 2076(>)S
  3405. 2160(0)S
  3406. 2244(&&)S
  3407. (rip->i_dirt)462 2370 A
  3408. 2874(==)S
  3409. (DIRTY))252 3000 A
  3410. (rw_inode(rip,)546 3294 A
  3411. (WRITING);)378 3882 A
  3412. 4500 V
  3413. (26745)210 648 A
  3414. 4590 V
  3415. (26746)210 648 A
  3416. 1110(/*)S
  3417. (Write)210 1236 A
  3418. (all)126 1488 A
  3419. (the)126 1656 A
  3420. (dirty)210 1824 A
  3421. (blocks)252 2076 A
  3422. 2370(to)S
  3423. (the)126 2496 A
  3424. (disk,)210 2664 A
  3425. (one)126 2916 A
  3426. (drive)210 3084 A
  3427. 3336(at)S
  3428. 3462(a)S
  3429. (time.)210 3546 A
  3430. 3798(*/)S
  3431. 4680 V
  3432. (26747)210 648 A
  3433. (for)126 1110 A
  3434. ((bp)126 1278 A
  3435. 1446(=)S
  3436. (&buf[0];)336 1530 A
  3437. 1908(bp)S
  3438. 2034(<)S
  3439. (&buf[NR_BUFS];)588 2118 A
  3440. (bp++))210 2748 A
  3441. 4770 V
  3442. (26748)210 648 A
  3443. 1362(if)S
  3444. ((bp->b_dev)420 1488 A
  3445. 1950(!=)S
  3446. (NO_DEV)252 2076 A
  3447. 2370(&&)S
  3448. (bp->b_dirt)420 2496 A
  3449. 2958(==)S
  3450. (DIRTY))252 3084 A
  3451. (flushall(bp->b_dev);)840 3378 A
  3452. 4860 V
  3453. (26749)210 648 A
  3454. 4950 V
  3455. (26750)210 648 A
  3456. (return(OK);)462 1110 A
  3457. 2034(/*)S
  3458. (sync())252 2160 A
  3459. (can't)210 2454 A
  3460. (fail)168 2706 A
  3461. 2916(*/)S
  3462. 5040 V
  3463. (26751)210 648 A
  3464. 1026(})S
  3465. 5310 V
  3466. (26754)210 648 A
  3467. (/*===========================================================================*)3276 1026 A
  3468. 5400 V
  3469. (26755)210 648 A
  3470. 1068(*)S
  3471. (do_fork)294 2370 A
  3472. 4260(*)S
  3473. 5490 V
  3474. (26756)210 648 A
  3475. (*===========================================================================*/)3276 1068 A
  3476. 5580 V
  3477. (26757)210 648 A
  3478. (PUBLIC)252 1026 A
  3479. (int)126 1320 A
  3480. (do_fork())378 1488 A
  3481. 5670 V
  3482. (26758)210 648 A
  3483. 1026({)S
  3484. 5760 V
  3485. (26759)210 648 A
  3486. 1026(/*)S
  3487. (Perform)294 1152 A
  3488. (those)210 1488 A
  3489. (aspects)294 1740 A
  3490. 2076(of)S
  3491. (the)126 2202 A
  3492. (fork())252 2370 A
  3493. (system)252 2664 A
  3494. (call)168 2958 A
  3495. (that)168 3168 A
  3496. (relate)252 3378 A
  3497. 3672(to)S
  3498. (files.)252 3798 A
  3499. 5850 V
  3500. (26760)210 648 A
  3501. 1068(*)S
  3502. 1152(In)S
  3503. (particular,)462 1278 A
  3504. (let)126 1782 A
  3505. (the)126 1950 A
  3506. (child)210 2118 A
  3507. (inherit)294 2370 A
  3508. (its)126 2706 A
  3509. (parent's)336 2874 A
  3510. (file)168 3252 A
  3511. (descriptors.)504 3462 A
  3512. 5940 V
  3513. (26761)210 648 A
  3514. 1068(*)S
  3515. (The)126 1152 A
  3516. (parent)252 1320 A
  3517. (and)126 1614 A
  3518. (child)210 1782 A
  3519. (parameters)420 2034 A
  3520. (tell)168 2496 A
  3521. (who)126 2706 A
  3522. (forked)252 2874 A
  3523. (off)126 3168 A
  3524. (whom.)210 3336 A
  3525. (The)126 3588 A
  3526. (file)168 3756 A
  3527. 6030 V
  3528. (26762)210 648 A
  3529. 1068(*)S
  3530. (system)252 1152 A
  3531. (uses)168 1446 A
  3532. (the)126 1656 A
  3533. (same)168 1824 A
  3534. (slot)168 2034 A
  3535. (numbers)294 2244 A
  3536. 2580(as)S
  3537. (the)126 2706 A
  3538. (kernel.)294 2874 A
  3539. (Only)168 3252 A
  3540. 3462(MM)S
  3541. (makes)210 3588 A
  3542. (this)168 3840 A
  3543. (call.)210 4050 A
  3544. 6120 V
  3545. (26763)210 648 A
  3546. 1068(*/)S
  3547. 6210 V
  3548. (26764)210 648 A
  3549. 8418 V
  3550. EP
  3551. %%Page: 369 369
  3552. BP
  3553. /slant 0 def
  3554. /height 0 def
  3555. 630 V
  3556. 10 R
  3557. 648(MINIX)S
  3558. 976(SOURCE)S
  3559. 1399(CODE)S
  3560. 11 R
  3561. 2141(File:)S
  3562. 2374(src/fs/misc.c)S
  3563. 12 B
  3564. (369)180 4248 A
  3565. 900 V
  3566. 7 LST
  3567. (26765)210 648 A
  3568. (register)336 1110 A
  3569. (struct)252 1488 A
  3570. (fproc)210 1782 A
  3571. (*cp;)168 2034 A
  3572. 990 V
  3573. (26766)210 648 A
  3574. (int)126 1110 A
  3575. 1278(i;)S
  3576. 1080 V
  3577. (26767)210 648 A
  3578. 1170 V
  3579. (26768)210 648 A
  3580. 1110(/*)S
  3581. (Only)168 1236 A
  3582. 1446(MM)S
  3583. (may)126 1572 A
  3584. (make)168 1740 A
  3585. (this)168 1950 A
  3586. (call)168 2160 A
  3587. (directly.)378 2370 A
  3588. 2790(*/)S
  3589. 1260 V
  3590. (26769)210 648 A
  3591. 1110(if)S
  3592. ((who)168 1236 A
  3593. 1446(!=)S
  3594. (MM_PROC_NR))462 1572 A
  3595. (return(EGENERIC);)714 2076 A
  3596. 1350 V
  3597. (26770)210 648 A
  3598. 1440 V
  3599. (26771)210 648 A
  3600. 1110(/*)S
  3601. (Copy)168 1236 A
  3602. (the)126 1446 A
  3603. (parent's)336 1614 A
  3604. (fproc)210 1992 A
  3605. (struct)252 2244 A
  3606. 2538(to)S
  3607. (the)126 2664 A
  3608. (child.)252 2832 A
  3609. 3126(*/)S
  3610. 1530 V
  3611. (26772)210 648 A
  3612. (fproc[child])504 1110 A
  3613. 1656(=)S
  3614. (fproc[parent];)588 1740 A
  3615. 1620 V
  3616. (26773)210 648 A
  3617. 1710 V
  3618. (26774)210 648 A
  3619. 1110(/*)S
  3620. (Increase)336 1236 A
  3621. (the)126 1614 A
  3622. (counters)336 1782 A
  3623. 2160(in)S
  3624. (the)126 2286 A
  3625. ('filp')252 2454 A
  3626. (table.)252 2748 A
  3627. 3042(*/)S
  3628. 1800 V
  3629. (26775)210 648 A
  3630. 1110(cp)S
  3631. 1236(=)S
  3632. (&fproc[child];)588 1320 A
  3633. 1890 V
  3634. (26776)210 648 A
  3635. (for)126 1110 A
  3636. 1278((i)S
  3637. 1404(=)S
  3638. 1488(0;)S
  3639. 1614(i)S
  3640. 1698(<)S
  3641. (OPEN_MAX;)378 1782 A
  3642. (i++))168 2202 A
  3643. 1980 V
  3644. (26777)210 648 A
  3645. 1362(if)S
  3646. ((cp->fp_filp[i])630 1488 A
  3647. 2160(!=)S
  3648. (NIL_FILP))378 2286 A
  3649. (cp->fp_filp[i]->filp_count++;)1218 2706 A
  3650. 2070 V
  3651. (26778)210 648 A
  3652. 2160 V
  3653. (26779)210 648 A
  3654. 1110(/*)S
  3655. (Fill)168 1236 A
  3656. 1446(in)S
  3657. (new)126 1572 A
  3658. (process)294 1740 A
  3659. (id.)126 2076 A
  3660. 2244(*/)S
  3661. 2250 V
  3662. (26780)210 648 A
  3663. (cp->fp_pid)420 1110 A
  3664. 1572(=)S
  3665. (pid;)168 1656 A
  3666. 2340 V
  3667. (26781)210 648 A
  3668. 2430 V
  3669. (26782)210 648 A
  3670. 1110(/*)S
  3671. 1236(A)S
  3672. (child)210 1320 A
  3673. 1572(is)S
  3674. (not)126 1698 A
  3675. 1866(a)S
  3676. (process)294 1950 A
  3677. (leader.)294 2286 A
  3678. 2622(*/)S
  3679. 2520 V
  3680. (26783)210 648 A
  3681. (cp->fp_sesldr)546 1110 A
  3682. 1698(=)S
  3683. 1782(0;)S
  3684. 2610 V
  3685. (26784)210 648 A
  3686. 2700 V
  3687. (26785)210 648 A
  3688. 1110(/*)S
  3689. (Record)252 1236 A
  3690. (the)126 1530 A
  3691. (fact)168 1698 A
  3692. (that)168 1908 A
  3693. (both)168 2118 A
  3694. (root)168 2328 A
  3695. (and)126 2538 A
  3696. (working)294 2706 A
  3697. (dir)126 3042 A
  3698. (have)168 3210 A
  3699. (another)294 3420 A
  3700. (user.)210 3756 A
  3701. 4008(*/)S
  3702. 2790 V
  3703. (26786)210 648 A
  3704. (dup_inode(cp->fp_rootdir);)1092 1110 A
  3705. 2880 V
  3706. (26787)210 648 A
  3707. (dup_inode(cp->fp_workdir);)1092 1110 A
  3708. 2970 V
  3709. (26788)210 648 A
  3710. (return(OK);)462 1110 A
  3711. 3060 V
  3712. (26789)210 648 A
  3713. 1026(})S
  3714. 3330 V
  3715. (26792)210 648 A
  3716. (/*===========================================================================*)3276 1026 A
  3717. 3420 V
  3718. (26793)210 648 A
  3719. 1068(*)S
  3720. (do_exec)294 2370 A
  3721. 4260(*)S
  3722. 3510 V
  3723. (26794)210 648 A
  3724. (*===========================================================================*/)3276 1068 A
  3725. 3600 V
  3726. (26795)210 648 A
  3727. (PUBLIC)252 1026 A
  3728. (int)126 1320 A
  3729. (do_exec())378 1488 A
  3730. 3690 V
  3731. (26796)210 648 A
  3732. 1026({)S
  3733. 3780 V
  3734. (26797)210 648 A
  3735. 1026(/*)S
  3736. (Files)210 1152 A
  3737. (can)126 1404 A
  3738. 1572(be)S
  3739. (marked)252 1698 A
  3740. (with)168 1992 A
  3741. (the)126 2202 A
  3742. (FD_CLOEXEC)420 2370 A
  3743. (bit)126 2832 A
  3744. ((in)126 3000 A
  3745. (fp->fp_cloexec).)672 3168 A
  3746. (When)168 3924 A
  3747. 3870 V
  3748. (26798)210 648 A
  3749. 1068(*)S
  3750. 1152(MM)S
  3751. (does)168 1278 A
  3752. 1488(an)S
  3753. (EXEC,)210 1614 A
  3754. 1866(it)S
  3755. (calls)210 1992 A
  3756. 2244(FS)S
  3757. 2370(to)S
  3758. (allow)210 2496 A
  3759. 2748(FS)S
  3760. 2874(to)S
  3761. (find)168 3000 A
  3762. (these)210 3210 A
  3763. (files)210 3462 A
  3764. (and)126 3714 A
  3765. (close)210 3882 A
  3766. (them.)210 4134 A
  3767. 3960 V
  3768. (26799)210 648 A
  3769. 1068(*/)S
  3770. 4050 V
  3771. (26800)210 648 A
  3772. 4140 V
  3773. (26801)210 648 A
  3774. (register)336 1110 A
  3775. (int)126 1488 A
  3776. 1656(i;)S
  3777. 4230 V
  3778. (26802)210 648 A
  3779. (long)168 1110 A
  3780. (bitmap;)294 1320 A
  3781. 4320 V
  3782. (26803)210 648 A
  3783. 4410 V
  3784. (26804)210 648 A
  3785. 1110(/*)S
  3786. (Only)168 1236 A
  3787. 1446(MM)S
  3788. (may)126 1572 A
  3789. (make)168 1740 A
  3790. (this)168 1950 A
  3791. (call)168 2160 A
  3792. (directly.)378 2370 A
  3793. 2790(*/)S
  3794. 4500 V
  3795. (26805)210 648 A
  3796. 1110(if)S
  3797. ((who)168 1236 A
  3798. 1446(!=)S
  3799. (MM_PROC_NR))462 1572 A
  3800. (return(EGENERIC);)714 2076 A
  3801. 4590 V
  3802. (26806)210 648 A
  3803. 4680 V
  3804. (26807)210 648 A
  3805. 1110(/*)S
  3806. (The)126 1236 A
  3807. (array)210 1404 A
  3808. 1656(of)S
  3809. (FD_CLOEXEC)420 1782 A
  3810. (bits)168 2244 A
  3811. 2454(is)S
  3812. 2580(in)S
  3813. (the)126 2706 A
  3814. (fp_cloexec)420 2874 A
  3815. (bit)126 3336 A
  3816. (map.)168 3504 A
  3817. 3714(*/)S
  3818. 4770 V
  3819. (26808)210 648 A
  3820. 1110(fp)S
  3821. 1236(=)S
  3822. (&fproc[slot1];)588 1320 A
  3823. 2370(/*)S
  3824. (get_filp())420 2496 A
  3825. (needs)210 2958 A
  3826. ('fp')168 3210 A
  3827. 3420(*/)S
  3828. 4860 V
  3829. (26809)210 648 A
  3830. (bitmap)252 1110 A
  3831. 1404(=)S
  3832. (fp->fp_cloexec;)630 1488 A
  3833. 4950 V
  3834. (26810)210 648 A
  3835. 1110(if)S
  3836. ((bitmap)294 1236 A
  3837. 1572(==)S
  3838. 1698(0))S
  3839. (return(OK);)462 1824 A
  3840. 2370(/*)S
  3841. (normal)252 2496 A
  3842. (case,)210 2790 A
  3843. 3042(no)S
  3844. (FD_CLOEXECs)462 3168 A
  3845. 3672(*/)S
  3846. 5040 V
  3847. (26811)210 648 A
  3848. 5130 V
  3849. (26812)210 648 A
  3850. 1110(/*)S
  3851. (Check)210 1236 A
  3852. (the)126 1488 A
  3853. (file)168 1656 A
  3854. (desriptors)420 1866 A
  3855. (one)126 2328 A
  3856. 2496(by)S
  3857. (one)126 2622 A
  3858. (for)126 2790 A
  3859. (presence)336 2958 A
  3860. 3336(of)S
  3861. (FD_CLOEXEC.)462 3462 A
  3862. 3966(*/)S
  3863. 5220 V
  3864. (26813)210 648 A
  3865. (for)126 1110 A
  3866. 1278((i)S
  3867. 1404(=)S
  3868. 1488(0;)S
  3869. 1614(i)S
  3870. 1698(<)S
  3871. (OPEN_MAX;)378 1782 A
  3872. (i++))168 2202 A
  3873. 2412({)S
  3874. 5310 V
  3875. (26814)210 648 A
  3876. 1362(fd)S
  3877. 1488(=)S
  3878. 1572(i;)S
  3879. 5400 V
  3880. (26815)210 648 A
  3881. 1362(if)S
  3882. 1488(()S
  3883. ((bitmap)294 1572 A
  3884. 1908(>>)S
  3885. 2034(i))S
  3886. 2160(&)S
  3887. (01))126 2244 A
  3888. ((void))252 2412 A
  3889. (do_close();)462 2706 A
  3890. 5490 V
  3891. (26816)210 648 A
  3892. 1110(})S
  3893. 5580 V
  3894. (26817)210 648 A
  3895. 5670 V
  3896. (26818)210 648 A
  3897. (return(OK);)462 1110 A
  3898. 5760 V
  3899. (26819)210 648 A
  3900. 1026(})S
  3901. 6030 V
  3902. (26822)210 648 A
  3903. (/*===========================================================================*)3276 1026 A
  3904. 6120 V
  3905. (26823)210 648 A
  3906. 1068(*)S
  3907. (do_exit)294 2370 A
  3908. 4260(*)S
  3909. 6210 V
  3910. (26824)210 648 A
  3911. (*===========================================================================*/)3276 1068 A
  3912. 8418 V
  3913. EP
  3914. %%Page: 370 370
  3915. BP
  3916. /slant 0 def
  3917. /height 0 def
  3918. 630 V
  3919. 12 B
  3920. (370)180 648 A
  3921. 11 R
  3922. 2141(File:)S
  3923. 2374(src/fs/misc.c)S
  3924. 10 R
  3925. 3402(MINIX)S
  3926. 3730(SOURCE)S
  3927. 4153(CODE)S
  3928. 900 V
  3929. 7 LST
  3930. (26825)210 648 A
  3931. (PUBLIC)252 1026 A
  3932. (int)126 1320 A
  3933. (do_exit())378 1488 A
  3934. 990 V
  3935. (26826)210 648 A
  3936. 1026({)S
  3937. 1080 V
  3938. (26827)210 648 A
  3939. 1026(/*)S
  3940. (Perform)294 1152 A
  3941. (the)126 1488 A
  3942. (file)168 1656 A
  3943. (system)252 1866 A
  3944. (portion)294 2160 A
  3945. 2496(of)S
  3946. (the)126 2622 A
  3947. (exit(status))504 2790 A
  3948. (system)252 3336 A
  3949. (call.)210 3630 A
  3950. 3882(*/)S
  3951. 1170 V
  3952. (26828)210 648 A
  3953. 1260 V
  3954. (26829)210 648 A
  3955. (register)336 1110 A
  3956. (int)126 1488 A
  3957. 1656(i,)S
  3958. (exitee,)294 1782 A
  3959. (task;)210 2118 A
  3960. 1350 V
  3961. (26830)210 648 A
  3962. (register)336 1110 A
  3963. (struct)252 1488 A
  3964. (fproc)210 1782 A
  3965. (*rfp;)210 2034 A
  3966. 1440 V
  3967. (26831)210 648 A
  3968. (register)336 1110 A
  3969. (struct)252 1488 A
  3970. (filp)168 1782 A
  3971. (*rfilp;)294 1992 A
  3972. 1530 V
  3973. (26832)210 648 A
  3974. (register)336 1110 A
  3975. (struct)252 1488 A
  3976. (inode)210 1782 A
  3977. (*rip;)210 2034 A
  3978. 1620 V
  3979. (26833)210 648 A
  3980. (int)126 1110 A
  3981. (major;)252 1278 A
  3982. 1710 V
  3983. (26834)210 648 A
  3984. (dev_t)210 1110 A
  3985. (dev;)168 1362 A
  3986. 1800 V
  3987. (26835)210 648 A
  3988. (message)294 1110 A
  3989. (dev_mess;)378 1446 A
  3990. 1890 V
  3991. (26836)210 648 A
  3992. 1980 V
  3993. (26837)210 648 A
  3994. 1110(/*)S
  3995. (Only)168 1236 A
  3996. 1446(MM)S
  3997. (may)126 1572 A
  3998. 1740(do)S
  3999. (the)126 1866 A
  4000. (EXIT)168 2034 A
  4001. (call)168 2244 A
  4002. (directly.)378 2454 A
  4003. 2874(*/)S
  4004. 2070 V
  4005. (26838)210 648 A
  4006. 1110(if)S
  4007. ((who)168 1236 A
  4008. 1446(!=)S
  4009. (MM_PROC_NR))462 1572 A
  4010. (return(EGENERIC);)714 2076 A
  4011. 2160 V
  4012. (26839)210 648 A
  4013. 2250 V
  4014. (26840)210 648 A
  4015. 1110(/*)S
  4016. (Nevertheless,)546 1236 A
  4017. (pretend)294 1824 A
  4018. (that)168 2160 A
  4019. (the)126 2370 A
  4020. (call)168 2538 A
  4021. (came)168 2748 A
  4022. (from)168 2958 A
  4023. (the)126 3168 A
  4024. (user.)210 3336 A
  4025. 3588(*/)S
  4026. 2340 V
  4027. (26841)210 648 A
  4028. 1110(fp)S
  4029. 1236(=)S
  4030. (&fproc[slot1];)588 1320 A
  4031. 2370(/*)S
  4032. (get_filp())420 2496 A
  4033. (needs)210 2958 A
  4034. ('fp')168 3210 A
  4035. 3420(*/)S
  4036. 2430 V
  4037. (26842)210 648 A
  4038. (exitee)252 1110 A
  4039. 1404(=)S
  4040. (slot1;)252 1488 A
  4041. 2520 V
  4042. (26843)210 648 A
  4043. 2610 V
  4044. (26844)210 648 A
  4045. 1110(if)S
  4046. ((fp->fp_suspended)714 1236 A
  4047. 1992(==)S
  4048. (SUSPENDED))420 2118 A
  4049. 2580({)S
  4050. 2700 V
  4051. (26845)210 648 A
  4052. (task)168 1362 A
  4053. 1572(=)S
  4054. (-fp->fp_task;)546 1656 A
  4055. 2790 V
  4056. (26846)210 648 A
  4057. 1362(if)S
  4058. ((task)210 1488 A
  4059. 1740(==)S
  4060. (XPIPE)210 1866 A
  4061. 2118(||)S
  4062. (task)168 2244 A
  4063. 2454(==)S
  4064. (XPOPEN))294 2580 A
  4065. (susp_count--;)546 2916 A
  4066. 2880 V
  4067. (26847)210 648 A
  4068. (pro)126 1362 A
  4069. 1530(=)S
  4070. (exitee;)294 1614 A
  4071. 2970 V
  4072. (26848)210 648 A
  4073. ((void))252 1362 A
  4074. (do_unpause();)546 1656 A
  4075. 2370(/*)S
  4076. (this)168 2496 A
  4077. (always)252 2706 A
  4078. (succeeds)336 3000 A
  4079. (for)126 3378 A
  4080. 3546(MM)S
  4081. 3672(*/)S
  4082. 3060 V
  4083. (26849)210 648 A
  4084. (fp->fp_suspended)672 1362 A
  4085. 2076(=)S
  4086. (NOT_SUSPENDED;)588 2160 A
  4087. 3150 V
  4088. (26850)210 648 A
  4089. 1110(})S
  4090. 3240 V
  4091. (26851)210 648 A
  4092. 3330 V
  4093. (26852)210 648 A
  4094. 1110(/*)S
  4095. (Loop)168 1236 A
  4096. 1446(on)S
  4097. (file)168 1572 A
  4098. (descriptors,)504 1782 A
  4099. (closing)294 2328 A
  4100. (any)126 2664 A
  4101. (that)168 2832 A
  4102. (are)126 3042 A
  4103. (open.)210 3210 A
  4104. 3462(*/)S
  4105. 3420 V
  4106. (26853)210 648 A
  4107. (for)126 1110 A
  4108. 1278((i)S
  4109. 1404(=)S
  4110. 1488(0;)S
  4111. 1614(i)S
  4112. 1698(<)S
  4113. (OPEN_MAX;)378 1782 A
  4114. (i++))168 2202 A
  4115. 2412({)S
  4116. 3510 V
  4117. (26854)210 648 A
  4118. 1362(fd)S
  4119. 1488(=)S
  4120. 1572(i;)S
  4121. 3600 V
  4122. (26855)210 648 A
  4123. ((void))252 1362 A
  4124. (do_close();)462 1656 A
  4125. 3690 V
  4126. (26856)210 648 A
  4127. 1110(})S
  4128. 3780 V
  4129. (26857)210 648 A
  4130. 3870 V
  4131. (26858)210 648 A
  4132. 1110(/*)S
  4133. (Release)294 1236 A
  4134. (root)168 1572 A
  4135. (and)126 1782 A
  4136. (working)294 1950 A
  4137. (directories.)504 2286 A
  4138. 2832(*/)S
  4139. 3960 V
  4140. (26859)210 648 A
  4141. (put_inode(fp->fp_rootdir);)1092 1110 A
  4142. 4050 V
  4143. (26860)210 648 A
  4144. (put_inode(fp->fp_workdir);)1092 1110 A
  4145. 4140 V
  4146. (26861)210 648 A
  4147. (fp->fp_rootdir)588 1110 A
  4148. 1740(=)S
  4149. (NIL_INODE;)420 1824 A
  4150. 4230 V
  4151. (26862)210 648 A
  4152. (fp->fp_workdir)588 1110 A
  4153. 1740(=)S
  4154. (NIL_INODE;)420 1824 A
  4155. 4320 V
  4156. (26863)210 648 A
  4157. 4410 V
  4158. (26864)210 648 A
  4159. 1110(/*)S
  4160. 1236(If)S
  4161. 1362(a)S
  4162. (session)294 1446 A
  4163. (leader)252 1782 A
  4164. (exits)210 2076 A
  4165. (then)168 2328 A
  4166. (revoke)252 2538 A
  4167. (access)252 2832 A
  4168. 3126(to)S
  4169. (its)126 3252 A
  4170. (controlling)462 3420 A
  4171. (tty)126 3924 A
  4172. (from)168 4092 A
  4173. 4500 V
  4174. (26865)210 648 A
  4175. 1152(*)S
  4176. (all)126 1236 A
  4177. (other)210 1404 A
  4178. (processes)378 1656 A
  4179. (using)210 2076 A
  4180. (it.)126 2328 A
  4181. 4590 V
  4182. (26866)210 648 A
  4183. 1152(*/)S
  4184. 4680 V
  4185. (26867)210 648 A
  4186. 1110(if)S
  4187. ((!fp->fp_sesldr))672 1236 A
  4188. (return(OK);)462 1950 A
  4189. 3042(/*)S
  4190. (not)126 3168 A
  4191. 3336(a)S
  4192. (session)294 3420 A
  4193. (leader)252 3756 A
  4194. 4050(*/)S
  4195. 4770 V
  4196. (26868)210 648 A
  4197. (fp->fp_sesldr)546 1110 A
  4198. 1698(=)S
  4199. (FALSE;)252 1782 A
  4200. 4860 V
  4201. (26869)210 648 A
  4202. 1110(if)S
  4203. ((fp->fp_tty)462 1236 A
  4204. 1740(==)S
  4205. 1866(0))S
  4206. (return(OK);)462 1992 A
  4207. 3042(/*)S
  4208. 3168(no)S
  4209. (controlling)462 3294 A
  4210. (tty)126 3798 A
  4211. 3966(*/)S
  4212. 4950 V
  4213. (26870)210 648 A
  4214. (dev)126 1110 A
  4215. 1278(=)S
  4216. (fp->fp_tty;)462 1362 A
  4217. 5040 V
  4218. (26871)210 648 A
  4219. 5130 V
  4220. (26872)210 648 A
  4221. (for)126 1110 A
  4222. ((rfp)168 1278 A
  4223. 1488(=)S
  4224. (&fproc[LOW_USER];)714 1572 A
  4225. (rfp)126 2328 A
  4226. 2496(<)S
  4227. (&fproc[NR_PROCS];)714 2580 A
  4228. (rfp++))252 3336 A
  4229. 3630({)S
  4230. 5220 V
  4231. (26873)210 648 A
  4232. 1362(if)S
  4233. ((rfp->fp_tty)504 1488 A
  4234. 2034(==)S
  4235. (dev))168 2160 A
  4236. (rfp->fp_tty)462 2370 A
  4237. 2874(=)S
  4238. 2958(0;)S
  4239. 5310 V
  4240. (26874)210 648 A
  4241. 5400 V
  4242. (26875)210 648 A
  4243. (for)126 1362 A
  4244. 1530((i)S
  4245. 1656(=)S
  4246. 1740(0;)S
  4247. 1866(i)S
  4248. 1950(<)S
  4249. (OPEN_MAX;)378 2034 A
  4250. (i++))168 2454 A
  4251. 2664({)S
  4252. 5490 V
  4253. (26876)210 648 A
  4254. 1698(if)S
  4255. (((rfilp)294 1824 A
  4256. 2160(=)S
  4257. (rfp->fp_filp[i]))672 2244 A
  4258. 2958(==)S
  4259. (NIL_FILP))378 3084 A
  4260. (continue;)378 3504 A
  4261. 5580 V
  4262. (26877)210 648 A
  4263. 1698(if)S
  4264. ((rfilp->filp_mode)714 1824 A
  4265. 2580(==)S
  4266. (FILP_CLOSED))504 2706 A
  4267. (continue;)378 3252 A
  4268. 5670 V
  4269. (26878)210 648 A
  4270. (rip)126 1698 A
  4271. 1866(=)S
  4272. (rfilp->filp_ino;)672 1950 A
  4273. 5760 V
  4274. (26879)210 648 A
  4275. 1698(if)S
  4276. (((rip->i_mode)546 1824 A
  4277. 2412(&)S
  4278. (I_TYPE))294 2496 A
  4279. 2832(!=)S
  4280. (I_CHAR_SPECIAL))630 2958 A
  4281. (continue;)378 3630 A
  4282. 5850 V
  4283. (26880)210 648 A
  4284. 1698(if)S
  4285. (((dev_t))336 1824 A
  4286. (rip->i_zone[0])588 2202 A
  4287. 2832(!=)S
  4288. (dev))168 2958 A
  4289. (continue;)378 3168 A
  4290. 5940 V
  4291. (26881)210 648 A
  4292. (dev_mess.m_type)630 1698 A
  4293. 2370(=)S
  4294. (DEV_CLOSE;)420 2454 A
  4295. 6030 V
  4296. (26882)210 648 A
  4297. (dev_mess.DEVICE)630 1698 A
  4298. 2370(=)S
  4299. (dev;)168 2454 A
  4300. 6120 V
  4301. (26883)210 648 A
  4302. (major)210 1698 A
  4303. 1950(=)S
  4304. ((dev)168 2034 A
  4305. 2244(>>)S
  4306. (MAJOR))252 2370 A
  4307. 2664(&)S
  4308. (BYTE;)210 2748 A
  4309. 3042(/*)S
  4310. (major)210 3168 A
  4311. (device)252 3420 A
  4312. 3714(nr)S
  4313. 3840(*/)S
  4314. 6210 V
  4315. (26884)210 648 A
  4316. (task)168 1698 A
  4317. 1908(=)S
  4318. (dmap[major].dmap_task;)924 1992 A
  4319. 3042(/*)S
  4320. (device)252 3168 A
  4321. (task)168 3462 A
  4322. 3672(nr)S
  4323. 3798(*/)S
  4324. 8418 V
  4325. EP
  4326. %%Page: 371 371
  4327. BP
  4328. /slant 0 def
  4329. /height 0 def
  4330. 630 V
  4331. 10 R
  4332. 648(MINIX)S
  4333. 976(SOURCE)S
  4334. 1399(CODE)S
  4335. 11 R
  4336. 2141(File:)S
  4337. 2374(src/fs/misc.c)S
  4338. 12 B
  4339. (371)180 4248 A
  4340. 900 V
  4341. 7 LST
  4342. (26885)210 648 A
  4343. ((*dmap[major].dmap_close)(task,)1302 1698 A
  4344. (&dev_mess);)462 3042 A
  4345. 990 V
  4346. (26886)210 648 A
  4347. (rfilp->filp_mode)672 1698 A
  4348. 2412(=)S
  4349. (FILP_CLOSED;)504 2496 A
  4350. 1080 V
  4351. (26887)210 648 A
  4352. 1362(})S
  4353. 1170 V
  4354. (26888)210 648 A
  4355. 1110(})S
  4356. 1260 V
  4357. (26889)210 648 A
  4358. (return(OK);)462 1110 A
  4359. 1350 V
  4360. (26890)210 648 A
  4361. 1026(})S
  4362. 1620 V
  4363. (26893)210 648 A
  4364. (/*===========================================================================*)3276 1026 A
  4365. 1710 V
  4366. (26894)210 648 A
  4367. 1068(*)S
  4368. (do_set)252 2370 A
  4369. 4260(*)S
  4370. 1800 V
  4371. (26895)210 648 A
  4372. (*===========================================================================*/)3276 1068 A
  4373. 1890 V
  4374. (26896)210 648 A
  4375. (PUBLIC)252 1026 A
  4376. (int)126 1320 A
  4377. (do_set())336 1488 A
  4378. 1980 V
  4379. (26897)210 648 A
  4380. 1026({)S
  4381. 2070 V
  4382. (26898)210 648 A
  4383. 1026(/*)S
  4384. (Set)126 1152 A
  4385. (uid_t)210 1320 A
  4386. 1572(or)S
  4387. (gid_t)210 1698 A
  4388. (field.)252 1950 A
  4389. 2244(*/)S
  4390. 2160 V
  4391. (26899)210 648 A
  4392. 2250 V
  4393. (26900)210 648 A
  4394. (register)336 1110 A
  4395. (struct)252 1488 A
  4396. (fproc)210 1782 A
  4397. (*tfp;)210 2034 A
  4398. 2340 V
  4399. (26901)210 648 A
  4400. 2430 V
  4401. (26902)210 648 A
  4402. 1110(/*)S
  4403. (Only)168 1236 A
  4404. 1446(MM)S
  4405. (may)126 1572 A
  4406. (make)168 1740 A
  4407. (this)168 1950 A
  4408. (call)168 2160 A
  4409. (directly.)378 2370 A
  4410. 2790(*/)S
  4411. 2520 V
  4412. (26903)210 648 A
  4413. 1110(if)S
  4414. ((who)168 1236 A
  4415. 1446(!=)S
  4416. (MM_PROC_NR))462 1572 A
  4417. (return(EGENERIC);)714 2076 A
  4418. 2610 V
  4419. (26904)210 648 A
  4420. 2700 V
  4421. (26905)210 648 A
  4422. (tfp)126 1110 A
  4423. 1278(=)S
  4424. (&fproc[slot1];)588 1362 A
  4425. 2790 V
  4426. (26906)210 648 A
  4427. 1110(if)S
  4428. ((fs_call)336 1236 A
  4429. 1614(==)S
  4430. (SETUID))294 1740 A
  4431. 2076({)S
  4432. 2880 V
  4433. (26907)210 648 A
  4434. (tfp->fp_realuid)630 1362 A
  4435. 2034(=)S
  4436. ((uid_t))294 2118 A
  4437. (real_user_id;)546 2454 A
  4438. 2970 V
  4439. (26908)210 648 A
  4440. (tfp->fp_effuid)588 1362 A
  4441. 1992(=)S
  4442. ((uid_t))294 2118 A
  4443. (eff_user_id;)504 2454 A
  4444. 3060 V
  4445. (26909)210 648 A
  4446. 1110(})S
  4447. 3150 V
  4448. (26910)210 648 A
  4449. 1110(if)S
  4450. ((fs_call)336 1236 A
  4451. 1614(==)S
  4452. (SETGID))294 1740 A
  4453. 2076({)S
  4454. 3240 V
  4455. (26911)210 648 A
  4456. (tfp->fp_effgid)588 1362 A
  4457. 1992(=)S
  4458. ((gid_t))294 2118 A
  4459. (eff_grp_id;)462 2454 A
  4460. 3330 V
  4461. (26912)210 648 A
  4462. (tfp->fp_realgid)630 1362 A
  4463. 2034(=)S
  4464. ((gid_t))294 2118 A
  4465. (real_grp_id;)504 2454 A
  4466. 3420 V
  4467. (26913)210 648 A
  4468. 1110(})S
  4469. 3510 V
  4470. (26914)210 648 A
  4471. (return(OK);)462 1110 A
  4472. 3600 V
  4473. (26915)210 648 A
  4474. 1026(})S
  4475. 3870 V
  4476. (26918)210 648 A
  4477. (/*===========================================================================*)3276 1026 A
  4478. 3960 V
  4479. (26919)210 648 A
  4480. 1068(*)S
  4481. (do_revive)378 2370 A
  4482. 4260(*)S
  4483. 4050 V
  4484. (26920)210 648 A
  4485. (*===========================================================================*/)3276 1068 A
  4486. 4140 V
  4487. (26921)210 648 A
  4488. (PUBLIC)252 1026 A
  4489. (int)126 1320 A
  4490. (do_revive())462 1488 A
  4491. 4230 V
  4492. (26922)210 648 A
  4493. 1026({)S
  4494. 4320 V
  4495. (26923)210 648 A
  4496. 1026(/*)S
  4497. 1152(A)S
  4498. (task,)210 1236 A
  4499. (typically)378 1488 A
  4500. (TTY,)168 1908 A
  4501. (has)126 2118 A
  4502. (now)126 2286 A
  4503. (gotten)252 2454 A
  4504. (the)126 2748 A
  4505. (characters)420 2916 A
  4506. (that)168 3378 A
  4507. (were)168 3588 A
  4508. (needed)252 3798 A
  4509. (for)126 4092 A
  4510. 4260(a)S
  4511. 4410 V
  4512. (26924)210 648 A
  4513. 1068(*)S
  4514. (previous)336 1152 A
  4515. (read.)210 1530 A
  4516. (The)126 1824 A
  4517. (process)294 1992 A
  4518. (did)126 2328 A
  4519. (not)126 2496 A
  4520. (get)126 2664 A
  4521. 2832(a)S
  4522. (reply)210 2916 A
  4523. (when)168 3168 A
  4524. 3378(it)S
  4525. (made)168 3504 A
  4526. (the)126 3714 A
  4527. (call.)210 3882 A
  4528. 4500 V
  4529. (26925)210 648 A
  4530. 1068(*)S
  4531. (Instead)294 1152 A
  4532. 1488(it)S
  4533. (was)126 1614 A
  4534. (suspended.)420 1782 A
  4535. (Now)126 2286 A
  4536. 2454(we)S
  4537. (can)126 2580 A
  4538. (send)168 2748 A
  4539. (the)126 2958 A
  4540. (reply)210 3126 A
  4541. 3378(to)S
  4542. (wake)168 3504 A
  4543. 3714(it)S
  4544. (up.)126 3840 A
  4545. (This)168 4050 A
  4546. 4590 V
  4547. (26926)210 648 A
  4548. 1068(*)S
  4549. (business)336 1152 A
  4550. (has)126 1530 A
  4551. 1698(to)S
  4552. 1824(be)S
  4553. (done)168 1950 A
  4554. (carefully,)420 2160 A
  4555. (since)210 2622 A
  4556. (the)126 2874 A
  4557. (incoming)336 3042 A
  4558. (message)294 3420 A
  4559. 3756(is)S
  4560. (from)168 3882 A
  4561. 4680 V
  4562. (26927)210 648 A
  4563. 1068(*)S
  4564. 1152(a)S
  4565. (task)168 1236 A
  4566. ((to)126 1446 A
  4567. (which)210 1614 A
  4568. 1866(no)S
  4569. (reply)210 1992 A
  4570. (can)126 2244 A
  4571. 2412(be)S
  4572. (sent),)252 2538 A
  4573. (and)126 2832 A
  4574. (the)126 3000 A
  4575. (reply)210 3168 A
  4576. (must)168 3420 A
  4577. 3630(go)S
  4578. 3756(to)S
  4579. 3882(a)S
  4580. (process)294 3966 A
  4581. 4770 V
  4582. (26928)210 648 A
  4583. 1068(*)S
  4584. (that)168 1152 A
  4585. (blocked)294 1362 A
  4586. (earlier.)336 1698 A
  4587. (The)126 2118 A
  4588. (reply)210 2286 A
  4589. 2538(to)S
  4590. (the)126 2664 A
  4591. (caller)252 2832 A
  4592. 3126(is)S
  4593. (inhibited)378 3252 A
  4594. 3672(by)S
  4595. (setting)294 3798 A
  4596. (the)126 4134 A
  4597. 4860 V
  4598. (26929)210 648 A
  4599. 1068(*)S
  4600. ('dont_reply')504 1152 A
  4601. (flag,)210 1698 A
  4602. (and)126 1950 A
  4603. (the)126 2118 A
  4604. (reply)210 2286 A
  4605. 2538(to)S
  4606. (the)126 2664 A
  4607. (blocked)294 2832 A
  4608. (process)294 3168 A
  4609. 3504(is)S
  4610. (done)168 3630 A
  4611. (explicitly)420 3840 A
  4612. 4950 V
  4613. (26930)210 648 A
  4614. 1068(*)S
  4615. 1152(in)S
  4616. (revive().)378 1278 A
  4617. 5040 V
  4618. (26931)210 648 A
  4619. 1068(*/)S
  4620. 5130 V
  4621. (26932)210 648 A
  4622. 5220 V
  4623. (26933)210 648 A
  4624. (#if)126 1026 A
  4625. (!ALLOW_USER_SEND)672 1194 A
  4626. 5310 V
  4627. (26934)210 648 A
  4628. 1110(if)S
  4629. ((who)168 1236 A
  4630. 1446(>=)S
  4631. (LOW_USER))378 1572 A
  4632. (return(EPERM);)588 1992 A
  4633. 5400 V
  4634. (26935)210 648 A
  4635. (#endif)252 1026 A
  4636. 5490 V
  4637. (26936)210 648 A
  4638. 5580 V
  4639. (26937)210 648 A
  4640. (revive(m.REP_PROC_NR,)882 1110 A
  4641. (m.REP_STATUS);)588 2034 A
  4642. 5670 V
  4643. (26938)210 648 A
  4644. (dont_reply)420 1110 A
  4645. 1572(=)S
  4646. (TRUE;)210 1656 A
  4647. 2370(/*)S
  4648. (don't)210 2496 A
  4649. (reply)210 2748 A
  4650. 3000(to)S
  4651. (the)126 3126 A
  4652. (TTY)126 3294 A
  4653. (task)168 3462 A
  4654. 3672(*/)S
  4655. 5760 V
  4656. (26939)210 648 A
  4657. (return(OK);)462 1110 A
  4658. 5850 V
  4659. (26940)210 648 A
  4660. 1026(})S
  4661. 8418 V
  4662. EP
  4663. %%Page: 372 372
  4664. BP
  4665. /slant 0 def
  4666. /height 0 def
  4667. 630 V
  4668. 12 B
  4669. (372)180 648 A
  4670. 11 R
  4671. 2101(File:)S
  4672. 2334(src/fs/device.c)S
  4673. 10 R
  4674. 3402(MINIX)S
  4675. 3730(SOURCE)S
  4676. 4153(CODE)S
  4677. 990 V
  4678. 7 LST
  4679. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  4680. 1080 V
  4681. (src/fs/device.c)630 2034 A
  4682. 1170 V
  4683. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  4684. 1350 V
  4685. (27000)210 648 A
  4686. 1026(/*)S
  4687. (When)168 1152 A
  4688. 1362(a)S
  4689. (needed)252 1446 A
  4690. (block)210 1740 A
  4691. 1992(is)S
  4692. (not)126 2118 A
  4693. 2286(in)S
  4694. (the)126 2412 A
  4695. (cache,)252 2580 A
  4696. 2874(it)S
  4697. (must)168 3000 A
  4698. 3210(be)S
  4699. (fetched)294 3336 A
  4700. (from)168 3672 A
  4701. (the)126 3882 A
  4702. (disk.)210 4050 A
  4703. 1440 V
  4704. (27001)210 648 A
  4705. 1068(*)S
  4706. (Special)294 1152 A
  4707. (character)378 1488 A
  4708. (files)210 1908 A
  4709. (also)168 2160 A
  4710. (require)294 2370 A
  4711. (I/O.)168 2706 A
  4712. (The)126 2958 A
  4713. (routines)336 3126 A
  4714. (for)126 3504 A
  4715. (these)210 3672 A
  4716. (are)126 3924 A
  4717. (here.)210 4092 A
  4718. 1530 V
  4719. (27002)210 648 A
  4720. 1068(*)S
  4721. 1620 V
  4722. (27003)210 648 A
  4723. 1068(*)S
  4724. (The)126 1152 A
  4725. (entry)210 1320 A
  4726. (points)252 1572 A
  4727. 1866(in)S
  4728. (this)168 1992 A
  4729. (file)168 2202 A
  4730. (are:)168 2412 A
  4731. 1710 V
  4732. (27004)210 648 A
  4733. 1068(*)S
  4734. (dev_io:)294 1236 A
  4735. (perform)294 1740 A
  4736. 2076(a)S
  4737. (read)168 2160 A
  4738. 2370(or)S
  4739. (write)210 2496 A
  4740. 2748(on)S
  4741. 2874(a)S
  4742. (block)210 2958 A
  4743. 3210(or)S
  4744. (character)378 3336 A
  4745. (device)252 3756 A
  4746. 1800 V
  4747. (27005)210 648 A
  4748. 1068(*)S
  4749. (dev_opcl:)378 1236 A
  4750. (perform)294 1740 A
  4751. (generic)294 2076 A
  4752. (device-specific)630 2412 A
  4753. (processing)420 3084 A
  4754. (for)126 3546 A
  4755. (open)168 3714 A
  4756. 3924(&)S
  4757. (close)210 4008 A
  4758. 1890 V
  4759. (27006)210 648 A
  4760. 1068(*)S
  4761. (tty_open:)378 1236 A
  4762. (perform)294 1740 A
  4763. (tty-specific)504 2076 A
  4764. (processing)420 2622 A
  4765. (for)126 3084 A
  4766. (open)168 3252 A
  4767. 1980 V
  4768. (27007)210 648 A
  4769. 1068(*)S
  4770. (ctty_open:)420 1236 A
  4771. (perform)294 1740 A
  4772. (controlling-tty-specific)1008 2076 A
  4773. (processing)420 3126 A
  4774. (for)126 3588 A
  4775. (open)168 3756 A
  4776. 2070 V
  4777. (27008)210 648 A
  4778. 1068(*)S
  4779. (ctty_close:)462 1236 A
  4780. (perform)294 1740 A
  4781. (controlling-tty-specific)1008 2076 A
  4782. (processing)420 3126 A
  4783. (for)126 3588 A
  4784. (close)210 3756 A
  4785. 2160 V
  4786. (27009)210 648 A
  4787. 1068(*)S
  4788. (do_setsid:)420 1236 A
  4789. (perform)294 1740 A
  4790. (the)126 2076 A
  4791. (SETSID)252 2244 A
  4792. (system)252 2538 A
  4793. (call)168 2832 A
  4794. ((FS)126 3042 A
  4795. (side))210 3210 A
  4796. 2250 V
  4797. (27010)210 648 A
  4798. 1068(*)S
  4799. (do_ioctl:)378 1236 A
  4800. (perform)294 1740 A
  4801. (the)126 2076 A
  4802. (IOCTL)210 2244 A
  4803. (system)252 2496 A
  4804. (call)168 2790 A
  4805. 2340 V
  4806. (27011)210 648 A
  4807. 1068(*)S
  4808. (call_task:)420 1236 A
  4809. (procedure)378 1740 A
  4810. (that)168 2160 A
  4811. (actually)336 2370 A
  4812. (calls)210 2748 A
  4813. (the)126 3000 A
  4814. (kernel)252 3168 A
  4815. (tasks)210 3462 A
  4816. 2430 V
  4817. (27012)210 648 A
  4818. 1068(*)S
  4819. (call_ctty:)420 1236 A
  4820. (procedure)378 1740 A
  4821. (that)168 2160 A
  4822. (actually)336 2370 A
  4823. (calls)210 2748 A
  4824. (task)168 3000 A
  4825. (for)126 3210 A
  4826. (/dev/tty)336 3378 A
  4827. 2520 V
  4828. (27013)210 648 A
  4829. 1068(*/)S
  4830. 2610 V
  4831. (27014)210 648 A
  4832. 2700 V
  4833. (27015)210 648 A
  4834. (#include)336 1026 A
  4835. ("fs.h")252 1404 A
  4836. 2790 V
  4837. (27016)210 648 A
  4838. (#include)336 1026 A
  4839. (<fcntl.h>)378 1404 A
  4840. 2880 V
  4841. (27017)210 648 A
  4842. (#include)336 1026 A
  4843. (<minix/callnr.h>)672 1404 A
  4844. 2970 V
  4845. (27018)210 648 A
  4846. (#include)336 1026 A
  4847. (<minix/com.h>)546 1404 A
  4848. 3060 V
  4849. (27019)210 648 A
  4850. (#include)336 1026 A
  4851. ("dev.h")294 1404 A
  4852. 3150 V
  4853. (27020)210 648 A
  4854. (#include)336 1026 A
  4855. ("file.h")336 1404 A
  4856. 3240 V
  4857. (27021)210 648 A
  4858. (#include)336 1026 A
  4859. ("fproc.h")378 1404 A
  4860. 3330 V
  4861. (27022)210 648 A
  4862. (#include)336 1026 A
  4863. ("inode.h")378 1404 A
  4864. 3420 V
  4865. (27023)210 648 A
  4866. (#include)336 1026 A
  4867. ("param.h")378 1404 A
  4868. 3510 V
  4869. (27024)210 648 A
  4870. 3600 V
  4871. (27025)210 648 A
  4872. (PRIVATE)294 1026 A
  4873. (message)294 1362 A
  4874. (dev_mess;)378 1698 A
  4875. 3690 V
  4876. (27026)210 648 A
  4877. (PRIVATE)294 1026 A
  4878. (major,)252 1362 A
  4879. (minor,)252 1656 A
  4880. (task;)210 1950 A
  4881. 3780 V
  4882. (27027)210 648 A
  4883. 3870 V
  4884. (27028)210 648 A
  4885. (FORWARD)294 1026 A
  4886. (_PROTOTYPE()462 1362 A
  4887. (void)168 1866 A
  4888. (find_dev,)378 2076 A
  4889. ((Dev_t)252 2496 A
  4890. (dev))168 2790 A
  4891. 4050();)S
  4892. 3960 V
  4893. (27029)210 648 A
  4894. 4050 V
  4895. (27030)210 648 A
  4896. (/*===========================================================================*)3276 1026 A
  4897. 4140 V
  4898. (27031)210 648 A
  4899. 1068(*)S
  4900. (dev_io)252 2370 A
  4901. 4260(*)S
  4902. 4230 V
  4903. (27032)210 648 A
  4904. (*===========================================================================*/)3276 1068 A
  4905. 4320 V
  4906. (27033)210 648 A
  4907. (PUBLIC)252 1026 A
  4908. (int)126 1320 A
  4909. (dev_io(op,)420 1488 A
  4910. (nonblock,)378 1950 A
  4911. (dev,)168 2370 A
  4912. (pos,)168 2580 A
  4913. (bytes,)252 2790 A
  4914. (proc,)210 3084 A
  4915. (buff))210 3336 A
  4916. 4410 V
  4917. (27034)210 648 A
  4918. (int)126 1026 A
  4919. (op;)126 1194 A
  4920. 2370(/*)S
  4921. (DEV_READ,)378 2496 A
  4922. (DEV_WRITE,)420 2916 A
  4923. (DEV_IOCTL,)420 3378 A
  4924. (etc.)168 3840 A
  4925. 4050(*/)S
  4926. 4500 V
  4927. (27035)210 648 A
  4928. (int)126 1026 A
  4929. (nonblock;)378 1194 A
  4930. 2370(/*)S
  4931. (TRUE)168 2496 A
  4932. 2706(if)S
  4933. (nonblocking)462 2832 A
  4934. 3336(op)S
  4935. 3462(*/)S
  4936. 4590 V
  4937. (27036)210 648 A
  4938. (dev_t)210 1026 A
  4939. (dev;)168 1278 A
  4940. 2370(/*)S
  4941. (major-minor)462 2496 A
  4942. (device)252 3000 A
  4943. (number)252 3294 A
  4944. 3588(*/)S
  4945. 4680 V
  4946. (27037)210 648 A
  4947. (off_t)210 1026 A
  4948. (pos;)168 1278 A
  4949. 2370(/*)S
  4950. (byte)168 2496 A
  4951. (position)336 2706 A
  4952. 3084(*/)S
  4953. 4770 V
  4954. (27038)210 648 A
  4955. (int)126 1026 A
  4956. (bytes;)252 1194 A
  4957. 2370(/*)S
  4958. (how)126 2496 A
  4959. (many)168 2664 A
  4960. (bytes)210 2874 A
  4961. 3126(to)S
  4962. (transfer)336 3252 A
  4963. 3630(*/)S
  4964. 4860 V
  4965. (27039)210 648 A
  4966. (int)126 1026 A
  4967. (proc;)210 1194 A
  4968. 2370(/*)S
  4969. 2496(in)S
  4970. (whose)210 2622 A
  4971. (address)294 2874 A
  4972. (space)210 3210 A
  4973. 3462(is)S
  4974. (buff?)210 3588 A
  4975. 3840(*/)S
  4976. 4950 V
  4977. (27040)210 648 A
  4978. (char)168 1026 A
  4979. (*buff;)252 1236 A
  4980. 2370(/*)S
  4981. (virtual)294 2496 A
  4982. (address)294 2832 A
  4983. 3168(of)S
  4984. (the)126 3294 A
  4985. (buffer)252 3462 A
  4986. 3756(*/)S
  4987. 5040 V
  4988. (27041)210 648 A
  4989. 1026({)S
  4990. 5130 V
  4991. (27042)210 648 A
  4992. 1026(/*)S
  4993. (Read)168 1152 A
  4994. 1362(or)S
  4995. (write)210 1488 A
  4996. (from)168 1740 A
  4997. 1950(a)S
  4998. (device.)294 2034 A
  4999. (The)126 2412 A
  5000. (parameter)378 2580 A
  5001. ('dev')210 3000 A
  5002. (tells)210 3252 A
  5003. (which)210 3504 A
  5004. (one.)168 3756 A
  5005. 3966(*/)S
  5006. 5220 V
  5007. (27043)210 648 A
  5008. 5310 V
  5009. (27044)210 648 A
  5010. (find_dev(dev);)588 1110 A
  5011. 2370(/*)S
  5012. (load)168 2496 A
  5013. (the)126 2706 A
  5014. (variables)378 2874 A
  5015. (major,)252 3294 A
  5016. (minor,)252 3588 A
  5017. (and)126 3882 A
  5018. (task)168 4050 A
  5019. 4260(*/)S
  5020. 5400 V
  5021. (27045)210 648 A
  5022. 5490 V
  5023. (27046)210 648 A
  5024. 1110(/*)S
  5025. (Set)126 1236 A
  5026. 1404(up)S
  5027. (the)126 1530 A
  5028. (message)294 1698 A
  5029. (passed)252 2034 A
  5030. 2328(to)S
  5031. (task.)210 2454 A
  5032. 2706(*/)S
  5033. 5580 V
  5034. (27047)210 648 A
  5035. (dev_mess.m_type)630 1110 A
  5036. 1866(=)S
  5037. (op;)126 1950 A
  5038. 5670 V
  5039. (27048)210 648 A
  5040. (dev_mess.DEVICE)630 1110 A
  5041. 1866(=)S
  5042. ((dev)168 1950 A
  5043. 2160(>>)S
  5044. (MINOR))252 2286 A
  5045. 2580(&)S
  5046. (BYTE;)210 2664 A
  5047. 5760 V
  5048. (27049)210 648 A
  5049. (dev_mess.POSITION)714 1110 A
  5050. 1866(=)S
  5051. (pos;)168 1950 A
  5052. 5850 V
  5053. (27050)210 648 A
  5054. (dev_mess.PROC_NR)672 1110 A
  5055. 1866(=)S
  5056. (proc;)210 1950 A
  5057. 5940 V
  5058. (27051)210 648 A
  5059. (dev_mess.ADDRESS)672 1110 A
  5060. 1866(=)S
  5061. (buff;)210 1950 A
  5062. 6030 V
  5063. (27052)210 648 A
  5064. (dev_mess.COUNT)588 1110 A
  5065. 1866(=)S
  5066. (bytes;)252 1950 A
  5067. 6120 V
  5068. (27053)210 648 A
  5069. (dev_mess.TTY_FLAGS)756 1110 A
  5070. 1908(=)S
  5071. (nonblock;)378 1992 A
  5072. 2412(/*)S
  5073. (temporary)378 2538 A
  5074. (kludge)252 2958 A
  5075. 3252(*/)S
  5076. 6210 V
  5077. (27054)210 648 A
  5078. 8418 V
  5079. EP
  5080. %%Page: 373 373
  5081. BP
  5082. /slant 0 def
  5083. /height 0 def
  5084. 630 V
  5085. 10 R
  5086. 648(MINIX)S
  5087. 976(SOURCE)S
  5088. 1399(CODE)S
  5089. 11 R
  5090. 2101(File:)S
  5091. 2334(src/fs/device.c)S
  5092. 12 B
  5093. (373)180 4248 A
  5094. 900 V
  5095. 7 LST
  5096. (27055)210 648 A
  5097. 1110(/*)S
  5098. (Call)168 1236 A
  5099. (the)126 1446 A
  5100. (task.)210 1614 A
  5101. 1866(*/)S
  5102. 990 V
  5103. (27056)210 648 A
  5104. ((*dmap[major].dmap_rw)(task,)1176 1110 A
  5105. (&dev_mess);)462 2328 A
  5106. 1080 V
  5107. (27057)210 648 A
  5108. 1170 V
  5109. (27058)210 648 A
  5110. 1110(/*)S
  5111. (Task)168 1236 A
  5112. (has)126 1446 A
  5113. (completed.)420 1614 A
  5114. (See)126 2118 A
  5115. 2286(if)S
  5116. (call)168 2412 A
  5117. (completed.)420 2622 A
  5118. 3084(*/)S
  5119. 1260 V
  5120. (27059)210 648 A
  5121. 1110(if)S
  5122. ((dev_mess.REP_STATUS)840 1236 A
  5123. 2118(==)S
  5124. (SUSPEND))336 2244 A
  5125. 2622({)S
  5126. 1350 V
  5127. (27060)210 648 A
  5128. 1362(if)S
  5129. ((op)126 1488 A
  5130. 1656(==)S
  5131. (DEV_OPEN))378 1782 A
  5132. (task)168 2202 A
  5133. 2412(=)S
  5134. (XPOPEN;)294 2496 A
  5135. 1440 V
  5136. (27061)210 648 A
  5137. (suspend(task);)588 1362 A
  5138. 2370(/*)S
  5139. (suspend)294 2496 A
  5140. (user)168 2832 A
  5141. 3042(*/)S
  5142. 1530 V
  5143. (27062)210 648 A
  5144. 1110(})S
  5145. 1620 V
  5146. (27063)210 648 A
  5147. 1710 V
  5148. (27064)210 648 A
  5149. (return(dev_mess.REP_STATUS);)1176 1110 A
  5150. 1800 V
  5151. (27065)210 648 A
  5152. 1026(})S
  5153. 2070 V
  5154. (27068)210 648 A
  5155. (/*===========================================================================*)3276 1026 A
  5156. 2160 V
  5157. (27069)210 648 A
  5158. 1068(*)S
  5159. (dev_opcl)336 2370 A
  5160. 4260(*)S
  5161. 2250 V
  5162. (27070)210 648 A
  5163. (*===========================================================================*/)3276 1068 A
  5164. 2340 V
  5165. (27071)210 648 A
  5166. (PUBLIC)252 1026 A
  5167. (void)168 1320 A
  5168. (dev_opcl(task_nr,)714 1530 A
  5169. (mess_ptr))378 2286 A
  5170. 2430 V
  5171. (27072)210 648 A
  5172. (int)126 1026 A
  5173. (task_nr;)336 1194 A
  5174. 2370(/*)S
  5175. (which)210 2496 A
  5176. (task)168 2748 A
  5177. 2958(*/)S
  5178. 2520 V
  5179. (27073)210 648 A
  5180. (message)294 1026 A
  5181. (*mess_ptr;)420 1362 A
  5182. 2370(/*)S
  5183. (message)294 2496 A
  5184. (pointer)294 2832 A
  5185. 3168(*/)S
  5186. 2610 V
  5187. (27074)210 648 A
  5188. 1026({)S
  5189. 2700 V
  5190. (27075)210 648 A
  5191. 1026(/*)S
  5192. (Called)252 1152 A
  5193. (from)168 1446 A
  5194. (the)126 1656 A
  5195. (dmap)168 1824 A
  5196. (struct)252 2034 A
  5197. 2328(in)S
  5198. (table.c)294 2454 A
  5199. 2790(on)S
  5200. (opens)210 2916 A
  5201. 3168(&)S
  5202. (closes)252 3252 A
  5203. 3546(of)S
  5204. (special)294 3672 A
  5205. (files.*/)336 4008 A
  5206. 2790 V
  5207. (27076)210 648 A
  5208. 2880 V
  5209. (27077)210 648 A
  5210. (int)126 1110 A
  5211. (op;)126 1278 A
  5212. 2970 V
  5213. (27078)210 648 A
  5214. 3060 V
  5215. (27079)210 648 A
  5216. 1110(op)S
  5217. 1236(=)S
  5218. (mess_ptr->m_type;)714 1320 A
  5219. 2370(/*)S
  5220. (save)168 2496 A
  5221. (DEV_OPEN)336 2706 A
  5222. 3084(or)S
  5223. (DEV_CLOSE)378 3210 A
  5224. (for)126 3630 A
  5225. (later)210 3798 A
  5226. 4050(*/)S
  5227. 3150 V
  5228. (27080)210 648 A
  5229. (mess_ptr->DEVICE)672 1110 A
  5230. 1824(=)S
  5231. ((mess_ptr->DEVICE)714 1908 A
  5232. 2664(>>)S
  5233. (MINOR))252 2790 A
  5234. 3084(&)S
  5235. (BYTE;)210 3168 A
  5236. 3240 V
  5237. (27081)210 648 A
  5238. (mess_ptr->PROC_NR)714 1110 A
  5239. 1866(=)S
  5240. 1950(fp)S
  5241. 2076(-)S
  5242. (fproc;)252 2160 A
  5243. 3330 V
  5244. (27082)210 648 A
  5245. 3420 V
  5246. (27083)210 648 A
  5247. (call_task(task_nr,)756 1110 A
  5248. (mess_ptr);)420 1908 A
  5249. 3510 V
  5250. (27084)210 648 A
  5251. 3600 V
  5252. (27085)210 648 A
  5253. 1110(/*)S
  5254. (Task)168 1236 A
  5255. (has)126 1446 A
  5256. (completed.)420 1614 A
  5257. (See)126 2118 A
  5258. 2286(if)S
  5259. (call)168 2412 A
  5260. (completed.)420 2622 A
  5261. 3084(*/)S
  5262. 3690 V
  5263. (27086)210 648 A
  5264. 1110(if)S
  5265. ((mess_ptr->REP_STATUS)882 1236 A
  5266. 2160(==)S
  5267. (SUSPEND))336 2286 A
  5268. 2664({)S
  5269. 3780 V
  5270. (27087)210 648 A
  5271. 1362(if)S
  5272. ((op)126 1488 A
  5273. 1656(==)S
  5274. (DEV_OPEN))378 1782 A
  5275. (task_nr)294 2202 A
  5276. 2538(=)S
  5277. (XPOPEN;)294 2622 A
  5278. 3870 V
  5279. (27088)210 648 A
  5280. (suspend(task_nr);)714 1362 A
  5281. 2370(/*)S
  5282. (suspend)294 2496 A
  5283. (user)168 2832 A
  5284. 3042(*/)S
  5285. 3960 V
  5286. (27089)210 648 A
  5287. 1110(})S
  5288. 4050 V
  5289. (27090)210 648 A
  5290. 1026(})S
  5291. 4230 V
  5292. (27092)210 648 A
  5293. (/*===========================================================================*)3276 1026 A
  5294. 4320 V
  5295. (27093)210 648 A
  5296. 1068(*)S
  5297. (tty_open)336 2370 A
  5298. 4260(*)S
  5299. 4410 V
  5300. (27094)210 648 A
  5301. (*===========================================================================*/)3276 1068 A
  5302. 4500 V
  5303. (27095)210 648 A
  5304. (PUBLIC)252 1026 A
  5305. (void)168 1320 A
  5306. (tty_open(task_nr,)714 1530 A
  5307. (mess_ptr))378 2286 A
  5308. 4590 V
  5309. (27096)210 648 A
  5310. (int)126 1026 A
  5311. (task_nr;)336 1194 A
  5312. 4680 V
  5313. (27097)210 648 A
  5314. (message)294 1026 A
  5315. (*mess_ptr;)420 1362 A
  5316. 4770 V
  5317. (27098)210 648 A
  5318. 1026({)S
  5319. 4860 V
  5320. (27099)210 648 A
  5321. 1026(/*)S
  5322. (This)168 1152 A
  5323. (procedure)378 1362 A
  5324. 1782(is)S
  5325. (called)252 1908 A
  5326. (from)168 2202 A
  5327. (the)126 2412 A
  5328. (dmap)168 2580 A
  5329. (struct)252 2790 A
  5330. 3084(in)S
  5331. (table.c)294 3210 A
  5332. 3546(on)S
  5333. (tty)126 3672 A
  5334. (opens.)252 3840 A
  5335. 4134(*/)S
  5336. 4950 V
  5337. (27100)210 648 A
  5338. 5040 V
  5339. (27101)210 648 A
  5340. (int)126 1110 A
  5341. 1278(r;)S
  5342. 5130 V
  5343. (27102)210 648 A
  5344. (dev_t)210 1110 A
  5345. (dev;)168 1362 A
  5346. 5220 V
  5347. (27103)210 648 A
  5348. (int)126 1110 A
  5349. (flags,)252 1278 A
  5350. (proc;)210 1572 A
  5351. 5310 V
  5352. (27104)210 648 A
  5353. (register)336 1110 A
  5354. (struct)252 1488 A
  5355. (fproc)210 1782 A
  5356. (*rfp;)210 2034 A
  5357. 5400 V
  5358. (27105)210 648 A
  5359. 5490 V
  5360. (27106)210 648 A
  5361. (dev)126 1110 A
  5362. 1278(=)S
  5363. ((dev_t))294 1362 A
  5364. (mess_ptr->DEVICE;)714 1698 A
  5365. 5580 V
  5366. (27107)210 648 A
  5367. (flags)210 1110 A
  5368. 1362(=)S
  5369. (mess_ptr->COUNT;)672 1446 A
  5370. 5670 V
  5371. (27108)210 648 A
  5372. (proc)168 1110 A
  5373. 1320(=)S
  5374. 1404(fp)S
  5375. 1530(-)S
  5376. (fproc;)252 1614 A
  5377. 5760 V
  5378. (27109)210 648 A
  5379. 5850 V
  5380. (27110)210 648 A
  5381. 1110(/*)S
  5382. (Add)126 1236 A
  5383. (O_NOCTTY)336 1404 A
  5384. 1782(to)S
  5385. (the)126 1908 A
  5386. (flags)210 2076 A
  5387. 2328(if)S
  5388. (this)168 2454 A
  5389. (process)294 2664 A
  5390. 3000(is)S
  5391. (not)126 3126 A
  5392. 3294(a)S
  5393. (session)294 3378 A
  5394. (leader,)294 3714 A
  5395. 4050(or)S
  5396. 5940 V
  5397. (27111)210 648 A
  5398. 1152(*)S
  5399. 1236(if)S
  5400. 1362(it)S
  5401. (already)294 1488 A
  5402. (has)126 1824 A
  5403. 1992(a)S
  5404. (controlling)462 2076 A
  5405. (tty,)168 2580 A
  5406. 2790(or)S
  5407. 2916(if)S
  5408. 3042(it)S
  5409. 3168(is)S
  5410. (someone)294 3294 A
  5411. (elses)210 3630 A
  5412. 6030 V
  5413. (27112)210 648 A
  5414. 1152(*)S
  5415. (controlling)462 1236 A
  5416. (tty.)168 1740 A
  5417. 6120 V
  5418. (27113)210 648 A
  5419. 1152(*/)S
  5420. 6210 V
  5421. (27114)210 648 A
  5422. 1110(if)S
  5423. ((!fp->fp_sesldr)630 1236 A
  5424. 1908(||)S
  5425. (fp->fp_tty)420 2034 A
  5426. 2496(!=)S
  5427. 2622(0))S
  5428. 2748({)S
  5429. 8418 V
  5430. EP
  5431. %%Page: 374 374
  5432. BP
  5433. /slant 0 def
  5434. /height 0 def
  5435. 630 V
  5436. 12 B
  5437. (374)180 648 A
  5438. 11 R
  5439. 2101(File:)S
  5440. 2334(src/fs/device.c)S
  5441. 10 R
  5442. 3402(MINIX)S
  5443. 3730(SOURCE)S
  5444. 4153(CODE)S
  5445. 900 V
  5446. 7 LST
  5447. (27115)210 648 A
  5448. (flags)210 1362 A
  5449. 1614(|=)S
  5450. (O_NOCTTY;)378 1740 A
  5451. 990 V
  5452. (27116)210 648 A
  5453. 1110(})S
  5454. (else)168 1194 A
  5455. 1404({)S
  5456. 1080 V
  5457. (27117)210 648 A
  5458. (for)126 1362 A
  5459. ((rfp)168 1530 A
  5460. 1740(=)S
  5461. (&fproc[LOW_USER];)714 1824 A
  5462. (rfp)126 2580 A
  5463. 2748(<)S
  5464. (&fproc[NR_PROCS];)714 2832 A
  5465. (rfp++))252 3588 A
  5466. 3882({)S
  5467. 1170 V
  5468. (27118)210 648 A
  5469. 1698(if)S
  5470. ((rfp->fp_tty)504 1824 A
  5471. 2370(==)S
  5472. (dev))168 2496 A
  5473. (flags)210 2706 A
  5474. 2958(|=)S
  5475. (O_NOCTTY;)378 3084 A
  5476. 1260 V
  5477. (27119)210 648 A
  5478. 1362(})S
  5479. 1350 V
  5480. (27120)210 648 A
  5481. 1110(})S
  5482. 1440 V
  5483. (27121)210 648 A
  5484. 1530 V
  5485. (27122)210 648 A
  5486. 1110(r)S
  5487. 1194(=)S
  5488. (dev_io(DEV_OPEN,)672 1278 A
  5489. (mode,)210 1992 A
  5490. (dev,)168 2244 A
  5491. ((off_t))294 2454 A
  5492. 2790(0,)S
  5493. (flags,)252 2916 A
  5494. (proc,)210 3210 A
  5495. (NIL_PTR);)378 3462 A
  5496. 1620 V
  5497. (27123)210 648 A
  5498. 1710 V
  5499. (27124)210 648 A
  5500. 1110(if)S
  5501. 1236((r)S
  5502. 1362(==)S
  5503. 1488(1))S
  5504. 1614({)S
  5505. 1800 V
  5506. (27125)210 648 A
  5507. (fp->fp_tty)420 1362 A
  5508. 1824(=)S
  5509. (dev;)168 1908 A
  5510. 1890 V
  5511. (27126)210 648 A
  5512. 1362(r)S
  5513. 1446(=)S
  5514. (OK;)126 1530 A
  5515. 1980 V
  5516. (27127)210 648 A
  5517. 1110(})S
  5518. 2070 V
  5519. (27128)210 648 A
  5520. 2160 V
  5521. (27129)210 648 A
  5522. (mess_ptr->REP_STATUS)840 1110 A
  5523. 1992(=)S
  5524. 2076(r;)S
  5525. 2250 V
  5526. (27130)210 648 A
  5527. 1026(})S
  5528. 2520 V
  5529. (27133)210 648 A
  5530. (/*===========================================================================*)3276 1026 A
  5531. 2610 V
  5532. (27134)210 648 A
  5533. 1068(*)S
  5534. (ctty_open)378 2370 A
  5535. 4260(*)S
  5536. 2700 V
  5537. (27135)210 648 A
  5538. (*===========================================================================*/)3276 1068 A
  5539. 2790 V
  5540. (27136)210 648 A
  5541. (PUBLIC)252 1026 A
  5542. (void)168 1320 A
  5543. (ctty_open(task_nr,)756 1530 A
  5544. (mess_ptr))378 2328 A
  5545. 2880 V
  5546. (27137)210 648 A
  5547. (int)126 1026 A
  5548. (task_nr;)336 1194 A
  5549. 2970 V
  5550. (27138)210 648 A
  5551. (message)294 1026 A
  5552. (*mess_ptr;)420 1362 A
  5553. 3060 V
  5554. (27139)210 648 A
  5555. 1026({)S
  5556. 3150 V
  5557. (27140)210 648 A
  5558. 1026(/*)S
  5559. (This)168 1152 A
  5560. (procedure)378 1362 A
  5561. 1782(is)S
  5562. (called)252 1908 A
  5563. (from)168 2202 A
  5564. (the)126 2412 A
  5565. (dmap)168 2580 A
  5566. (struct)252 2790 A
  5567. 3084(in)S
  5568. (table.c)294 3210 A
  5569. 3546(on)S
  5570. (opening)294 3672 A
  5571. 3240 V
  5572. (27141)210 648 A
  5573. 1068(*)S
  5574. (/dev/tty,)378 1152 A
  5575. (the)126 1572 A
  5576. (magic)210 1740 A
  5577. (device)252 1992 A
  5578. (that)168 2286 A
  5579. (translates)420 2496 A
  5580. 2958(to)S
  5581. (the)126 3084 A
  5582. (controlling)462 3252 A
  5583. (tty.)168 3756 A
  5584. 3330 V
  5585. (27142)210 648 A
  5586. 1068(*/)S
  5587. 3420 V
  5588. (27143)210 648 A
  5589. 3510 V
  5590. (27144)210 648 A
  5591. (mess_ptr->REP_STATUS)840 1110 A
  5592. 1992(=)S
  5593. (fp->fp_tty)420 2076 A
  5594. 2538(==)S
  5595. 2664(0)S
  5596. 2748(?)S
  5597. (ENXIO)210 2832 A
  5598. 3084(:)S
  5599. (OK;)126 3168 A
  5600. 3600 V
  5601. (27145)210 648 A
  5602. 1026(})S
  5603. 3870 V
  5604. (27148)210 648 A
  5605. (/*===========================================================================*)3276 1026 A
  5606. 3960 V
  5607. (27149)210 648 A
  5608. 1068(*)S
  5609. (ctty_close)420 2370 A
  5610. 4260(*)S
  5611. 4050 V
  5612. (27150)210 648 A
  5613. (*===========================================================================*/)3276 1068 A
  5614. 4140 V
  5615. (27151)210 648 A
  5616. (PUBLIC)252 1026 A
  5617. (void)168 1320 A
  5618. (ctty_close(task_nr,)798 1530 A
  5619. (mess_ptr))378 2370 A
  5620. 4230 V
  5621. (27152)210 648 A
  5622. (int)126 1026 A
  5623. (task_nr;)336 1194 A
  5624. 4320 V
  5625. (27153)210 648 A
  5626. (message)294 1026 A
  5627. (*mess_ptr;)420 1362 A
  5628. 4410 V
  5629. (27154)210 648 A
  5630. 1026({)S
  5631. 4500 V
  5632. (27155)210 648 A
  5633. 1026(/*)S
  5634. (Close)210 1152 A
  5635. (/dev/tty.)378 1404 A
  5636. 1824(*/)S
  5637. 4590 V
  5638. (27156)210 648 A
  5639. 4680 V
  5640. (27157)210 648 A
  5641. (mess_ptr->REP_STATUS)840 1110 A
  5642. 1992(=)S
  5643. (OK;)126 2076 A
  5644. 4770 V
  5645. (27158)210 648 A
  5646. 1026(})S
  5647. 5040 V
  5648. (27161)210 648 A
  5649. (/*===========================================================================*)3276 1026 A
  5650. 5130 V
  5651. (27162)210 648 A
  5652. 1068(*)S
  5653. (do_setsid)378 2370 A
  5654. 4260(*)S
  5655. 5220 V
  5656. (27163)210 648 A
  5657. (*===========================================================================*/)3276 1068 A
  5658. 5310 V
  5659. (27164)210 648 A
  5660. (PUBLIC)252 1026 A
  5661. (int)126 1320 A
  5662. (do_setsid())462 1488 A
  5663. 5400 V
  5664. (27165)210 648 A
  5665. 1026({)S
  5666. 5490 V
  5667. (27166)210 648 A
  5668. 1026(/*)S
  5669. (Perform)294 1152 A
  5670. (the)126 1488 A
  5671. 1656(FS)S
  5672. (side)168 1782 A
  5673. 1992(of)S
  5674. (the)126 2118 A
  5675. (SETSID)252 2286 A
  5676. (call,)210 2580 A
  5677. (i.e.)168 2832 A
  5678. (get)126 3042 A
  5679. (rid)126 3210 A
  5680. 3378(of)S
  5681. (the)126 3504 A
  5682. (controlling)462 3672 A
  5683. 5580 V
  5684. (27167)210 648 A
  5685. 1068(*)S
  5686. (terminal)336 1152 A
  5687. 1530(of)S
  5688. 1656(a)S
  5689. (process,)336 1740 A
  5690. (and)126 2118 A
  5691. (make)168 2286 A
  5692. (the)126 2496 A
  5693. (process)294 2664 A
  5694. 3000(a)S
  5695. (session)294 3084 A
  5696. (leader.)294 3420 A
  5697. 5670 V
  5698. (27168)210 648 A
  5699. 1068(*/)S
  5700. 5760 V
  5701. (27169)210 648 A
  5702. (register)336 1110 A
  5703. (struct)252 1488 A
  5704. (fproc)210 1782 A
  5705. (*rfp;)210 2034 A
  5706. 5850 V
  5707. (27170)210 648 A
  5708. 5940 V
  5709. (27171)210 648 A
  5710. 1110(/*)S
  5711. (Only)168 1236 A
  5712. 1446(MM)S
  5713. (may)126 1572 A
  5714. 1740(do)S
  5715. (the)126 1866 A
  5716. (SETSID)252 2034 A
  5717. (call)168 2328 A
  5718. (directly.)378 2538 A
  5719. 2958(*/)S
  5720. 6030 V
  5721. (27172)210 648 A
  5722. 1110(if)S
  5723. ((who)168 1236 A
  5724. 1446(!=)S
  5725. (MM_PROC_NR))462 1572 A
  5726. (return(ENOSYS);)630 2076 A
  5727. 6120 V
  5728. (27173)210 648 A
  5729. 6210 V
  5730. (27174)210 648 A
  5731. 1110(/*)S
  5732. (Make)168 1236 A
  5733. (the)126 1446 A
  5734. (process)294 1614 A
  5735. 1950(a)S
  5736. (session)294 2034 A
  5737. (leader)252 2370 A
  5738. (with)168 2664 A
  5739. 2874(no)S
  5740. (controlling)462 3000 A
  5741. (tty.)168 3504 A
  5742. 3714(*/)S
  5743. 8418 V
  5744. EP
  5745. %%Page: 375 375
  5746. BP
  5747. /slant 0 def
  5748. /height 0 def
  5749. 630 V
  5750. 10 R
  5751. 648(MINIX)S
  5752. 976(SOURCE)S
  5753. 1399(CODE)S
  5754. 11 R
  5755. 2101(File:)S
  5756. 2334(src/fs/device.c)S
  5757. 12 B
  5758. (375)180 4248 A
  5759. 900 V
  5760. 7 LST
  5761. (27175)210 648 A
  5762. (rfp)126 1110 A
  5763. 1278(=)S
  5764. (&fproc[slot1];)588 1362 A
  5765. 990 V
  5766. (27176)210 648 A
  5767. (rfp->fp_sesldr)588 1110 A
  5768. 1740(=)S
  5769. (TRUE;)210 1824 A
  5770. 1080 V
  5771. (27177)210 648 A
  5772. (rfp->fp_tty)462 1110 A
  5773. 1614(=)S
  5774. 1698(0;)S
  5775. 1170 V
  5776. (27178)210 648 A
  5777. 1026(})S
  5778. 1440 V
  5779. (27181)210 648 A
  5780. (/*===========================================================================*)3276 1026 A
  5781. 1530 V
  5782. (27182)210 648 A
  5783. 1068(*)S
  5784. (do_ioctl)336 2370 A
  5785. 4260(*)S
  5786. 1620 V
  5787. (27183)210 648 A
  5788. (*===========================================================================*/)3276 1068 A
  5789. 1710 V
  5790. (27184)210 648 A
  5791. (PUBLIC)252 1026 A
  5792. (int)126 1320 A
  5793. (do_ioctl())420 1488 A
  5794. 1800 V
  5795. (27185)210 648 A
  5796. 1026({)S
  5797. 1890 V
  5798. (27186)210 648 A
  5799. 1026(/*)S
  5800. (Perform)294 1152 A
  5801. (the)126 1488 A
  5802. (ioctl(ls_fd,)504 1656 A
  5803. (request,)336 2202 A
  5804. (argx))210 2580 A
  5805. (system)252 2832 A
  5806. (call)168 3126 A
  5807. ((uses)210 3336 A
  5808. 3588(m2)S
  5809. (fmt).)210 3714 A
  5810. 3966(*/)S
  5811. 1980 V
  5812. (27187)210 648 A
  5813. 2070 V
  5814. (27188)210 648 A
  5815. (struct)252 1110 A
  5816. (filp)168 1404 A
  5817. (*f;)126 1614 A
  5818. 2160 V
  5819. (27189)210 648 A
  5820. (register)336 1110 A
  5821. (struct)252 1488 A
  5822. (inode)210 1782 A
  5823. (*rip;)210 2034 A
  5824. 2250 V
  5825. (27190)210 648 A
  5826. (dev_t)210 1110 A
  5827. (dev;)168 1362 A
  5828. 2340 V
  5829. (27191)210 648 A
  5830. 2430 V
  5831. (27192)210 648 A
  5832. 1110(if)S
  5833. 1236(()S
  5834. 1320((f)S
  5835. 1446(=)S
  5836. (get_filp(ls_fd)))672 1530 A
  5837. 2244(==)S
  5838. (NIL_FILP))378 2370 A
  5839. (return(err_code);)714 2790 A
  5840. 2520 V
  5841. (27193)210 648 A
  5842. (rip)126 1110 A
  5843. 1278(=)S
  5844. (f->filp_ino;)504 1362 A
  5845. 2370(/*)S
  5846. (get)126 2496 A
  5847. (inode)210 2664 A
  5848. (pointer)294 2916 A
  5849. 3252(*/)S
  5850. 2610 V
  5851. (27194)210 648 A
  5852. 1110(if)S
  5853. 1236(()S
  5854. ((rip->i_mode)504 1320 A
  5855. 1866(&)S
  5856. (I_TYPE))294 1950 A
  5857. 2286(!=)S
  5858. (I_CHAR_SPECIAL)588 2412 A
  5859. 2700 V
  5860. (27195)210 648 A
  5861. 1362(&&)S
  5862. ((rip->i_mode)504 1488 A
  5863. 2034(&)S
  5864. (I_TYPE))294 2118 A
  5865. 2454(!=)S
  5866. (I_BLOCK_SPECIAL))672 2580 A
  5867. (return(ENOTTY);)630 3294 A
  5868. 2790 V
  5869. (27196)210 648 A
  5870. (dev)126 1110 A
  5871. 1278(=)S
  5872. ((dev_t))294 1362 A
  5873. (rip->i_zone[0];)630 1698 A
  5874. 2880 V
  5875. (27197)210 648 A
  5876. (find_dev(dev);)588 1110 A
  5877. 2970 V
  5878. (27198)210 648 A
  5879. 3060 V
  5880. (27199)210 648 A
  5881. (dev_mess=)378 1110 A
  5882. 1530(m;)S
  5883. 3150 V
  5884. (27200)210 648 A
  5885. 3240 V
  5886. (27201)210 648 A
  5887. (dev_mess.m_type)630 1110 A
  5888. 1824(=)S
  5889. (DEV_IOCTL;)420 1908 A
  5890. 3330 V
  5891. (27202)210 648 A
  5892. (dev_mess.PROC_NR)672 1110 A
  5893. 1824(=)S
  5894. (who;)168 1908 A
  5895. 3420 V
  5896. (27203)210 648 A
  5897. (dev_mess.TTY_LINE)714 1110 A
  5898. 1866(=)S
  5899. (minor;)252 1950 A
  5900. 3510 V
  5901. (27204)210 648 A
  5902. 3600 V
  5903. (27205)210 648 A
  5904. 1110(/*)S
  5905. (Call)168 1236 A
  5906. (the)126 1446 A
  5907. (task.)210 1614 A
  5908. 1866(*/)S
  5909. 3690 V
  5910. (27206)210 648 A
  5911. ((*dmap[major].dmap_rw)(task,)1176 1110 A
  5912. (&dev_mess);)462 2328 A
  5913. 3780 V
  5914. (27207)210 648 A
  5915. 3870 V
  5916. (27208)210 648 A
  5917. 1110(/*)S
  5918. (Task)168 1236 A
  5919. (has)126 1446 A
  5920. (completed.)420 1614 A
  5921. (See)126 2118 A
  5922. 2286(if)S
  5923. (call)168 2412 A
  5924. (completed.)420 2622 A
  5925. 3084(*/)S
  5926. 3960 V
  5927. (27209)210 648 A
  5928. 1110(if)S
  5929. ((dev_mess.REP_STATUS)840 1236 A
  5930. 2118(==)S
  5931. (SUSPEND))336 2244 A
  5932. 2622({)S
  5933. 4050 V
  5934. (27210)210 648 A
  5935. 1362(if)S
  5936. ((f->filp_flags)588 1488 A
  5937. 2118(&)S
  5938. (O_NONBLOCK))462 2202 A
  5939. 2706({)S
  5940. 4140 V
  5941. (27211)210 648 A
  5942. 1698(/*)S
  5943. (Not)126 1824 A
  5944. (supposed)336 1992 A
  5945. 2370(to)S
  5946. (block.)252 2496 A
  5947. 2790(*/)S
  5948. 4230 V
  5949. (27212)210 648 A
  5950. (dev_mess.m_type)630 1698 A
  5951. 2370(=)S
  5952. (CANCEL;)294 2454 A
  5953. 4320 V
  5954. (27213)210 648 A
  5955. (dev_mess.PROC_NR)672 1698 A
  5956. 2412(=)S
  5957. (who;)168 2496 A
  5958. 4410 V
  5959. (27214)210 648 A
  5960. (dev_mess.TTY_LINE)714 1698 A
  5961. 2454(=)S
  5962. (minor;)252 2538 A
  5963. 4500 V
  5964. (27215)210 648 A
  5965. ((*dmap[major].dmap_rw)(task,)1176 1698 A
  5966. (&dev_mess);)462 2916 A
  5967. 4590 V
  5968. (27216)210 648 A
  5969. 1698(if)S
  5970. ((dev_mess.REP_STATUS)840 1824 A
  5971. 2706(==)S
  5972. (EINTR))252 2832 A
  5973. (dev_mess.REP_STATUS)798 3126 A
  5974. 3966(=)S
  5975. (EAGAIN;)294 4050 A
  5976. 4680 V
  5977. (27217)210 648 A
  5978. 1362(})S
  5979. (else)168 1446 A
  5980. 1656({)S
  5981. 4770 V
  5982. (27218)210 648 A
  5983. (suspend(task);)588 1698 A
  5984. 2706(/*)S
  5985. (User)168 2832 A
  5986. (must)168 3042 A
  5987. 3252(be)S
  5988. (suspended.)420 3378 A
  5989. 3840(*/)S
  5990. 4860 V
  5991. (27219)210 648 A
  5992. 1362(})S
  5993. 4950 V
  5994. (27220)210 648 A
  5995. 1110(})S
  5996. 5040 V
  5997. (27221)210 648 A
  5998. (return(dev_mess.REP_STATUS);)1176 1110 A
  5999. 5130 V
  6000. (27222)210 648 A
  6001. 1026(})S
  6002. 5400 V
  6003. (27225)210 648 A
  6004. (/*===========================================================================*)3276 1026 A
  6005. 5490 V
  6006. (27226)210 648 A
  6007. 1068(*)S
  6008. (find_dev)336 2370 A
  6009. 4260(*)S
  6010. 5580 V
  6011. (27227)210 648 A
  6012. (*===========================================================================*/)3276 1068 A
  6013. 5670 V
  6014. (27228)210 648 A
  6015. (PRIVATE)294 1026 A
  6016. (void)168 1362 A
  6017. (find_dev(dev))546 1572 A
  6018. 5760 V
  6019. (27229)210 648 A
  6020. (dev_t)210 1026 A
  6021. (dev;)168 1278 A
  6022. 2370(/*)S
  6023. (device)252 2496 A
  6024. 2790(*/)S
  6025. 5850 V
  6026. (27230)210 648 A
  6027. 1026({)S
  6028. 5940 V
  6029. (27231)210 648 A
  6030. 1026(/*)S
  6031. (Extract)294 1152 A
  6032. (the)126 1488 A
  6033. (major)210 1656 A
  6034. (and)126 1908 A
  6035. (minor)210 2076 A
  6036. (device)252 2328 A
  6037. (number)252 2622 A
  6038. (from)168 2916 A
  6039. (the)126 3126 A
  6040. (parameter.)420 3294 A
  6041. 3756(*/)S
  6042. 6030 V
  6043. (27232)210 648 A
  6044. 6120 V
  6045. (27233)210 648 A
  6046. (major)210 1110 A
  6047. 1362(=)S
  6048. ((dev)168 1446 A
  6049. 1656(>>)S
  6050. (MAJOR))252 1782 A
  6051. 2076(&)S
  6052. (BYTE;)210 2160 A
  6053. 2706(/*)S
  6054. (major)210 2832 A
  6055. (device)252 3084 A
  6056. (number)252 3378 A
  6057. 3672(*/)S
  6058. 6210 V
  6059. (27234)210 648 A
  6060. (minor)210 1110 A
  6061. 1362(=)S
  6062. ((dev)168 1446 A
  6063. 1656(>>)S
  6064. (MINOR))252 1782 A
  6065. 2076(&)S
  6066. (BYTE;)210 2160 A
  6067. 2706(/*)S
  6068. (minor)210 2832 A
  6069. (device)252 3084 A
  6070. (number)252 3378 A
  6071. 3672(*/)S
  6072. 8418 V
  6073. EP
  6074. %%Page: 376 376
  6075. BP
  6076. /slant 0 def
  6077. /height 0 def
  6078. 630 V
  6079. 12 B
  6080. (376)180 648 A
  6081. 11 R
  6082. 2101(File:)S
  6083. 2334(src/fs/device.c)S
  6084. 10 R
  6085. 3402(MINIX)S
  6086. 3730(SOURCE)S
  6087. 4153(CODE)S
  6088. 900 V
  6089. 7 LST
  6090. (27235)210 648 A
  6091. 1110(if)S
  6092. ((major)252 1236 A
  6093. 1530(>=)S
  6094. (max_major))420 1656 A
  6095. 2118({)S
  6096. 990 V
  6097. (27236)210 648 A
  6098. (major)210 1362 A
  6099. 1614(=)S
  6100. (minor)210 1698 A
  6101. 1950(=)S
  6102. 2034(0;)S
  6103. 2706(/*)S
  6104. (will)168 2832 A
  6105. (fail)168 3042 A
  6106. (with)168 3252 A
  6107. (ENODEV)252 3462 A
  6108. 3756(*/)S
  6109. 1080 V
  6110. (27237)210 648 A
  6111. 1110(})S
  6112. 1170 V
  6113. (27238)210 648 A
  6114. (task)168 1110 A
  6115. 1320(=)S
  6116. (dmap[major].dmap_task;)924 1404 A
  6117. 2370(/*)S
  6118. (which)210 2496 A
  6119. (task)168 2748 A
  6120. (services)336 2958 A
  6121. (the)126 3336 A
  6122. (device)252 3504 A
  6123. 3798(*/)S
  6124. 1260 V
  6125. (27239)210 648 A
  6126. 1026(})S
  6127. 1530 V
  6128. (27242)210 648 A
  6129. (/*===========================================================================*)3276 1026 A
  6130. 1620 V
  6131. (27243)210 648 A
  6132. 1068(*)S
  6133. (call_task)378 2370 A
  6134. 4260(*)S
  6135. 1710 V
  6136. (27244)210 648 A
  6137. (*===========================================================================*/)3276 1068 A
  6138. 1800 V
  6139. (27245)210 648 A
  6140. (PUBLIC)252 1026 A
  6141. (void)168 1320 A
  6142. (call_task(task_nr,)756 1530 A
  6143. (mess_ptr))378 2328 A
  6144. 1890 V
  6145. (27246)210 648 A
  6146. (int)126 1026 A
  6147. (task_nr;)336 1194 A
  6148. 2370(/*)S
  6149. (which)210 2496 A
  6150. (task)168 2748 A
  6151. 2958(to)S
  6152. (call)168 3084 A
  6153. 3294(*/)S
  6154. 1980 V
  6155. (27247)210 648 A
  6156. (message)294 1026 A
  6157. (*mess_ptr;)420 1362 A
  6158. 2370(/*)S
  6159. (pointer)294 2496 A
  6160. 2832(to)S
  6161. (message)294 2958 A
  6162. (for)126 3294 A
  6163. (task)168 3462 A
  6164. 3672(*/)S
  6165. 2070 V
  6166. (27248)210 648 A
  6167. 1026({)S
  6168. 2160 V
  6169. (27249)210 648 A
  6170. 1026(/*)S
  6171. (All)126 1152 A
  6172. (file)168 1320 A
  6173. (system)252 1530 A
  6174. (I/O)126 1824 A
  6175. (ultimately)420 1992 A
  6176. (comes)210 2454 A
  6177. (down)168 2706 A
  6178. 2916(to)S
  6179. (I/O)126 3042 A
  6180. 3210(on)S
  6181. (major/minor)462 3336 A
  6182. (device)252 3840 A
  6183. 2250 V
  6184. (27250)210 648 A
  6185. 1068(*)S
  6186. (pairs.)252 1152 A
  6187. (These)210 1488 A
  6188. (lead)168 1740 A
  6189. 1950(to)S
  6190. (calls)210 2076 A
  6191. 2328(on)S
  6192. (the)126 2454 A
  6193. (following)378 2622 A
  6194. (routines)336 3042 A
  6195. (via)126 3420 A
  6196. (the)126 3588 A
  6197. (dmap)168 3756 A
  6198. (table.)252 3966 A
  6199. 2340 V
  6200. (27251)210 648 A
  6201. 1068(*/)S
  6202. 2430 V
  6203. (27252)210 648 A
  6204. 2520 V
  6205. (27253)210 648 A
  6206. (int)126 1110 A
  6207. 1278(r,)S
  6208. (proc_nr;)336 1404 A
  6209. 2610 V
  6210. (27254)210 648 A
  6211. (message)294 1110 A
  6212. (local_m;)336 1446 A
  6213. 2700 V
  6214. (27255)210 648 A
  6215. 2790 V
  6216. (27256)210 648 A
  6217. (proc_nr)294 1110 A
  6218. 1446(=)S
  6219. (mess_ptr->PROC_NR;)756 1530 A
  6220. 2880 V
  6221. (27257)210 648 A
  6222. 2970 V
  6223. (27258)210 648 A
  6224. (while)210 1110 A
  6225. (((r)126 1362 A
  6226. 1530(=)S
  6227. (sendrec(task_nr,)672 1614 A
  6228. (mess_ptr)))420 2328 A
  6229. 2790(==)S
  6230. (ELOCKED))336 2916 A
  6231. 3294({)S
  6232. 3060 V
  6233. (27259)210 648 A
  6234. 1362(/*)S
  6235. (sendrec())378 1488 A
  6236. (failed)252 1908 A
  6237. 2202(to)S
  6238. (avoid)210 2328 A
  6239. (deadlock.)378 2580 A
  6240. (The)126 3000 A
  6241. (task)168 3168 A
  6242. ('task_nr')378 3378 A
  6243. 3798(is)S
  6244. 3150 V
  6245. (27260)210 648 A
  6246. 1404(*)S
  6247. (trying)252 1488 A
  6248. 1782(to)S
  6249. (send)168 1908 A
  6250. 2118(a)S
  6251. (REVIVE)252 2202 A
  6252. (message)294 2496 A
  6253. (for)126 2832 A
  6254. 3000(an)S
  6255. (earlier)294 3126 A
  6256. (request.)336 3462 A
  6257. 3240 V
  6258. (27261)210 648 A
  6259. 1404(*)S
  6260. (Handle)252 1488 A
  6261. 1782(it)S
  6262. (and)126 1908 A
  6263. 2076(go)S
  6264. (try)126 2202 A
  6265. (again.)252 2370 A
  6266. 3330 V
  6267. (27262)210 648 A
  6268. 1404(*/)S
  6269. 3420 V
  6270. (27263)210 648 A
  6271. 1362(if)S
  6272. (((r)126 1488 A
  6273. 1656(=)S
  6274. (receive(task_nr,)672 1740 A
  6275. (&local_m)))420 2454 A
  6276. 2916(!=)S
  6277. (OK))126 3042 A
  6278. (break;)252 3210 A
  6279. 3510 V
  6280. (27264)210 648 A
  6281. 3600 V
  6282. (27265)210 648 A
  6283. 1362(/*)S
  6284. 1488(If)S
  6285. (we're)210 1614 A
  6286. (trying)252 1866 A
  6287. 2160(to)S
  6288. (send)168 2286 A
  6289. 2496(a)S
  6290. (cancel)252 2580 A
  6291. (message)294 2874 A
  6292. 3210(to)S
  6293. 3336(a)S
  6294. (task)168 3420 A
  6295. (which)210 3630 A
  6296. (has)126 3882 A
  6297. (just)168 4050 A
  6298. 3690 V
  6299. (27266)210 648 A
  6300. 1404(*)S
  6301. (sent)168 1488 A
  6302. 1698(a)S
  6303. (completion)420 1782 A
  6304. (reply,)252 2244 A
  6305. (ignore)252 2538 A
  6306. (the)126 2832 A
  6307. (reply)210 3000 A
  6308. (and)126 3252 A
  6309. (abort)210 3420 A
  6310. (the)126 3672 A
  6311. (cancel)252 3840 A
  6312. 3780 V
  6313. (27267)210 648 A
  6314. 1404(*)S
  6315. (request.)336 1488 A
  6316. (The)126 1866 A
  6317. (caller)252 2034 A
  6318. (will)168 2328 A
  6319. 2538(do)S
  6320. (the)126 2664 A
  6321. (revive)252 2832 A
  6322. (for)126 3126 A
  6323. (the)126 3294 A
  6324. (process.)336 3462 A
  6325. 3870 V
  6326. (27268)210 648 A
  6327. 1404(*/)S
  6328. 3960 V
  6329. (27269)210 648 A
  6330. 1362(if)S
  6331. ((mess_ptr->m_type)714 1488 A
  6332. 2244(==)S
  6333. (CANCEL)252 2370 A
  6334. 2664(&&)S
  6335. (local_m.REP_PROC_NR)798 2790 A
  6336. 3630(==)S
  6337. (proc_nr))336 3756 A
  6338. 4050 V
  6339. (27270)210 648 A
  6340. (return;)294 1698 A
  6341. 4140 V
  6342. (27271)210 648 A
  6343. 4230 V
  6344. (27272)210 648 A
  6345. 1362(/*)S
  6346. (Otherwise)378 1488 A
  6347. 1908(it)S
  6348. (should)252 2034 A
  6349. 2328(be)S
  6350. 2454(a)S
  6351. (REVIVE.)294 2538 A
  6352. 2874(*/)S
  6353. 4320 V
  6354. (27273)210 648 A
  6355. 1362(if)S
  6356. ((local_m.m_type)630 1488 A
  6357. 2160(!=)S
  6358. (REVIVE))294 2286 A
  6359. 2622({)S
  6360. 4410 V
  6361. (27274)210 648 A
  6362. (printf()294 1698 A
  6363. 4500 V
  6364. (27275)210 648 A
  6365. ("fs:)168 1698 A
  6366. (strange)294 1908 A
  6367. (device)252 2244 A
  6368. (reply)210 2538 A
  6369. (from)168 2790 A
  6370. (%d,)126 3000 A
  6371. (type)168 3168 A
  6372. 3378(=)S
  6373. (%d,)126 3462 A
  6374. (proc)168 3630 A
  6375. 3840(=)S
  6376. (%d\n",)252 3924 A
  6377. 4590 V
  6378. (27276)210 648 A
  6379. (local_m.m_source,)714 2034 A
  6380. 4680 V
  6381. (27277)210 648 A
  6382. (local_m.m_type,)630 2034 A
  6383. (local_m.REP_PROC_NR);)882 2706 A
  6384. 4770 V
  6385. (27278)210 648 A
  6386. (continue;)378 1698 A
  6387. 4860 V
  6388. (27279)210 648 A
  6389. 1362(})S
  6390. 4950 V
  6391. (27280)210 648 A
  6392. 5040 V
  6393. (27281)210 648 A
  6394. (revive(local_m.REP_PROC_NR,)1134 1362 A
  6395. (local_m.REP_STATUS);)840 2538 A
  6396. 5130 V
  6397. (27282)210 648 A
  6398. 1110(})S
  6399. 5220 V
  6400. (27283)210 648 A
  6401. 5310 V
  6402. (27284)210 648 A
  6403. 1110(/*)S
  6404. (The)126 1236 A
  6405. (message)294 1404 A
  6406. (received)336 1740 A
  6407. (may)126 2118 A
  6408. 2286(be)S
  6409. 2412(a)S
  6410. (reply)210 2496 A
  6411. 2748(to)S
  6412. (this)168 2874 A
  6413. (call,)210 3084 A
  6414. 3336(or)S
  6415. 3462(a)S
  6416. (REVIVE)252 3546 A
  6417. (for)126 3840 A
  6418. (some)168 4008 A
  6419. 5400 V
  6420. (27285)210 648 A
  6421. 1152(*)S
  6422. (other)210 1236 A
  6423. (process.)336 1488 A
  6424. 5490 V
  6425. (27286)210 648 A
  6426. 1152(*/)S
  6427. 5580 V
  6428. (27287)210 648 A
  6429. (for)126 1110 A
  6430. ((;;))168 1278 A
  6431. 1488({)S
  6432. 5670 V
  6433. (27288)210 648 A
  6434. 1362(if)S
  6435. 1488((r)S
  6436. 1614(!=)S
  6437. (OK))126 1740 A
  6438. (panic("call_task:)714 1908 A
  6439. (can't)210 2664 A
  6440. (send/receive",)588 2916 A
  6441. (NO_NUM);)336 3546 A
  6442. 5760 V
  6443. (27289)210 648 A
  6444. 5850 V
  6445. (27290)210 648 A
  6446. 1362(/*)S
  6447. (Did)126 1488 A
  6448. (the)126 1656 A
  6449. (process)294 1824 A
  6450. 2160(we)S
  6451. (did)126 2286 A
  6452. (the)126 2454 A
  6453. (sendrec())378 2622 A
  6454. (for)126 3042 A
  6455. (get)126 3210 A
  6456. 3378(a)S
  6457. (result?)294 3462 A
  6458. 3798(*/)S
  6459. 5940 V
  6460. (27291)210 648 A
  6461. 1362(if)S
  6462. ((mess_ptr->REP_PROC_NR)924 1488 A
  6463. 2454(==)S
  6464. (proc_nr))336 2580 A
  6465. (break;)252 2958 A
  6466. 6030 V
  6467. (27292)210 648 A
  6468. 6120 V
  6469. (27293)210 648 A
  6470. 1362(/*)S
  6471. (Otherwise)378 1488 A
  6472. 1908(it)S
  6473. (should)252 2034 A
  6474. 2328(be)S
  6475. 2454(a)S
  6476. (REVIVE.)294 2538 A
  6477. 2874(*/)S
  6478. 6210 V
  6479. (27294)210 648 A
  6480. 1362(if)S
  6481. ((mess_ptr->m_type)714 1488 A
  6482. 2244(!=)S
  6483. (REVIVE))294 2370 A
  6484. 2706({)S
  6485. 8418 V
  6486. EP
  6487. %%Page: 377 377
  6488. BP
  6489. /slant 0 def
  6490. /height 0 def
  6491. 630 V
  6492. 10 R
  6493. 648(MINIX)S
  6494. 976(SOURCE)S
  6495. 1399(CODE)S
  6496. 11 R
  6497. 2101(File:)S
  6498. 2334(src/fs/device.c)S
  6499. 12 B
  6500. (377)180 4248 A
  6501. 900 V
  6502. 7 LST
  6503. (27295)210 648 A
  6504. (printf()294 1698 A
  6505. 990 V
  6506. (27296)210 648 A
  6507. ("fs:)168 1698 A
  6508. (strange)294 1908 A
  6509. (device)252 2244 A
  6510. (reply)210 2538 A
  6511. (from)168 2790 A
  6512. (%d,)126 3000 A
  6513. (type)168 3168 A
  6514. 3378(=)S
  6515. (%d,)126 3462 A
  6516. (proc)168 3630 A
  6517. 3840(=)S
  6518. (%d\n",)252 3924 A
  6519. 1080 V
  6520. (27297)210 648 A
  6521. (mess_ptr->m_source,)798 2034 A
  6522. 1170 V
  6523. (27298)210 648 A
  6524. (mess_ptr->m_type,)714 2034 A
  6525. (mess_ptr->REP_PROC_NR);)966 2790 A
  6526. 1260 V
  6527. (27299)210 648 A
  6528. (continue;)378 1698 A
  6529. 1350 V
  6530. (27300)210 648 A
  6531. 1362(})S
  6532. 1440 V
  6533. (27301)210 648 A
  6534. (revive(mess_ptr->REP_PROC_NR,)1218 1362 A
  6535. (mess_ptr->REP_STATUS);)924 2622 A
  6536. 1530 V
  6537. (27302)210 648 A
  6538. 1620 V
  6539. (27303)210 648 A
  6540. 1362(r)S
  6541. 1446(=)S
  6542. (receive(task_nr,)672 1530 A
  6543. (mess_ptr);)420 2244 A
  6544. 1710 V
  6545. (27304)210 648 A
  6546. 1110(})S
  6547. 1800 V
  6548. (27305)210 648 A
  6549. 1026(})S
  6550. 2070 V
  6551. (27308)210 648 A
  6552. (/*===========================================================================*)3276 1026 A
  6553. 2160 V
  6554. (27309)210 648 A
  6555. 1068(*)S
  6556. (call_ctty)378 2370 A
  6557. 4596(*)S
  6558. 2250 V
  6559. (27310)210 648 A
  6560. (*===========================================================================*/)3276 1068 A
  6561. 2340 V
  6562. (27311)210 648 A
  6563. (PUBLIC)252 1026 A
  6564. (void)168 1320 A
  6565. (call_ctty(task_nr,)756 1530 A
  6566. (mess_ptr))378 2328 A
  6567. 2430 V
  6568. (27312)210 648 A
  6569. (int)126 1026 A
  6570. (task_nr;)336 1194 A
  6571. 2370(/*)S
  6572. (not)126 2496 A
  6573. (used)168 2664 A
  6574. 2874(-)S
  6575. (for)126 2958 A
  6576. (compatibility)546 3126 A
  6577. (with)168 3714 A
  6578. (dmap_t)252 3924 A
  6579. 4218(*/)S
  6580. 2520 V
  6581. (27313)210 648 A
  6582. (message)294 1026 A
  6583. (*mess_ptr;)420 1362 A
  6584. 2370(/*)S
  6585. (pointer)294 2496 A
  6586. 2832(to)S
  6587. (message)294 2958 A
  6588. (for)126 3294 A
  6589. (task)168 3462 A
  6590. 3672(*/)S
  6591. 2610 V
  6592. (27314)210 648 A
  6593. 1026({)S
  6594. 2700 V
  6595. (27315)210 648 A
  6596. 1026(/*)S
  6597. (This)168 1152 A
  6598. (routine)294 1362 A
  6599. 1698(is)S
  6600. (only)168 1824 A
  6601. (called)252 2034 A
  6602. (for)126 2328 A
  6603. (one)126 2496 A
  6604. (device,)294 2664 A
  6605. (namely)252 3000 A
  6606. (/dev/tty.)378 3294 A
  6607. (Its)126 3756 A
  6608. (job)126 3924 A
  6609. 2790 V
  6610. (27316)210 648 A
  6611. 1068(*)S
  6612. 1152(is)S
  6613. 1278(to)S
  6614. (change)252 1404 A
  6615. (the)126 1698 A
  6616. (message)294 1866 A
  6617. 2202(to)S
  6618. (use)126 2328 A
  6619. (the)126 2496 A
  6620. (controlling)462 2664 A
  6621. (terminal,)378 3168 A
  6622. (instead)294 3588 A
  6623. 3924(of)S
  6624. (the)126 4050 A
  6625. 2880 V
  6626. (27317)210 648 A
  6627. 1068(*)S
  6628. (major/minor)462 1152 A
  6629. (pair)168 1656 A
  6630. (for)126 1866 A
  6631. (/dev/tty)336 2034 A
  6632. (itself.)294 2412 A
  6633. 2970 V
  6634. (27318)210 648 A
  6635. 1068(*/)S
  6636. 3060 V
  6637. (27319)210 648 A
  6638. 3150 V
  6639. (27320)210 648 A
  6640. (int)126 1110 A
  6641. (major_device;)546 1278 A
  6642. 3240 V
  6643. (27321)210 648 A
  6644. 3330 V
  6645. (27322)210 648 A
  6646. 1110(if)S
  6647. ((fp->fp_tty)462 1236 A
  6648. 1740(==)S
  6649. 1866(0))S
  6650. 1992({)S
  6651. 3420 V
  6652. (27323)210 648 A
  6653. 1362(/*)S
  6654. 1488(No)S
  6655. (controlling)462 1614 A
  6656. (tty)126 2118 A
  6657. (present)294 2286 A
  6658. (anymore,)336 2622 A
  6659. (return)252 3000 A
  6660. 3294(an)S
  6661. (I/O)126 3420 A
  6662. (error.)252 3588 A
  6663. 3882(*/)S
  6664. 3510 V
  6665. (27324)210 648 A
  6666. (mess_ptr->REP_STATUS)840 1362 A
  6667. 2244(=)S
  6668. (EIO;)168 2328 A
  6669. 3600 V
  6670. (27325)210 648 A
  6671. (return;)294 1362 A
  6672. 3690 V
  6673. (27326)210 648 A
  6674. 1110(})S
  6675. 3780 V
  6676. (27327)210 648 A
  6677. (major_device)504 1110 A
  6678. 1656(=)S
  6679. ((fp->fp_tty)462 1740 A
  6680. 2244(>>)S
  6681. (MAJOR))252 2370 A
  6682. 2664(&)S
  6683. (BYTE;)210 2748 A
  6684. 3870 V
  6685. (27328)210 648 A
  6686. (task_nr)294 1110 A
  6687. 1446(=)S
  6688. (dmap[major_device].dmap_task;)1218 1530 A
  6689. 3042(/*)S
  6690. (task)168 3168 A
  6691. (for)126 3378 A
  6692. (controlling)462 3546 A
  6693. (tty)126 4050 A
  6694. 4218(*/)S
  6695. 3960 V
  6696. (27329)210 648 A
  6697. (mess_ptr->DEVICE)672 1110 A
  6698. 1824(=)S
  6699. ((fp->fp_tty)462 1908 A
  6700. 2412(>>)S
  6701. (MINOR))252 2538 A
  6702. 2832(&)S
  6703. (BYTE;)210 2916 A
  6704. 4050 V
  6705. (27330)210 648 A
  6706. (call_task(task_nr,)756 1110 A
  6707. (mess_ptr);)420 1908 A
  6708. 4140 V
  6709. (27331)210 648 A
  6710. 1026(})S
  6711. 4410 V
  6712. (27334)210 648 A
  6713. (/*===========================================================================*)3276 1026 A
  6714. 4500 V
  6715. (27335)210 648 A
  6716. 1068(*)S
  6717. (no_dev)252 2370 A
  6718. 4260(*)S
  6719. 4590 V
  6720. (27336)210 648 A
  6721. (*===========================================================================*/)3276 1068 A
  6722. 4680 V
  6723. (27337)210 648 A
  6724. (PUBLIC)252 1026 A
  6725. (void)168 1320 A
  6726. (no_dev(task_nr,)630 1530 A
  6727. (m_ptr))252 2202 A
  6728. 4770 V
  6729. (27338)210 648 A
  6730. (int)126 1026 A
  6731. (task_nr;)336 1194 A
  6732. 2370(/*)S
  6733. (not)126 2496 A
  6734. (used)168 2664 A
  6735. 2874(-)S
  6736. (for)126 2958 A
  6737. (compatibility)546 3126 A
  6738. (with)168 3714 A
  6739. (dmap_t)252 3924 A
  6740. 4218(*/)S
  6741. 4860 V
  6742. (27339)210 648 A
  6743. (message)294 1026 A
  6744. (*m_ptr;)294 1362 A
  6745. 2370(/*)S
  6746. (message)294 2496 A
  6747. (pointer)294 2832 A
  6748. 3168(*/)S
  6749. 4950 V
  6750. (27340)210 648 A
  6751. 1026({)S
  6752. 5040 V
  6753. (27341)210 648 A
  6754. 1026(/*)S
  6755. 1152(No)S
  6756. (device)252 1278 A
  6757. (there.)252 1572 A
  6758. 1866(*/)S
  6759. 5130 V
  6760. (27342)210 648 A
  6761. 5220 V
  6762. (27343)210 648 A
  6763. (m_ptr->REP_STATUS)714 1110 A
  6764. 1866(=)S
  6765. (ENODEV;)294 1950 A
  6766. 5310 V
  6767. (27344)210 648 A
  6768. 1026(})S
  6769. 8418 V
  6770. EP
  6771. %%Page: 378 378
  6772. BP
  6773. /slant 0 def
  6774. /height 0 def
  6775. 630 V
  6776. 12 B
  6777. (378)180 648 A
  6778. 11 R
  6779. 2114(File:)S
  6780. (src/fs/utility.c)615 2347 A
  6781. 10 R
  6782. 3402(MINIX)S
  6783. 3730(SOURCE)S
  6784. 4153(CODE)S
  6785. 990 V
  6786. 7 LST
  6787. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  6788. 1080 V
  6789. (src/fs/utility.c)672 2034 A
  6790. 1170 V
  6791. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  6792. 1350 V
  6793. (27400)210 648 A
  6794. 1026(/*)S
  6795. (This)168 1152 A
  6796. (file)168 1362 A
  6797. (contains)336 1572 A
  6798. 1950(a)S
  6799. (few)126 2034 A
  6800. (general)294 2202 A
  6801. (purpose)294 2538 A
  6802. (utility)294 2874 A
  6803. (routines.)378 3210 A
  6804. 1440 V
  6805. (27401)210 648 A
  6806. 1068(*)S
  6807. 1530 V
  6808. (27402)210 648 A
  6809. 1068(*)S
  6810. (The)126 1152 A
  6811. (entry)210 1320 A
  6812. (points)252 1572 A
  6813. (into)168 1866 A
  6814. (this)168 2076 A
  6815. (file)168 2286 A
  6816. (are)126 2496 A
  6817. 1620 V
  6818. (27403)210 648 A
  6819. 1068(*)S
  6820. (clock_time:)462 1236 A
  6821. (ask)126 1782 A
  6822. (the)126 1950 A
  6823. (clock)210 2118 A
  6824. (task)168 2370 A
  6825. (for)126 2580 A
  6826. (the)126 2748 A
  6827. (real)168 2916 A
  6828. (time)168 3126 A
  6829. 1710 V
  6830. (27404)210 648 A
  6831. 1068(*)S
  6832. (copy:)210 1236 A
  6833. (copy)168 1782 A
  6834. 1992(a)S
  6835. (block)210 2076 A
  6836. 2328(of)S
  6837. (data)168 2454 A
  6838. 1800 V
  6839. (27405)210 648 A
  6840. 1068(*)S
  6841. (fetch_name:)462 1236 A
  6842. 1782(go)S
  6843. (get)126 1908 A
  6844. 2076(a)S
  6845. (path)168 2160 A
  6846. (name)168 2370 A
  6847. (from)168 2580 A
  6848. (user)168 2790 A
  6849. (space)210 3000 A
  6850. 1890 V
  6851. (27406)210 648 A
  6852. 1068(*)S
  6853. (no_sys:)294 1236 A
  6854. (reject)252 1782 A
  6855. 2076(a)S
  6856. (system)252 2160 A
  6857. (call)168 2454 A
  6858. (that)168 2664 A
  6859. 2874(FS)S
  6860. (does)168 3000 A
  6861. (not)126 3210 A
  6862. (handle)252 3378 A
  6863. 1980 V
  6864. (27407)210 648 A
  6865. 1068(*)S
  6866. (panic:)252 1236 A
  6867. (something)378 1782 A
  6868. (awful)210 2202 A
  6869. (has)126 2454 A
  6870. (occurred;)378 2622 A
  6871. (MINIX)210 3084 A
  6872. (cannot)252 3336 A
  6873. (continue)336 3630 A
  6874. 2070 V
  6875. (27408)210 648 A
  6876. 1068(*)S
  6877. (conv2:)252 1236 A
  6878. 1782(do)S
  6879. (byte)168 1908 A
  6880. (swapping)336 2118 A
  6881. 2496(on)S
  6882. 2622(a)S
  6883. (16-bit)252 2706 A
  6884. (int)126 3000 A
  6885. 2160 V
  6886. (27409)210 648 A
  6887. 1068(*)S
  6888. (conv4:)252 1236 A
  6889. 1782(do)S
  6890. (byte)168 1908 A
  6891. (swapping)336 2118 A
  6892. 2496(on)S
  6893. 2622(a)S
  6894. (32-bit)252 2706 A
  6895. (long)168 3000 A
  6896. 2250 V
  6897. (27410)210 648 A
  6898. 1068(*/)S
  6899. 2340 V
  6900. (27411)210 648 A
  6901. 2430 V
  6902. (27412)210 648 A
  6903. (#include)336 1026 A
  6904. ("fs.h")252 1404 A
  6905. 2520 V
  6906. (27413)210 648 A
  6907. (#include)336 1026 A
  6908. (<minix/com.h>)546 1404 A
  6909. 2610 V
  6910. (27414)210 648 A
  6911. (#include)336 1026 A
  6912. (<minix/boot.h>)588 1404 A
  6913. 2700 V
  6914. (27415)210 648 A
  6915. (#include)336 1026 A
  6916. (<unistd.h>)420 1404 A
  6917. 2790 V
  6918. (27416)210 648 A
  6919. (#include)336 1026 A
  6920. ("buf.h")294 1404 A
  6921. 2880 V
  6922. (27417)210 648 A
  6923. (#include)336 1026 A
  6924. ("file.h")336 1404 A
  6925. 2970 V
  6926. (27418)210 648 A
  6927. (#include)336 1026 A
  6928. ("fproc.h")378 1404 A
  6929. 3060 V
  6930. (27419)210 648 A
  6931. (#include)336 1026 A
  6932. ("inode.h")378 1404 A
  6933. 3150 V
  6934. (27420)210 648 A
  6935. (#include)336 1026 A
  6936. ("param.h")378 1404 A
  6937. 3240 V
  6938. (27421)210 648 A
  6939. 3330 V
  6940. (27422)210 648 A
  6941. (PRIVATE)294 1026 A
  6942. (int)126 1362 A
  6943. (panicking;)420 1530 A
  6944. 2370(/*)S
  6945. (inhibits)336 2496 A
  6946. (recursive)378 2874 A
  6947. (panics)252 3294 A
  6948. (during)252 3588 A
  6949. (sync)168 3882 A
  6950. 4092(*/)S
  6951. 3420 V
  6952. (27423)210 648 A
  6953. (PRIVATE)294 1026 A
  6954. (message)294 1362 A
  6955. (clock_mess;)462 1698 A
  6956. 3510 V
  6957. (27424)210 648 A
  6958. 3600 V
  6959. (27425)210 648 A
  6960. (/*===========================================================================*)3276 1026 A
  6961. 3690 V
  6962. (27426)210 648 A
  6963. 1068(*)S
  6964. (clock_time)420 2370 A
  6965. 4260(*)S
  6966. 3780 V
  6967. (27427)210 648 A
  6968. (*===========================================================================*/)3276 1068 A
  6969. 3870 V
  6970. (27428)210 648 A
  6971. (PUBLIC)252 1026 A
  6972. (time_t)252 1320 A
  6973. (clock_time())504 1614 A
  6974. 3960 V
  6975. (27429)210 648 A
  6976. 1026({)S
  6977. 4050 V
  6978. (27430)210 648 A
  6979. 1026(/*)S
  6980. (This)168 1152 A
  6981. (routine)294 1362 A
  6982. (returns)294 1698 A
  6983. (the)126 2034 A
  6984. (time)168 2202 A
  6985. 2412(in)S
  6986. (seconds)294 2538 A
  6987. (since)210 2874 A
  6988. (1.1.1970.)378 3126 A
  6989. (MINIX)210 3588 A
  6990. 3840(is)S
  6991. 3966(an)S
  6992. 4140 V
  6993. (27431)210 648 A
  6994. 1068(*)S
  6995. (astrophysically)630 1152 A
  6996. (naive)210 1824 A
  6997. (system)252 2076 A
  6998. (that)168 2370 A
  6999. (assumes)294 2580 A
  7000. (the)126 2916 A
  7001. (earth)210 3084 A
  7002. (rotates)294 3336 A
  7003. 3672(at)S
  7004. 3798(a)S
  7005. (constant)336 3882 A
  7006. 4230 V
  7007. (27432)210 648 A
  7008. 1068(*)S
  7009. (rate)168 1152 A
  7010. (and)126 1362 A
  7011. (that)168 1530 A
  7012. (such)168 1740 A
  7013. (things)252 1950 A
  7014. 2244(as)S
  7015. (leap)168 2370 A
  7016. (seconds)294 2580 A
  7017. 2916(do)S
  7018. (not)126 3042 A
  7019. (exist.)252 3210 A
  7020. 4320 V
  7021. (27433)210 648 A
  7022. 1068(*/)S
  7023. 4410 V
  7024. (27434)210 648 A
  7025. 4500 V
  7026. (27435)210 648 A
  7027. (register)336 1110 A
  7028. (int)126 1488 A
  7029. 1656(k;)S
  7030. 4590 V
  7031. (27436)210 648 A
  7032. 4680 V
  7033. (27437)210 648 A
  7034. (clock_mess.m_type)714 1110 A
  7035. 1866(=)S
  7036. (GET_TIME;)378 1950 A
  7037. 4770 V
  7038. (27438)210 648 A
  7039. 1110(if)S
  7040. 1236(()S
  7041. 1320((k)S
  7042. 1446(=)S
  7043. (sendrec(CLOCK,)588 1530 A
  7044. (&clock_mess)))546 2160 A
  7045. 2748(!=)S
  7046. (OK))126 2874 A
  7047. (panic("clock_time)714 3042 A
  7048. (err",)210 3798 A
  7049. (k);)126 4050 A
  7050. 4860 V
  7051. (27439)210 648 A
  7052. 4950 V
  7053. (27440)210 648 A
  7054. (return()294 1110 A
  7055. ((time_t))336 1446 A
  7056. (clock_mess.NEW_TIME);)882 1824 A
  7057. 5040 V
  7058. (27441)210 648 A
  7059. 1026(})S
  7060. 5310 V
  7061. (27444)210 648 A
  7062. (/*===========================================================================*)3276 1026 A
  7063. 5400 V
  7064. (27445)210 648 A
  7065. 1068(*)S
  7066. (fetch_name)420 2370 A
  7067. 4260(*)S
  7068. 5490 V
  7069. (27446)210 648 A
  7070. (*===========================================================================*/)3276 1068 A
  7071. 5580 V
  7072. (27447)210 648 A
  7073. (PUBLIC)252 1026 A
  7074. (int)126 1320 A
  7075. (fetch_name(path,)672 1488 A
  7076. (len,)168 2202 A
  7077. (flag))210 2412 A
  7078. 5670 V
  7079. (27448)210 648 A
  7080. (char)168 1026 A
  7081. (*path;)252 1236 A
  7082. 2370(/*)S
  7083. (pointer)294 2496 A
  7084. 2832(to)S
  7085. (the)126 2958 A
  7086. (path)168 3126 A
  7087. 3336(in)S
  7088. (user)168 3462 A
  7089. (space)210 3672 A
  7090. 3924(*/)S
  7091. 5760 V
  7092. (27449)210 648 A
  7093. (int)126 1026 A
  7094. (len;)168 1194 A
  7095. 2370(/*)S
  7096. (path)168 2496 A
  7097. (length,)294 2706 A
  7098. (including)378 3042 A
  7099. 3462(0)S
  7100. (byte)168 3546 A
  7101. 3756(*/)S
  7102. 5850 V
  7103. (27450)210 648 A
  7104. (int)126 1026 A
  7105. (flag;)210 1194 A
  7106. 2370(/*)S
  7107. 2496(M3)S
  7108. (means)210 2622 A
  7109. (path)168 2874 A
  7110. (may)126 3084 A
  7111. 3252(be)S
  7112. 3378(in)S
  7113. (message)294 3504 A
  7114. 3840(*/)S
  7115. 5940 V
  7116. (27451)210 648 A
  7117. 1026({)S
  7118. 6030 V
  7119. (27452)210 648 A
  7120. 1026(/*)S
  7121. 1152(Go)S
  7122. (get)126 1278 A
  7123. (path)168 1446 A
  7124. (and)126 1656 A
  7125. (put)126 1824 A
  7126. 1992(it)S
  7127. 2118(in)S
  7128. ('user_path'.)504 2244 A
  7129. 6120 V
  7130. (27453)210 648 A
  7131. 1068(*)S
  7132. 1152(If)S
  7133. ('flag')252 1278 A
  7134. 1572(=)S
  7135. 1656(M3)S
  7136. (and)126 1782 A
  7137. ('len')210 1950 A
  7138. 2202(<=)S
  7139. (M3_STRING,)420 2328 A
  7140. (the)126 2790 A
  7141. (path)168 2958 A
  7142. 3168(is)S
  7143. (present)294 3294 A
  7144. 3630(in)S
  7145. ('message'.)420 3756 A
  7146. 6210 V
  7147. (27454)210 648 A
  7148. 1068(*)S
  7149. 1152(If)S
  7150. 1278(it)S
  7151. 1404(is)S
  7152. (not,)168 1530 A
  7153. 1740(go)S
  7154. (copy)168 1866 A
  7155. 2076(it)S
  7156. (from)168 2202 A
  7157. (user)168 2412 A
  7158. (space.)252 2622 A
  7159. 8418 V
  7160. EP
  7161. %%Page: 379 379
  7162. BP
  7163. /slant 0 def
  7164. /height 0 def
  7165. 630 V
  7166. 10 R
  7167. 648(MINIX)S
  7168. 976(SOURCE)S
  7169. 1399(CODE)S
  7170. 11 R
  7171. 2114(File:)S
  7172. (src/fs/utility.c)615 2347 A
  7173. 12 B
  7174. (379)180 4248 A
  7175. 900 V
  7176. 7 LST
  7177. (27455)210 648 A
  7178. 1068(*/)S
  7179. 990 V
  7180. (27456)210 648 A
  7181. 1080 V
  7182. (27457)210 648 A
  7183. (register)336 1110 A
  7184. (char)168 1488 A
  7185. (*rpu,)210 1698 A
  7186. (*rpm;)210 1950 A
  7187. 1170 V
  7188. (27458)210 648 A
  7189. (int)126 1110 A
  7190. 1278(r;)S
  7191. 1260 V
  7192. (27459)210 648 A
  7193. 1350 V
  7194. (27460)210 648 A
  7195. 1110(/*)S
  7196. (Check)210 1236 A
  7197. (name)168 1488 A
  7198. (length)252 1698 A
  7199. (for)126 1992 A
  7200. (validity.)378 2160 A
  7201. 2580(*/)S
  7202. 1440 V
  7203. (27461)210 648 A
  7204. 1110(if)S
  7205. ((len)168 1236 A
  7206. 1446(<=)S
  7207. 1572(0))S
  7208. 1698({)S
  7209. 1530 V
  7210. (27462)210 648 A
  7211. (err_code)336 1362 A
  7212. 1740(=)S
  7213. (EINVAL;)294 1824 A
  7214. 1620 V
  7215. (27463)210 648 A
  7216. (return(EGENERIC);)714 1362 A
  7217. 1710 V
  7218. (27464)210 648 A
  7219. 1110(})S
  7220. 1800 V
  7221. (27465)210 648 A
  7222. 1890 V
  7223. (27466)210 648 A
  7224. 1110(if)S
  7225. ((len)168 1236 A
  7226. 1446(>)S
  7227. (PATH_MAX))378 1530 A
  7228. 1950({)S
  7229. 1980 V
  7230. (27467)210 648 A
  7231. (err_code)336 1362 A
  7232. 1740(=)S
  7233. (ENAMETOOLONG;)546 1824 A
  7234. 2070 V
  7235. (27468)210 648 A
  7236. (return(EGENERIC);)714 1362 A
  7237. 2160 V
  7238. (27469)210 648 A
  7239. 1110(})S
  7240. 2250 V
  7241. (27470)210 648 A
  7242. 2340 V
  7243. (27471)210 648 A
  7244. 1110(if)S
  7245. ((flag)210 1236 A
  7246. 1488(==)S
  7247. 1614(M3)S
  7248. 1740(&&)S
  7249. (len)126 1866 A
  7250. 2034(<=)S
  7251. (M3_STRING))420 2160 A
  7252. 2622({)S
  7253. 2430 V
  7254. (27472)210 648 A
  7255. 1362(/*)S
  7256. (Just)168 1488 A
  7257. (copy)168 1698 A
  7258. (the)126 1908 A
  7259. (path)168 2076 A
  7260. (from)168 2286 A
  7261. (the)126 2496 A
  7262. (message)294 2664 A
  7263. 3000(to)S
  7264. ('user_path'.)504 3126 A
  7265. 3672(*/)S
  7266. 2520 V
  7267. (27473)210 648 A
  7268. (rpu)126 1362 A
  7269. 1530(=)S
  7270. (&user_path[0];)588 1614 A
  7271. 2610 V
  7272. (27474)210 648 A
  7273. (rpm)126 1362 A
  7274. 1530(=)S
  7275. (pathname;)378 1614 A
  7276. 2370(/*)S
  7277. (contained)378 2496 A
  7278. 2916(in)S
  7279. (input)210 3042 A
  7280. (message)294 3294 A
  7281. 3630(*/)S
  7282. 2700 V
  7283. (27475)210 648 A
  7284. 1362(do)S
  7285. 1488({)S
  7286. (*rpu++)252 1572 A
  7287. 1866(=)S
  7288. (*rpm++;)294 1950 A
  7289. 2286(})S
  7290. (while)210 2370 A
  7291. ((--len);)336 2622 A
  7292. 2790 V
  7293. (27476)210 648 A
  7294. 1362(r)S
  7295. 1446(=)S
  7296. (OK;)126 1530 A
  7297. 2880 V
  7298. (27477)210 648 A
  7299. 1110(})S
  7300. (else)168 1194 A
  7301. 1404({)S
  7302. 2970 V
  7303. (27478)210 648 A
  7304. 1362(/*)S
  7305. (String)252 1488 A
  7306. 1782(is)S
  7307. (not)126 1908 A
  7308. (contained)378 2076 A
  7309. 2496(in)S
  7310. (the)126 2622 A
  7311. (message.)336 2790 A
  7312. (Get)126 3210 A
  7313. 3378(it)S
  7314. (from)168 3504 A
  7315. (user)168 3714 A
  7316. (space.)252 3924 A
  7317. 4218(*/)S
  7318. 3060 V
  7319. (27479)210 648 A
  7320. 1362(r)S
  7321. 1446(=)S
  7322. (sys_copy(who,)546 1530 A
  7323. 2118(D,)S
  7324. ((phys_bytes))504 2244 A
  7325. (path,)210 2790 A
  7326. 3150 V
  7327. (27480)210 648 A
  7328. (FS_PROC_NR,)462 1698 A
  7329. 2202(D,)S
  7330. ((phys_bytes))504 2328 A
  7331. (user_path,)420 2874 A
  7332. ((phys_bytes))504 3336 A
  7333. (len);)210 3882 A
  7334. 3240 V
  7335. (27481)210 648 A
  7336. 1110(})S
  7337. 3330 V
  7338. (27482)210 648 A
  7339. (return(r);)420 1110 A
  7340. 3420 V
  7341. (27483)210 648 A
  7342. 1026(})S
  7343. 3690 V
  7344. (27486)210 648 A
  7345. (/*===========================================================================*)3276 1026 A
  7346. 3780 V
  7347. (27487)210 648 A
  7348. 1068(*)S
  7349. (no_sys)252 2370 A
  7350. 4260(*)S
  7351. 3870 V
  7352. (27488)210 648 A
  7353. (*===========================================================================*/)3276 1068 A
  7354. 3960 V
  7355. (27489)210 648 A
  7356. (PUBLIC)252 1026 A
  7357. (int)126 1320 A
  7358. (no_sys())336 1488 A
  7359. 4050 V
  7360. (27490)210 648 A
  7361. 1026({)S
  7362. 4140 V
  7363. (27491)210 648 A
  7364. 1026(/*)S
  7365. (Somebody)336 1152 A
  7366. (has)126 1530 A
  7367. (used)168 1698 A
  7368. 1908(an)S
  7369. (illegal)294 2034 A
  7370. (system)252 2370 A
  7371. (call)168 2664 A
  7372. (number)252 2874 A
  7373. 3168(*/)S
  7374. 4230 V
  7375. (27492)210 648 A
  7376. 4320 V
  7377. (27493)210 648 A
  7378. (return(EINVAL);)630 1110 A
  7379. 4410 V
  7380. (27494)210 648 A
  7381. 1026(})S
  7382. 4680 V
  7383. (27497)210 648 A
  7384. (/*===========================================================================*)3276 1026 A
  7385. 4770 V
  7386. (27498)210 648 A
  7387. 1068(*)S
  7388. (panic)210 2370 A
  7389. 4260(*)S
  7390. 4860 V
  7391. (27499)210 648 A
  7392. (*===========================================================================*/)3276 1068 A
  7393. 4950 V
  7394. (27500)210 648 A
  7395. (PUBLIC)252 1026 A
  7396. (void)168 1320 A
  7397. (panic(format,)546 1530 A
  7398. (num))168 2118 A
  7399. 5040 V
  7400. (27501)210 648 A
  7401. (char)168 1026 A
  7402. (*format;)336 1236 A
  7403. 2370(/*)S
  7404. (format)252 2496 A
  7405. (string)252 2790 A
  7406. 3084(*/)S
  7407. 5130 V
  7408. (27502)210 648 A
  7409. (int)126 1026 A
  7410. (num;)168 1194 A
  7411. 2370(/*)S
  7412. (number)252 2496 A
  7413. 2790(to)S
  7414. 2916(go)S
  7415. (with)168 3042 A
  7416. (format)252 3252 A
  7417. (string)252 3546 A
  7418. 3840(*/)S
  7419. 5220 V
  7420. (27503)210 648 A
  7421. 1026({)S
  7422. 5310 V
  7423. (27504)210 648 A
  7424. 1026(/*)S
  7425. (Something)378 1152 A
  7426. (awful)210 1572 A
  7427. (has)126 1824 A
  7428. (happened.)378 1992 A
  7429. (Panics)252 2454 A
  7430. (are)126 2748 A
  7431. (caused)252 2916 A
  7432. (when)168 3210 A
  7433. 3420(an)S
  7434. (internal)336 3546 A
  7435. 5400 V
  7436. (27505)210 648 A
  7437. 1068(*)S
  7438. (inconsistency)546 1152 A
  7439. 1740(is)S
  7440. (detected,)378 1866 A
  7441. (e.g.,)210 2286 A
  7442. 2538(a)S
  7443. (programming)462 2622 A
  7444. (error)210 3126 A
  7445. 3378(or)S
  7446. (illegal)294 3504 A
  7447. (value)210 3840 A
  7448. 4092(of)S
  7449. 4218(a)S
  7450. 5490 V
  7451. (27506)210 648 A
  7452. 1068(*)S
  7453. (defined)294 1152 A
  7454. (constant.)378 1488 A
  7455. 5580 V
  7456. (27507)210 648 A
  7457. 1068(*/)S
  7458. 5670 V
  7459. (27508)210 648 A
  7460. 5760 V
  7461. (27509)210 648 A
  7462. 1110(if)S
  7463. ((panicking))462 1236 A
  7464. (return;)294 1740 A
  7465. 2370(/*)S
  7466. 2496(do)S
  7467. (not)126 2622 A
  7468. (panic)210 2790 A
  7469. (during)252 3042 A
  7470. 3336(a)S
  7471. (sync)168 3420 A
  7472. 3630(*/)S
  7473. 5850 V
  7474. (27510)210 648 A
  7475. (panicking)378 1110 A
  7476. 1530(=)S
  7477. (TRUE;)210 1614 A
  7478. 2370(/*)S
  7479. (prevent)294 2496 A
  7480. (another)294 2832 A
  7481. (panic)210 3168 A
  7482. (during)252 3420 A
  7483. (the)126 3714 A
  7484. (sync)168 3882 A
  7485. 4092(*/)S
  7486. 5940 V
  7487. (27511)210 648 A
  7488. (printf("File)504 1110 A
  7489. (system)252 1656 A
  7490. (panic:)252 1950 A
  7491. 2244(%s)S
  7492. 2370(",)S
  7493. (format);)336 2496 A
  7494. 6030 V
  7495. (27512)210 648 A
  7496. 1110(if)S
  7497. ((num)168 1236 A
  7498. 1446(!=)S
  7499. (NO_NUM))294 1572 A
  7500. (printf("%d",num);)714 1908 A
  7501. 6120 V
  7502. (27513)210 648 A
  7503. (printf("\n");)546 1110 A
  7504. 6210 V
  7505. (27514)210 648 A
  7506. ((void))252 1110 A
  7507. (do_sync();)420 1404 A
  7508. 2370(/*)S
  7509. (flush)210 2496 A
  7510. (everything)420 2748 A
  7511. 3210(to)S
  7512. (the)126 3336 A
  7513. (disk)168 3504 A
  7514. 3714(*/)S
  7515. 8418 V
  7516. EP
  7517. %%Page: 380 380
  7518. BP
  7519. /slant 0 def
  7520. /height 0 def
  7521. 630 V
  7522. 12 B
  7523. (380)180 648 A
  7524. 11 R
  7525. 2114(File:)S
  7526. (src/fs/utility.c)615 2347 A
  7527. 10 R
  7528. 3402(MINIX)S
  7529. 3730(SOURCE)S
  7530. 4153(CODE)S
  7531. 900 V
  7532. 7 LST
  7533. (27515)210 648 A
  7534. (sys_abort(RBT_PANIC);)882 1110 A
  7535. 990 V
  7536. (27516)210 648 A
  7537. 1026(})S
  7538. 1260 V
  7539. (27519)210 648 A
  7540. (/*===========================================================================*)3276 1026 A
  7541. 1350 V
  7542. (27520)210 648 A
  7543. 1068(*)S
  7544. (conv2)210 2370 A
  7545. 4260(*)S
  7546. 1440 V
  7547. (27521)210 648 A
  7548. (*===========================================================================*/)3276 1068 A
  7549. 1530 V
  7550. (27522)210 648 A
  7551. (PUBLIC)252 1026 A
  7552. (unsigned)336 1320 A
  7553. (conv2(norm,)462 1698 A
  7554. 2202(w))S
  7555. 1620 V
  7556. (27523)210 648 A
  7557. (int)126 1026 A
  7558. (norm;)210 1194 A
  7559. 2370(/*)S
  7560. (TRUE)168 2496 A
  7561. 2706(if)S
  7562. 2832(no)S
  7563. (swap,)210 2958 A
  7564. (FALSE)210 3210 A
  7565. (for)126 3462 A
  7566. (byte)168 3630 A
  7567. (swap)168 3840 A
  7568. 4050(*/)S
  7569. 1710 V
  7570. (27524)210 648 A
  7571. (int)126 1026 A
  7572. 1194(w;)S
  7573. 2370(/*)S
  7574. (promotion)378 2496 A
  7575. 2916(of)S
  7576. (16-bit)252 3042 A
  7577. (word)168 3336 A
  7578. 3546(to)S
  7579. 3672(be)S
  7580. (swapped)294 3798 A
  7581. 4134(*/)S
  7582. 1800 V
  7583. (27525)210 648 A
  7584. 1026({)S
  7585. 1890 V
  7586. (27526)210 648 A
  7587. 1026(/*)S
  7588. (Possibly)336 1152 A
  7589. (swap)168 1530 A
  7590. 1740(a)S
  7591. (16-bit)252 1824 A
  7592. (word)168 2118 A
  7593. (between)294 2328 A
  7594. (8086)168 2664 A
  7595. (and)126 2874 A
  7596. (68000)210 3042 A
  7597. (byte)168 3294 A
  7598. (order.)252 3504 A
  7599. 3798(*/)S
  7600. 1980 V
  7601. (27527)210 648 A
  7602. 2070 V
  7603. (27528)210 648 A
  7604. 1110(if)S
  7605. ((norm))252 1236 A
  7606. (return()294 1530 A
  7607. ((unsigned))420 1866 A
  7608. 2328(w)S
  7609. 2412(&)S
  7610. (0xFFFF);)336 2496 A
  7611. 2160 V
  7612. (27529)210 648 A
  7613. (return()294 1110 A
  7614. (((w&BYTE))378 1446 A
  7615. 1866(<<)S
  7616. 1992(8))S
  7617. 2118(|)S
  7618. 2202(()S
  7619. ((w>>8))252 2286 A
  7620. 2580(&)S
  7621. (BYTE));)294 2664 A
  7622. 2250 V
  7623. (27530)210 648 A
  7624. 1026(})S
  7625. 2520 V
  7626. (27533)210 648 A
  7627. (/*===========================================================================*)3276 1026 A
  7628. 2610 V
  7629. (27534)210 648 A
  7630. 1068(*)S
  7631. (conv4)210 2370 A
  7632. 4260(*)S
  7633. 2700 V
  7634. (27535)210 648 A
  7635. (*===========================================================================*/)3276 1068 A
  7636. 2790 V
  7637. (27536)210 648 A
  7638. (PUBLIC)252 1026 A
  7639. (long)168 1320 A
  7640. (conv4(norm,)462 1530 A
  7641. 2034(x))S
  7642. 2880 V
  7643. (27537)210 648 A
  7644. (int)126 1026 A
  7645. (norm;)210 1194 A
  7646. 2370(/*)S
  7647. (TRUE)168 2496 A
  7648. 2706(if)S
  7649. 2832(no)S
  7650. (swap,)210 2958 A
  7651. (FALSE)210 3210 A
  7652. (for)126 3462 A
  7653. (byte)168 3630 A
  7654. (swap)168 3840 A
  7655. 4050(*/)S
  7656. 2970 V
  7657. (27538)210 648 A
  7658. (long)168 1026 A
  7659. 1236(x;)S
  7660. 2370(/*)S
  7661. (32-bit)252 2496 A
  7662. (long)168 2790 A
  7663. 3000(to)S
  7664. 3126(be)S
  7665. (byte)168 3252 A
  7666. (swapped)294 3462 A
  7667. 3798(*/)S
  7668. 3060 V
  7669. (27539)210 648 A
  7670. 1026({)S
  7671. 3150 V
  7672. (27540)210 648 A
  7673. 1026(/*)S
  7674. (Possibly)336 1152 A
  7675. (swap)168 1530 A
  7676. 1740(a)S
  7677. (32-bit)252 1824 A
  7678. (long)168 2118 A
  7679. (between)294 2328 A
  7680. (8086)168 2664 A
  7681. (and)126 2874 A
  7682. (68000)210 3042 A
  7683. (byte)168 3294 A
  7684. (order.)252 3504 A
  7685. 3798(*/)S
  7686. 3240 V
  7687. (27541)210 648 A
  7688. 3330 V
  7689. (27542)210 648 A
  7690. (unsigned)336 1110 A
  7691. (lo,)126 1488 A
  7692. (hi;)126 1656 A
  7693. 3420 V
  7694. (27543)210 648 A
  7695. (long)168 1110 A
  7696. 1320(l;)S
  7697. 3510 V
  7698. (27544)210 648 A
  7699. 3600 V
  7700. (27545)210 648 A
  7701. 1110(if)S
  7702. ((norm))252 1236 A
  7703. (return(x);)420 1530 A
  7704. 2706(/*)S
  7705. (byte)168 2832 A
  7706. (order)210 3042 A
  7707. (was)126 3294 A
  7708. (already)294 3462 A
  7709. 3798(ok)S
  7710. 3924(*/)S
  7711. 3690 V
  7712. (27546)210 648 A
  7713. 1110(lo)S
  7714. 1236(=)S
  7715. (conv2(FALSE,)504 1320 A
  7716. ((int))210 1866 A
  7717. 2118(x)S
  7718. 2202(&)S
  7719. (0xFFFF);)336 2286 A
  7720. 2706(/*)S
  7721. (low-order)378 2832 A
  7722. (half,)210 3252 A
  7723. (byte)168 3504 A
  7724. (swapped)294 3714 A
  7725. 4050(*/)S
  7726. 3780 V
  7727. (27547)210 648 A
  7728. 1110(hi)S
  7729. 1236(=)S
  7730. (conv2(FALSE,)504 1320 A
  7731. ((int))210 1866 A
  7732. ((x>>16))294 2118 A
  7733. 2454(&)S
  7734. (0xFFFF);)336 2538 A
  7735. 3042(/*)S
  7736. (high-order)420 3168 A
  7737. (half,)210 3630 A
  7738. (swapped)294 3882 A
  7739. 4218(*/)S
  7740. 3870 V
  7741. (27548)210 648 A
  7742. 1110(l)S
  7743. 1194(=)S
  7744. 1278(()S
  7745. ((long))252 1362 A
  7746. 1656(lo)S
  7747. (<<16))210 1782 A
  7748. 2034(|)S
  7749. (hi;)126 2118 A
  7750. 3960 V
  7751. (27549)210 648 A
  7752. (return(l);)420 1110 A
  7753. 4050 V
  7754. (27550)210 648 A
  7755. 1026(})S
  7756. 4590 V
  7757. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  7758. 4680 V
  7759. (src/fs/putk.c)546 2034 A
  7760. 4770 V
  7761. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  7762. 4950 V
  7763. (27600)210 648 A
  7764. 1026(/*)S
  7765. 1152(FS)S
  7766. (must)168 1278 A
  7767. (occasionally)504 1488 A
  7768. (print)210 2034 A
  7769. (some)168 2286 A
  7770. (message.)336 2496 A
  7771. 2916(It)S
  7772. (uses)168 3042 A
  7773. (the)126 3252 A
  7774. (standard)336 3420 A
  7775. (library)294 3798 A
  7776. 5040 V
  7777. (27601)210 648 A
  7778. 1068(*)S
  7779. (routine)294 1152 A
  7780. (prink().)336 1488 A
  7781. ((The)168 1908 A
  7782. (name)168 2118 A
  7783. ("printf")336 2328 A
  7784. 2706(is)S
  7785. (really)252 2832 A
  7786. 3126(a)S
  7787. (macro)210 3210 A
  7788. (defined)294 3462 A
  7789. 3798(as)S
  7790. ("printk").)420 3924 A
  7791. 5130 V
  7792. (27602)210 648 A
  7793. 1068(*)S
  7794. (Printing)336 1152 A
  7795. 1530(is)S
  7796. (done)168 1656 A
  7797. 1866(by)S
  7798. (calling)294 1992 A
  7799. (the)126 2328 A
  7800. (TTY)126 2496 A
  7801. (task)168 2664 A
  7802. (directly,)378 2874 A
  7803. (not)126 3294 A
  7804. (going)210 3462 A
  7805. (through)294 3714 A
  7806. (FS.)126 4050 A
  7807. 5220 V
  7808. (27603)210 648 A
  7809. 1068(*/)S
  7810. 5310 V
  7811. (27604)210 648 A
  7812. 5400 V
  7813. (27605)210 648 A
  7814. (#include)336 1026 A
  7815. ("fs.h")252 1404 A
  7816. 5490 V
  7817. (27606)210 648 A
  7818. (#include)336 1026 A
  7819. (<minix/com.h>)546 1404 A
  7820. 5580 V
  7821. (27607)210 648 A
  7822. 5670 V
  7823. (27608)210 648 A
  7824. (#define)294 1026 A
  7825. (BUF_SIZE)336 1362 A
  7826. (100)126 2118 A
  7827. 2370(/*)S
  7828. (print)210 2496 A
  7829. (buffer)252 2748 A
  7830. (size)168 3042 A
  7831. 3252(*/)S
  7832. 5760 V
  7833. (27609)210 648 A
  7834. 5850 V
  7835. (27610)210 648 A
  7836. (PRIVATE)294 1026 A
  7837. (int)126 1362 A
  7838. (buf_count;)420 1530 A
  7839. 2370(/*)S
  7840. 2496(#)S
  7841. (characters)420 2580 A
  7842. 3042(in)S
  7843. (the)126 3168 A
  7844. (buffer)252 3336 A
  7845. 3630(*/)S
  7846. 5940 V
  7847. (27611)210 648 A
  7848. (PRIVATE)294 1026 A
  7849. (char)168 1362 A
  7850. (print_buf[BUF_SIZE];)840 1572 A
  7851. 2706(/*)S
  7852. (output)252 2832 A
  7853. 3126(is)S
  7854. (buffered)336 3252 A
  7855. (here)168 3630 A
  7856. 3840(*/)S
  7857. 6030 V
  7858. (27612)210 648 A
  7859. (PRIVATE)294 1026 A
  7860. (message)294 1362 A
  7861. (putch_msg;)420 1698 A
  7862. 2370(/*)S
  7863. (used)168 2496 A
  7864. (for)126 2706 A
  7865. (message)294 2874 A
  7866. 3210(to)S
  7867. (TTY)126 3336 A
  7868. (task)168 3504 A
  7869. 3714(*/)S
  7870. 6120 V
  7871. (27613)210 648 A
  7872. 6210 V
  7873. (27614)210 648 A
  7874. (FORWARD)294 1026 A
  7875. (_PROTOTYPE()462 1362 A
  7876. (void)168 1866 A
  7877. (flush,)252 2076 A
  7878. ((void))252 2370 A
  7879. 4050();)S
  7880. 8418 V
  7881. EP
  7882. %%Page: 381 381
  7883. BP
  7884. /slant 0 def
  7885. /height 0 def
  7886. 630 V
  7887. 10 R
  7888. 648(MINIX)S
  7889. 976(SOURCE)S
  7890. 1399(CODE)S
  7891. 11 R
  7892. 2148(File:)S
  7893. 2381(src/fs/putk.c)S
  7894. 12 B
  7895. (381)180 4248 A
  7896. 900 V
  7897. 7 LST
  7898. (27615)210 648 A
  7899. 990 V
  7900. (27616)210 648 A
  7901. (/*===========================================================================*)3276 1026 A
  7902. 1080 V
  7903. (27617)210 648 A
  7904. 1068(*)S
  7905. (putk)168 2370 A
  7906. 4260(*)S
  7907. 1170 V
  7908. (27618)210 648 A
  7909. (*===========================================================================*/)3276 1068 A
  7910. 1260 V
  7911. (27619)210 648 A
  7912. (PUBLIC)252 1026 A
  7913. (void)168 1320 A
  7914. (putk(c))294 1530 A
  7915. 1350 V
  7916. (27620)210 648 A
  7917. (int)126 1026 A
  7918. 1194(c;)S
  7919. 1440 V
  7920. (27621)210 648 A
  7921. 1026({)S
  7922. 1530 V
  7923. (27622)210 648 A
  7924. 1026(/*)S
  7925. (Accumulate)420 1152 A
  7926. (another)294 1614 A
  7927. (character.)420 1950 A
  7928. 2454(If)S
  7929. 2580(0)S
  7930. 2664(or)S
  7931. (buffer)252 2790 A
  7932. (full,)210 3084 A
  7933. (print)210 3336 A
  7934. (it.)126 3588 A
  7935. 3756(*/)S
  7936. 1620 V
  7937. (27623)210 648 A
  7938. 1710 V
  7939. (27624)210 648 A
  7940. 1110(if)S
  7941. 1236((c)S
  7942. 1362(==)S
  7943. 1488(0)S
  7944. 1572(||)S
  7945. (buf_count)378 1698 A
  7946. 2118(==)S
  7947. (BUF_SIZE))378 2244 A
  7948. (flush();)336 2664 A
  7949. 1800 V
  7950. (27625)210 648 A
  7951. 1110(if)S
  7952. 1236((c)S
  7953. 1362(==)S
  7954. ('\n'))210 1488 A
  7955. (putk('\r');)462 1740 A
  7956. 1890 V
  7957. (27626)210 648 A
  7958. 1110(if)S
  7959. 1236((c)S
  7960. 1362(!=)S
  7961. 1488(0))S
  7962. (print_buf[buf_count++])924 1614 A
  7963. 2580(=)S
  7964. 2664(c;)S
  7965. 1980 V
  7966. (27627)210 648 A
  7967. 1026(})S
  7968. 2250 V
  7969. (27630)210 648 A
  7970. (/*===========================================================================*)3276 1026 A
  7971. 2340 V
  7972. (27631)210 648 A
  7973. 1068(*)S
  7974. (flush)210 2370 A
  7975. 4260(*)S
  7976. 2430 V
  7977. (27632)210 648 A
  7978. (*===========================================================================*/)3276 1068 A
  7979. 2520 V
  7980. (27633)210 648 A
  7981. (PRIVATE)294 1026 A
  7982. (void)168 1362 A
  7983. (flush())294 1572 A
  7984. 2610 V
  7985. (27634)210 648 A
  7986. 1026({)S
  7987. 2700 V
  7988. (27635)210 648 A
  7989. 1026(/*)S
  7990. (Flush)210 1152 A
  7991. (the)126 1404 A
  7992. (print)210 1572 A
  7993. (buffer)252 1824 A
  7994. 2118(by)S
  7995. (calling)294 2244 A
  7996. (TTY)126 2580 A
  7997. (task.)210 2748 A
  7998. 3000(*/)S
  7999. 2790 V
  8000. (27636)210 648 A
  8001. 2880 V
  8002. (27637)210 648 A
  8003. 2970 V
  8004. (27638)210 648 A
  8005. 1110(if)S
  8006. ((buf_count)420 1236 A
  8007. 1698(==)S
  8008. 1824(0))S
  8009. (return;)294 1950 A
  8010. 3060 V
  8011. (27639)210 648 A
  8012. (putch_msg.m_type)672 1110 A
  8013. 1824(=)S
  8014. (DEV_WRITE;)420 1908 A
  8015. 3150 V
  8016. (27640)210 648 A
  8017. (putch_msg.PROC_NR)714 1110 A
  8018. 1908(=)S
  8019. 1992(1;)S
  8020. 3240 V
  8021. (27641)210 648 A
  8022. (putch_msg.TTY_LINE)756 1110 A
  8023. 1908(=)S
  8024. 1992(0;)S
  8025. 3330 V
  8026. (27642)210 648 A
  8027. (putch_msg.ADDRESS)714 1110 A
  8028. 1908(=)S
  8029. (print_buf;)420 1992 A
  8030. 3420 V
  8031. (27643)210 648 A
  8032. (putch_msg.COUNT)630 1110 A
  8033. 1782(=)S
  8034. (buf_count;)420 1866 A
  8035. 3510 V
  8036. (27644)210 648 A
  8037. (call_task(TTY,)588 1110 A
  8038. (&putch_msg);)504 1740 A
  8039. 3600 V
  8040. (27645)210 648 A
  8041. (buf_count)378 1110 A
  8042. 1530(=)S
  8043. 1614(0;)S
  8044. 3690 V
  8045. (27646)210 648 A
  8046. 1026(})S
  8047. 4140 V
  8048. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  8049. 4230 V
  8050. (./end_of_list)546 2034 A
  8051. 4320 V
  8052. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  8053. 8418 V
  8054. EP
  8055. %%Trailer
  8056. %%DocumentFonts: Times-Roman Times-Bold LucidaSans-Typewriter
  8057. %%Pages: 381