]> Zhao Yanbai Git Server - minix.git/commitdiff
Created new findproc system call to the PM (to replace similar kernel
authorJorrit Herder <jnherder@minix3.org>
Thu, 2 Jun 2005 12:43:21 +0000 (12:43 +0000)
committerJorrit Herder <jnherder@minix3.org>
Thu, 2 Jun 2005 12:43:21 +0000 (12:43 +0000)
functionality). Currently working on memory allocation (not yet finished).

19 files changed:
drivers/memory/memory.c
include/minix/callnr.h
include/unistd.h
kernel/sendmask.h
lib/other/Makefile
lib/other/_findproc.c [new file with mode: 0644]
lib/other/_getprocnr.c
lib/syscall/Makefile
lib/syscall/findproc.s [new file with mode: 0644]
servers/fs/dmap.c
servers/fs/main.c
servers/fs/table.c
servers/inet/inet.c
servers/inet/mnx_eth.c
servers/pm/misc.c
servers/pm/param.h
servers/pm/proto.h
servers/pm/table.c
servers/pm/trace.c

index 0f92e0e24d43395fa917e41ebc837ddbb661c48c..568d264888373a285bea00cfa5cb471ff3521735 100644 (file)
@@ -30,9 +30,7 @@ PRIVATE int m_seg[NR_DEVS];           /* segment index of each device */
 PRIVATE int m_device;                  /* current device */
 PRIVATE struct kinfo kinfo;            /* need kernel info */ 
 PRIVATE struct machine machine;                /* need machine info */ 
-PRIVATE struct memory mem[NR_MEMS];    /* physical memory chunks */
 
-FORWARD _PROTOTYPE( int alloc_mem, (phys_bytes size, phys_bytes *base) );
 FORWARD _PROTOTYPE( char *m_name, (void) );
 FORWARD _PROTOTYPE( struct device *m_prepare, (int device) );
 FORWARD _PROTOTYPE( int m_transfer, (int proc_nr, int opcode, off_t position,
@@ -196,7 +194,7 @@ unsigned nr_req;            /* length of request vector */
                    chunk = (left > ZERO_BUF_SIZE) ? ZERO_BUF_SIZE : left;
                    if (OK != (s=sys_vircopy(SELF, D, (vir_bytes) zero, 
                            proc_nr, D, user_vir, chunk)))
-                       printf("MEMORY: sys_vircopy failed: %d\n", s);
+                       report("MEM","sys_vircopy failed", s);
                    left -= chunk;
                }
            }
@@ -232,7 +230,7 @@ message *m_ptr;
 #if (CHIP == INTEL) && ENABLE_USERPRIV && ENABLE_USERIOPL
   if (m_device == MEM_DEV || m_device == KMEM_DEV) {
        sys_enable_iop(m_ptr->PROC_NR);
-       printf("MEMORY: sys_enable_iop for proc nr %d.\n", m_ptr->PROC_NR);
+       report("MEM", "sys_enable_iop for proc nr", m_ptr->PROC_NR);
   }
 #endif
 
@@ -248,10 +246,6 @@ PRIVATE void m_init()
   /* Initialize this task. All minor devices are initialized one by one. */
   int i, s;
 
-  /* Get memory addresses from the kernel. */
-  if (OK != (s=sys_getmemchunks(&mem))) {
-      panic("MEM","Couldn't get memory chunks.",s);
-  }
   if (OK != (s=sys_getkinfo(&kinfo))) {
       panic("MEM","Couldn't get kernel information.",s);
   }
@@ -305,7 +299,7 @@ PRIVATE void m_init()
 #endif /* !(CHIP == INTEL) */
 
   /* Initialization succeeded. Print welcome message. */
-  printf("User-space memory driver (RAM disk, etc.) has been initialized.\n");
+  report("MEM","user-space memory driver has been initialized.", NO_NUM);
 }
 
 
@@ -327,23 +321,28 @@ message *m_ptr;                           /* pointer to control message */
        /* FS wants to create a new RAM disk with the given size. */
        phys_bytes ramdev_size;
        phys_bytes ramdev_base;
+       message m;
        int s;
 
        if (m_ptr->PROC_NR != FS_PROC_NR) return(EPERM);
 
        /* Try to allocate a piece of memory for the RAM disk. */
        ramdev_size = m_ptr->POSITION;
-       if (OK != (s=alloc_mem(ramdev_size, &ramdev_base)))
-           panic("MEM","Couldn't allocate kernel memory", s);
-       dv->dv_base = cvul64(ramdev_base);
-       dv->dv_size = cvul64(ramdev_size);
-       printf("Test MEM: base 0x%06x, size 0x%06x\n", dv->dv_base, dv->dv_size);
+
+       printf("MEM: about to send to PM (ramdev_size %u)\n", ramdev_size);
+       m.m_type = MEM_ALLOC;
+       m.m4_l1 = ramdev_size;
+       if (OK != (s=sendrec(PM_PROC_NR, &m)))
+               report("MEM", "Couldn't sendrec to PM", s);
+       dv->dv_size = cvul64(m.m4_l1);
+       dv->dv_base = cvul64(m.m4_l2);
+       printf("MEM: PM (s=%d) gave base 0x%06x, size 0x%06x\n", s, dv->dv_base, dv->dv_size);
 
        if (OK != (s=sys_kmalloc(ramdev_size, &ramdev_base)))
            panic("MEM","Couldn't allocate kernel memory", s);
        dv->dv_base = cvul64(ramdev_base);
        dv->dv_size = cvul64(ramdev_size);
-       printf("Real MEM: base 0x%06x, size 0x%06x\n", dv->dv_base, dv->dv_size);
+       printf("MEM allocated: base 0x%06x, size 0x%06x\n", dv->dv_base, dv->dv_size);
        if (OK != (s=sys_segctl(&m_seg[RAM_DEV], (u16_t *) &s, (vir_bytes *) &s, 
                ramdev_base, ramdev_size))) {
                panic("MEM","Couldn't install remote segment.",s);
@@ -370,26 +369,4 @@ struct partition *entry;
   entry->sectors = 32;
 }
 
-/*===========================================================================*
- *                             malloc_mem                                   *
- *===========================================================================*/
-PRIVATE int alloc_mem(chunk_size, chunk_base)
-phys_bytes chunk_size;                 /* number of bytes requested */
-phys_bytes *chunk_base;                        /* base of memory area found */
-{
-/* Request a piece of memory from one of the free memory chunks. */
-  phys_clicks tot_clicks;
-  struct memory *memp;
-  
-  tot_clicks = (chunk_size+ CLICK_SIZE-1) >> CLICK_SHIFT;
-  memp = &mem[NR_MEMS];
-  while ((--memp)->size < tot_clicks) {
-      if (memp == mem) {
-          return(ENOMEM);
-      }
-  }
-  memp->size -= tot_clicks;
-  *chunk_base = (memp->base + memp->size) << CLICK_SHIFT; 
-  return(OK);
-}
 
index c1b9bf5d938464c4307d33fb4947dedde28c07eb..0165857f2a9719698565035cd36f2eb33409e5e8 100755 (executable)
@@ -1,4 +1,4 @@
-#define NCALLS           83    /* number of system calls allowed */
+#define NCALLS           85    /* number of system calls allowed */
 
 #define EXIT              1 
 #define FORK              2 
 #define SIGPROCMASK      74
 #define SIGRETURN        75
 
-#define REBOOT           76
+#define REBOOT           76    /* to PM */
 
 /* MINIX specific calls, e.g., to support system services. */
 #define SVRCTL           77
-#define CMOSTIME         78
-#define GETSYSINFO       79    /* to MM or FS */
-#define GETPROCNR         80    /* to MM */
+#define CMOSTIME         78    /* to FS */
+#define GETSYSINFO       79    /* to PM or FS */
+#define GETPROCNR         80    /* to PM */
 
-#define FSTATFS                  82
+#define FSTATFS                  82    /* to FS */
+#define MEM_ALLOC        83    /* to PM */
+#define MEM_FREE         84    /* to PM */
index a5921db6e8cbd05394cb8dc3310e467aff61fd71..f618688db5d8560bfe407c85879b1bd643698988 100755 (executable)
@@ -144,6 +144,7 @@ _PROTOTYPE( int fttyslot, (int _fd)                                 );
 _PROTOTYPE( char *crypt, (const char *_key, const char *_salt)         );
 _PROTOTYPE( int getsysinfo, (int who, int what, void *where)           );
 _PROTOTYPE( int getprocnr, (int *proc_nr)                              );
+_PROTOTYPE( int findproc, (char *proc_name, int *proc_nr)              );
 #endif
 
 _PROTOTYPE( int setcache, (int kb));
index f1b17683fff2730e06e65fa84bf5b4744f4527a8..2885ddea14f8479f23cd300607d66b00256cd868 100644 (file)
@@ -88,6 +88,7 @@
     allow(1, IS_PROC_NR)       /* output diagnostics */ \
     allow(1, SYSTASK) \
     allow(1, TTY) \
+    allow(1, MEMORY) \
     allow(1, CLOCK) \
     allow(1, INIT_PROC_NR) \
     allow(1, FS_PROC_NR) \
     allow(1, SYSTASK)          /* system functionality needed */ \
     allow(1, CLOCK)            /* check clock alarms */ \
     allow(1, TTY)              /* output diagnostics */ \
+    allow(1, PM_PROC_NR)       /* PM alloc mem */ \
     allow(1, FS_PROC_NR)       /* FS is interface to the driver */ 
 
 #define PRN_SENDMASK \
index c05c91a7321a939e030a1c4e6780ab3f38beb0a0..50374ed765c0721c90fc7c301ca92ae54f219e75 100755 (executable)
@@ -16,6 +16,7 @@ OBJECTS       = \
        $(LIBRARY)(_svrctl.o) \
        $(LIBRARY)(_getsysinfo.o) \
        $(LIBRARY)(_getprocnr.o) \
+       $(LIBRARY)(_findproc.o) \
        $(LIBRARY)(asynchio.o) \
        $(LIBRARY)(configfile.o) \
        $(LIBRARY)(crypt.o) \
@@ -78,6 +79,9 @@ $(LIBRARY)(_svrctl.o):        _svrctl.c
 $(LIBRARY)(_getprocnr.o):      _getprocnr.c
        $(CC1) _getprocnr.c
 
+$(LIBRARY)(_findproc.o):       _findproc.c
+       $(CC1) _findproc.c
+
 $(LIBRARY)(_getsysinfo.o):     _getsysinfo.c
        $(CC1) _getsysinfo.c
 
diff --git a/lib/other/_findproc.c b/lib/other/_findproc.c
new file mode 100644 (file)
index 0000000..8e110d9
--- /dev/null
@@ -0,0 +1,19 @@
+#include <lib.h>
+#define findproc       _findproc
+#include <unistd.h>
+#include <string.h>
+
+
+PUBLIC int findproc(proc_name, proc_nr)
+char *proc_name;               /* name of process to search for */
+int *proc_nr;                  /* return process number here */
+{
+  message m;
+
+  m.m1_p1 = proc_name;
+  m.m1_i1 = strlen(proc_name) + 1;
+  if (_syscall(MM, GETPROCNR, &m) < 0) return(-1);
+  *proc_nr = m.m1_i1;
+  return(0);
+}
+
index 688a7cabac5d8a3b7ae9db1320bcc330dafc8417..8c613dcad4dddf1db28f16c7f41bba5af4b302ca 100644 (file)
@@ -7,7 +7,7 @@ PUBLIC int getprocnr(proc_nr)
 int *proc_nr;                  /* return process number here */
 {
   message m;
-
+  m.m1_i1 = 0;                 /* tell PM to get own process nr */
   if (_syscall(MM, GETPROCNR, &m) < 0) return(-1);
   *proc_nr = m.m1_i1;
   return(0);
index 41bee90dbbbb010009408a93f1b61f9ed77ef48f..ffc4977a62f9c6b8ab103d46861ebd24800e7f9d 100755 (executable)
@@ -44,6 +44,7 @@ OBJECTS       = \
        $(LIBRARY)(getppid.o) \
        $(LIBRARY)(getuid.o) \
        $(LIBRARY)(getprocnr.o) \
+       $(LIBRARY)(findproc.o) \
        $(LIBRARY)(ioctl.o) \
        $(LIBRARY)(isatty.o) \
        $(LIBRARY)(kill.o) \
@@ -218,6 +219,9 @@ $(LIBRARY)(getppid.o):      getppid.s
 $(LIBRARY)(getprocnr.o):       getprocnr.s
        $(CC1) getprocnr.s
 
+$(LIBRARY)(findproc.o):                findproc.s
+       $(CC1) findproc.s
+
 $(LIBRARY)(getuid.o):  getuid.s
        $(CC1) getuid.s
 
diff --git a/lib/syscall/findproc.s b/lib/syscall/findproc.s
new file mode 100644 (file)
index 0000000..806e484
--- /dev/null
@@ -0,0 +1,7 @@
+.sect .text
+.extern        __findproc
+.define        _findproc
+.align 2
+
+_findproc:
+       jmp     __findproc
index c0c227c9524eecb16e39401556fb5b8d004ce7cb..4cc69232a562c35ecd87a3a5940af19e079ce4d9 100644 (file)
@@ -7,6 +7,7 @@
 #include "fproc.h"
 #include "dmap.h"
 #include <string.h>
+#include <unistd.h>
 #include <minix/com.h>
 #include <minix/utils.h>
 
@@ -142,8 +143,11 @@ PUBLIC void map_controllers()
     for (dp = drivertab;
         dp < drivertab + sizeof(drivertab)/sizeof(drivertab[0]); dp++)  {
       if (strcmp(ctrlr_type, dp->wini_type) == 0) {    /* found driver name */
+#if DEAD_CODE
        if ((s=sys_getprocnr(&proc_nr,                  /* lookup proc nr */
            dp->proc_name, strlen(dp->proc_name)+1)) == OK) {
+#endif
+       if ((s=findproc(dp->proc_name, &proc_nr)) == OK) {
          for (i=0; i< max_major; i++) {                /* find mapping */
            if (dmap[i].dmap_driver == CTRLR(c)) {  
              if (map_driver(i, proc_nr, STYLE_DEV) == OK) {
index ce867c4fdba9304dc9dd392e14485938cda61dca..fe9328aafd40fdee44bb595e5e4dd61d7acfd33d 100644 (file)
@@ -96,7 +96,6 @@ PRIVATE void get_work()
   /* Normally wait for new input.  However, if 'reviving' is
    * nonzero, a suspended process must be awakened.
    */
-
   register struct fproc *rp;
 
   if (reviving != 0) {
@@ -174,10 +173,35 @@ PRIVATE void fs_init()
 {
 /* Initialize global variables, tables, etc. */
   register struct inode *rip;
+  register struct fproc *rfp;
   int key, s, i;
   message mess;
 
-  /* Certain relations must hold for the file system to work at all. Some 
+  /* Initialize the process table with help of the process manager messages. 
+   * Expect one message for each system process with its slot number and pid. 
+   * When no more processes follow, the magic process number NONE is sent. 
+   * Then, stop and synchronize with the PM.
+   */
+  do {
+       if (OK != (s=receive(PM_PROC_NR, &mess)))
+               panic(__FILE__,"FS couldn't receive from PM", s);
+       if (NONE == mess.PR_PROC_NR) break; 
+
+       rfp = &fproc[mess.PR_PROC_NR];
+       rfp->fp_pid = mess.PR_PID;
+       rfp->fp_realuid = (uid_t) SYS_UID;
+       rfp->fp_effuid = (uid_t) SYS_UID;
+       rfp->fp_realgid = (gid_t) SYS_GID;
+       rfp->fp_effgid = (gid_t) SYS_GID;
+       rfp->fp_umask = ~0;
+   
+  } while (TRUE);                      /* continue until process NONE */
+  mess.m_type = OK;                    /* tell PM that we succeeded */
+  s=send(PM_PROC_NR, &mess);           /* send synchronization message */
+
+
+  /* All process table entries have been set. Continue with FS initialization.
+   * Certain relations must hold for the file system to work at all. Some 
    * extra block_size requirements are checked at super-block-read-in time.
    */
   if (OPEN_MAX > 127) panic(__FILE__,"OPEN_MAX > 127", NO_NUM);
@@ -190,37 +214,21 @@ PRIVATE void fs_init()
   fp = (struct fproc *) NULL;
   who = FS_PROC_NR;
 
-  map_controllers();           /* map controller devices to drivers */
   buf_pool();                  /* initialize buffer pool */
+  map_controllers();           /* map controller devices to drivers */
   load_ram();                  /* init RAM disk, load if it is root */
   load_super(root_dev);                /* load super block for root device */
 
 
-  /* Initialize the process table with help of the process manager messages. 
-   * Expect one message for each system process with its slot number and pid. 
-   * When no more processes follow, the magic process number NONE is sent. 
-   * Then, stop and synchronize with the PM.
-   */
-  do {
-       if (OK != (s=receive(PM_PROC_NR, &mess)))
-               panic(__FILE__,"FS couldn't receive from PM", s);
-       if (NONE == mess.PR_PROC_NR) break; 
-
-       fp = &fproc[mess.PR_PROC_NR];
-       fp->fp_pid = mess.PR_PID;
-       rip = get_inode(root_dev, ROOT_INODE);
-       dup_inode(rip);
-       fp->fp_rootdir = rip;
-       fp->fp_workdir = rip;
-       fp->fp_realuid = (uid_t) SYS_UID;
-       fp->fp_effuid = (uid_t) SYS_UID;
-       fp->fp_realgid = (gid_t) SYS_GID;
-       fp->fp_effgid = (gid_t) SYS_GID;
-       fp->fp_umask = ~0;
-   
-  } while (TRUE);                      /* continue until process NONE */
-  mess.m_type = OK;                    /* tell PM that we succeeded */
-  s=send(PM_PROC_NR, &mess);           /* send synchronization message */
+  /* The root device can now be accessed; set process directories. */
+  for (rfp=&fproc[0]; rfp < &fproc[NR_PROCS]; rfp++) {
+       if (rfp->fp_pid != PID_FREE) {
+               rip = get_inode(root_dev, ROOT_INODE);
+               dup_inode(rip);
+               rfp->fp_rootdir = rip;
+               rfp->fp_workdir = rip;
+       }
+  }
 
   /* Register function keys with TTY. */
   for (key=SF5; key<=SF6; key++) {
index c415f476e1e837b04422f7323d4390fec2bd5e72..76155ef301b3860f2074fdadb1cd5c3e85d4650f 100644 (file)
@@ -100,6 +100,8 @@ PUBLIC _PROTOTYPE (int (*call_vec[]), (void) ) = {
        no_sys,         /* 80 = unused */
        no_sys,         /* 81 = unused */
        do_fstatfs,     /* 82 = fstatfs */
+       no_sys,         /* 83 = memalloc */
+       no_sys,         /* 84 = memfree */
 };
 /* This should not fail with "array size is negative": */
 extern int dummy[sizeof(call_vec) == NCALLS * sizeof(call_vec[0]) ? 1 : -1];
index cf3bbe223417e376d54c9428edbfd86db32e65dc..c656e58ea6b75391160765eb817a8465630b47ca 100644 (file)
@@ -175,8 +175,11 @@ PRIVATE void nw_init()
        if (svrctl(SYSSIGNON, (void *) NULL) == -1) pause();
 
        /* Our new identity as a server. */
+#if DEAD_CODE
        if (get_proc_nr(&this_proc, NULL) != OK)
-               ip_panic(( "unable to find own process nr\n"));
+#endif
+       if (getprocnr(&this_proc) != OK)
+               ip_panic(( "unable to get own process nr\n"));
 
        /* Register the device group. */
        device.dev= ip_dev;
index 76663fc26bab1989d3b370026a481926de4deddf..f8bd24a430bfe21b54fa3dfc545dacc850f6e74a 100644 (file)
@@ -19,6 +19,8 @@ Copyright 1995 Philip Homburg
 #include "generic/sr.h"
 
 #include <minix/syslib.h>
+#define _MINIX
+#include <unistd.h>
 
 THIS_FILE
 
@@ -39,8 +41,10 @@ PUBLIC void osdep_eth_init()
        for (i= 0, eth_port= eth_port_table, ecp= eth_conf;
                i<eth_conf_nr; i++, eth_port++, ecp++)
        {
-               printf("INET: sys_getprocnr() for %s\n", ecp->ec_task);
+#if DEAD_CODE
                r = sys_getprocnr(&tasknr, ecp->ec_task, strlen(ecp->ec_task));
+#endif
+               r = findproc(ecp->ec_task, &tasknr);
                if (r != OK)
                {
                        ip_panic(( "unable to find task %s: %d\n",
index 3376a44e6b75c3ec3886972e35653bccda320bba..90ee10d2515d05385cd813c5c9978ee9a8b431e6 100644 (file)
@@ -3,8 +3,10 @@
  * The entry points into this file are:
  *   do_reboot: kill all processes, then reboot system
  *   do_svrctl: process manager control
- *   do_getsysinfo: request copy of PM data structure
- *   do_getprocnr: get process slot number (like getpid)
+ *   do_getsysinfo: request copy of PM data structure  (Jorrit N. Herder)
+ *   do_getprocnr: lookup process slot number  (Jorrit N. Herder)
+ *   do_memalloc: allocate a chunk of memory  (Jorrit N. Herder)
+ *   do_memfree: deallocate a chunk of memory  (Jorrit N. Herder)
  */
 
 #include "pm.h"
@@ -22,6 +24,30 @@ FORWARD _PROTOTYPE( char *find_key, (const char *params, const char *key));
 /* PM gets a copy of all boot monitor parameters. */
 PRIVATE char monitor_params[128*sizeof(char *)];
 
+/*=====================================================================*
+ *                                 do_memalloc                        *
+ *=====================================================================*/
+PUBLIC int do_memalloc()
+{
+  vir_clicks mem_clicks;
+  phys_clicks mem_base;
+  printf("PM got request to allocate %u KB\n", m_in.memsize);
+
+  mem_clicks = (m_in.memsize + CLICK_SIZE -1 ) >> CLICK_SHIFT;
+  mem_base = alloc_mem(mem_clicks);
+  if (mem_base == NO_MEM) return(ENOMEM);
+  mp->mp_reply.membase =  (phys_bytes) (mem_base << CLICK_SHIFT);
+  return(OK);
+}
+
+/*=====================================================================*
+ *                                 do_memfree                         *
+ *=====================================================================*/
+PUBLIC int do_memfree()
+{
+  return(OK);
+}
+
 /*=====================================================================*
  *                         do_getsysinfo                              *
  *=====================================================================*/
@@ -36,7 +62,29 @@ PUBLIC int do_getsysinfo()
  *=====================================================================*/
 PUBLIC int do_getprocnr()
 {
-  mp->mp_reply.procnr = who;
+  register struct mproc *rmp;
+  static char search_key[PROC_NAME_LEN];
+  int key_len;
+  int s;
+
+  if (m_in.namelen > 0) {              /* lookup process by name */
+       key_len = MAX(m_in.namelen, PROC_NAME_LEN);
+       if (OK != (s=sys_datacopy(who, (vir_bytes) m_in.addr, 
+                       SELF, (vir_bytes) search_key, key_len))) 
+               return(s);
+       search_key[key_len] = '\0';     /* terminate for safety */
+       for (rmp = &mproc[0]; rmp < &mproc[NR_PROCS]; rmp++) {
+               if (rmp->mp_flags & IN_USE && 
+                       strncmp(rmp->mp_name, search_key, key_len)==0) {
+                       mp->mp_reply.procnr = (int) (rmp - mproc);
+                       return(OK);
+               } 
+       }
+       return(ESRCH);                  
+  } 
+  else {                               /* return own process number */
+       mp->mp_reply.procnr = who;
+  }
   return(OK);
 }
 
index f75ebaf1f41df45e120a7facbce373d115e21cce..6bf30cf0aaa2c39d14439cf41bc2c861bef7e3ae 100644 (file)
@@ -33,6 +33,8 @@
 #define svrctl_req     m2_i1
 #define svrctl_argp    m2_p1
 #define stime          m2_l1
+#define memsize        m4_l1
+#define membase        m4_l2
 
 /* The following names are synonyms for the variables in a reply message. */
 #define reply_res      m_type
index c6f8b08566296ab5e760fe947bc2d28e4c3c123e..a01efbf4099e78db48a38520c19ad38651730ac8 100644 (file)
@@ -56,6 +56,8 @@ _PROTOTYPE( int do_reboot, (void)                                     );
 _PROTOTYPE( int do_getsysinfo, (void)                                  );
 _PROTOTYPE( int do_getprocnr, (void)                                   );
 _PROTOTYPE( int do_svrctl, (void)                                      );
+_PROTOTYPE( int do_memalloc, (void)                                    );
+_PROTOTYPE( int do_memfree, (void)                                     );
 _PROTOTYPE( int do_mstats, (void)                                      );
 
 #if (MACHINE == MACINTOSH)
index 57de92881a6c45fb32a764edaeec7e81f5e88668..9efd53360d8436d689800df3b1cad20d1b9219f9 100644 (file)
@@ -98,7 +98,9 @@ _PROTOTYPE (int (*call_vec[NCALLS]), (void) ) = {
        do_getsysinfo,  /* 79 = getsysinfo */
        do_getprocnr,   /* 80 = getprocnr */
        no_sys,         /* 81 = unused */
-       no_sys,         /* 82 = unused */
+       no_sys,         /* 82 = fstatfs */
+       do_memalloc,    /* 83 = memalloc */
+       do_memfree,     /* 84 = memfree */
 };
 /* This should not fail with "array size is negative": */
 extern int dummy[sizeof(call_vec) == NCALLS * sizeof(call_vec[0]) ? 1 : -1];
index 27098b45286b875138d0044b81a291edc10dba99..dc21338ee8fe93234d3c7274e3c5567a49ab6de9 100644 (file)
@@ -29,7 +29,7 @@
 
 #define NIL_MPROC      ((struct mproc *) 0)
 
-FORWARD _PROTOTYPE( struct mproc *findproc, (pid_t lpid) );
+FORWARD _PROTOTYPE( struct mproc *find_proc, (pid_t lpid) );
 
 /*===========================================================================*
  *                             do_trace                                     *
@@ -46,7 +46,7 @@ PUBLIC int do_trace()
        mp->mp_reply.reply_trace = 0;
        return(OK);
   }
-  if ((child=findproc(m_in.pid))==NIL_MPROC || !(child->mp_flags & STOPPED)) {
+  if ((child=find_proc(m_in.pid))==NIL_MPROC || !(child->mp_flags & STOPPED)) {
        return(ESRCH);
   }
   /* all the other calls are made by the parent fork of the debugger to 
@@ -75,9 +75,9 @@ PUBLIC int do_trace()
 }
 
 /*===========================================================================*
- *                             findproc                                     *
+ *                             find_proc                                    *
  *===========================================================================*/
-PRIVATE struct mproc *findproc(lpid)
+PRIVATE struct mproc *find_proc(lpid)
 pid_t lpid;
 {
   register struct mproc *rmp;