aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Update to the improved memory_object_create proxy RPCSamuel Thibault2022-08-102-5/+4
| | | | Thus avoiding two RPCs.
* Do not cache the R/O proxySamuel Thibault2022-08-109-53/+22
| | | | | We cannot properly detect when to release the ro_proxy, so let's just not cache it.
* tmpfs: Return read-only memory objects when appropriateSergey Bugaev2022-08-102-7/+32
|
* fatfs: Return read-only memory objects when appropriateSergey Bugaev2022-08-101-6/+13
|
* ext2fs: Return read-only memory objects when appropriateSergey Bugaev2022-08-101-34/+39
|
* libpager: Add pager_get_ro_port ()Sergey Bugaev2022-08-106-1/+73
| | | | | A pager will now maintain a port to a read-only memory object proxy for itself, and let the users access it with pager_get_ro_port ().
* isofs: Assert we're only supposed to provide a read-only pagerSergey Bugaev2022-08-101-0/+3
|
* fatfs: Properly reference pagerSergey Bugaev2022-08-101-48/+49
| | | | | | | | A node keeps a weak reference on the pager as long as diskfs_node_disknode (node)->pager points to it. A pager keeps a light reference on the node as long as the UPI is alive. This is the same way it's done in ext2fs.
* exec: Support ELIBEXEC errorSamuel Thibault2022-04-121-0/+7
| | | | | So users get a "Cannot exec a shared library directly" error message instead of a segfault.
* rumpdisk: Note multithreading FIXME as doneSamuel Thibault2022-03-011-6/+2
|
* libpager: Make it a bit parallelSamuel Thibault2022-03-011-1/+1
| | | | | | | | Making libpager use several workers allows it to queue several requests to the disk (e.g. for different processes faulting data) rather than waiting for them sequentially. * libpager/demuxer.c (WORKER_COUNT): Set to 10.
* rumpdisk: Override machdev_server with multithread port managementDamien Zammit2022-03-011-1/+16
| | | | | | | This makes rumpdisk multithreaded as much as the root filesystem pager will request. Message-Id: <20220227091013.33112-4-damien@zamaudio.com>
* libmachdev: Export demuxer as machdev_demuxer and bucket pointerDamien Zammit2022-03-012-3/+6
| | | | | | This will allow callers to manage their own server routine. Message-Id: <20220227091013.33112-3-damien@zamaudio.com>
* libmachdev: No-op fix styling of functionsDamien Zammit2022-03-011-4/+8
| | | | Message-Id: <20220227091013.33112-2-damien@zamaudio.com>
* pci-arbiter: Remove invalid pci_device_closeDamien Zammit2022-02-281-8/+1
| | | | | | | | | | | pci_control_port is not a port info so calling deref on it is invalid. There seems no reason to have a device_close for the pci device currently so remove it. TESTED via booting a rump disk Message-Id: <20220227075155.30750-1-damien@zamaudio.com>
* rumpdisk: Protect open/close/read/write with a rwlockDamien Zammit2022-02-271-11/+66
| | | | | | TESTED to boot off a rump based disk Message-Id: <20220227002655.23300-1-damien@zamaudio.com>
* rumpdisk: Do not set a number of bytes in case of errorsSamuel Thibault2022-02-251-9/+2
| | | | | | | The RPC stub will not read it on error anyway. * rumpdisk/block-rump.c (rumpdisk_device_write, rumpdisk_device_read): Do not set the number of bytes when returning an error.
* rumpdisk: Fix warningSamuel Thibault2022-02-251-1/+1
| | | | | | | gcc would complain that dummy_read is unused * rumpdisk/block-rump.c (rumpdisk_device_write): Mark dummy_read with attribute unused.
* Fix store_read callsSamuel Thibault2022-02-253-6/+5
| | | | | | | | | | | store_read takes a look at the size to determine whether to fill the provided buffer or not. Even if providing a null buffer we should set the size to 0. * defpager/defpager.c (pager_read_page): Initialize nread to 0. * storeio/dev.c (buffered_rw): Initialize amount to 0. * fatfs/fat.c (fat_read_sblock): Initialize read to the size of the boot sector. Reuse it as such.
* mtab: turn part:x:device:y into /dev/ysxSamuel Thibault2022-02-251-1/+17
| | | | | This is needed when using a rumpdisk-based root disk. Otherwise fsck does not properly detect when it is mounted.
* rumpdisk: Fix BLKRRPART valueSamuel Thibault2022-02-221-1/+1
| | | | | We have always been using the Linux value, coming from the Linux glue code.
* libmachdev: Register translator for shutdown notificationSamuel Thibault2022-02-201-0/+2
| | | | | When starting a libmachdev translator after bootstrap, we still want the translator to be notified by startup, to properly flush buffers etc.
* mount: Avoid appending empty options to empty mntoptsSamuel Thibault2022-02-201-1/+2
| | | | argz_append does not actually support this.
* mount: Fix deleting noauto/bind optionSamuel Thibault2022-02-201-2/+11
| | | | | After deleting an option, we have to let the loop continue from there instead of skipping another option.
* rumpdisk: cope with unaligned and big accessesSamuel Thibault2022-02-181-27/+86
| | | | | | | Unaligned accesses need a copy into an aligned buffer. Accesses larger than a page currently have to be split into pages, otherwise _bus_dmamap_load_buffer assumes coherent physical allocations.
* acpi: Remove erroneous MAP_FIXEDDamien Zammit2022-02-121-3/+3
| | | | | | | Reading the man page for mmap, MAP_FIXED needs to be removed, because we do not want the mapping to be placed at 0. Message-Id: <20220212215736.28433-1-damien@zamaudio.com>
* Fix warningSamuel Thibault2022-02-121-1/+1
| | | | | | * startup/startup.c (S_io_restrict_auth): Cast const uid_t * pointer to uid_t * when using it in struct idvec which always uses a uid_t* even when reading it.
* Silence warningSamuel Thibault2022-02-121-1/+1
| | | | | | | Since gcc doesn't seem to discover that underlying is not used uninitialized. * utils/mount.c (do_mount): Initialize underlying to MACH_PORT_NULL.
* Fix warningSamuel Thibault2022-02-121-1/+1
| | | | | * utils/msgport.c (cmd_umask): Use int instead of mode_t for umask, since msg_get_init_int takes an int*.
* Fix warningSamuel Thibault2022-02-121-1/+1
| | | | | * pfinet/socket-ops.c (S_socket_setopt): Cast data into char* before passing it to Linux' setsockopt which erroneously takes a char*.
* Fix warningSamuel Thibault2022-02-122-2/+2
| | | | | | * pfinet/io-ops.c (S_io_write), pfinet/socket-ops.c (S_socket_send): Cast const void * pointer to void * when using it in struct iovec which always uses a void* even when writing.
* Fix warningSamuel Thibault2022-02-121-1/+1
| | | | | * isofs/lookup.c (diskfs_lookup_hard): Make sure we return ENOENT in the theoretical case that the directory would be completely empty.
* Fix warningSamuel Thibault2022-02-121-1/+1
| | | | | * term/devio.c (ports_do_mach_notify_send_once): Use io_buf_ptr_inband_t type instead of automatically-sized array.
* Fix warningSamuel Thibault2022-02-121-1/+1
| | | | | | libmachdev/ds_routines.c (ds_device_write_inband): Replace const_io_buf_ptr_inband_t with const io_buf_ptr_inband_t, as generated by mig.
* configure.ac: Drop unneeded backquote escapingSamuel Thibault2022-02-121-2/+2
|
* Update m4/libgcrypt.m4Samuel Thibault2022-02-121-14/+38
| | | | m4/libgcrypt.m4: Refresh from upstream libgcrypt.
* Replace AC_TRY_COMPILE with AC_COMPILE_IFELSESamuel Thibault2022-02-121-5/+6
| | | | | | The former is obsolete. configure.ac: Replace AC_TRY_COMPILE with AC_COMPILE_IFELSE.
* FIXME noteSamuel Thibault2022-02-071-0/+2
|
* rumpdisk: add missing device_close on probing kernel driversSamuel Thibault2022-02-061-0/+2
| | | | If any device_open succeeds, we should clean its effect.
* rumpdisk: add missing device_close on probing kernel driversSamuel Thibault2022-02-051-0/+2
| | | | If any device_open succeeds, we should clean its effect.
* Change a EIO by a ENOSPC in case where not enough spaceEtienne Brateau2022-01-231-1/+1
| | | | | | Return a ENOSPC to notify that not enough space is here after the xattr entry instead of returning an EIO. Message-Id: <20220123041715.19402-15-etienne.brateau@gmail.com>
* ext2fs: refactor add a method for dupplicated codeEtienne Brateau2022-01-231-8/+14
| | | | | * xattr: introduce xattr_header_valid method Message-Id: <20220123041715.19402-14-etienne.brateau@gmail.com>
* ext2fs: detect and warn when filesystem is an ext3 fsEtienne Brateau2022-01-231-0/+2
| | | | Message-Id: <20220123041715.19402-12-etienne.brateau@gmail.com>
* ext2fs: resolve a todo, check writability before writingEtienne Brateau2022-01-231-1/+3
| | | | Message-Id: <20220123041715.19402-11-etienne.brateau@gmail.com>
* ext2fs: set the writing time in the superblockEtienne Brateau2022-01-231-0/+2
| | | | Message-Id: <20220123041715.19402-10-etienne.brateau@gmail.com>
* ext2fs: set the f_namelen to the correct valueEtienne Brateau2022-01-231-1/+1
| | | | Message-Id: <20220123041715.19402-9-etienne.brateau@gmail.com>
* ext2fs: Take cares of indiannesEtienne Brateau2022-01-239-284/+311
| | | | | | In ext2 data are stored in little endian to ensure portability. So enforce little endian when manipulating these bytes. Message-Id: <20220123041715.19402-8-etienne.brateau@gmail.com>
* ext2fs: use macro to check flagsEtienne Brateau2022-01-231-11/+13
| | | | | * hyper.c: use macros to check flags Message-Id: <20220123041715.19402-7-etienne.brateau@gmail.com>
* ext2fs: remove unneeded fileEtienne Brateau2022-01-231-6/+0
| | | | Message-Id: <20220123041715.19402-5-etienne.brateau@gmail.com>
* move to ext2_fs.h a #defineEtienne Brateau2022-01-233-6/+4
| | | | | This makes all #define be grouped at the same place Message-Id: <20220123041715.19402-4-etienne.brateau@gmail.com>