]> Zhao Yanbai Git Server - minix.git/commitdiff
Rename SYSCTL kernel call to DIAGCTL 92/992/2
authorDavid van Moolenbroek <david@minix3.org>
Fri, 20 Sep 2013 22:58:46 +0000 (00:58 +0200)
committerLionel Sambuc <lionel@minix3.org>
Sat, 1 Mar 2014 08:04:54 +0000 (09:04 +0100)
Change-Id: I1b17373f01808d887dcbeab493838946fbef4ef6

18 files changed:
include/minix/com.h
include/minix/syslib.h
kernel/proto.h
kernel/system.c
kernel/system/Makefile.inc
kernel/system/do_diagctl.c [moved from kernel/system/do_sysctl.c with 55% similarity]
lib/libsys/Makefile
lib/libsys/kputc.c
lib/libsys/sys_diagctl.c [new file with mode: 0644]
lib/libsys/sys_sysctl.c [deleted file]
servers/is/dmp_kernel.c
servers/pm/misc.c
servers/pm/signal.c
servers/rs/main.c
servers/vfs/pipe.c
servers/vm/mem_file.c
servers/vm/mmap.c
servers/vm/pagefaults.c

index e0985618f14a901c27d2ab4435d83a17d9a7756c..8534feb7dfc40e84d8e94a0a6de6ade4296f7be1 100644 (file)
 #  define SYS_SETTIME    (KERNEL_CALL + 40)    /* sys_settime() */
 
 #  define SYS_VMCTL      (KERNEL_CALL + 43)    /* sys_vmctl() */
-#  define SYS_SYSCTL     (KERNEL_CALL + 44)    /* sys_sysctl() */
+
+#  define SYS_DIAGCTL    (KERNEL_CALL + 44)    /* sys_diagctl() */
 
 #  define SYS_VTIMER     (KERNEL_CALL + 45)    /* sys_vtimer() */
 #  define SYS_RUNCTL     (KERNEL_CALL + 46)    /* sys_runctl() */
 #define SYS_BASIC_CALLS \
     SYS_EXIT, SYS_SAFECOPYFROM, SYS_SAFECOPYTO, SYS_VSAFECOPY, SYS_GETINFO, \
     SYS_TIMES, SYS_SETALARM, SYS_SETGRANT, \
-    SYS_PROFBUF, SYS_SYSCTL, SYS_STATECTL, SYS_SAFEMEMSET
+    SYS_PROFBUF, SYS_DIAGCTL, SYS_STATECTL, SYS_SAFEMEMSET
 
 /* Field names for SYS_MEMSET. */
 #define MEM_PTR                m2_p1   /* base */
 #define VMCTL_CLEARMAPCACHE    32
 #define VMCTL_BOOTINHIBIT_CLEAR        33
 
-/* Codes and field names for SYS_SYSCTL. */
-#define SYSCTL_CODE            m1_i1   /* SYSCTL_CODE_* below */
-#define SYSCTL_ARG1            m1_p1
-#define SYSCTL_ARG2            m1_i2
-#define SYSCTL_CODE_DIAG       1       /* Print diagnostics. */
-#define SYSCTL_CODE_STACKTRACE 2       /* Print process stack. */
+/* Codes and field names for SYS_DIAGCTL. */
+#define DIAGCTL_CODE           m1_i1   /* DIAGCTL_CODE_* below */
+#define DIAGCTL_ARG1           m1_p1
+#define DIAGCTL_ARG2           m1_i2
+#define DIAGCTL_CODE_DIAG      1       /* Print diagnostics. */
+#define DIAGCTL_CODE_STACKTRACE        2       /* Print process stack. */
 #define DIAG_BUFSIZE   (80*25)
 
 /* Field names for SYS_VTIMER. */
index 3d1d1084b7c410983c402999eae7be2fd8348d8b..dad15608070b43d25ec1fb89c95f696ba6371dcd 100644 (file)
@@ -69,8 +69,8 @@ int sys_vmctl_enable_paging(void * data);
 int sys_readbios(phys_bytes address, void *buf, size_t size);
 int sys_settime(int now, clockid_t clk_id, time_t sec, long nsec);
 int sys_stime(time_t boottime);
-int sys_sysctl(int ctl, char *arg1, int arg2);
-int sys_sysctl_stacktrace(endpoint_t who);
+int sys_diagctl(int ctl, char *arg1, int arg2);
+int sys_diagctl_stacktrace(endpoint_t who);
 int sys_vmctl_get_mapping(int index, phys_bytes *addr, phys_bytes *len,
        int *flags);
 int sys_vmctl_reply_mapping(int index, vir_bytes addr);
index 6ebe443b456ed1be8fbdb72c7c0d8ef3575168d8..ac2b5562547d7e9143b43775f81c13c72ed1baa8 100644 (file)
@@ -137,8 +137,8 @@ void hook_ipc_clear(struct proc *proc);
 int verify_grant(endpoint_t, endpoint_t, cp_grant_id_t, vir_bytes, int,
        vir_bytes, vir_bytes *, endpoint_t *);
 
-/* system/do_sysctl.c */
-int do_sysctl(struct proc * caller, message *m);
+/* system/do_diagctl.c */
+int do_diagctl(struct proc * caller, message *m);
 
 #if SPROFILE
 /* profile.c */
index 3e1eff6ed6d6e282ebcf275302d44a23c75556b7..084d47760b0b5df2c074e90026d9c044ddee9763 100644 (file)
@@ -241,7 +241,7 @@ void system_init(void)
   /* System control. */
   map(SYS_ABORT, do_abort);            /* abort MINIX */
   map(SYS_GETINFO, do_getinfo);        /* request system information */ 
-  map(SYS_SYSCTL, do_sysctl);          /* misc system manipulation */ 
+  map(SYS_DIAGCTL, do_diagctl);                /* diagnostics-related functionality */
 
   /* Profiling. */
   map(SYS_SPROF, do_sprofile);         /* start/stop statistical profiling */
index e90b476402b13f8a067f77adc1b62c169f7faab9..431bbe584b4e3fb10efc63b1a0c4d9e9b687eb17 100644 (file)
@@ -25,7 +25,7 @@ SRCS+=        \
        do_privctl.c \
        do_safecopy.c \
        do_safememset.c \
-       do_sysctl.c \
+       do_diagctl.c \
        do_getksig.c \
        do_endksig.c \
        do_kill.c \
similarity index 55%
rename from kernel/system/do_sysctl.c
rename to kernel/system/do_diagctl.c
index 5bc6b100a711c56fbc8727fc13184b347eedc27a..a75051b9dff92a24f30b6c3fdada61b1321137fa 100644 (file)
@@ -1,35 +1,35 @@
 /* The kernel call implemented in this file:
- *   m_type:   SYS_SYSCTL
+ *   m_type:   SYS_DIAGCTL
  *
  * The parameters for this kernel call are:
- *     SYSCTL_CODE     request
- * and then request-specific arguments in SYSCTL_ARG1 and SYSCTL_ARG2.
+ *     DIAGCTL_CODE    request
+ * and then request-specific arguments in DIAGCTL_ARG1 and DIAGCTL_ARG2.
  */
 
 #include "kernel/system.h"
 
 
 /*===========================================================================*
- *                             do_sysctl                                    *
+ *                             do_diagctl                                   *
  *===========================================================================*/
-int do_sysctl(struct proc * caller, message * m_ptr)
+int do_diagctl(struct proc * caller, message * m_ptr)
 {
   vir_bytes len, buf;
   static char mybuf[DIAG_BUFSIZE];
   int s, i, proc_nr;
 
-  switch (m_ptr->SYSCTL_CODE) {
-    case SYSCTL_CODE_DIAG:
-        buf = (vir_bytes) m_ptr->SYSCTL_ARG1;
-        len = (vir_bytes) m_ptr->SYSCTL_ARG2;
+  switch (m_ptr->DIAGCTL_CODE) {
+    case DIAGCTL_CODE_DIAG:
+        buf = (vir_bytes) m_ptr->DIAGCTL_ARG1;
+        len = (vir_bytes) m_ptr->DIAGCTL_ARG2;
        if(len < 1 || len > DIAG_BUFSIZE) {
-               printf("do_sysctl: diag for %d: len %d out of range\n",
+               printf("do_diagctl: diag for %d: len %d out of range\n",
                        caller->p_endpoint, len);
                return EINVAL;
        }
        if((s=data_copy_vmcheck(caller, caller->p_endpoint, buf, KERNEL,
                                        (vir_bytes) mybuf, len)) != OK) {
-               printf("do_sysctl: diag for %d: len %d: copy failed: %d\n",
+               printf("do_diagctl: diag for %d: len %d: copy failed: %d\n",
                        caller->p_endpoint, len, s);
                return s;
        }
@@ -37,13 +37,13 @@ int do_sysctl(struct proc * caller, message * m_ptr)
                kputc(mybuf[i]);
        kputc(END_OF_KMESS);
        return OK;
-    case SYSCTL_CODE_STACKTRACE:
-       if(!isokendpt(m_ptr->SYSCTL_ARG2, &proc_nr))
+    case DIAGCTL_CODE_STACKTRACE:
+       if(!isokendpt(m_ptr->DIAGCTL_ARG2, &proc_nr))
                return EINVAL;
        proc_stacktrace(proc_addr(proc_nr));
        return OK;
     default:
-       printf("do_sysctl: invalid request %d\n", m_ptr->SYSCTL_CODE);
+       printf("do_diagctl: invalid request %d\n", m_ptr->DIAGCTL_CODE);
         return(EINVAL);
   }
 }
index 5d5759730f877e3d73a084e04f17119b8c389db8..ba6d9601821684797c96d3eca286f56004df2813 100644 (file)
@@ -38,6 +38,7 @@ SRCS+=  \
        sys_abort.c \
        sys_clear.c \
        sys_cprof.c \
+       sys_diagctl.c \
        sys_endsig.c \
        sys_exec.c \
        sys_exit.c \
@@ -66,7 +67,6 @@ SRCS+=  \
        sys_sprof.c \
        sys_statectl.c \
        sys_stime.c \
-       sys_sysctl.c \
        sys_times.c \
        sys_trace.c \
        sys_umap.c \
index 9e73012728756f578a171acddcf9be5795549ddf..5e3fbbf402bba8c3fb69c8e16054b4ada342f710 100644 (file)
@@ -20,7 +20,7 @@ void kputc(int c)
   static int buf_count;                /* # characters in the buffer */
 
   if ((c == 0 && buf_count > 0) || buf_count == sizeof(print_buf)) {
-       sys_sysctl(SYSCTL_CODE_DIAG, print_buf, buf_count);
+       sys_diagctl(DIAGCTL_CODE_DIAG, print_buf, buf_count);
        buf_count = 0;
   }
   if (c != 0) { 
diff --git a/lib/libsys/sys_diagctl.c b/lib/libsys/sys_diagctl.c
new file mode 100644 (file)
index 0000000..a74777c
--- /dev/null
@@ -0,0 +1,19 @@
+
+#include "syslib.h"
+
+int sys_diagctl(int code, char *arg1, int arg2)
+{
+  message m;
+
+  m.DIAGCTL_CODE = code;
+  m.DIAGCTL_ARG1 = arg1;
+  m.DIAGCTL_ARG2 = arg2;
+
+  return(_kernel_call(SYS_DIAGCTL, &m));
+}
+
+int sys_diagctl_stacktrace(endpoint_t ep)
+{
+  return sys_diagctl(DIAGCTL_CODE_STACKTRACE, NULL, ep);
+}
+
diff --git a/lib/libsys/sys_sysctl.c b/lib/libsys/sys_sysctl.c
deleted file mode 100644 (file)
index 443a9cc..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-
-#include "syslib.h"
-
-int sys_sysctl(int code, char *arg1, int arg2)
-{
-  message m;
-
-  m.SYSCTL_CODE = code;
-  m.SYSCTL_ARG1 = arg1;
-  m.SYSCTL_ARG2 = arg2;
-
-  return(_kernel_call(SYS_SYSCTL, &m));
-
-}
-
-int sys_sysctl_stacktrace(endpoint_t ep)
-{
-  return sys_sysctl(SYSCTL_CODE_STACKTRACE, NULL, ep);
-}
-
index 6c6a318b226896f59f4be663ab28e80c5d77a285..159927821ae98021e132d35dde0ef54db7ee3cf8 100644 (file)
@@ -370,7 +370,7 @@ void procstack_dmp()
   PROCLOOP(rp, oldrp)
        PRINTRTS(rp);
        printf("\n"); pagelines++;
-       sys_sysctl_stacktrace(rp->p_endpoint);
+       sys_diagctl_stacktrace(rp->p_endpoint);
   }
 }
 
index 40291a53cf443f8b10c61e2ac036c35ec685bdec..579024f6be6b359e1ffc299b646c2c53dbbbe14a 100644 (file)
@@ -142,7 +142,7 @@ int do_getsysinfo()
   {
        printf("PM: unauthorized call of do_getsysinfo by proc %d '%s'\n",
                mp->mp_endpoint, mp->mp_name);
-       sys_sysctl_stacktrace(mp->mp_endpoint);
+       sys_diagctl_stacktrace(mp->mp_endpoint);
        return EPERM;
   }
 
@@ -190,7 +190,7 @@ int do_getprocnr()
 
        printf("PM: unauthorized call of do_getprocnr by proc %d\n",
                mp->mp_endpoint);
-       sys_sysctl_stacktrace(mp->mp_endpoint);
+       sys_diagctl_stacktrace(mp->mp_endpoint);
        return EPERM;
   }
 
@@ -267,7 +267,7 @@ int do_getepinfo_o()
   if (mp->mp_effuid != 0) {
        printf("PM: unauthorized call of do_getepinfo_o by proc %d\n",
                mp->mp_endpoint);
-       sys_sysctl_stacktrace(mp->mp_endpoint);
+       sys_diagctl_stacktrace(mp->mp_endpoint);
        return EPERM;
   }
 
index 43122caabc50497e3b085271a8a4d31df50d3088..fd35304c7ff69f0d759398a408871f87aa3c5b6a 100644 (file)
@@ -380,7 +380,7 @@ int ksig;                   /* non-zero means signal comes from kernel  */
 
        /* Print stacktrace if necessary. */
        if(SIGS_IS_STACKTRACE(signo)) {
-               sys_sysctl_stacktrace(rmp->mp_endpoint);
+               sys_diagctl_stacktrace(rmp->mp_endpoint);
        }
 
        if(!SIGS_IS_TERMINATION(signo)) {
@@ -475,7 +475,7 @@ int signo;                  /* signal that caused termination */
        if(!(rmp->mp_flags & PRIV_PROC)) {
                printf("PM: coredump signal %d for %d / %s\n", signo,
                        rmp->mp_pid, rmp->mp_name);
-               sys_sysctl_stacktrace(rmp->mp_endpoint);
+               sys_diagctl_stacktrace(rmp->mp_endpoint);
        }
        exit_proc(rmp, 0, TRUE /*dump_core*/);
   }
index dc1caf797b300a0a6030fae3cfa479a0b6c7b79d..0201fe1b04dbcc3bf42b83e3604f2961aea1d126 100644 (file)
@@ -540,7 +540,7 @@ static int sef_cb_signal_manager(endpoint_t target, int signo)
 
   /* Print stacktrace if necessary. */
   if(SIGS_IS_STACKTRACE(signo)) {
-       sys_sysctl_stacktrace(target);
+       sys_diagctl_stacktrace(target);
   }
 
   /* In case of termination signal handle the event. */
index e21536e06be03d0744320493512978b6a3e4a3e1..135891e3b0b3c58e3150330d45b14bcc7b69e729 100644 (file)
@@ -567,7 +567,7 @@ void unpause(void)
                        panic("file descriptor out-of-range");
                f = fp->fp_filp[fild];
                if(!f) {
-                       sys_sysctl_stacktrace(fp->fp_endpoint);
+                       sys_diagctl_stacktrace(fp->fp_endpoint);
                        panic("process %d blocked on empty fd %d",
                                fp->fp_endpoint, fild);
                }
index 023e0f968efad31cd7e635a6007995bfaf57d478..2588cdbea8ee6f5c6ab7f0466882169b9ff63cdf 100644 (file)
@@ -125,7 +125,7 @@ static int mappedfile_pagefault(struct vmproc *vmp, struct vir_region *region,
 
                if(!cb) {
                        printf("VM: mem_file: no callback, returning EFAULT\n");
-                       sys_sysctl_stacktrace(vmp->vm_endpoint);
+                       sys_diagctl_stacktrace(vmp->vm_endpoint);
                        return EFAULT;
                }
 
index d05c37d392f68148f569533fe67df990a44c4422..8985fcdcd6dfe0e575f2340a7823fa1129afd546 100644 (file)
@@ -182,7 +182,7 @@ static void mmap_file_cont(struct vmproc *vmp, message *replymsg, void *cbarg,
        if(replymsg->VMV_RESULT != OK) {
 #if 0   /* Noisy diagnostic for mmap() by ld.so */
                printf("VM: VFS reply failed (%d)\n", replymsg->VMV_RESULT);
-               sys_sysctl_stacktrace(vmp->vm_endpoint);
+               sys_diagctl_stacktrace(vmp->vm_endpoint);
 #endif
                result = origmsg->VMV_RESULT;
        } else {
@@ -532,7 +532,7 @@ int do_munmap(message *m)
                if(!(vr = map_lookup(vmp, addr, NULL))) {
                        printf("VM: unmap: address 0x%lx not found in %d\n",
                               addr, target);
-                       sys_sysctl_stacktrace(target);
+                       sys_diagctl_stacktrace(target);
                        return EFAULT;
                }
                len = vr->length;
index 6ae166a6802e1d9f954dab6ff1930a181660cbc8..1cba5e2e997f5098281d85143d7ed444d40025c9 100644 (file)
@@ -87,7 +87,7 @@ static void handle_pagefault(endpoint_t ep, vir_bytes addr, u32_t err, int retry
                        assert(PFERR_NOPAGE(err));
                        printf("VM: pagefault: SIGSEGV %d bad addr 0x%lx; %s\n",
                                        ep, addr, pf_errstr(err));
-                       sys_sysctl_stacktrace(ep);
+                       sys_diagctl_stacktrace(ep);
                }
                if((s=sys_kill(vmp->vm_endpoint, SIGSEGV)) != OK)
                        panic("sys_kill failed: %d", s);