summaryrefslogtreecommitdiff
path: root/mach-defpager/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'mach-defpager/setup.c')
-rw-r--r--mach-defpager/setup.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/mach-defpager/setup.c b/mach-defpager/setup.c
index 05c19f33..080b0fa6 100644
--- a/mach-defpager/setup.c
+++ b/mach-defpager/setup.c
@@ -22,6 +22,11 @@
#include <stddef.h>
#include <assert.h>
#include <mach.h>
+#include <string.h>
+#include <strings.h>
+
+#include <default_pager.h>
+#include <kalloc.h>
#include "file_io.h"
#include "default_pager_S.h"
@@ -32,9 +37,6 @@ int page_aligned (vm_offset_t num)
return trunc_page (num) == num;
}
-/* From serverboot/kalloc.c. */
-extern void *kalloc (vm_size_t);
-
extern mach_port_t default_pager_default_port; /* default_pager.c */
kern_return_t
@@ -87,7 +89,7 @@ S_default_pager_paging_storage (mach_port_t pager,
fdp->runs[i].length = runs[i + 1];
if (fdp->runs[i].start + fdp->runs[i].length > devsize)
{
- kfree (fdp);
+ kfree (fdp, offsetof (struct file_direct, runs[nrun]));
return EINVAL;
}
fdp->fd_size += fdp->runs[i].length;
@@ -295,7 +297,7 @@ remove_paging_file (char *file_name)
struct file_direct *fdp = 0;
kern_return_t kr;
- kr = destroy_paging_partition(file_name, &fdp);
+ kr = destroy_paging_partition(file_name, (void **)&fdp);
if (kr == KERN_SUCCESS && fdp != 0)
{
mach_port_deallocate (mach_task_self (), fdp->device);