diff options
author | Flavio Cruz <flaviocruz@gmail.com> | 2023-04-15 01:12:20 -0400 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-04-15 08:34:08 +0200 |
commit | ac2803b4119db5e7c4eb56837f83811c51ec3ea0 (patch) | |
tree | 4d10a78bd57445ab7349cff0015dfa5857c4842b | |
parent | 608123211f8b4065863f866cd3abd9589731de6a (diff) | |
download | hurd-ac2803b4119db5e7c4eb56837f83811c51ec3ea0.tar.gz hurd-ac2803b4119db5e7c4eb56837f83811c51ec3ea0.tar.bz2 hurd-ac2803b4119db5e7c4eb56837f83811c51ec3ea0.zip |
Remove default_pager_paging_file RPC from default pager
The default_pager_paging_storage RPC has already it more than 20 years
ago. Given that we want to change the type of default_pager_filename_t
to use c_string, we can just remove the unused RPC.
Tested that swapon/swapoff still work with the new binaries.
Message-Id: <ZDoyNOE0XB77d5xj@mars.tail36e24.ts.net>
-rw-r--r-- | hurd/default_pager.defs | 8 | ||||
-rw-r--r-- | mach-defpager/default_pager.c | 28 | ||||
-rw-r--r-- | mach-defpager/default_pager.h | 2 | ||||
-rw-r--r-- | mach-defpager/setup.c | 50 | ||||
-rw-r--r-- | sutils/swapon.c | 57 | ||||
-rw-r--r-- | trans/proxy-defpager.c | 12 |
6 files changed, 9 insertions, 148 deletions
diff --git a/hurd/default_pager.defs b/hurd/default_pager.defs index 14a5ec40..6b834584 100644 --- a/hurd/default_pager.defs +++ b/hurd/default_pager.defs @@ -65,13 +65,7 @@ routine default_pager_object_pages( out pages : default_pager_page_array_t, CountInOut, Dealloc); -/* This is the original Mach call, now deprecated in favor - of default_pager_paging_storage. */ -routine default_pager_paging_file( - default_pager : mach_port_t; - master_device_port : mach_port_t; - filename : default_pager_filename_t; - add : boolean_t); +skip; /* default_pager_paging_file */ skip; /* default_pager_register_fileserver */ diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c index 054820a9..a547ade8 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -3663,34 +3663,6 @@ extern mach_port_t bootstrap_master_device_port; extern mach_port_t bootstrap_master_host_port; kern_return_t -S_default_pager_paging_file (mach_port_t pager, - mach_port_t mdport, - const_default_pager_filename_t file_name, - boolean_t add) -{ - kern_return_t kr; - - if (pager != default_pager_default_port) - return KERN_INVALID_ARGUMENT; - -#if 0 -dprintf("bmd %x md %x\n", bootstrap_master_device_port, mdport); -#endif - if (add) { - kr = add_paging_file(bootstrap_master_device_port, - file_name, 0); - } else { - kr = remove_paging_file(file_name); - } - - /* XXXX more code needed */ - if (mdport != bootstrap_master_device_port) - mach_port_deallocate( mach_task_self(), mdport); - - return kr; -} - -kern_return_t default_pager_register_fileserver(mach_port_t pager, mach_port_t fileserver) { diff --git a/mach-defpager/default_pager.h b/mach-defpager/default_pager.h index 97d2a343..85bae71b 100644 --- a/mach-defpager/default_pager.h +++ b/mach-defpager/default_pager.h @@ -33,8 +33,6 @@ void create_paging_partition(const char *name, struct file_direct *fdp, int isa_file, int linux_signature); kern_return_t destroy_paging_partition(const char *name, void **pp_private); -kern_return_t add_paging_file(mach_port_t master_device_port, - const char *file_name, int linux_signature); kern_return_t remove_paging_file (const char *file_name); void paging_space_info(vm_size_t *totp, vm_size_t *freep); diff --git a/mach-defpager/setup.c b/mach-defpager/setup.c index 7b32ea9f..8cd1fed2 100644 --- a/mach-defpager/setup.c +++ b/mach-defpager/setup.c @@ -237,56 +237,6 @@ page_write_file_direct(struct file_direct *fdp, } -/* Compatibility entry points used by default_pager_paging_file RPC. */ - -kern_return_t -add_paging_file(mach_port_t master_device_port, - const char *file_name, - int linux_signature) -{ - error_t err; - mach_port_t dev; - int sizes[DEV_GET_SIZE_COUNT]; - natural_t count; - const char *devname = file_name; - - assert_backtrace (linux_signature == 0); - - if (!strncmp (file_name, "/dev/", 5)) - devname += 5; - - err = device_open (master_device_port, D_READ|D_WRITE, devname, &dev); - if (err) - return err; - - count = DEV_GET_SIZE_COUNT; - err = device_get_status (dev, DEV_GET_SIZE, sizes, &count); - if (!err && count < DEV_GET_SIZE_COUNT) - err = EGRATUITOUS; - if (err) - mach_port_deallocate (mach_task_self (), dev); - else - { - struct file_direct *fdp; - fdp = malloc (offsetof (struct file_direct, runs[1])); - if (fdp == 0) - return ENOMEM; - - fdp->device = dev; - fdp->fd_bsize = sizes[DEV_GET_SIZE_RECORD_SIZE]; - fdp->bshift = ffs (sizes[DEV_GET_SIZE_RECORD_SIZE]) - 1; - fdp->fd_size = sizes[DEV_GET_SIZE_DEVICE_SIZE] >> fdp->bshift; - fdp->nruns = 1; - fdp->runs[0].start = 0; - fdp->runs[0].length = fdp->fd_size; - - /* Now really do it. */ - create_paging_partition (file_name, fdp, 0, 0); - } - - return err; -} - /* * Destroy a paging_partition given a file name */ diff --git a/sutils/swapon.c b/sutils/swapon.c index 78a45908..2ee3cd7f 100644 --- a/sutils/swapon.c +++ b/sutils/swapon.c @@ -362,10 +362,8 @@ swaponoff (const char *file, int add, int skipnotexisting) { error_t err; struct store *store; - static int old_protocol; int quiet_now = 0; - try_again: err = store_open (file, 0, 0, &store); if (err) { @@ -377,23 +375,7 @@ swaponoff (const char *file, int add, int skipnotexisting) return err; } - /* Let's see what we've got. */ - if (old_protocol) - { - /* The default pager only lets us give a whole partition, and - it will read the signature page (but not insist on it). */ - if (! (store->flags & STORE_ENFORCED)) - { - error (0, 0, "%s: Can only page to the entire device", file); - return EINVAL; - } - /* If we want to require the signature, we can check that it is - actually there even though we won't be the one interpreting it. */ - if (require_signature - && check_signature (file, &store, 1, quiet_now) != 0) - return EINVAL; - } - else if (ignore_signature) + if (ignore_signature) verbose ("%s: %uk swap space", file, (unsigned int) (store->size / 1024)); else @@ -420,38 +402,15 @@ swaponoff (const char *file, int add, int skipnotexisting) get_def_pager(); - if (old_protocol) - { - /* The default pager does not support the new protocol. - We tried it in a previous call (below) and got MIG_BAD_ID. */ - err = default_pager_paging_file (def_pager, dev_master, file, add); - } - else + recnum_t runs[store->num_runs * 2]; + size_t i, j; + for (i = j = 0; i < store->num_runs; ++i) { - /* Try the new protocol, which will take our list of runs. */ - recnum_t runs[store->num_runs * 2]; - size_t i, j; - for (i = j = 0; i < store->num_runs; ++i) - { - runs[j++] = store->runs[i].start; - runs[j++] = store->runs[i].length; - } - err = default_pager_paging_storage (def_pager, store->port, - runs, j, file, add); - if (err == MIG_BAD_ID) - { - /* The default pager does not support the new protocol. - We'll do the whole thing over again, since we have - different requirements now. */ - old_protocol = 1; - store_free (store); - if (! ignore_signature) - error (0, 0, "\ -default pager uses old protocol, does its own signature checking"); - quiet_now = 1; - goto try_again; - } + runs[j++] = store->runs[i].start; + runs[j++] = store->runs[i].length; } + err = default_pager_paging_storage (def_pager, store->port, + runs, j, file, add); store_free (store); diff --git a/trans/proxy-defpager.c b/trans/proxy-defpager.c index bfeda063..878beffe 100644 --- a/trans/proxy-defpager.c +++ b/trans/proxy-defpager.c @@ -99,18 +99,6 @@ S_default_pager_object_pages (mach_port_t default_pager, pages, pagesCnt); } - -kern_return_t -S_default_pager_paging_file (mach_port_t default_pager, - mach_port_t master_device_port, - const_default_pager_filename_t filename, - boolean_t add) -{ - return allowed (default_pager, O_WRITE) - ?: default_pager_paging_file (real_defpager, dev_master, filename, add) - ?: mach_port_deallocate (mach_task_self (), master_device_port); -} - kern_return_t S_default_pager_paging_storage (mach_port_t default_pager, mach_port_t device, |