99 Commits

Author SHA1 Message Date
Lionel Sambuc
ee2f1ee4cd Message type for PM_WAITPID
Change-Id: Ic2637a30418b9c780504f21a93ee80cef09ee1f2
2014-07-28 17:05:35 +02:00
Lionel Sambuc
de7aa3340b Message type for PM_GETEPINFO
Change-Id: I275f5c50d433fa400c5eddbc85dd3df8eb5dcb90
2014-07-28 17:05:35 +02:00
Lionel Sambuc
a1c31f335c Message type for PM_GETPROCNR
Change-Id: I4fcd682f78255afc1fdc0160fb6f1a3d2fe05d2e
2014-07-28 17:05:34 +02:00
Lionel Sambuc
7031438f58 Message type and related cleanup
- Intorduce and use a message type for VFS_GETDENTS, VFS_READ,
   VFS_WRITE.

 - Some cleanup to related functions where vir_bytes are replaced (and
   casted to/from, in parameter definition and local variables as well.

   This allow to see more clearly which function receives unsafe
   (pointer) values, or at least values which are not supposed to be
   valid in the address space of VFS. The current patch does so only
   for the minimal amount of functions which are concerned with the
   introduction of the new message type.

Change-Id: I0cdca97409c4016d02fae067b48bf55d37572c5c
2014-07-28 17:05:34 +02:00
Lionel Sambuc
2101b4ebc0 Message type for VFS_CLOSE
Change-Id: Iebe5f06b0dc95cdca61d95ab875d4fa1171f4f4c
2014-07-28 17:05:34 +02:00
Lionel Sambuc
6c61cd5665 Message type for VFS_FCHMOD
Change-Id: I933e5b5a214aa9e7ddb6546b459ef40688e8ca04
2014-07-28 17:05:34 +02:00
Lionel Sambuc
4635162db2 Message type for VFS_FCHDIR
Change-Id: Ie7de90d37a39e89f35438a5b01a9e878a06194b2
2014-07-28 17:05:34 +02:00
Lionel Sambuc
698d2bd2a1 Message type for VFS_{,F}CHOWN
Change-Id: Ieb8cef45bfab1e35ad8854038c72b59a4d7bbaad
2014-07-28 17:05:34 +02:00
Lionel Sambuc
c869546226 Message type for VFS_CREAT
Change-Id: Ica111f1b2005a6ff42dc3bb59ac3158a2e12678c
2014-07-28 17:05:33 +02:00
Lionel Sambuc
cef3ce969a Message type for path related calls.
- Updated system calls VFS_ACCESS, VFS_CHDIR, VFS_CHMOD, VFS_CHROOT,
                        VFS_MKDIR, VFS_OPEN, VFS_RMDIR, VSF_UNLINK

 - Removed M3_STRING and M3_LONG_STRING, which are tied to a specific
   "generic" message, and replaced where needed with M_PATH_STRING_MAX,
   which is tied to the mess_lc_vfs_path message.

Change-Id: If287c74f5ece937b9431e5d95b5b58a3c83ebff1
2014-07-28 17:05:33 +02:00
Lionel Sambuc
96b3577b2c Message type for VFS_MKNOD
Change-Id: Ief8c6664d79c320a70543c10b758b784fdfa7cfd
2014-07-28 17:05:33 +02:00
Lionel Sambuc
6d903b914c Message type for VFS_FCNTL
Change-Id: I079f3d7902cf5501fbc594a5610acd370abea095
2014-07-28 17:05:33 +02:00
Lionel Sambuc
bb2b07940c Message type for VFS_FSTAT
Change-Id: Ibdedcac120fc4bf78e28291d9c97fe02df1928db
2014-07-28 17:05:33 +02:00
Lionel Sambuc
cd0fd5e725 Message type for VFS_{,L}STAT
Change-Id: I61db8484c14f0371214a0495774dc0b1d97f2099
2014-07-28 17:05:33 +02:00
Lionel Sambuc
c5b1fc6f0d Message type for VFS_READLINK
Change-Id: I5da187cd22147448daa5a82568f0bd8bdcc2906f
2014-07-28 17:05:32 +02:00
Lionel Sambuc
1db8ecf0e4 Message type for VFS_{LINK,SYMLINK,RENAME}
Change-Id: If4569bac4584e053b7c4816fe47338327175fd44
2014-07-28 17:05:32 +02:00
Lionel Sambuc
74b01e0c2c Message type for VFS_UMASK
Change-Id: Iaf8f83593adbbf50b82feecbe8fad004da2add72
2014-07-28 17:05:32 +02:00
Lionel Sambuc
3bae8fe45a Message type for VFS_PIPE2
Change-Id: I01c599cf035d8f103220baae54fefbc80d12fbd2
2014-07-28 17:05:32 +02:00
Lionel Sambuc
befa020a9e Message type for VFS_TRUNCATE
Change-Id: I6f51c979c8986660883221d3acfa07d1c1b25dff
2014-07-28 17:05:32 +02:00
Lionel Sambuc
268d670a85 Message type for VFS_LSEEK
Change-Id: I592284078572e4abf2b181d3b4e8281c9baf8a7b
2014-07-28 17:05:32 +02:00
Lionel Sambuc
9ceebd7a4b Message type for VFS_FSYNC
Change-Id: Iae9d27dbf40bc5567de6c5960f5cbe174be00dbd
2014-07-28 17:05:31 +02:00
Lionel Sambuc
feb9b541da Message type for VFS_MAPDRIVER
Change-Id: I979a8769b72cd06efbedf0c6735ac3cd0c4dd2e3
2014-07-28 17:05:31 +02:00
Lionel Sambuc
6fb0c605fd Message type for VFS_COPYFD
Change-Id: I7aff1b9551d3a60b2191de1bac3b695ea06b73ce
2014-07-28 17:05:31 +02:00
Lionel Sambuc
8830643ac3 Message type for VFS_CHECKPERMS
Change-Id: Ie97bb7362d108ebba268c719a6614fc2fe1392cf
2014-07-28 17:05:31 +02:00
Lionel Sambuc
a57fc8f683 Message type for VFS_IOCTL
Change-Id: Ibea0fd2f443c1332bf1c9d138840d838bfc81d81
2014-07-28 17:05:31 +02:00
Lionel Sambuc
a16ccbaaf8 Message type for VFS_UMOUNT
Change-Id: Ia3b8e818b45a31178215cad77fa0fa3e5325f18a
2014-07-28 17:05:31 +02:00
Lionel Sambuc
ecc9010c4b Message type for VFS_MOUNT
Change-Id: I4114f5a1aa4f9efe49a12996722499b695c17230
2014-07-28 17:05:30 +02:00
Lionel Sambuc
ad7e3e56c8 Message type for VFS_{,F}STATVFS1
Change-Id: Iaf71cdddb48f64d84773029da2c0666f5462f198
2014-07-28 17:05:30 +02:00
Lionel Sambuc
ccdf11c7cf Message type for VFS_GETVFSSTAT
Change-Id: I27f1f6dc37832ee4adb9854c7306ce6153e31567
2014-07-28 17:05:30 +02:00
Lionel Sambuc
7332005370 Message type for VFS_SELECT
Change-Id: Ifd6cb7082dd528f1698a0ca070de447aad85ba60
2014-07-28 17:05:30 +02:00
Ben Gras
e6daf20a69 64-bit VFS_LSEEK_OFF
Change-Id: Ic0b6d65cbde1033462b909436efa92464094f1ec
2014-07-28 17:05:11 +02:00
Ben Gras
188a5fde1f 64-bit VFS_TRUNCATE_OFF
Change-Id: I4bd5cc57ddda2525b0bec6f044f35196a2c21f2e
2014-07-28 17:05:10 +02:00
Lionel Sambuc
b33edbfe7a Removing VFS_UTIMENS_* field macros.
Change-Id: I3be1acfbb77b6e229d784d8dbc3ceec1b26abf90
2014-03-03 20:47:00 +01:00
Lionel Sambuc
4a0199d66d PM_TIME_SEC into 64bit
Change-Id: I609ee8cac7aae8af2c0c0381710433a5df0caebd
2014-03-03 20:45:28 +01:00
Lionel Sambuc
37598dccf1 Aligning dev_t to 64bits.
Change-Id: I630f72f8530dd4aaf05c35ca23683ae12c9f8328
2014-03-02 12:28:32 +01:00
Ben Gras
8ccb12bb5a use netbsd <sys/signal.h> and sigset_t
. create signals-related struct message type to store sigset_t
	  directly
	. create notify-specific message types, so the generic NOTIFY_ARG
	  doesn't exist anymore
	. various related test expansions, improvements, fixes
	. add a few error-checks to sigismember() calls
	. rename kernel call specific signals fields to SYS_*

Change-Id: I53c18999b5eaf0cfa0cb25f5330bee9e7ad2b478
2014-03-02 12:28:31 +01:00
David van Moolenbroek
24ec0d73b5 Clean up interface to PM and VFS
- introduce new call numbers, names, and field aliases;
- initialize request messages to zero for all ABI calls;
- format callnr.h in the same way as com.h;
- redo call tables in both servers;
- remove param.h namespace pollution in the servers;
- make brk(2) go to VM directly, rather than through PM;
- remove obsolete BRK, UTIME, and WAIT calls;
- clean up path copying routine in VFS;
- move remaining system calls from libminlib to libc;
- correct some errno-related mistakes in libc routines.

Change-Id: I2d8ec5d061cd7e0b30c51ffd77aa72ebf84e2565
2014-03-01 09:05:01 +01:00
David van Moolenbroek
44d3230e40 For common calls, give servers unique call numbers
The getsysinfo(2), getrusage(2), and svrctl(2) calls used the same
call number to different services. Since we want to give each service
its own call number ranges, this is no longer tenable. This patch
introduces per-service call numbers for these calls.

Note that the remainder of the COMMON_ range is left intact, as these
the remaining requests in it are processed by SEF and thus server-
agnostic. The range should really be prefixed with SEF_ now.

Change-Id: I80d728bbeb98227359c525494c433965b40fefc3
2014-03-01 09:05:00 +01:00
David van Moolenbroek
80bd109cd3 libsys: various updates
- move system calls for use by services from libminlib into libsys;
- move srv_fork(2) and srv_kill(2) from RS and into libsys;
- replace getprocnr(2) with sef_self(3);
- rename previous getnprocnr(2) to getprocnr(2);
- clean up getepinfo(2);
- change all libsys calls that used _syscall to use _taskcall, so as
  to avoid going through errno to pass errors; this is already how
  most calls work anyway, and many of the calls previously using
  _syscall were already assumed to return the actual error;
- initialize request messages to zero, for future compatibility
  (note that this does not include PCI calls, which are in need of a
  much bigger overhaul, nor kernel calls);
- clean up more of dead DS code as a side effect.

Change-Id: I8788f54c68598fcf58e23486e270c2d749780ebb
2014-03-01 09:05:00 +01:00
David van Moolenbroek
4d4e70daaa PM: remove obsolete ALARM, PAUSE, TIMES calls
NetBSD libc implements these as wrappers around setitimer(2),
sigsuspend(2), and getrusage(2), respectively.

Change-Id: I0c5e725b3e1316bddd3a3ff7ef65d57d30afd10d
2014-03-01 09:04:59 +01:00
David van Moolenbroek
e5cc85fdc4 Extend dupfrom(2) into copyfd(2)
This single function allows copying file descriptors from and to
processes, and closing a previously copied remote file descriptor.
This function replaces the five FD-related UDS backcalls. While it
limits the total number of in-flight file descriptors to OPEN_MAX,
this change greatly improves crash recovery support of UDS, since all
in-flight file descriptors will be closed instead of keeping them
open indefinitely (causing VFS to crash on system shutdown). With the
new copyfd call, UDS becomes simpler, and the concept of filps is no
longer exposed outside of VFS.

This patch also moves the checkperms(2) stub into libminlib, thus
fully abstracting away message details of VFS communication from UDS.

Change-Id: Idd32ad390a566143c8ef66955e5ae2c221cff966
2014-03-01 09:04:58 +01:00
David van Moolenbroek
b003ed0929 UDS: split off from PFS
Change-Id: I769cbd64aa6e5e85a797caf0f8bbb4c20e145263
2014-03-01 09:04:57 +01:00
David van Moolenbroek
dba2d1f8b4 VFS: add dupfrom(2) call
This call copies a file descriptor from a remote process into the
calling process. The call is for the VND driver only, and in the
future, ACLs will prevent any other process from using this call.

Change-Id: Ib16fdd1f1a12cb38a70d7e441dad91bc86898f6d
2014-03-01 09:04:54 +01:00
David van Moolenbroek
f6915d3dee Make PFS backcalls regular VFS calls
- prefix them with VFS_ as they are going to VFS;
- give these calls normal call numbers;
- give them their own set of message field aliases;
- also make do_mapdriver a regular call.

Change-Id: I2140439f288b06d699a1f65438bd8306509b259e
2014-03-01 09:04:52 +01:00
David van Moolenbroek
6331e8f845 Retire the synchronous character driver protocol
- change all sync char drivers into async drivers;
- retire support for the sync protocol in libchardev;
- remove async dev style, as this is now the default;
- remove dev_status from VFS;
- clean up now-unused protocol messages.

Change-Id: I6aacff712292f6b29f2ccd51bc1e7d7003723e87
2014-02-18 11:25:02 +01:00
David van Moolenbroek
24ed4e38de Remove support for obsolete 3.2.1 ABI
Change-Id: I76b4960bda41f55d9c42f8c99c5beae3424ca851
2014-02-18 11:25:02 +01:00
David van Moolenbroek
8143b9bf1d Implement support for [f]statvfs1(2)
The [f]statvfs(3) calls now use [f]statvfs1(2).

Change-Id: I949c177fc14abf976e45165c342f897f4ec988ee
2014-02-18 11:25:02 +01:00
David van Moolenbroek
266239fe64 Implement support for getvfsstat(2)
Change-Id: I99b697919d411c57105de561105beefc7d1d309a
2014-02-18 11:25:02 +01:00
David van Moolenbroek
f10229eafb VFS/FS: remove fstatfs(2) and REQ_FSTATFS
The fstatfs(3) call now uses fstatvfs(2).

Change-Id: I3fa5d31f078457b4d80418c23060bb2c148cb460
2014-02-18 11:25:01 +01:00
Thomas Veerman
c1a31d53d9 stat.h: remove some big_ types
Change-Id: I84017db3d54edfb823cc52e02d0b07fccb003988
2014-02-18 11:25:01 +01:00