summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/kmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ipfilter/kmem.c')
-rw-r--r--contrib/ipfilter/kmem.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/contrib/ipfilter/kmem.c b/contrib/ipfilter/kmem.c
index 254bbf9..5cb0efd 100644
--- a/contrib/ipfilter/kmem.c
+++ b/contrib/ipfilter/kmem.c
@@ -46,7 +46,7 @@
#if !defined(lint)
static const char sccsid[] = "@(#)kmem.c 1.4 1/12/96 (C) 1992 Darren Reed";
-static const char rcsid[] = "@(#)$Id: kmem.c,v 2.2.2.14 2002/04/17 17:44:44 darrenr Exp $";
+static const char rcsid[] = "@(#)$Id: kmem.c,v 2.2.2.15 2002/07/27 15:59:37 darrenr Exp $";
#endif
#ifdef __sgi
@@ -55,7 +55,7 @@ typedef int kvm_t;
static int kvm_fd = -1;
static char *kvm_errstr;
-kvm_t kvm_open(kernel, core, swap, mode, errstr)
+kvm_t *kvm_open(kernel, core, swap, mode, errstr)
char *kernel, *core, *swap;
int mode;
char *errstr;
@@ -65,17 +65,18 @@ char *errstr;
if (core == NULL)
core = "/dev/kmem";
kvm_fd = open(core, mode);
- return (kvm_fd >= 0) ? (kvm_t)&kvm_fd : NULL;
+ return (kvm_fd >= 0) ? (kvm_t *)&kvm_fd : NULL;
}
int kvm_read(kvm, pos, buffer, size)
-kvm_t kvm;
+kvm_t *kvm;
u_long pos;
char *buffer;
size_t size;
{
- int r, left;
+ size_t left;
char *bufp;
+ int r;
if (lseek(*kvm, pos, 0) == -1) {
fprintf(stderr, "%s", kvm_errstr);
@@ -97,13 +98,19 @@ static kvm_t *kvm_f = NULL;
int openkmem(kern, core)
char *kern, *core;
{
+ union {
+ int ui;
+ kvm_t *uk;
+ } k;
+
kvm_f = kvm_open(kern, core, NULL, O_RDONLY, "");
if (kvm_f == NULL)
{
perror("openkmem:open");
return -1;
}
- return (int)kvm_f;
+ k.uk = kvm_f;
+ return k.ui;
}
int kmemcpy(buf, pos, n)
@@ -120,7 +127,7 @@ register int n;
if (openkmem(NULL, NULL) == -1)
return -1;
- while ((r = kvm_read(kvm_f, pos, buf, n)) < n)
+ while ((r = kvm_read(kvm_f, pos, buf, (size_t)n)) < n)
if (r <= 0)
{
fprintf(stderr, "pos=0x%x ", (u_int)pos);
@@ -152,7 +159,7 @@ register int n;
while (n > 0)
{
- r = kvm_read(kvm_f, pos, buf, 1);
+ r = kvm_read(kvm_f, pos, buf, (size_t)1);
if (r <= 0)
{
fprintf(stderr, "pos=0x%x ", (u_int)pos);
OpenPOWER on IntegriCloud