summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlavio Cruz <flaviocruz@gmail.com>2023-04-15 01:12:20 -0400
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-04-15 08:34:08 +0200
commitac2803b4119db5e7c4eb56837f83811c51ec3ea0 (patch)
tree4d10a78bd57445ab7349cff0015dfa5857c4842b
parent608123211f8b4065863f866cd3abd9589731de6a (diff)
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.defs8
-rw-r--r--mach-defpager/default_pager.c28
-rw-r--r--mach-defpager/default_pager.h2
-rw-r--r--mach-defpager/setup.c50
-rw-r--r--sutils/swapon.c57
-rw-r--r--trans/proxy-defpager.c12
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,