[libgtop] server->machine is now a pointer, so propagate the change from . to ->.



commit b74d6abf198854b95ad294a601700713d26166d9
Author: Benoît Dejean <bdejean gmail com>
Date:   Sat Aug 8 14:36:47 2015 +0200

    server->machine is now a pointer, so propagate the change from . to ->.

 sysdeps/aix/cpu.c                |   20 ++++----
 sysdeps/aix/glibtop_suid.h       |    4 +-
 sysdeps/aix/loadavg.c            |    4 +-
 sysdeps/aix/msg_limits.c         |    4 +-
 sysdeps/aix/netload.c            |    4 +-
 sysdeps/aix/open.c               |   16 +++---
 sysdeps/aix/sem_limits.c         |    4 +-
 sysdeps/aix/shm_limits.c         |    4 +-
 sysdeps/aix/utils.c              |   14 +++---
 sysdeps/bsd/cpu.c                |    4 +-
 sysdeps/bsd/glibtop_suid.h       |    4 +-
 sysdeps/bsd/mem.c                |    6 +-
 sysdeps/bsd/msg_limits.c         |    4 +-
 sysdeps/bsd/netload.c            |   10 ++--
 sysdeps/bsd/open.c               |   16 +++---
 sysdeps/bsd/ppp.c                |    4 +-
 sysdeps/bsd/procargs.c           |    4 +-
 sysdeps/bsd/prockernel.c         |   10 ++--
 sysdeps/bsd/proclist.c           |    2 +-
 sysdeps/bsd/procmap.c            |   18 ++++----
 sysdeps/bsd/procmem.c            |   14 +++---
 sysdeps/bsd/procsegment.c        |    2 +-
 sysdeps/bsd/procsignal.c         |    2 +-
 sysdeps/bsd/procstate.c          |    2 +-
 sysdeps/bsd/proctime.c           |    8 ++--
 sysdeps/bsd/procuid.c            |    4 +-
 sysdeps/bsd/sem_limits.c         |    4 +-
 sysdeps/bsd/shm_limits.c         |    4 +-
 sysdeps/bsd/swap.c               |   26 +++++-----
 sysdeps/darwin/glibtop_suid.h    |    4 +-
 sysdeps/darwin/open.c            |   12 ++--
 sysdeps/openbsd/glibtop_suid.h   |    4 +-
 sysdeps/openbsd/msg_limits.c     |    4 +-
 sysdeps/openbsd/netload.c        |    8 ++--
 sysdeps/openbsd/ppp.c            |    4 +-
 sysdeps/openbsd/procargs.c       |    4 +-
 sysdeps/openbsd/prockernel.c     |    2 +-
 sysdeps/openbsd/proclist.c       |    2 +-
 sysdeps/openbsd/procmap.c        |   10 ++--
 sysdeps/openbsd/procmem.c        |    2 +-
 sysdeps/openbsd/procsegment.c    |    2 +-
 sysdeps/openbsd/procsignal.c     |    2 +-
 sysdeps/openbsd/procstate.c      |    2 +-
 sysdeps/openbsd/proctime.c       |    2 +-
 sysdeps/openbsd/procuid.c        |    2 +-
 sysdeps/openbsd/sem_limits.c     |    4 +-
 sysdeps/openbsd/shm_limits.c     |    4 +-
 sysdeps/openbsd/suid_open.c      |   16 +++---
 sysdeps/osf1/glibtop_suid.h      |    4 +-
 sysdeps/osf1/open_suid.c         |   14 +++---
 sysdeps/osf1/proclist.c          |    2 +-
 sysdeps/solaris/cpu.c            |    6 +-
 sysdeps/solaris/glibtop_suid.h   |    4 +-
 sysdeps/solaris/loadavg.c        |    4 +-
 sysdeps/solaris/mem.c            |    8 ++--
 sysdeps/solaris/msg_limits.c     |    4 +-
 sysdeps/solaris/netload.c        |    2 +-
 sysdeps/solaris/open.c           |   94 +++++++++++++++++++-------------------
 sysdeps/solaris/open_suid.c      |   16 +++---
 sysdeps/solaris/procmap.c        |   10 ++--
 sysdeps/solaris/procmem.c        |    2 +-
 sysdeps/solaris/sem_limits.c     |    4 +-
 sysdeps/solaris/shm_limits.c     |    4 +-
 sysdeps/solaris/uptime.c         |    6 +-
 sysdeps/stub_suid/glibtop_suid.h |    4 +-
 sysdeps/stub_suid/open.c         |   12 ++--
 sysdeps/sun4/cpu.c               |    6 +-
 sysdeps/sun4/glibtop_suid.h      |    4 +-
 sysdeps/sun4/loadavg.c           |    4 +-
 sysdeps/sun4/mem.c               |   12 ++--
 sysdeps/sun4/msg_limits.c        |    4 +-
 sysdeps/sun4/open.c              |   86 +++++++++++++++++-----------------
 sysdeps/sun4/proclist.c          |    8 ++--
 sysdeps/sun4/sem_limits.c        |    4 +-
 sysdeps/sun4/shm_limits.c        |    4 +-
 75 files changed, 322 insertions(+), 322 deletions(-)
---
diff --git a/sysdeps/aix/cpu.c b/sysdeps/aix/cpu.c
index c3a7ce0..5843496 100644
--- a/sysdeps/aix/cpu.c
+++ b/sysdeps/aix/cpu.c
@@ -56,7 +56,7 @@ _glibtop_init_cpu_p (glibtop *server)
        {
                return;
        }
-       server->machine.sysinfo_offset = result;
+       server->machine->sysinfo_offset = result;
 
        result = _glibtop_get_kmem_offset(server, "cpuinfo");
        if (result == -1)
@@ -65,9 +65,9 @@ _glibtop_init_cpu_p (glibtop *server)
 
                return;
        }
-       server->machine.cpuinfo_offset = result;
+       server->machine->cpuinfo_offset = result;
 
-       server->machine.cpuinfo = (struct cpuinfo*)calloc(_system_configuration.ncpus, sizeof(struct 
cpuinfo));
+       server->machine->cpuinfo = (struct cpuinfo*)calloc(_system_configuration.ncpus, sizeof(struct 
cpuinfo));
 
        server->sysdeps.cpu = _glibtop_sysdeps_cpu;
 }
@@ -85,7 +85,7 @@ glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
 
        memset (buf, 0, sizeof (glibtop_cpu));
 
-       result = _glibtop_get_kmem_info(server, server->machine.sysinfo_offset,
+       result = _glibtop_get_kmem_info(server, server->machine->sysinfo_offset,
                                        &sysinfo, sizeof(struct sysinfo));
        if (result <= 0)
        {
@@ -100,8 +100,8 @@ glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
 
        buf->total = buf->idle + buf->user + buf->sys + buf->nice ;
 
-       result = _glibtop_get_kmem_info(server, server->machine.cpuinfo_offset,
-                                       server->machine.cpuinfo,
+       result = _glibtop_get_kmem_info(server, server->machine->cpuinfo_offset,
+                                       server->machine->cpuinfo,
                                        _system_configuration.ncpus
                                                * sizeof(struct cpuinfo));
 
@@ -115,13 +115,13 @@ glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
        for (cpu = 0; cpu < MIN(GLIBTOP_NCPU, _system_configuration.ncpus); cpu++)
        {
                buf->xcpu_idle[cpu] =
-                       server->machine.cpuinfo[cpu].cpu[CPU_IDLE];
+                       server->machine->cpuinfo[cpu].cpu[CPU_IDLE];
                buf->xcpu_user[cpu] =
-                       server->machine.cpuinfo[cpu].cpu[CPU_USER];
+                       server->machine->cpuinfo[cpu].cpu[CPU_USER];
                buf->xcpu_sys[cpu] =
-                       server->machine.cpuinfo[cpu].cpu[CPU_KERNEL];
+                       server->machine->cpuinfo[cpu].cpu[CPU_KERNEL];
                buf->xcpu_nice[cpu] =
-                       server->machine.cpuinfo[cpu].cpu[CPU_WAIT];
+                       server->machine->cpuinfo[cpu].cpu[CPU_WAIT];
 
                buf->xcpu_total[cpu] = buf->xcpu_idle[cpu] +
                        buf->xcpu_user[cpu] +
diff --git a/sysdeps/aix/glibtop_suid.h b/sysdeps/aix/glibtop_suid.h
index c87d126..580225f 100644
--- a/sysdeps/aix/glibtop_suid.h
+++ b/sysdeps/aix/glibtop_suid.h
@@ -29,11 +29,11 @@ G_BEGIN_DECLS
 #endif
 
 static inline void glibtop_suid_enter (glibtop *server) {
-       setegid (server->machine.egid);
+       setegid (server->machine->egid);
 }
 
 static inline void glibtop_suid_leave (glibtop *server) {
-       if (setegid (server->machine.gid))
+       if (setegid (server->machine->gid))
                _exit (1);
 }
 
diff --git a/sysdeps/aix/loadavg.c b/sysdeps/aix/loadavg.c
index cfcad2d..2f2c2a5 100644
--- a/sysdeps/aix/loadavg.c
+++ b/sysdeps/aix/loadavg.c
@@ -44,7 +44,7 @@ _glibtop_init_loadavg_p (glibtop *server)
                return;
        }
 
-       server->machine.loadavg_offset = result;
+       server->machine->loadavg_offset = result;
 
        server->sysdeps.loadavg = _glibtop_sysdeps_loadavg;
 }
@@ -61,7 +61,7 @@ glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf)
 
        memset (buf, 0, sizeof (glibtop_loadavg));
 
-       result = _glibtop_get_kmem_info(server, server->machine.loadavg_offset,
+       result = _glibtop_get_kmem_info(server, server->machine->loadavg_offset,
                                        loadavg, sizeof(loadavg));
         if (result <= 0)
         {
diff --git a/sysdeps/aix/msg_limits.c b/sysdeps/aix/msg_limits.c
index 4ed066f..6eb4d56 100644
--- a/sysdeps/aix/msg_limits.c
+++ b/sysdeps/aix/msg_limits.c
@@ -44,7 +44,7 @@ _glibtop_init_msg_limits_p (glibtop *server)
                return;
        }
 
-       server->machine.msginfo_offset = result;
+       server->machine->msginfo_offset = result;
 
        server->sysdeps.msg_limits = _glibtop_sysdeps_msg_limits;
 }
@@ -61,7 +61,7 @@ glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf)
 
        memset (buf, 0, sizeof (glibtop_msg_limits));
 
-       result = _glibtop_get_kmem_info(server, server->machine.msginfo_offset,
+       result = _glibtop_get_kmem_info(server, server->machine->msginfo_offset,
                                        &msginfo, sizeof(msginfo));
 
        if (result <= 0)
diff --git a/sysdeps/aix/netload.c b/sysdeps/aix/netload.c
index ede1ebc..e677e6c 100644
--- a/sysdeps/aix/netload.c
+++ b/sysdeps/aix/netload.c
@@ -100,7 +100,7 @@ _glibtop_init_netload_p (glibtop *server)
                return;
        }
 
-       server->machine.ifnet_offset = addr;
+       server->machine->ifnet_offset = addr;
 
        server->sysdeps.netload = _glibtop_sysdeps_netload;
 }
@@ -122,7 +122,7 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
 
        memset (buf, 0, sizeof (glibtop_netload));
 
-       for ( offset = server->machine.ifnet_offset;
+       for ( offset = server->machine->ifnet_offset;
              offset != 0;
              offset = (off_t)ifnet.if_next
            )
diff --git a/sysdeps/aix/open.c b/sysdeps/aix/open.c
index b74354c..d0ecbe5 100644
--- a/sysdeps/aix/open.c
+++ b/sysdeps/aix/open.c
@@ -56,23 +56,23 @@ glibtop_open_p (glibtop *server, const char *program_name,
 {
        /* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
 
-       server->machine.uid = getuid ();
-       server->machine.euid = geteuid ();
-       server->machine.gid = getgid ();
-       server->machine.egid = getegid ();
+       server->machine->uid = getuid ();
+       server->machine->euid = geteuid ();
+       server->machine->gid = getgid ();
+       server->machine->egid = getegid ();
 
        /* open kmem */
 
-       server->machine.kmem_fd = open("/dev/kmem", O_RDONLY);
-       if (server->machine.kmem_fd == -1)
+       server->machine->kmem_fd = open("/dev/kmem", O_RDONLY);
+       if (server->machine->kmem_fd == -1)
                glibtop_error_io_r (server, "Cannot open /dev/kmem");
 
        /* Drop priviledges. */
 
-       if (seteuid (server->machine.uid))
+       if (seteuid (server->machine->uid))
                _exit (1);
 
-       if (setegid (server->machine.gid))
+       if (setegid (server->machine->gid))
                _exit (1);
 
        /* !!! END OF SUID ROOT PART !!! */
diff --git a/sysdeps/aix/sem_limits.c b/sysdeps/aix/sem_limits.c
index 754ce1f..0cc8e6a 100644
--- a/sysdeps/aix/sem_limits.c
+++ b/sysdeps/aix/sem_limits.c
@@ -46,7 +46,7 @@ _glibtop_init_sem_limits_p (glibtop *server)
                return;
        }
 
-       server->machine.seminfo_offset = result;
+       server->machine->seminfo_offset = result;
 
        server->sysdeps.sem_limits = _glibtop_sysdeps_sem_limits;
 }
@@ -63,7 +63,7 @@ glibtop_get_sem_limits_p (glibtop *server, glibtop_sem_limits *buf)
 
        memset (buf, 0, sizeof (glibtop_sem_limits));
 
-       result = _glibtop_get_kmem_info(server, server->machine.seminfo_offset,
+       result = _glibtop_get_kmem_info(server, server->machine->seminfo_offset,
                                        &seminfo, sizeof(seminfo));
 
        if (result <= 0)
diff --git a/sysdeps/aix/shm_limits.c b/sysdeps/aix/shm_limits.c
index 46a0160..860819e 100644
--- a/sysdeps/aix/shm_limits.c
+++ b/sysdeps/aix/shm_limits.c
@@ -44,7 +44,7 @@ _glibtop_init_shm_limits_p (glibtop *server)
                return;
        }
 
-       server->machine.shminfo_offset = result;
+       server->machine->shminfo_offset = result;
 
        server->sysdeps.shm_limits = _glibtop_sysdeps_shm_limits;
 }
@@ -62,7 +62,7 @@ glibtop_get_shm_limits_p (glibtop *server, glibtop_shm_limits *buf)
 
        memset (buf, 0, sizeof (glibtop_shm_limits));
 
-       result = _glibtop_get_kmem_info(server, server->machine.shminfo_offset,
+       result = _glibtop_get_kmem_info(server, server->machine->shminfo_offset,
                                        &shminfo, sizeof(struct shminfo));
        if (result <= 0)
        {
diff --git a/sysdeps/aix/utils.c b/sysdeps/aix/utils.c
index 174d5ab..10ca7e3 100644
--- a/sysdeps/aix/utils.c
+++ b/sysdeps/aix/utils.c
@@ -68,9 +68,9 @@ _glibtop_get_kmem_info(glibtop* server, off_t offset, void* buf, size_t len)
 
        glibtop_suid_enter(server);
 
-       lseek(server->machine.kmem_fd, offset, SEEK_SET);
+       lseek(server->machine->kmem_fd, offset, SEEK_SET);
 
-       result = read(server->machine.kmem_fd, buf, len);
+       result = read(server->machine->kmem_fd, buf, len);
 
         glibtop_suid_leave(server);
 
@@ -86,23 +86,23 @@ _glibtop_get_procinfo (glibtop *server, pid_t pid)
 
        /* test if procsinfo already found */
 
-       if ((server->machine.last_pinfo.pi_pid == pid) && (!first_time))
+       if ((server->machine->last_pinfo.pi_pid == pid) && (!first_time))
        {
-               return &server->machine.last_pinfo;
+               return &server->machine->last_pinfo;
        }
 
        /* seek procsinfo if given pid */
 
        first_time = 0;
        current = 0;
-       while ((result =  getprocs( &server->machine.last_pinfo
+       while ((result =  getprocs( &server->machine->last_pinfo
                                  , sizeof(struct procsinfo)
                                  , NULL, 0, &current, 1)) == 1)
        {
 
-               if (pid == server->machine.last_pinfo.pi_pid)
+               if (pid == server->machine->last_pinfo.pi_pid)
                {
-                       return &server->machine.last_pinfo;
+                       return &server->machine->last_pinfo;
                }
        }
        return NULL;
diff --git a/sysdeps/bsd/cpu.c b/sysdeps/bsd/cpu.c
index 652fd23..cf5e721 100644
--- a/sysdeps/bsd/cpu.c
+++ b/sysdeps/bsd/cpu.c
@@ -61,7 +61,7 @@ void
 _glibtop_init_cpu_p (glibtop *server)
 {
 #ifndef KERN_CP_TIME
-       if (kvm_nlist (server->machine.kd, nlst) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (cpu)");
                return;
        }
@@ -100,7 +100,7 @@ glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
                return;
        }
 #else
-       if (kvm_read (server->machine.kd, nlst [0].n_value,
+       if (kvm_read (server->machine->kd, nlst [0].n_value,
                      &cpts, sizeof (cpts)) != sizeof (cpts)) {
                glibtop_warn_io_r (server, "kvm_read (cp_time)");
                return;
diff --git a/sysdeps/bsd/glibtop_suid.h b/sysdeps/bsd/glibtop_suid.h
index 1efb997..253c1d5 100644
--- a/sysdeps/bsd/glibtop_suid.h
+++ b/sysdeps/bsd/glibtop_suid.h
@@ -35,11 +35,11 @@ G_BEGIN_DECLS
 #define UREADOK(ki)    (FORCEUREAD || (KI_PROC(ki)->p_flag & P_INMEM))
 
 static inline void glibtop_suid_enter (glibtop *server) {
-       setregid (server->machine.gid, server->machine.egid);
+       setregid (server->machine->gid, server->machine->egid);
 };
 
 static inline void glibtop_suid_leave (glibtop *server) {
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 };
 
diff --git a/sysdeps/bsd/mem.c b/sysdeps/bsd/mem.c
index 1b6147e..df5912e 100644
--- a/sysdeps/bsd/mem.c
+++ b/sysdeps/bsd/mem.c
@@ -92,7 +92,7 @@ _glibtop_init_mem_p (glibtop *server)
 {
        register int pagesize;
 
-       if (kvm_nlist (server->machine.kd, nlst) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (mem)");
                return;
        }
@@ -154,14 +154,14 @@ glibtop_get_mem_p (glibtop *server, glibtop_mem *buf)
        }
 #else
        /* Get the data from kvm_* */
-       if (kvm_read (server->machine.kd, nlst[1].n_value,
+       if (kvm_read (server->machine->kd, nlst[1].n_value,
                      &vmm, sizeof (vmm)) != sizeof (vmm)) {
                glibtop_warn_io_r (server, "kvm_read (cnt)");
                return;
        }
 #endif
 
-       if (kvm_read (server->machine.kd, nlst[0].n_value,
+       if (kvm_read (server->machine->kd, nlst[0].n_value,
                      &bufspace, sizeof (bufspace)) != sizeof (bufspace)) {
                glibtop_warn_io_r (server, "kvm_read (bufspace)");
                return;
diff --git a/sysdeps/bsd/msg_limits.c b/sysdeps/bsd/msg_limits.c
index 535b08f..44aed99 100644
--- a/sysdeps/bsd/msg_limits.c
+++ b/sysdeps/bsd/msg_limits.c
@@ -75,12 +75,12 @@ static struct nlist nlst [] = {
 void
 _glibtop_init_msg_limits_p (glibtop *server)
 {
-       if (kvm_nlist (server->machine.kd, nlst) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (msg_limits)");
                return;
        }
 
-       if (kvm_read (server->machine.kd, nlst [0].n_value,
+       if (kvm_read (server->machine->kd, nlst [0].n_value,
                      &_msginfo, sizeof (_msginfo)) != sizeof (_msginfo)) {
                glibtop_warn_io_r (server, "kvm_read (msginfo)");
                return;
diff --git a/sysdeps/bsd/netload.c b/sysdeps/bsd/netload.c
index 25ed9e7..2195e19 100644
--- a/sysdeps/bsd/netload.c
+++ b/sysdeps/bsd/netload.c
@@ -72,7 +72,7 @@ _glibtop_init_netload_p (glibtop *server)
 {
     server->sysdeps.netload = _glibtop_sysdeps_netload;
 
-    if (kvm_nlist (server->machine.kd, nlst) < 0)
+    if (kvm_nlist (server->machine->kd, nlst) < 0)
        glibtop_error_io_r (server, "kvm_nlist");
 }
 
@@ -99,7 +99,7 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
 
     memset (buf, 0, sizeof (glibtop_netload));
 
-    if (kvm_read (server->machine.kd, nlst [0].n_value,
+    if (kvm_read (server->machine->kd, nlst [0].n_value,
                  &ifnetaddr, sizeof (ifnetaddr)) != sizeof (ifnetaddr))
        glibtop_error_io_r (server, "kvm_read (ifnet)");
 
@@ -111,12 +111,12 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
        {
            ifnetfound = ifnetaddr;
 
-           if (kvm_read (server->machine.kd, ifnetaddr, &ifnet,
+           if (kvm_read (server->machine->kd, ifnetaddr, &ifnet,
                          sizeof (ifnet)) != sizeof (ifnet))
                    glibtop_error_io_r (server, "kvm_read (ifnetaddr)");
 
 #if (defined(__FreeBSD__) && (__FreeBSD_version < 501113)) || defined(__bsdi__)
-           if (kvm_read (server->machine.kd, (u_long) ifnet.if_name,
+           if (kvm_read (server->machine->kd, (u_long) ifnet.if_name,
                          tname, 16) != 16)
                    glibtop_error_io_r (server, "kvm_read (if_name)");
            tname[15] = '\0';
@@ -202,7 +202,7 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
        buf->flags = _glibtop_sysdeps_netload;
 
        while (ifaddraddr) {
-           if ((kvm_read (server->machine.kd, ifaddraddr, &ifaddr,
+           if ((kvm_read (server->machine->kd, ifaddraddr, &ifaddr,
                           sizeof (ifaddr)) != sizeof (ifaddr)))
                glibtop_error_io_r (server, "kvm_read (ifaddraddr)");
 
diff --git a/sysdeps/bsd/open.c b/sysdeps/bsd/open.c
index b8608c6..e5cbb6c 100644
--- a/sysdeps/bsd/open.c
+++ b/sysdeps/bsd/open.c
@@ -58,27 +58,27 @@ glibtop_open_p (glibtop *server, const char *program_name,
 
        /* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
 
-       server->machine.uid = getuid ();
-       server->machine.euid = geteuid ();
-       server->machine.gid = getgid ();
-       server->machine.egid = getegid ();
+       server->machine->uid = getuid ();
+       server->machine->euid = geteuid ();
+       server->machine->gid = getgid ();
+       server->machine->egid = getegid ();
 
 #ifdef __FreeBSD__
        server->os_version_code = __FreeBSD_version;
 #endif
 
        /* Setup machine-specific data */
-       server->machine.kd = kvm_open (NULL, NULL, NULL, O_RDONLY, "kvm_open");
+       server->machine->kd = kvm_open (NULL, NULL, NULL, O_RDONLY, "kvm_open");
 
-       if (server->machine.kd == NULL)
+       if (server->machine->kd == NULL)
                glibtop_error_io_r (server, "kvm_open");
 
        /* Drop priviledges. */
 
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SUID ROOT PART !!! */
diff --git a/sysdeps/bsd/ppp.c b/sysdeps/bsd/ppp.c
index 2e1dcab..ae9307a 100644
--- a/sysdeps/bsd/ppp.c
+++ b/sysdeps/bsd/ppp.c
@@ -81,7 +81,7 @@ _glibtop_init_ppp_p (glibtop *server)
 #endif
 #endif /* HAVE_I4B */
 
-       if (kvm_nlist (server->machine.kd, nlst) < 0)
+       if (kvm_nlist (server->machine->kd, nlst) < 0)
                glibtop_error_io_r (server, "kvm_nlist");
 }
 
@@ -102,7 +102,7 @@ glibtop_get_ppp_p (glibtop *server, glibtop_ppp *buf, unsigned short device)
 
        memset (buf, 0, sizeof (glibtop_ppp));
 
-       if (kvm_read (server->machine.kd, nlst [0].n_value,
+       if (kvm_read (server->machine->kd, nlst [0].n_value,
                      &data, sizeof (data)) != sizeof (data))
                glibtop_error_io_r (server, "kvm_read (i4bisppp_softc)");
 
diff --git a/sysdeps/bsd/procargs.c b/sysdeps/bsd/procargs.c
index 9c78c05..b2ea761 100644
--- a/sysdeps/bsd/procargs.c
+++ b/sysdeps/bsd/procargs.c
@@ -72,14 +72,14 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
        glibtop_suid_enter (server);
 
        /* Get the process data */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, &count);
        if ((pinfo == NULL) || (count < 1)) {
                glibtop_suid_leave (server);
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
                return NULL;
        }
 
-       args = kvm_getargv (server->machine.kd, pinfo, max_len);
+       args = kvm_getargv (server->machine->kd, pinfo, max_len);
        if (args == NULL) {
                glibtop_suid_leave (server);
                glibtop_warn_io_r (server, "kvm_getargv (%d)", pid);
diff --git a/sysdeps/bsd/prockernel.c b/sysdeps/bsd/prockernel.c
index 6525239..0927c4b 100644
--- a/sysdeps/bsd/prockernel.c
+++ b/sysdeps/bsd/prockernel.c
@@ -113,7 +113,7 @@ glibtop_get_proc_kernel_p (glibtop *server,
        if (pid == 0) return;
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, &count);
        if ((pinfo == NULL) || (count != 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
                return;
@@ -170,11 +170,11 @@ glibtop_get_proc_kernel_p (glibtop *server,
        /* On NetBSD, there is no kvm_uread(), and kvm_read() always reads
         * from kernel memory.  */
 
-       if (kvm_read (server->machine.kd,
+       if (kvm_read (server->machine->kd,
 #else
 
        if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
-           kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
+           kvm_uread (server->machine->kd, &(pinfo [0]).kp_proc,
 #endif
                       (unsigned long) &u_addr->u_stats,
                       (char *) &pstats, sizeof (pstats)) == sizeof (pstats))
@@ -195,10 +195,10 @@ glibtop_get_proc_kernel_p (glibtop *server,
                }
 
 #ifdef __NetBSD__
-       if (kvm_read (server->machine.kd,
+       if (kvm_read (server->machine->kd,
 #else
        if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
-           kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
+           kvm_uread (server->machine->kd, &(pinfo [0]).kp_proc,
 #endif
                       (unsigned long) &u_addr->u_pcb,
                       (char *) &pcb, sizeof (pcb)) == sizeof (pcb))
diff --git a/sysdeps/bsd/proclist.c b/sysdeps/bsd/proclist.c
index 2b82355..8331001 100644
--- a/sysdeps/bsd/proclist.c
+++ b/sysdeps/bsd/proclist.c
@@ -72,7 +72,7 @@ glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
        which = (int)(real_which & GLIBTOP_KERN_PROC_MASK);
 
        /* Get the process data */
-       pinfo = kvm_getprocs (server->machine.kd, which, arg, &count);
+       pinfo = kvm_getprocs (server->machine->kd, which, arg, &count);
        if ((pinfo == NULL) || (count < 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (proclist)");
                return NULL;
diff --git a/sysdeps/bsd/procmap.c b/sysdeps/bsd/procmap.c
index a90ff17..bcc0116 100644
--- a/sysdeps/bsd/procmap.c
+++ b/sysdeps/bsd/procmap.c
@@ -128,7 +128,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
        glibtop_suid_enter (server);
 
        /* Get the process data */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, &count);
        if ((pinfo == NULL) || (count < 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
                return (glibtop_map_entry*) g_array_free(maps, TRUE);
@@ -136,7 +136,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
 
        /* Now we get the memory maps. */
 
-       if (kvm_read (server->machine.kd,
+       if (kvm_read (server->machine->kd,
 #if (defined(__FreeBSD__) && (__FreeBSD_version >= 500013)) || defined(__FreeBSD_kernel__)
                      (unsigned long) pinfo [0].ki_vmspace,
 #else
@@ -147,7 +147,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
 
        first = vmspace.vm_map.header.next;
 
-       if (kvm_read (server->machine.kd,
+       if (kvm_read (server->machine->kd,
                      (unsigned long) vmspace.vm_map.header.next,
                      (char *) &entry, sizeof (entry)) != sizeof (entry))
                glibtop_error_io_r (server, "kvm_read (entry)");
@@ -173,7 +173,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
                guint len;
 
                if (update) {
-                       if (kvm_read (server->machine.kd,
+                       if (kvm_read (server->machine->kd,
                                      (unsigned long) entry.next,
                                      &entry, sizeof (entry)) != sizeof (entry))
                                glibtop_error_io_r (server, "kvm_read (entry)");
@@ -206,7 +206,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
 
                /* We're only interested in vnodes */
 
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) entry.object.uvm_obj,
                              &vnode, sizeof (vnode)) != sizeof (vnode)) {
                        glibtop_warn_io_r (server, "kvm_read (vnode)");
@@ -218,7 +218,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
 
                /* We're only interested in `vm_object's */
 
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) entry.object.vm_object,
                              &object, sizeof (object)) != sizeof (object))
                        glibtop_error_io_r (server, "kvm_read (object)");
@@ -232,7 +232,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
                if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
                    !vnode.v_data) continue;
 
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) vnode.v_data,
                              &inode, sizeof (inode)) != sizeof (inode))
                        glibtop_error_io_r (server, "kvm_read (inode)");
@@ -251,7 +251,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
                if (!object.handle)
                        continue;
 
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) object.handle,
                              &vnode, sizeof (vnode)) != sizeof (vnode))
                        glibtop_error_io_r (server, "kvm_read (vnode)");
@@ -270,7 +270,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
                if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
                    !vnode.v_data) continue;
 
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) vnode.v_data,
                              &inode, sizeof (inode)) != sizeof (inode))
                        glibtop_error_io_r (server, "kvm_read (inode)");
diff --git a/sysdeps/bsd/procmem.c b/sysdeps/bsd/procmem.c
index d43fbdf..b20ab80 100644
--- a/sysdeps/bsd/procmem.c
+++ b/sysdeps/bsd/procmem.c
@@ -140,7 +140,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
        if (pid == 0) return;
 
        /* Get the process data */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, &count);
        if ((pinfo == NULL) || (count < 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
                return;
@@ -161,7 +161,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
 
 #define        PROC_VMSPACE   kp_proc.p_vmspace
 
-       if (kvm_read (server->machine.kd,
+       if (kvm_read (server->machine->kd,
                      (unsigned long) pinfo [0].PROC_VMSPACE,
                      (char *) &plimit, sizeof (plimit)) != sizeof (plimit)) {
                glibtop_warn_io_r (server, "kvm_read (plimit)");
@@ -182,7 +182,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
 
        /* Now we get the shared memory. */
 
-       if (kvm_read (server->machine.kd,
+       if (kvm_read (server->machine->kd,
                      (unsigned long) pinfo [0].PROC_VMSPACE,
                      (char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace)) {
                glibtop_warn_io_r (server, "kvm_read (vmspace)");
@@ -191,7 +191,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
 
        first = vmspace.vm_map.header.next;
 
-       if (kvm_read (server->machine.kd,
+       if (kvm_read (server->machine->kd,
                      (unsigned long) vmspace.vm_map.header.next,
                      (char *) &entry, sizeof (entry)) != sizeof (entry)) {
                glibtop_warn_io_r (server, "kvm_read (entry)");
@@ -205,7 +205,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
         * to OBJT_DEFAULT so if seems this really works. */
 
        while (entry.next != first) {
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) entry.next,
                              &entry, sizeof (entry)) != sizeof (entry)) {
                        glibtop_warn_io_r (server, "kvm_read (entry)");
@@ -236,7 +236,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
 
                /* We're only interested in vnodes */
 
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) entry.object.uvm_obj,
                              &vnode, sizeof (vnode)) != sizeof (vnode)) {
                        glibtop_warn_io_r (server, "kvm_read (vnode)");
@@ -248,7 +248,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
 
                /* We're only interested in `vm_object's */
 
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) entry.object.vm_object,
                              &object, sizeof (object)) != sizeof (object)) {
                        glibtop_warn_io_r (server, "kvm_read (object)");
diff --git a/sysdeps/bsd/procsegment.c b/sysdeps/bsd/procsegment.c
index d5fabca..282c86f 100644
--- a/sysdeps/bsd/procsegment.c
+++ b/sysdeps/bsd/procsegment.c
@@ -53,7 +53,7 @@ glibtop_get_proc_segment_p (glibtop *server,
 
 #if 0
        /* Get the process info from the kernel */
-       kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, count);
+       kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, count);
        if (*count != 1) {
                return; /* the zeroed-out buffer indicating no data */
        }
diff --git a/sysdeps/bsd/procsignal.c b/sysdeps/bsd/procsignal.c
index f688ab2..9771f7d 100644
--- a/sysdeps/bsd/procsignal.c
+++ b/sysdeps/bsd/procsignal.c
@@ -62,7 +62,7 @@ glibtop_get_proc_signal_p (glibtop *server,
        if (pid == 0) return;
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, &count);
        if ((pinfo == NULL) || (count != 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
                return;
diff --git a/sysdeps/bsd/procstate.c b/sysdeps/bsd/procstate.c
index 2607625..6fcec52 100644
--- a/sysdeps/bsd/procstate.c
+++ b/sysdeps/bsd/procstate.c
@@ -65,7 +65,7 @@ glibtop_get_proc_state_p (glibtop *server,
        if (pid == 0) return;
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, &count);
        if ((pinfo == NULL) || (count != 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
                return;
diff --git a/sysdeps/bsd/proctime.c b/sysdeps/bsd/proctime.c
index dd073d6..ff29adc 100644
--- a/sysdeps/bsd/proctime.c
+++ b/sysdeps/bsd/proctime.c
@@ -136,7 +136,7 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
 #endif
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, &count);
        if ((pinfo == NULL) || (count != 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
                return;
@@ -156,7 +156,7 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
 #if (defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)) || (defined(OpenBSD) && (OpenBSD >= 199912))
        glibtop_suid_enter (server);
 
-       if (kvm_read (server->machine.kd,
+       if (kvm_read (server->machine->kd,
                      (unsigned long) pinfo [0].kp_proc.p_stats,
                      &pstats, sizeof (pstats)) != sizeof (pstats)) {
                glibtop_warn_io_r (server, "kvm_read (pstats)");
@@ -202,7 +202,7 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
 #elif (__FreeBSD_version <= 500013)
 
         if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
-            kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
+            kvm_uread (server->machine->kd, &(pinfo [0]).kp_proc,
                        (unsigned long) &u_addr->u_stats,
                        (char *) &pstats, sizeof (pstats)) == sizeof (pstats))
                {
@@ -218,7 +218,7 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
 #else
 
        if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
-           kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
+           kvm_uread (server->machine->kd, &(pinfo [0]).kp_proc,
                       (unsigned long) &u_addr->u_stats,
                       (char *) &pstats, sizeof (pstats)) == sizeof (pstats))
                {
diff --git a/sysdeps/bsd/procuid.c b/sysdeps/bsd/procuid.c
index 5fd7dfa..cee39e0 100644
--- a/sysdeps/bsd/procuid.c
+++ b/sysdeps/bsd/procuid.c
@@ -69,7 +69,7 @@ glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf,
        if (pid == 0) return;
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, &count);
        if ((pinfo == NULL) || (count != 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
                return;
@@ -128,7 +128,7 @@ glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf,
        ucred_ptr = (void *) pinfo [0].kp_eproc.e_pcred.pc_ucred;
 
        if (ucred_ptr) {
-               if (kvm_read (server->machine.kd, (unsigned long) ucred_ptr,
+               if (kvm_read (server->machine->kd, (unsigned long) ucred_ptr,
                              &ucred, sizeof (ucred)) != sizeof (ucred)) {
                        glibtop_warn_io_r (server, "kvm_read (ucred)");
                } else {
diff --git a/sysdeps/bsd/sem_limits.c b/sysdeps/bsd/sem_limits.c
index 3cbff60..758b775 100644
--- a/sysdeps/bsd/sem_limits.c
+++ b/sysdeps/bsd/sem_limits.c
@@ -77,12 +77,12 @@ static struct nlist nlst [] = {
 void
 _glibtop_init_sem_limits_p (glibtop *server)
 {
-       if (kvm_nlist (server->machine.kd, nlst) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (sem_limits)");
                return;
        }
 
-       if (kvm_read (server->machine.kd, nlst [0].n_value,
+       if (kvm_read (server->machine->kd, nlst [0].n_value,
                      &_seminfo, sizeof (_seminfo)) != sizeof (_seminfo)) {
                glibtop_warn_io_r (server, "kvm_read (seminfo)");
                return;
diff --git a/sysdeps/bsd/shm_limits.c b/sysdeps/bsd/shm_limits.c
index 48f21b5..219b532 100644
--- a/sysdeps/bsd/shm_limits.c
+++ b/sysdeps/bsd/shm_limits.c
@@ -75,12 +75,12 @@ static struct nlist nlst [] = {
 void
 _glibtop_init_shm_limits_p (glibtop *server)
 {
-       if (kvm_nlist (server->machine.kd, nlst) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (shm_limits)");
                return;
        }
 
-       if (kvm_read (server->machine.kd, nlst [0].n_value,
+       if (kvm_read (server->machine->kd, nlst [0].n_value,
                      &_shminfo, sizeof (_shminfo)) != sizeof (_shminfo)) {
                glibtop_warn_io_r (server, "kvm_read (shminfo)");
                return;
diff --git a/sysdeps/bsd/swap.c b/sysdeps/bsd/swap.c
index af6d232..81979a8 100644
--- a/sysdeps/bsd/swap.c
+++ b/sysdeps/bsd/swap.c
@@ -94,14 +94,14 @@ _glibtop_init_swap_p (glibtop *server)
 {
 #if defined(__FreeBSD__) || defined(__bsdi__) || defined(__FreeBSD_kernel__)
 #if __FreeBSD__ < 4 || defined(__bsdi__)
-       if (kvm_nlist (server->machine.kd, nlst) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (swap)");
                return;
        }
 #else
        struct kvm_swap dummy;
 
-       if (kvm_getswapinfo (server->machine.kd, &dummy, 1, 0) != 0) {
+       if (kvm_getswapinfo (server->machine->kd, &dummy, 1, 0) != 0) {
                glibtop_warn_io_r (server, "kvm_swap (swap)");
                return;
        }
@@ -109,7 +109,7 @@ _glibtop_init_swap_p (glibtop *server)
 #endif
 
 #if !(defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)) && !defined(__OpenBSD__)
-       if (kvm_nlist (server->machine.kd, nlst2) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst2) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (cnt)");
                return;
        }
@@ -181,7 +181,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
 #else
        /* This is used to get the `pagein' and `pageout' members. */
 
-       if (kvm_read (server->machine.kd, nlst2[0].n_value,
+       if (kvm_read (server->machine->kd, nlst2[0].n_value,
                      &vmm, sizeof (vmm)) != sizeof (vmm)) {
                glibtop_warn_io_r (server, "kvm_read (cnt)");
                return;
@@ -228,7 +228,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
 
        /* Size of largest swap device. */
 
-       if (kvm_read (server->machine.kd, nlst[VM_NSWAP].n_value,
+       if (kvm_read (server->machine->kd, nlst[VM_NSWAP].n_value,
                      &nswap, sizeof (nswap)) != sizeof (nswap)) {
                glibtop_warn_io_r (server, "kvm_read (nswap)");
                return;
@@ -236,7 +236,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
 
        /* Number of swap devices. */
 
-       if (kvm_read (server->machine.kd, nlst[VM_NSWDEV].n_value,
+       if (kvm_read (server->machine->kd, nlst[VM_NSWDEV].n_value,
                      &nswdev, sizeof (nswdev)) != sizeof (nswdev)) {
                glibtop_warn_io_r (server, "kvm_read (nswdev)");
                return;
@@ -244,7 +244,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
 
        /* Maximum size of a swap block. */
 
-       if (kvm_read (server->machine.kd, nlst[VM_DMMAX].n_value,
+       if (kvm_read (server->machine->kd, nlst[VM_DMMAX].n_value,
                      &dmmax, sizeof (dmmax)) != sizeof (dmmax)) {
                glibtop_warn_io_r (server, "kvm_read (dmmax)");
                return;
@@ -252,7 +252,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
 
        /* List of free swap areas. */
 
-       if (kvm_read (server->machine.kd, nlst[VM_SWAPLIST].n_value,
+       if (kvm_read (server->machine->kd, nlst[VM_SWAPLIST].n_value,
                      &swaplist, sizeof (swaplist)) != sizeof (swaplist)) {
                glibtop_warn_io_r (server, "kvm_read (swaplist)");
                return;
@@ -260,7 +260,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
 
        /* Kernel offset of list of swap devices and sizes. */
 
-       if (kvm_read (server->machine.kd, nlst[VM_SWDEVT].n_value,
+       if (kvm_read (server->machine->kd, nlst[VM_SWDEVT].n_value,
                      &ptr, sizeof (ptr)) != sizeof (ptr)) {
                glibtop_warn_io_r (server, "kvm_read (swdevt)");
                return;
@@ -271,7 +271,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
        sw_size = nswdev * sizeof (*sw);
        sw = g_malloc (sw_size);
 
-       if (kvm_read (server->machine.kd, ptr, sw, sw_size) != (ssize_t)sw_size) {
+       if (kvm_read (server->machine->kd, ptr, sw, sw_size) != (ssize_t)sw_size) {
                glibtop_warn_io_r (server, "kvm_read (*swdevt)");
                return;
        }
@@ -288,7 +288,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
        while (swapptr) {
                int     top, bottom, next_block;
 
-               if (kvm_read (server->machine.kd, (int) swapptr, &head,
+               if (kvm_read (server->machine->kd, (int) swapptr, &head,
                              sizeof (struct rlist)) != sizeof (struct rlist)) {
                        glibtop_warn_io_r (server, "kvm_read (swapptr)");
                        return;
@@ -365,7 +365,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
 
 #else
 
-       nswdev = kvm_getswapinfo(server->machine.kd, kvmsw, 16, 0);
+       nswdev = kvm_getswapinfo(server->machine->kd, kvmsw, 16, 0);
 
        buf->flags = _glibtop_sysdeps_swap;
 
@@ -380,7 +380,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
 
        /* General info about swap devices. */
 
-       if (kvm_read (server->machine.kd, nlst[0].n_value,
+       if (kvm_read (server->machine->kd, nlst[0].n_value,
                      &swap, sizeof (swap)) != sizeof (swap)) {
                glibtop_warn_io_r (server, "kvm_read (swap)");
                return;
diff --git a/sysdeps/darwin/glibtop_suid.h b/sysdeps/darwin/glibtop_suid.h
index 31154e8..165a4d4 100644
--- a/sysdeps/darwin/glibtop_suid.h
+++ b/sysdeps/darwin/glibtop_suid.h
@@ -23,11 +23,11 @@
 G_BEGIN_DECLS
 
 static inline void glibtop_suid_enter (glibtop *server) {
-       setreuid (server->machine.uid, server->machine.euid);
+       setreuid (server->machine->uid, server->machine->euid);
 };
 
 static inline void glibtop_suid_leave (glibtop *server) {
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 };
 
diff --git a/sysdeps/darwin/open.c b/sysdeps/darwin/open.c
index f8850a3..4fc77ac 100644
--- a/sysdeps/darwin/open.c
+++ b/sysdeps/darwin/open.c
@@ -67,17 +67,17 @@ glibtop_open_p (glibtop *server, const char *program_name,
 
        server->name = program_name;
 
-       server->machine.uid = getuid ();
-       server->machine.euid = geteuid ();
-       server->machine.gid = getgid ();
-       server->machine.egid = getegid ();
+       server->machine->uid = getuid ();
+       server->machine->euid = geteuid ();
+       server->machine->gid = getgid ();
+       server->machine->egid = getegid ();
 
        /* Drop priviledges. */ 
 
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
        
        /* !!! END OF SUID ROOT PART !!! */
diff --git a/sysdeps/openbsd/glibtop_suid.h b/sysdeps/openbsd/glibtop_suid.h
index 1efb997..253c1d5 100644
--- a/sysdeps/openbsd/glibtop_suid.h
+++ b/sysdeps/openbsd/glibtop_suid.h
@@ -35,11 +35,11 @@ G_BEGIN_DECLS
 #define UREADOK(ki)    (FORCEUREAD || (KI_PROC(ki)->p_flag & P_INMEM))
 
 static inline void glibtop_suid_enter (glibtop *server) {
-       setregid (server->machine.gid, server->machine.egid);
+       setregid (server->machine->gid, server->machine->egid);
 };
 
 static inline void glibtop_suid_leave (glibtop *server) {
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 };
 
diff --git a/sysdeps/openbsd/msg_limits.c b/sysdeps/openbsd/msg_limits.c
index ddf6dd7..bc7c6e2 100644
--- a/sysdeps/openbsd/msg_limits.c
+++ b/sysdeps/openbsd/msg_limits.c
@@ -58,12 +58,12 @@ static struct nlist nlst [] = {
 void
 _glibtop_init_msg_limits_p (glibtop *server)
 {
-       if (kvm_nlist (server->machine.kd, nlst) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (msg_limits)");
                return;
        }
 
-       if (kvm_read (server->machine.kd, nlst [0].n_value,
+       if (kvm_read (server->machine->kd, nlst [0].n_value,
                      &_msginfo, sizeof (_msginfo)) != sizeof (_msginfo)) {
                glibtop_warn_io_r (server, "kvm_read (msginfo)");
                return;
diff --git a/sysdeps/openbsd/netload.c b/sysdeps/openbsd/netload.c
index feb291a..6591b4f 100644
--- a/sysdeps/openbsd/netload.c
+++ b/sysdeps/openbsd/netload.c
@@ -73,7 +73,7 @@ _glibtop_init_netload_p (glibtop *server)
 {
     server->sysdeps.netload = _glibtop_sysdeps_netload;
 
-    if (kvm_nlist (server->machine.kd, nlst) < 0)
+    if (kvm_nlist (server->machine->kd, nlst) < 0)
        glibtop_error_io_r (server, "kvm_nlist");
 }
 
@@ -97,7 +97,7 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
 
     memset (buf, 0, sizeof (glibtop_netload));
 
-    if (kvm_read (server->machine.kd, nlst [0].n_value,
+    if (kvm_read (server->machine->kd, nlst [0].n_value,
                  &ifnetaddr, sizeof (ifnetaddr)) != sizeof (ifnetaddr))
        glibtop_error_io_r (server, "kvm_read (ifnet)");
 
@@ -109,7 +109,7 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
        {
            ifnetfound = ifnetaddr;
 
-           if (kvm_read (server->machine.kd, ifnetaddr, &ifnet,
+           if (kvm_read (server->machine->kd, ifnetaddr, &ifnet,
                          sizeof (ifnet)) != sizeof (ifnet))
                    glibtop_error_io_r (server, "kvm_read (ifnetaddr)");
 
@@ -176,7 +176,7 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
        buf->flags = _glibtop_sysdeps_netload;
 
        while (ifaddraddr) {
-           if ((kvm_read (server->machine.kd, ifaddraddr, &ifaddr,
+           if ((kvm_read (server->machine->kd, ifaddraddr, &ifaddr,
                           sizeof (ifaddr)) != sizeof (ifaddr)))
                glibtop_error_io_r (server, "kvm_read (ifaddraddr)");
 
diff --git a/sysdeps/openbsd/ppp.c b/sysdeps/openbsd/ppp.c
index be7d32c..4403272 100644
--- a/sysdeps/openbsd/ppp.c
+++ b/sysdeps/openbsd/ppp.c
@@ -77,7 +77,7 @@ _glibtop_init_ppp_p (glibtop *server)
 #endif
 #endif /* HAVE_I4B */
 
-       if (kvm_nlist (server->machine.kd, nlst) < 0)
+       if (kvm_nlist (server->machine->kd, nlst) < 0)
                glibtop_error_io_r (server, "kvm_nlist");
 }
 
@@ -98,7 +98,7 @@ glibtop_get_ppp_p (glibtop *server, glibtop_ppp *buf, unsigned short device)
 
        memset (buf, 0, sizeof (glibtop_ppp));
 
-       if (kvm_read (server->machine.kd, nlst [0].n_value,
+       if (kvm_read (server->machine->kd, nlst [0].n_value,
                      &data, sizeof (data)) != sizeof (data))
                glibtop_error_io_r (server, "kvm_read (i4bisppp_softc)");
 
diff --git a/sysdeps/openbsd/procargs.c b/sysdeps/openbsd/procargs.c
index 1807371..a0e04fb 100644
--- a/sysdeps/openbsd/procargs.c
+++ b/sysdeps/openbsd/procargs.c
@@ -65,7 +65,7 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
        glibtop_suid_enter (server);
 
        /* Get the process data */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid,
                               sizeof (*pinfo), &count);
        if (pinfo == NULL) {
                glibtop_suid_leave (server);
@@ -73,7 +73,7 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
                return NULL;
        }
 
-       args = kvm_getargv (server->machine.kd, pinfo, max_len);
+       args = kvm_getargv (server->machine->kd, pinfo, max_len);
        if (args == NULL) {
                glibtop_suid_leave (server);
                glibtop_warn_io_r (server, "kvm_getargv (%d)", pid);
diff --git a/sysdeps/openbsd/prockernel.c b/sysdeps/openbsd/prockernel.c
index 9e0654a..2b28033 100644
--- a/sysdeps/openbsd/prockernel.c
+++ b/sysdeps/openbsd/prockernel.c
@@ -72,7 +72,7 @@ glibtop_get_proc_kernel_p (glibtop *server,
        glibtop_suid_enter (server);
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid,
                              sizeof(*pinfo), &count);
        if (pinfo == NULL) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
diff --git a/sysdeps/openbsd/proclist.c b/sysdeps/openbsd/proclist.c
index cd90cb0..19fc2ae 100644
--- a/sysdeps/openbsd/proclist.c
+++ b/sysdeps/openbsd/proclist.c
@@ -72,7 +72,7 @@ glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
        which = (int)(real_which & GLIBTOP_KERN_PROC_MASK);
 
        /* Get the process data */
-       pinfo = kvm_getprocs (server->machine.kd, which, arg,
+       pinfo = kvm_getprocs (server->machine->kd, which, arg,
                              sizeof (*pinfo), &count);
        if ((pinfo == NULL) || (count < 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (proclist)");
diff --git a/sysdeps/openbsd/procmap.c b/sysdeps/openbsd/procmap.c
index f94ddc0..4911ec4 100644
--- a/sysdeps/openbsd/procmap.c
+++ b/sysdeps/openbsd/procmap.c
@@ -99,7 +99,7 @@ load_vmmap_entries(glibtop *server, unsigned long kptr,
                return -1;
 
        /* Download entry at kptr. */
-       if (kvm_read (server->machine.kd, kptr,
+       if (kvm_read (server->machine->kd, kptr,
            (char *)entry, sizeof(*entry)) != sizeof(*entry)) {
                free(entry);
                return -1;
@@ -185,7 +185,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
        glibtop_suid_enter (server);
 
        /* Get the process data */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), &count);
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), &count);
        if (pinfo == NULL) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
                return (glibtop_map_entry*) g_array_free(maps, TRUE);
@@ -193,7 +193,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
 
        /* Now we get the memory maps. */
 
-       if (kvm_read (server->machine.kd,
+       if (kvm_read (server->machine->kd,
                      (unsigned long) pinfo [0].p_vmspace,
                      (char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace)) {
                        glibtop_warn_io_r (server, "kvm_read (vmspace)");
@@ -238,7 +238,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
 
                /* We're only interested in vnodes */
 
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) entry->object.uvm_obj,
                              &vnode, sizeof (vnode)) != sizeof (vnode)) {
                        glibtop_warn_io_r (server, "kvm_read (vnode)");
@@ -254,7 +254,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
                if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
                    !vnode.v_data) continue;
 
-               if (kvm_read (server->machine.kd,
+               if (kvm_read (server->machine->kd,
                              (unsigned long) vnode.v_data,
                              &inode, sizeof (inode)) != sizeof (inode)) {
                        glibtop_warn_io_r (server, "kvm_read (inode)");
diff --git a/sysdeps/openbsd/procmem.c b/sysdeps/openbsd/procmem.c
index 51dce8e..de50f80 100644
--- a/sysdeps/openbsd/procmem.c
+++ b/sysdeps/openbsd/procmem.c
@@ -113,7 +113,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
        if (pid == 0) return;
 
        /* Get the process data */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid,
                              sizeof (*pinfo), &count);
        if ((pinfo == NULL) || (count < 1)) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
diff --git a/sysdeps/openbsd/procsegment.c b/sysdeps/openbsd/procsegment.c
index c0f363f..2bee4a5 100644
--- a/sysdeps/openbsd/procsegment.c
+++ b/sysdeps/openbsd/procsegment.c
@@ -63,7 +63,7 @@ glibtop_get_proc_segment_p (glibtop *server,
        if (pid == 0) return;
 
        /* Get the process info from the kernel */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid,
                              sizeof (*pinfo), &count);
        if (pinfo == NULL) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
diff --git a/sysdeps/openbsd/procsignal.c b/sysdeps/openbsd/procsignal.c
index 4776498..ad16f75 100644
--- a/sysdeps/openbsd/procsignal.c
+++ b/sysdeps/openbsd/procsignal.c
@@ -58,7 +58,7 @@ glibtop_get_proc_signal_p (glibtop *server,
        if (pid == 0) return;
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid,
                              sizeof (*pinfo), &count);
        if (pinfo == NULL) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
diff --git a/sysdeps/openbsd/procstate.c b/sysdeps/openbsd/procstate.c
index 9591d2a..d277acb 100644
--- a/sysdeps/openbsd/procstate.c
+++ b/sysdeps/openbsd/procstate.c
@@ -60,7 +60,7 @@ glibtop_get_proc_state_p (glibtop *server,
        if (pid == 0) return;
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid,
                              sizeof (*pinfo), &count);
        if (pinfo == NULL) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
diff --git a/sysdeps/openbsd/proctime.c b/sysdeps/openbsd/proctime.c
index 2b0d0b6..d821289 100644
--- a/sysdeps/openbsd/proctime.c
+++ b/sysdeps/openbsd/proctime.c
@@ -74,7 +74,7 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
 
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid,
                              sizeof (*pinfo), &count);
        if (pinfo == NULL) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
diff --git a/sysdeps/openbsd/procuid.c b/sysdeps/openbsd/procuid.c
index f749b55..d714353 100644
--- a/sysdeps/openbsd/procuid.c
+++ b/sysdeps/openbsd/procuid.c
@@ -63,7 +63,7 @@ glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf,
        if (pid == 0) return;
 
        /* Get the process information */
-       pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
+       pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid,
                              sizeof (*pinfo), &count);
        if (pinfo == NULL) {
                glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
diff --git a/sysdeps/openbsd/sem_limits.c b/sysdeps/openbsd/sem_limits.c
index 555159b..df1dfc2 100644
--- a/sysdeps/openbsd/sem_limits.c
+++ b/sysdeps/openbsd/sem_limits.c
@@ -56,12 +56,12 @@ static struct nlist nlst [] = {
 void
 _glibtop_init_sem_limits_p (glibtop *server)
 {
-       if (kvm_nlist (server->machine.kd, nlst) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (sem_limits)");
                return;
        }
 
-       if (kvm_read (server->machine.kd, nlst [0].n_value,
+       if (kvm_read (server->machine->kd, nlst [0].n_value,
                      &_seminfo, sizeof (_seminfo)) != sizeof (_seminfo)) {
                glibtop_warn_io_r (server, "kvm_read (seminfo)");
                return;
diff --git a/sysdeps/openbsd/shm_limits.c b/sysdeps/openbsd/shm_limits.c
index 14fd016..16fc5cf 100644
--- a/sysdeps/openbsd/shm_limits.c
+++ b/sysdeps/openbsd/shm_limits.c
@@ -50,12 +50,12 @@ static struct nlist nlst [] = {
 void
 _glibtop_init_shm_limits_p (glibtop *server)
 {
-       if (kvm_nlist (server->machine.kd, nlst) < 0) {
+       if (kvm_nlist (server->machine->kd, nlst) < 0) {
                glibtop_warn_io_r (server, "kvm_nlist (shm_limits)");
                return;
        }
 
-       if (kvm_read (server->machine.kd, nlst [0].n_value,
+       if (kvm_read (server->machine->kd, nlst [0].n_value,
                      &_shminfo, sizeof (_shminfo)) != sizeof (_shminfo)) {
                glibtop_warn_io_r (server, "kvm_read (shminfo)");
                return;
diff --git a/sysdeps/openbsd/suid_open.c b/sysdeps/openbsd/suid_open.c
index a76562f..c688322 100644
--- a/sysdeps/openbsd/suid_open.c
+++ b/sysdeps/openbsd/suid_open.c
@@ -61,22 +61,22 @@ glibtop_open_p (glibtop *server, const char *program_name,
 #endif
 
        /* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
-       server->machine.uid = getuid ();
-       server->machine.euid = geteuid ();
-       server->machine.gid = getgid ();
-       server->machine.egid = getegid ();
+       server->machine->uid = getuid ();
+       server->machine->euid = geteuid ();
+       server->machine->gid = getgid ();
+       server->machine->egid = getegid ();
        /* Setup machine-specific data */
-       server->machine.kd = kvm_openfiles (NULL, NULL, NULL, O_RDONLY, errbuf);
+       server->machine->kd = kvm_openfiles (NULL, NULL, NULL, O_RDONLY, errbuf);
 
-       if (server->machine.kd == NULL)
+       if (server->machine->kd == NULL)
                glibtop_error_io_r (server, "kvm_open");
 
        /* Drop priviledges. */
 
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SUID ROOT PART !!! */
diff --git a/sysdeps/osf1/glibtop_suid.h b/sysdeps/osf1/glibtop_suid.h
index 15f6d6a..407897d 100644
--- a/sysdeps/osf1/glibtop_suid.h
+++ b/sysdeps/osf1/glibtop_suid.h
@@ -27,11 +27,11 @@
 G_BEGIN_DECLS
 
 static inline void glibtop_suid_enter (glibtop *server) {
-       setreuid (server->machine.uid, server->machine.euid);
+       setreuid (server->machine->uid, server->machine->euid);
 };
 
 static inline void glibtop_suid_leave (glibtop *server) {
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 };
 
diff --git a/sysdeps/osf1/open_suid.c b/sysdeps/osf1/open_suid.c
index 32bcb59..83a1933 100644
--- a/sysdeps/osf1/open_suid.c
+++ b/sysdeps/osf1/open_suid.c
@@ -61,12 +61,12 @@ glibtop_open_p (glibtop *server, const char *program_name,
 
        server->name = program_name;
 
-       server->machine.uid = getuid ();
-       server->machine.euid = geteuid ();
-       server->machine.gid = getgid ();
-       server->machine.egid = getegid ();
+       server->machine->uid = getuid ();
+       server->machine->euid = geteuid ();
+       server->machine->gid = getgid ();
+       server->machine->egid = getegid ();
 
-       server->machine.proctable_entries = table
+       server->machine->proctable_entries = table
                (TBL_PROCINFO, 0, NULL, INT_MAX, 0);
 
        /* Drop priviledges; we only become root when necessary.
@@ -76,10 +76,10 @@ glibtop_open_p (glibtop *server, const char *program_name,
 
         */
 
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SUID ROOT PART !!! */
diff --git a/sysdeps/osf1/proclist.c b/sysdeps/osf1/proclist.c
index 3572096..a27643b 100644
--- a/sysdeps/osf1/proclist.c
+++ b/sysdeps/osf1/proclist.c
@@ -77,7 +77,7 @@ glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
 
        memset (buf, 0, sizeof (glibtop_proclist));
 
-       for (entry = 0; entry < server->machine.proctable_entries;
+       for (entry = 0; entry < server->machine->proctable_entries;
             entry += ELEMENTS_PER_ENTRY)
        {
                /* !!! THE FOLLOWING CODE RUNS SUID ROOT -
diff --git a/sysdeps/solaris/cpu.c b/sysdeps/solaris/cpu.c
index 49f60ef..46de3cd 100644
--- a/sysdeps/solaris/cpu.c
+++ b/sysdeps/solaris/cpu.c
@@ -53,14 +53,14 @@ _glibtop_init_cpu_s (glibtop *server)
 void
 glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
 {
-    kstat_ctl_t * const kc = server->machine.kc;
+    kstat_ctl_t * const kc = server->machine->kc;
     cpu_stat_t cpu_stat;
     processorid_t cpu;
     int ncpu, found;
 
     memset (buf, 0, sizeof (glibtop_cpu));
 
-    buf->frequency = server->machine.ticks;
+    buf->frequency = server->machine->ticks;
     buf->flags = _glibtop_sysdeps_cpu_freq;
 
     if(!kc)
@@ -77,7 +77,7 @@ glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
 
     for (cpu = 0, found = 0; cpu < GLIBTOP_NCPU && found != ncpu; cpu++)
     {
-       kstat_t * const ksp = server->machine.cpu_stat_kstat [cpu];
+       kstat_t * const ksp = server->machine->cpu_stat_kstat [cpu];
        if (!ksp) continue;;
 
        ++found;
diff --git a/sysdeps/solaris/glibtop_suid.h b/sysdeps/solaris/glibtop_suid.h
index 24b71b0..d6528a7 100644
--- a/sysdeps/solaris/glibtop_suid.h
+++ b/sysdeps/solaris/glibtop_suid.h
@@ -25,11 +25,11 @@
 G_BEGIN_DECLS
 
 static inline void glibtop_suid_enter (glibtop *server) {
-       setreuid (server->machine.uid, server->machine.euid);
+       setreuid (server->machine->uid, server->machine->euid);
 };
 
 static inline void glibtop_suid_leave (glibtop *server) {
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 };
 
diff --git a/sysdeps/solaris/loadavg.c b/sysdeps/solaris/loadavg.c
index 0d940d5..a4f82d6 100644
--- a/sysdeps/solaris/loadavg.c
+++ b/sysdeps/solaris/loadavg.c
@@ -62,7 +62,7 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf)
                return;
 
 #else
-       if(!(kc = server->machine.kc))
+       if(!(kc = server->machine->kc))
            return;
 
        switch(kstat_chain_update(kc))
@@ -72,7 +72,7 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf)
            default: glibtop_get_kstats(server);
        }
 
-       if(!(ksp = server->machine.system))
+       if(!(ksp = server->machine->system))
            return;
 
        if(kstat_read(kc, ksp, NULL) < 0)
diff --git a/sysdeps/solaris/mem.c b/sysdeps/solaris/mem.c
index 028c43d..4ec8bec 100644
--- a/sysdeps/solaris/mem.c
+++ b/sysdeps/solaris/mem.c
@@ -47,12 +47,12 @@ _glibtop_init_mem_s (glibtop *server)
 void
 glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
 {
-    kstat_ctl_t * const kc = server->machine.kc;
+    kstat_ctl_t * const kc = server->machine->kc;
     kstat_t *ksp;
     kstat_named_t *kn;
 
 #undef PAGESIZE
-#define PAGESIZE (server->machine.pagesize)
+#define PAGESIZE (server->machine->pagesize)
 #define PAGESHIFT (PAGESIZE + 10)
 
 #ifdef _LP64
@@ -78,7 +78,7 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
        default: glibtop_get_kstats(server);
     }
 
-    if((ksp = server->machine.syspages) && kstat_read(kc, ksp, NULL) >= 0)
+    if((ksp = server->machine->syspages) && kstat_read(kc, ksp, NULL) >= 0)
     {
        kn = kstat_data_lookup(ksp, "pagesfree");
        if(kn)
@@ -99,7 +99,7 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
 
     /* Bunyip module provides data in multiples of system page size */
 
-    if((ksp = server->machine.bunyip) && kstat_read(kc, ksp, NULL) >= 0)
+    if((ksp = server->machine->bunyip) && kstat_read(kc, ksp, NULL) >= 0)
     {
        kn = kstat_data_lookup(ksp, "pages_exec");
        if(kn)
diff --git a/sysdeps/solaris/msg_limits.c b/sysdeps/solaris/msg_limits.c
index fccb6ea..e9c8a14 100644
--- a/sysdeps/solaris/msg_limits.c
+++ b/sysdeps/solaris/msg_limits.c
@@ -48,7 +48,7 @@ _glibtop_init_msg_limits_p (glibtop *server)
 {
 #if GLIBTOP_SOLARIS_RELEASE < 51000
 
-       kvm_t *kd = server->machine.kd;
+       kvm_t *kd = server->machine->kd;
 
        if(kd && !kvm_nlist(kd, nlst))
                server->sysdeps.msg_limits = _glibtop_sysdeps_msg_limits;
@@ -64,7 +64,7 @@ glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf)
 {
 #if GLIBTOP_SOLARIS_RELEASE < 51000
 
-       kvm_t *kd = server->machine.kd;
+       kvm_t *kd = server->machine->kd;
         glibtop_msg_limits minfo;
 
 
diff --git a/sysdeps/solaris/netload.c b/sysdeps/solaris/netload.c
index 635e506..8ad8dbf 100644
--- a/sysdeps/solaris/netload.c
+++ b/sysdeps/solaris/netload.c
@@ -97,7 +97,7 @@ solaris_stats(glibtop *server,
        char    *name = interface;
        char    *module;
        char    *ptr;
-       kstat_ctl_t * const kctl = server->machine.kc;
+       kstat_ctl_t * const kctl = server->machine->kc;
        kstat_t                 *ksp;
        kstat_named_t           *kdata;
        int have_bytes = 1;
diff --git a/sysdeps/solaris/open.c b/sysdeps/solaris/open.c
index c0426a5..d48a2ae 100644
--- a/sysdeps/solaris/open.c
+++ b/sysdeps/solaris/open.c
@@ -40,7 +40,7 @@
 void
 glibtop_get_kstats(glibtop *server)
 {
-    kstat_ctl_t *kc = server->machine.kc;
+    kstat_ctl_t *kc = server->machine->kc;
     kstat_t *ksp;
     int nproc_same, new_ncpu;
 
@@ -50,23 +50,23 @@ glibtop_get_kstats(glibtop *server)
     if(!kc)
     {
        server->ncpu = new_ncpu;
-       server->machine.vminfo_kstat = NULL;
-       server->machine.system = NULL;
-       server->machine.syspages = NULL;
-       server->machine.bunyip = NULL;
+       server->machine->vminfo_kstat = NULL;
+       server->machine->system = NULL;
+       server->machine->syspages = NULL;
+       server->machine->bunyip = NULL;
        return;
     }
 
     do {
 
        ksp = kstat_lookup(kc, "unix", -1, "vminfo");
-       server->machine.vminfo_kstat = ksp;
+       server->machine->vminfo_kstat = ksp;
        if(ksp)
        {
-           kstat_read(kc, ksp, &server->machine.vminfo);
+           kstat_read(kc, ksp, &server->machine->vminfo);
            /* Don't change snaptime if we only need to reinitialize kstats */
-           if(!(server->machine.vminfo_snaptime))
-               server->machine.vminfo_snaptime = ksp->ks_snaptime;
+           if(!(server->machine->vminfo_snaptime))
+               server->machine->vminfo_snaptime = ksp->ks_snaptime;
        }
 
        /* We don't know why was kstat chain invalidated. It could have
@@ -81,11 +81,11 @@ glibtop_get_kstats(glibtop *server)
            char cpu[20];
 
            for(i = 0, checked = 0; i < GLIBTOP_NCPU || checked == new_ncpu; ++i)
-                if(!server->machine.cpu_stat_kstat[i])
+                if(!server->machine->cpu_stat_kstat[i])
 
                {
                    sprintf(cpu, "cpu_stat%d", i);
-                   if(!(server->machine.cpu_stat_kstat[i] =
+                   if(!(server->machine->cpu_stat_kstat[i] =
                             kstat_lookup(kc, "cpu_stat", -1, cpu)))
                    {
                        nproc_same = 0;
@@ -107,19 +107,19 @@ glibtop_get_kstats(glibtop *server)
            {
                if(p_online(p, P_STATUS) < 0)
                {
-                   server->machine.cpu_stat_kstat[p] = NULL;
+                   server->machine->cpu_stat_kstat[p] = NULL;
                    continue;
                }
                sprintf(cpu, "cpu_stat%d", (int)p);
-               server->machine.cpu_stat_kstat[p] =
+               server->machine->cpu_stat_kstat[p] =
                        kstat_lookup(kc, "cpu_stat", -1, cpu);
                ++found;
            }
        }
 
-       server->machine.system   = kstat_lookup(kc, "unix", -1, "system_misc");
-       server->machine.syspages = kstat_lookup(kc, "unix", -1, "system_pages");
-       server->machine.bunyip   = kstat_lookup(kc, "bunyip", -1, "mempages");
+       server->machine->system   = kstat_lookup(kc, "unix", -1, "system_misc");
+       server->machine->syspages = kstat_lookup(kc, "unix", -1, "system_pages");
+       server->machine->bunyip   = kstat_lookup(kc, "bunyip", -1, "mempages");
 
     } while(kstat_chain_update(kc) > 0 &&
            (new_ncpu = sysconf(_SC_NPROCESSORS_CONF)));
@@ -142,18 +142,18 @@ glibtop_open_s (glibtop *server, const char *program_name,
 
     page = sysconf(_SC_PAGESIZE) >> 10;
     for(i = 0; page; ++i, page >>= 1);
-    server->machine.pagesize = i - 1;
-    server->machine.ticks = sysconf(_SC_CLK_TCK);
-    if(server->machine.kc)
-       kstat_close(server->machine.kc);
-    server->machine.kc = kc = kstat_open ();
+    server->machine->pagesize = i - 1;
+    server->machine->ticks = sysconf(_SC_CLK_TCK);
+    if(server->machine->kc)
+       kstat_close(server->machine->kc);
+    server->machine->kc = kc = kstat_open ();
 
 #if 0
-    for (ksp = server->machine.kc->kc_chain; ksp != NULL; ksp = ksp->ks_next) {
+    for (ksp = server->machine->kc->kc_chain; ksp != NULL; ksp = ksp->ks_next) {
        if (!strcmp (ksp->ks_class, "vm") && !strcmp (ksp->ks_name, "vminfo")) {
-           server->machine.vminfo_kstat = ksp;
-           kstat_read (server->machine.kc, ksp, &server->machine.vminfo);
-           server->machine.vminfo_snaptime = ksp->ks_snaptime;
+           server->machine->vminfo_kstat = ksp;
+           kstat_read (server->machine->kc, ksp, &server->machine->vminfo);
+           server->machine->vminfo_snaptime = ksp->ks_snaptime;
            continue;
        }
 
@@ -166,7 +166,7 @@ glibtop_open_s (glibtop *server, const char *program_name,
            if (cpu >= server->ncpu)
                server->ncpu = cpu+1;
 
-           server->machine.cpu_stat_kstat [cpu] = ksp;
+           server->machine->cpu_stat_kstat [cpu] = ksp;
            continue;
        }
     }
@@ -177,33 +177,33 @@ glibtop_open_s (glibtop *server, const char *program_name,
        glibtop_warn_io_r (server, "kstat_open ()");
 
     server->ncpu = -1;  /* Force processor detection */
-    server->machine.vminfo_snaptime = 0;  /* Force snaptime read */
+    server->machine->vminfo_snaptime = 0;  /* Force snaptime read */
     glibtop_get_kstats(server);
 
-    server->machine.boot = 0;
-    if((ksp = server->machine.system) && kstat_read(kc, ksp, NULL) >= 0)
+    server->machine->boot = 0;
+    if((ksp = server->machine->system) && kstat_read(kc, ksp, NULL) >= 0)
     {
        kn = (kstat_named_t *)kstat_data_lookup(ksp, "boot_time");
        if(kn)
            switch(kn->data_type)
            {
 #ifdef KSTAT_DATA_INT32
-               case KSTAT_DATA_INT32:  server->machine.boot = kn->value.i32;
+               case KSTAT_DATA_INT32:  server->machine->boot = kn->value.i32;
                                        break;
-               case KSTAT_DATA_UINT32: server->machine.boot = kn->value.ui32;
+               case KSTAT_DATA_UINT32: server->machine->boot = kn->value.ui32;
                                        break;
-               case KSTAT_DATA_INT64:  server->machine.boot = kn->value.i64;
+               case KSTAT_DATA_INT64:  server->machine->boot = kn->value.i64;
                                        break;
-               case KSTAT_DATA_UINT64: server->machine.boot = kn->value.ui64;
+               case KSTAT_DATA_UINT64: server->machine->boot = kn->value.ui64;
                                        break;
 #else
-               case KSTAT_DATA_LONG:      server->machine.boot = kn->value.l;
+               case KSTAT_DATA_LONG:      server->machine->boot = kn->value.l;
                                           break;
-               case KSTAT_DATA_ULONG:     server->machine.boot = kn->value.ul;
+               case KSTAT_DATA_ULONG:     server->machine->boot = kn->value.ul;
                                           break;
-               case KSTAT_DATA_LONGLONG:  server->machine.boot = kn->value.ll;
+               case KSTAT_DATA_LONGLONG:  server->machine->boot = kn->value.ll;
                                           break;
-               case KSTAT_DATA_ULONGLONG: server->machine.boot = kn->value.ull;
+               case KSTAT_DATA_ULONGLONG: server->machine->boot = kn->value.ull;
                                           break;
 #endif
            }
@@ -214,9 +214,9 @@ glibtop_open_s (glibtop *server, const char *program_name,
 #if GLIBTOP_SOLARIS_RELEASE >= 50600
 
     dl = dlopen("/usr/lib/libproc.so", RTLD_LAZY);
-    if(server->machine.libproc)
-       dlclose(server->machine.libproc);
-    server->machine.libproc = dl;
+    if(server->machine->libproc)
+       dlclose(server->machine->libproc);
+    server->machine->libproc = dl;
     if(dl)
     {
        void *func;
@@ -224,19 +224,19 @@ glibtop_open_s (glibtop *server, const char *program_name,
        func = dlsym(dl, "Pobjname");           /* Solaris 8 */
        if(!func)
          func = dlsym(dl, "proc_objname");     /* Solaris 7 */
-       server->machine.objname = (void (*)
+       server->machine->objname = (void (*)
                                 (void *, uintptr_t, const char *, size_t))func;
-       server->machine.pgrab = (struct ps_prochandle *(*)(pid_t, int, int *))
+       server->machine->pgrab = (struct ps_prochandle *(*)(pid_t, int, int *))
                               dlsym(dl, "Pgrab");
-       server->machine.pfree = (void (*)(void *))dlsym(dl, "Pfree");
+       server->machine->pfree = (void (*)(void *))dlsym(dl, "Pfree");
        
     }
     else
     {
-       server->machine.objname = NULL;
-       server->machine.pgrab = NULL;
-       server->machine.pfree = NULL;
+       server->machine->objname = NULL;
+       server->machine->pgrab = NULL;
+       server->machine->pfree = NULL;
     }
 #endif
-    server->machine.me = getpid();
+    server->machine->me = getpid();
 }
diff --git a/sysdeps/solaris/open_suid.c b/sysdeps/solaris/open_suid.c
index 7ddaf1b..928b43f 100644
--- a/sysdeps/solaris/open_suid.c
+++ b/sysdeps/solaris/open_suid.c
@@ -62,15 +62,15 @@ glibtop_open_p (glibtop *server, const char *program_name,
 
        server->name = program_name;
 
-       server->machine.uid = getuid ();
-       server->machine.euid = geteuid ();
-       server->machine.gid = getgid ();
-       server->machine.egid = getegid ();
+       server->machine->uid = getuid ();
+       server->machine->euid = geteuid ();
+       server->machine->gid = getgid ();
+       server->machine->egid = getegid ();
 
 #if GLIBTOP_SOLARIS_RELEASE < 51000
 
-       server->machine.kd = kvm_open(NULL, NULL, NULL, O_RDONLY, NULL);
-       if(!server->machine.kd)
+       server->machine->kd = kvm_open(NULL, NULL, NULL, O_RDONLY, NULL);
+       if(!server->machine->kd)
                glibtop_warn_io_r(server, "kvm_open()");
                
 #endif
@@ -82,10 +82,10 @@ glibtop_open_p (glibtop *server, const char *program_name,
 
        */
 
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SUID ROOT PART !!! */
diff --git a/sysdeps/solaris/procmap.c b/sysdeps/solaris/procmap.c
index 43d7c81..e45160d 100644
--- a/sysdeps/solaris/procmap.c
+++ b/sysdeps/solaris/procmap.c
@@ -125,9 +125,9 @@ glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf,     pid_t pid)
 
 #if GLIBTOP_SOLARIS_RELEASE >= 50600
 
-       if(server->machine.objname && server->machine.pgrab &&
-          server->machine.pfree)
-          Pr = (server->machine.pgrab)(pid, 1, &pr_err);
+       if(server->machine->objname && server->machine->pgrab &&
+          server->machine->pfree)
+          Pr = (server->machine->pgrab)(pid, 1, &pr_err);
 #endif
        for(heap = 0,i = 0; i < nmaps; ++i)
        {
@@ -179,7 +179,7 @@ glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf,     pid_t pid)
                else
                   if(Pr)
                   {
-                     server->machine.objname(Pr, maps[i].pr_vaddr, buffer,
+                     server->machine->objname(Pr, maps[i].pr_vaddr, buffer,
                                              BUFSIZ);
                      if((len = resolvepath(buffer, entry[i].filename,
                                            GLIBTOP_MAP_FILENAME_LEN)) > 0)
@@ -194,7 +194,7 @@ glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf,     pid_t pid)
 #if GLIBTOP_SOLARIS_RELEASE >= 50600
 
        if(Pr)
-               server->machine.pfree(Pr);
+               server->machine->pfree(Pr);
 #endif
        buf->flags = _glibtop_sysdeps_proc_map;
        s_close(fd);
diff --git a/sysdeps/solaris/procmem.c b/sysdeps/solaris/procmem.c
index b1933cf..9405bf1 100644
--- a/sysdeps/solaris/procmem.c
+++ b/sysdeps/solaris/procmem.c
@@ -46,7 +46,7 @@ glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid)
        struct psinfo psinfo;
 #else
        struct prpsinfo psinfo;
-       int pagesize = server->machine.pagesize;
+       int pagesize = server->machine->pagesize;
 #endif
 
        memset (buf, 0, sizeof (glibtop_proc_mem));
diff --git a/sysdeps/solaris/sem_limits.c b/sysdeps/solaris/sem_limits.c
index 57f975d..eb93af1 100644
--- a/sysdeps/solaris/sem_limits.c
+++ b/sysdeps/solaris/sem_limits.c
@@ -50,7 +50,7 @@ _glibtop_init_sem_limits_p (glibtop *server)
 {
 #if GLIBTOP_SOLARIS_RELEASE < 51000
 
-       kvm_t *kd = server->machine.kd;
+       kvm_t *kd = server->machine->kd;
 
        if(kd && !kvm_nlist(kd, nlst))
                server->sysdeps.sem_limits = _glibtop_sysdeps_sem_limits;
@@ -65,7 +65,7 @@ void
 glibtop_get_sem_limits_p (glibtop *server, glibtop_sem_limits *buf)
 {
 #if GLIBTOP_SOLARIS_RELEASE < 51000
-       kvm_t *kd = server->machine.kd;
+       kvm_t *kd = server->machine->kd;
         glibtop_sem_limits sinfo;
 
        memset (buf, 0, sizeof (glibtop_sem_limits));
diff --git a/sysdeps/solaris/shm_limits.c b/sysdeps/solaris/shm_limits.c
index a9885c8..9b65232 100644
--- a/sysdeps/solaris/shm_limits.c
+++ b/sysdeps/solaris/shm_limits.c
@@ -50,7 +50,7 @@ _glibtop_init_shm_limits_p (glibtop *server)
 {
 #if GLIBTOP_SOLARIS_RELEASE < 51000
 
-       kvm_t * const kd = server->machine.kd;
+       kvm_t * const kd = server->machine->kd;
 
        if(kd && !kvm_nlist(kd, nlst))
                server->sysdeps.shm_limits = _glibtop_sysdeps_shm_limits;
@@ -66,7 +66,7 @@ glibtop_get_shm_limits_p (glibtop *server, glibtop_shm_limits *buf)
 {
 #if GLIBTOP_SOLARIS_RELEASE < 51000
 
-       kvm_t * const kd = server->machine.kd;
+       kvm_t * const kd = server->machine->kd;
         glibtop_shm_limits sinfo;
 
 
diff --git a/sysdeps/solaris/uptime.c b/sysdeps/solaris/uptime.c
index 24f4ff7..e69388e 100644
--- a/sysdeps/solaris/uptime.c
+++ b/sysdeps/solaris/uptime.c
@@ -44,11 +44,11 @@ glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf)
 {
        memset (buf, 0, sizeof (glibtop_uptime));
 
-       if(!(server->machine.boot))
+       if(!(server->machine->boot))
            return;
 
-       buf->boot_time = server->machine.boot;
-       buf->uptime = time(NULL) - server->machine.boot;
+       buf->boot_time = server->machine->boot;
+       buf->uptime = time(NULL) - server->machine->boot;
 
        buf->flags = _glibtop_sysdeps_uptime;
 }
diff --git a/sysdeps/stub_suid/glibtop_suid.h b/sysdeps/stub_suid/glibtop_suid.h
index 24b71b0..d6528a7 100644
--- a/sysdeps/stub_suid/glibtop_suid.h
+++ b/sysdeps/stub_suid/glibtop_suid.h
@@ -25,11 +25,11 @@
 G_BEGIN_DECLS
 
 static inline void glibtop_suid_enter (glibtop *server) {
-       setreuid (server->machine.uid, server->machine.euid);
+       setreuid (server->machine->uid, server->machine->euid);
 };
 
 static inline void glibtop_suid_leave (glibtop *server) {
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 };
 
diff --git a/sysdeps/stub_suid/open.c b/sysdeps/stub_suid/open.c
index 18cc275..aad1e20 100644
--- a/sysdeps/stub_suid/open.c
+++ b/sysdeps/stub_suid/open.c
@@ -55,17 +55,17 @@ glibtop_open_p (glibtop *server, const char *program_name,
 
        server->name = program_name;
 
-       server->machine.uid = getuid ();
-       server->machine.euid = geteuid ();
-       server->machine.gid = getgid ();
-       server->machine.egid = getegid ();
+       server->machine->uid = getuid ();
+       server->machine->euid = geteuid ();
+       server->machine->gid = getgid ();
+       server->machine->egid = getegid ();
 
        /* Drop priviledges. */
 
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SUID ROOT PART !!! */
diff --git a/sysdeps/sun4/cpu.c b/sysdeps/sun4/cpu.c
index 8864873..eed84e6 100644
--- a/sysdeps/sun4/cpu.c
+++ b/sysdeps/sun4/cpu.c
@@ -55,7 +55,7 @@ glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
 #ifdef MULTIPROCESSOR
        /* get the mp_time array as well */
 
-       if (server->machine.ncpu > 1) {
+       if (server->machine->ncpu > 1) {
                (void) _glibtop_getkval (server, _glibtop_nlist [X_MP_TIME].n_value,
                                         (int *) mp_time, sizeof (mp_time),
                                         _glibtop_nlist [X_MP_TIME].n_name);
@@ -73,8 +73,8 @@ glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
        /* [FIXME]: I had no machine with more than one processor to test
         *          this code !!! */
 
-       if (server->machine.ncpu > 1) {
-               for (i = 0; i < server->machine.ncpu; i++) {
+       if (server->machine->ncpu > 1) {
+               for (i = 0; i < server->machine->ncpu; i++) {
                        buf->user += mp_time [i][CP_USER];
                        buf->nice += mp_time [i][CP_NICE];
                        buf->sys  += mp_time [i][CP_SYS];
diff --git a/sysdeps/sun4/glibtop_suid.h b/sysdeps/sun4/glibtop_suid.h
index 5d30a63..85e2f3d 100644
--- a/sysdeps/sun4/glibtop_suid.h
+++ b/sysdeps/sun4/glibtop_suid.h
@@ -25,11 +25,11 @@
 G_BEGIN_DECLS
 
 static inline void glibtop_suid_enter (glibtop *server) {
-       setregid (server->machine.gid, server->machine.egid);
+       setregid (server->machine->gid, server->machine->egid);
 };
 
 static inline void glibtop_suid_leave (glibtop *server) {
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 };
 
diff --git a/sysdeps/sun4/loadavg.c b/sysdeps/sun4/loadavg.c
index 0415a35..b49947d 100644
--- a/sysdeps/sun4/loadavg.c
+++ b/sysdeps/sun4/loadavg.c
@@ -42,7 +42,7 @@ glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf)
 
        /* !!! THE FOLLOWING CODE RUNS SGID KMEM - CHANGE WITH CAUTION !!! */
 
-       setregid (server->machine.gid, server->machine.egid);
+       setregid (server->machine->gid, server->machine->egid);
 
        /* get the load average array */
 
@@ -50,7 +50,7 @@ glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf)
                                 (int *) avenrun, sizeof (avenrun),
                                 _glibtop_nlist [X_AVENRUN].n_name);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SGID KMEM PART !!! */
diff --git a/sysdeps/sun4/mem.c b/sysdeps/sun4/mem.c
index b75a3fb..a34654b 100644
--- a/sysdeps/sun4/mem.c
+++ b/sysdeps/sun4/mem.c
@@ -31,7 +31,7 @@ static const unsigned long _glibtop_sysdeps_mem =
 
 /* define pagetok in terms of pageshift */
 
-#define pagetok(size) ((size) << server->machine.pageshift)
+#define pagetok(size) ((size) << server->machine->pageshift)
 
 /* Provides information about memory usage. */
 
@@ -48,9 +48,9 @@ glibtop_get_mem_p (glibtop *server, glibtop_mem *buf)
 
        /* get the array of physpage descriptors */
 
-       (void) _glibtop_getkval (server, server->machine.pages,
-                                (int *) server->machine.physpage,
-                                server->machine.bytesize,
+       (void) _glibtop_getkval (server, server->machine->pages,
+                                (int *) server->machine->physpage,
+                                server->machine->bytesize,
                                 "array _page");
 
        glibtop_suid_leave (server);
@@ -67,9 +67,9 @@ glibtop_get_mem_p (glibtop *server, glibtop_mem *buf)
 
                /* bop thru the array counting page types */
 
-               pp = server->machine.physpage;
+               pp = server->machine->physpage;
                inuse = free = locked = 0;
-               for (cnt = server->machine.count; --cnt >= 0; pp++) {
+               for (cnt = server->machine->count; --cnt >= 0; pp++) {
                        if (pp->p_free)
                                free++;
                        else if (pp->p_lock || pp->p_keepcnt > 0)
diff --git a/sysdeps/sun4/msg_limits.c b/sysdeps/sun4/msg_limits.c
index d2e8682..204b4e3 100644
--- a/sysdeps/sun4/msg_limits.c
+++ b/sysdeps/sun4/msg_limits.c
@@ -50,7 +50,7 @@ glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf)
 
        /* !!! THE FOLLOWING CODE RUNS SGID KMEM - CHANGE WITH CAUTION !!! */
 
-       setregid (server->machine.gid, server->machine.egid);
+       setregid (server->machine->gid, server->machine->egid);
 
        /* get the load average array */
 
@@ -58,7 +58,7 @@ glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf)
                                 (int *) &msginfo, sizeof (msginfo),
                                 _glibtop_nlist [X_MSGINFO].n_name);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SGID KMEM PART !!! */
diff --git a/sysdeps/sun4/open.c b/sysdeps/sun4/open.c
index 87ef729..6ed6b76 100644
--- a/sysdeps/sun4/open.c
+++ b/sysdeps/sun4/open.c
@@ -85,37 +85,37 @@ glibtop_open_p (glibtop *server, const char *program_name,
 
        server->name = program_name;
 
-       server->machine.uid = getuid ();
-       server->machine.euid = geteuid ();
-       server->machine.gid = getgid ();
-       server->machine.egid = getegid ();
+       server->machine->uid = getuid ();
+       server->machine->euid = geteuid ();
+       server->machine->gid = getgid ();
+       server->machine->egid = getegid ();
 
        /* initialize the kernel interface */
 
-       server->machine.kd = kvm_open (NULL, NULL, NULL, O_RDONLY, "libgtop");
+       server->machine->kd = kvm_open (NULL, NULL, NULL, O_RDONLY, "libgtop");
 
-       if (server->machine.kd == NULL)
+       if (server->machine->kd == NULL)
                glibtop_error_io_r (server, "kvm_open");
 
        /* get the list of symbols we want to access in the kernel */
 
-       server->machine.nlist_count = kvm_nlist
-               (server->machine.kd, _glibtop_nlist);
+       server->machine->nlist_count = kvm_nlist
+               (server->machine->kd, _glibtop_nlist);
 
-       if (server->machine.nlist_count < 0)
+       if (server->machine->nlist_count < 0)
                glibtop_error_io_r (server, "nlist");
 
 #ifdef MULTIPROCESSOR
        /* were ncpu and xp_time not found in the nlist? */
 
-       if ((server->machine.nlist_count > 0) &&
+       if ((server->machine->nlist_count > 0) &&
            (_glibtop_nlist[X_NCPU].n_type == 0) &&
            (_glibtop_nlist[X_MP_TIME].n_type == 0)) {
                /* we were compiled on an MP system but we are not running
                 * on one, so we will pretend this didn't happen and set
                 * ncpu = 1 */
-               server->machine.nlist_count -= 2;
-               server->machine.ncpu = 1;
+               server->machine->nlist_count -= 2;
+               server->machine->ncpu = 1;
        }
 #endif
 
@@ -125,76 +125,76 @@ glibtop_open_p (glibtop *server, const char *program_name,
 
                /* Get the number of CPUs on this system.  */
                syscall(SYS_getcpustatus, &status,
-                       &server->machine.ncpu, &type);
+                       &server->machine->ncpu, &type);
        }
 #endif
 
        /* Make sure all of the symbols were found. */
 
-       if ((server->machine.nlist_count > 0) &&
+       if ((server->machine->nlist_count > 0) &&
            (_glibtop_check_nlist (server, _glibtop_nlist) > 0))
                _exit (1);
 
        /* Get process array stuff. */
 
        (void) _glibtop_getkval (server, _glibtop_nlist[X_NPROC].n_value,
-                                (int *)(&server->machine.nproc),
-                                sizeof (server->machine.nproc),
+                                (int *)(&server->machine->nproc),
+                                sizeof (server->machine->nproc),
                                 _glibtop_nlist[X_NPROC].n_name);
 
        (void) _glibtop_getkval (server, _glibtop_nlist[X_PROC].n_value,
-                                (int *)(&server->machine.ptable_offset),
-                                sizeof (server->machine.ptable_offset),
+                                (int *)(&server->machine->ptable_offset),
+                                sizeof (server->machine->ptable_offset),
                                 _glibtop_nlist[X_PROC].n_name);
 
-       server->machine.ptable_size = (unsigned long) server->machine.nproc *
+       server->machine->ptable_size = (unsigned long) server->machine->nproc *
                (unsigned long) sizeof (struct proc);
 
-       server->machine.proc_table = g_malloc
-               (server, server->machine.ptable_size);
+       server->machine->proc_table = g_malloc
+               (server, server->machine->ptable_size);
 
        /* This are for the memory statistics. */
 
        (void) _glibtop_getkval (server, _glibtop_nlist[X_PAGES].n_value,
-                                (int *)(&server->machine.pages),
-                                sizeof (server->machine.pages),
+                                (int *)(&server->machine->pages),
+                                sizeof (server->machine->pages),
                                 _glibtop_nlist[X_PAGES].n_name);
 
        (void) _glibtop_getkval (server, _glibtop_nlist[X_EPAGES].n_value,
-                                (int *)(&server->machine.epages),
-                                sizeof (server->machine.epages),
+                                (int *)(&server->machine->epages),
+                                sizeof (server->machine->epages),
                                 _glibtop_nlist[X_EPAGES].n_name);
 
-       server->machine.bytesize = server->machine.epages -
-               server->machine.pages;
-       server->machine.count = server->machine.bytesize /
+       server->machine->bytesize = server->machine->epages -
+               server->machine->pages;
+       server->machine->count = server->machine->bytesize /
                sizeof (struct page);
 
-       server->machine.physpage = (struct page *)
-               g_malloc (server->machine.bytesize);
+       server->machine->physpage = (struct page *)
+               g_malloc (server->machine->bytesize);
 
        /* get the page size with "getpagesize" and
         * calculate pageshift from it */
 
        pagesize = getpagesize();
 
-       server->machine.pageshift = 0;
+       server->machine->pageshift = 0;
 
        while (pagesize > 1) {
-               server->machine.pageshift++;
+               server->machine->pageshift++;
                pagesize >>= 1;
        }
 
        /* we only need the amount of log(2)1024 for our conversion */
 
-       server->machine.pageshift -= LOG1024;
+       server->machine->pageshift -= LOG1024;
 
        /* Drop priviledges. */
 
-       if (setreuid (server->machine.euid, server->machine.uid))
+       if (setreuid (server->machine->euid, server->machine->uid))
                _exit (1);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SUID ROOT PART !!! */
@@ -254,7 +254,7 @@ _glibtop_getkval (void *void_server, unsigned long offset, int *ptr,
 {
        glibtop *server = (glibtop *) void_server;
 
-       if (kvm_read (server->machine.kd, offset, ptr, size) != size)
+       if (kvm_read (server->machine->kd, offset, ptr, size) != size)
                {
                        if (*refstr == '!') return 0;
 
@@ -274,16 +274,16 @@ _glibtop_read_proc_table (void *void_server)
 
        /* !!! THE FOLLOWING CODE RUNS SGID KMEM - CHANGE WITH CAUTION !!! */
 
-       setregid (server->machine.gid, server->machine.egid);
+       setregid (server->machine->gid, server->machine->egid);
 
        /* Read process table from kernel. */
 
-       (void) _glibtop_getkval (server, server->machine.ptable_offset,
-                                (int *) server->machine.proc_table,
-                                (size_t) server->machine.ptable_size,
+       (void) _glibtop_getkval (server, server->machine->ptable_offset,
+                                (int *) server->machine->proc_table,
+                                (size_t) server->machine->ptable_size,
                                 _glibtop_nlist[X_PROC].n_name);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SGID KMEM PART !!! */
@@ -299,8 +299,8 @@ _glibtop_find_pid (void *void_server, pid_t pid)
 
        glibtop *server = (glibtop *) void_server;
 
-       for (pp = server->machine.proc_table, i = 0;
-            i < server->machine.nproc; pp++, i++) {
+       for (pp = server->machine->proc_table, i = 0;
+            i < server->machine->nproc; pp++, i++) {
                if ((pp->p_stat != 0) && (pp->p_pid == pid))
                        return pp;
        }
diff --git a/sysdeps/sun4/proclist.c b/sysdeps/sun4/proclist.c
index 724b510..d14e82f 100644
--- a/sysdeps/sun4/proclist.c
+++ b/sysdeps/sun4/proclist.c
@@ -55,8 +55,8 @@ glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
 
        /* Count number of processes. */
 
-       for (pp = server->machine.proc_table, i = 0;
-            i < server->machine.nproc; pp++, i++) {
+       for (pp = server->machine->proc_table, i = 0;
+            i < server->machine->nproc; pp++, i++) {
                if (pp->p_stat == 0)
                        continue;
                else
@@ -74,8 +74,8 @@ glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
 
        /* Write process list. */
 
-       for (pp = server->machine.proc_table, i = 0, nproc = 0;
-            i < server->machine.nproc; pp++, i++) {
+       for (pp = server->machine->proc_table, i = 0, nproc = 0;
+            i < server->machine->nproc; pp++, i++) {
                if (pp->p_stat == 0)
                        continue;
                proc_list [nproc++] = pp->p_pid;
diff --git a/sysdeps/sun4/sem_limits.c b/sysdeps/sun4/sem_limits.c
index b31fbc2..807b2dc 100644
--- a/sysdeps/sun4/sem_limits.c
+++ b/sysdeps/sun4/sem_limits.c
@@ -52,7 +52,7 @@ glibtop_get_sem_limits_p (glibtop *server, glibtop_sem_limits *buf)
 
        /* !!! THE FOLLOWING CODE RUNS SGID KMEM - CHANGE WITH CAUTION !!! */
 
-       setregid (server->machine.gid, server->machine.egid);
+       setregid (server->machine->gid, server->machine->egid);
 
        /* get the load average array */
 
@@ -60,7 +60,7 @@ glibtop_get_sem_limits_p (glibtop *server, glibtop_sem_limits *buf)
                                 (int *) &seminfo, sizeof (seminfo),
                                 _glibtop_nlist [X_SEMINFO].n_name);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SGID KMEM PART !!! */
diff --git a/sysdeps/sun4/shm_limits.c b/sysdeps/sun4/shm_limits.c
index 5ae38f1..b84cb46 100644
--- a/sysdeps/sun4/shm_limits.c
+++ b/sysdeps/sun4/shm_limits.c
@@ -50,7 +50,7 @@ glibtop_get_shm_limits_p (glibtop *server, glibtop_shm_limits *buf)
 
        /* !!! THE FOLLOWING CODE RUNS SGID KMEM - CHANGE WITH CAUTION !!! */
 
-       setregid (server->machine.gid, server->machine.egid);
+       setregid (server->machine->gid, server->machine->egid);
 
        /* get the load average array */
 
@@ -58,7 +58,7 @@ glibtop_get_shm_limits_p (glibtop *server, glibtop_shm_limits *buf)
                                 (int *) &shminfo, sizeof (shminfo),
                                 _glibtop_nlist [X_SHMINFO].n_name);
 
-       if (setregid (server->machine.egid, server->machine.gid))
+       if (setregid (server->machine->egid, server->machine->gid))
                _exit (1);
 
        /* !!! END OF SGID KMEM PART !!! */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]