 958b25be50
			
		
	
	
		958b25be50
		
	
	
	
	
		
			
			- Revise VFS-FS protocol and update VFS/MFS/ISOFS accordingly.
- Clean up MFS by removing old, dead code (backwards compatibility is broken by
  the new VFS-FS protocol, anyway) and rewrite other parts. Also, make sure all
  functions have proper banners and prototypes.
- VFS should always provide a (syntactically) valid path to the FS; no need for
  the FS to do sanity checks when leaving/entering mount points.
- Fix several bugs in MFS:
  - Several path lookup bugs in MFS.
  - A link can be too big for the path buffer.
  - A mountpoint can become inaccessible when the creation of a new inode
    fails, because the inode already exists and is a mountpoint.
- Introduce support for supplemental groups.
- Add test 46 to test supplemental group functionality (and removed obsolete
  suppl. tests from test 2).
- Clean up VFS (not everything is done yet).
- ISOFS now opens device read-only. This makes the -r flag in the mount command
  unnecessary (but will still report to be mounted read-write).
- Introduce PipeFS. PipeFS is a new FS that handles all anonymous and
  named pipes. However, named pipes still reside on the (M)FS, as they are part
  of the file system on disk. To make this work VFS now has a concept of
  'mapped' inodes, which causes read, write, truncate and stat requests to be
  redirected to the mapped FS, and all other requests to the original FS.
		
	
			
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* The following names are synonyms for the variables in the input message. */
 | |
| #define exec_name	m1_p1
 | |
| #define exec_len	m1_i1
 | |
| #define func		m6_f1
 | |
| #define grp_id		m1_i1
 | |
| #define grp_no		m1_i1
 | |
| #define groupsp		m1_p1
 | |
| #define namelen		m1_i2
 | |
| #define pid		m1_i1
 | |
| #define seconds		m1_i1
 | |
| #define which_timer	m1_i1
 | |
| #define new_val		m1_p1
 | |
| #define old_val		m1_p2
 | |
| #define sig		m6_i1
 | |
| #define stack_bytes	m1_i2
 | |
| #define stack_ptr	m1_p2
 | |
| #define status		m1_i1
 | |
| #define usr_id		m1_i1
 | |
| #define request		m2_i2
 | |
| #define data		m2_l2
 | |
| #define sig_nr		m1_i2
 | |
| #define sig_nsa		m1_p1
 | |
| #define sig_osa		m1_p2
 | |
| #define sig_ret		m1_p3
 | |
| #define stat_nr		m2_i1
 | |
| #define sig_set		m2_l1
 | |
| #define sig_how		m2_i1
 | |
| #define sig_context	m2_p1
 | |
| #define info_what	m1_i1
 | |
| #define info_where	m1_p1
 | |
| #define reboot_flag	m1_i1
 | |
| #define reboot_code	m1_p1
 | |
| #define reboot_strlen	m1_i2
 | |
| #define svrctl_req	m2_i1
 | |
| #define svrctl_argp	m2_p1
 | |
| #define stime      	m2_l1
 | |
| #define memsize      	m4_l1
 | |
| #define membase      	m4_l2
 | |
| #define sysuname_req	m1_i1
 | |
| #define sysuname_field	m1_i2
 | |
| #define sysuname_len	m1_i3
 | |
| #define sysuname_value	m1_p1
 | |
| 
 | |
| /* The following names are synonyms for the variables in a reply message. */
 | |
| #define reply_res	m_type
 | |
| #define reply_res2	m2_i1
 | |
| #define reply_res3	m2_i2
 | |
| #define reply_ptr	m2_p1
 | |
| #define reply_mask	m2_l1 	
 | |
| #define reply_trace	m2_l2 	
 | |
| #define reply_time      m2_l1
 | |
| #define reply_utime     m2_l2
 | |
| #define reply_t1 	m4_l1
 | |
| #define reply_t2 	m4_l2
 | |
| #define reply_t3 	m4_l3
 | |
| #define reply_t4 	m4_l4
 | |
| #define reply_t5 	m4_l5
 | |
| 
 |