diff --git a/testcases/kernel/syscalls/accept/accept01.c b/testcases/kernel/syscalls/accept/accept01.c
index 30bc166..453fe00 100644
--- a/testcases/kernel/syscalls/accept/accept01.c
+++ b/testcases/kernel/syscalls/accept/accept01.c
@@ -56,7 +56,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "accept01";	/* Test program identifier.    */
+char *TCID = "accept01";
 int testno;
 
 int s;				/* socket descriptor */
@@ -99,7 +99,7 @@
 PF_INET, SOCK_DGRAM, 0, (struct sockaddr *)&fsin1,
 		    &sinlen, -1, EOPNOTSUPP, setup1, cleanup1, "UDP accept"},};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EBADF, ENOTSOCK, EINVAL, EOPNOTSUPP, 0 };
 
@@ -108,7 +108,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
@@ -145,9 +144,8 @@
 
 void setup(void)
 {
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 
-	/* set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* initialize local sockaddr */
diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c
index 526be6e..6e6f017 100644
--- a/testcases/kernel/syscalls/accept4/accept4_01.c
+++ b/testcases/kernel/syscalls/accept4/accept4_01.c
@@ -79,9 +79,8 @@
 #define USE_SOCKETCALL 1
 #endif
 
-/* Global Variables */
-char *TCID = "accept04_01";	/* test program identifier.          */
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+char *TCID = "accept04_01";
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/access/access01.c b/testcases/kernel/syscalls/access/access01.c
index 648f45b..f239f3f 100644
--- a/testcases/kernel/syscalls/access/access01.c
+++ b/testcases/kernel/syscalls/access/access01.c
@@ -130,8 +130,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "access01";	/* Test program identifier.     */
-int TST_TOTAL = 4;		/* Total number of test cases. */
+char *TCID = "access01";
+int TST_TOTAL = 4;
 
 char Fname[255];
 
diff --git a/testcases/kernel/syscalls/access/access02.c b/testcases/kernel/syscalls/access/access02.c
index 61cdc43..55ad73a 100644
--- a/testcases/kernel/syscalls/access/access02.c
+++ b/testcases/kernel/syscalls/access/access02.c
@@ -90,8 +90,8 @@
 #define FILE_MODE	(S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
 #define EXE_MODE	0777
 
-char *TCID = "access02";	/* Test program identifier.    */
-int TST_TOTAL = 4;		/* Total number of test cases. */
+char *TCID = "access02";
+int TST_TOTAL = 4;
 int fd1, fd2, fd4;		/* file descriptor for testfile(s) */
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
diff --git a/testcases/kernel/syscalls/access/access03.c b/testcases/kernel/syscalls/access/access03.c
index 540f7bf..145ec74 100644
--- a/testcases/kernel/syscalls/access/access03.c
+++ b/testcases/kernel/syscalls/access/access03.c
@@ -109,8 +109,8 @@
 static void setup(void);
 static void cleanup(void);
 
-char *TCID = "access03";	/* Test program identifier.     */
-int TST_TOTAL = 8;		/* Total number of test cases. */
+char *TCID = "access03";
+int TST_TOTAL = 8;
 
 int exp_enos[] = { EFAULT, 0 };	/* List must end with 0 */
 
diff --git a/testcases/kernel/syscalls/access/access04.c b/testcases/kernel/syscalls/access/access04.c
index 5cfae45..6da846d 100644
--- a/testcases/kernel/syscalls/access/access04.c
+++ b/testcases/kernel/syscalls/access/access04.c
@@ -84,8 +84,8 @@
 #define DIR_MODE	S_IRWXU | S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP
 #define FILE_MODE	S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 
-char *TCID = "access04";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "access04";
+int TST_TOTAL = 1;
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
diff --git a/testcases/kernel/syscalls/access/access05.c b/testcases/kernel/syscalls/access/access05.c
index f47d7fc..20b71d8 100644
--- a/testcases/kernel/syscalls/access/access05.c
+++ b/testcases/kernel/syscalls/access/access05.c
@@ -130,7 +130,7 @@
 	"", W_OK, ENOENT, NULL}, {
 Longpathname, R_OK, ENAMETOOLONG, longpath_setup},};
 
-char *TCID = "access05";	/* Test program identifier.    */
+char *TCID = "access05";
 int TST_TOTAL = sizeof(test_cases) / sizeof(*test_cases);
 int exp_enos[] = { EACCES, EFAULT, EINVAL, ENOENT, ENAMETOOLONG, 0 };
 
diff --git a/testcases/kernel/syscalls/acct/acct02.c b/testcases/kernel/syscalls/acct/acct02.c
index ff3900d..f1c7bf6 100644
--- a/testcases/kernel/syscalls/acct/acct02.c
+++ b/testcases/kernel/syscalls/acct/acct02.c
@@ -50,8 +50,8 @@
 #define FAILED 0
 #define PASSED 1
 
-char *TCID = "acct02";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "acct02";
+int TST_TOTAL = 2;
 /**************/
 
 char fname[80];
diff --git a/testcases/kernel/syscalls/add_key/add_key01.c b/testcases/kernel/syscalls/add_key/add_key01.c
index c31255f..a4c5d2e 100644
--- a/testcases/kernel/syscalls/add_key/add_key01.c
+++ b/testcases/kernel/syscalls/add_key/add_key01.c
@@ -42,14 +42,12 @@
 #include <errno.h>
 #include <linux/keyctl.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Global Variables */
-char *TCID = "add_key01";	/* Test program identifier. */
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+char *TCID = "add_key01";
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/add_key/add_key02.c b/testcases/kernel/syscalls/add_key/add_key02.c
index c394722..5e95d83 100644
--- a/testcases/kernel/syscalls/add_key/add_key02.c
+++ b/testcases/kernel/syscalls/add_key/add_key02.c
@@ -42,17 +42,13 @@
 #include <errno.h>
 #include <linux/keyctl.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "add_key02";	/* Test program identifier. */
+char *TCID = "add_key02";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/adjtimex/adjtimex01.c b/testcases/kernel/syscalls/adjtimex/adjtimex01.c
index 51d5d2a..000a979 100644
--- a/testcases/kernel/syscalls/adjtimex/adjtimex01.c
+++ b/testcases/kernel/syscalls/adjtimex/adjtimex01.c
@@ -80,8 +80,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "adjtimex01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "adjtimex01";
+int TST_TOTAL = 1;
 
 static struct timex tim_save;
 
diff --git a/testcases/kernel/syscalls/adjtimex/adjtimex02.c b/testcases/kernel/syscalls/adjtimex/adjtimex02.c
index aac1e18..437dd95 100644
--- a/testcases/kernel/syscalls/adjtimex/adjtimex02.c
+++ b/testcases/kernel/syscalls/adjtimex/adjtimex02.c
@@ -105,7 +105,7 @@
 static void cleanup();
 static void cleanup6();
 
-char *TCID = "adjtimex02";	/* Test program identifier.    */
+char *TCID = "adjtimex02";
 
 static int hz;			/* HZ from sysconf */
 
diff --git a/testcases/kernel/syscalls/alarm/alarm01.c b/testcases/kernel/syscalls/alarm/alarm01.c
index 085c025..e69f4b1 100644
--- a/testcases/kernel/syscalls/alarm/alarm01.c
+++ b/testcases/kernel/syscalls/alarm/alarm01.c
@@ -118,8 +118,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "alarm01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "alarm01";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/alarm/alarm02.c b/testcases/kernel/syscalls/alarm/alarm02.c
index 28971a6..b3044d8 100644
--- a/testcases/kernel/syscalls/alarm/alarm02.c
+++ b/testcases/kernel/syscalls/alarm/alarm02.c
@@ -97,8 +97,8 @@
 void cleanup();
 void alarm_received();
 
-char *TCID = "alarm02";		/* Test program identifier.    */
-int TST_TOTAL = 3;		/* Total number of test cases. */
+char *TCID = "alarm02";
+int TST_TOTAL = 3;
 
 int received_alarm = 0;		/* Indicates a SIGALRM was received */
 
diff --git a/testcases/kernel/syscalls/alarm/alarm03.c b/testcases/kernel/syscalls/alarm/alarm03.c
index 552a020..ed3a7a4 100644
--- a/testcases/kernel/syscalls/alarm/alarm03.c
+++ b/testcases/kernel/syscalls/alarm/alarm03.c
@@ -104,8 +104,8 @@
 void cleanup();
 void trapper();
 
-char *TCID = "alarm03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "alarm03";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/alarm/alarm05.c b/testcases/kernel/syscalls/alarm/alarm05.c
index 9df1458..cb4a69f 100644
--- a/testcases/kernel/syscalls/alarm/alarm05.c
+++ b/testcases/kernel/syscalls/alarm/alarm05.c
@@ -76,8 +76,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "alarm05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "alarm05";
+int TST_TOTAL = 1;
 int alarms_received = 0;	/* flag to indicate SIGALRM received or not */
 
 void setup();			/* Main setup function of test */
diff --git a/testcases/kernel/syscalls/asyncio/asyncio02.c b/testcases/kernel/syscalls/asyncio/asyncio02.c
index cbdffa8..209c958 100644
--- a/testcases/kernel/syscalls/asyncio/asyncio02.c
+++ b/testcases/kernel/syscalls/asyncio/asyncio02.c
@@ -119,8 +119,8 @@
 void cleanup();
 int testrun(int flag, int bytes, int ti);
 
-char *TCID = "asyncio02";	/* Test program identifier.    */
-int TST_TOTAL = 6;		/* Total number of test cases. */
+char *TCID = "asyncio02";
+int TST_TOTAL = 6;
 
 int exp_enos[] = { 0 };		/* Array of expected errnos */
 
diff --git a/testcases/kernel/syscalls/bind/bind01.c b/testcases/kernel/syscalls/bind/bind01.c
index 05240f7..ed02299 100644
--- a/testcases/kernel/syscalls/bind/bind01.c
+++ b/testcases/kernel/syscalls/bind/bind01.c
@@ -54,7 +54,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "bind01";		/* Test program identifier.    */
+char *TCID = "bind01";
 int testno;
 
 int s;				/* socket descriptor */
@@ -102,7 +102,7 @@
 		    "non-local address"}
 ,};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EFAULT, EINVAL, ENOTSOCK, EADDRINUSE, EADDRNOTAVAIL, 0 };
 
@@ -111,7 +111,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, 0, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/bind/bind02.c b/testcases/kernel/syscalls/bind/bind02.c
index e7c6337..f74ab5b 100644
--- a/testcases/kernel/syscalls/bind/bind02.c
+++ b/testcases/kernel/syscalls/bind/bind02.c
@@ -58,7 +58,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "bind02";		/* Test program identifier.    */
+char *TCID = "bind02";
 int testno;
 int TST_TOTAL = 1;
 
diff --git a/testcases/kernel/syscalls/brk/brk01.c b/testcases/kernel/syscalls/brk/brk01.c
index 229de0a..928717b 100644
--- a/testcases/kernel/syscalls/brk/brk01.c
+++ b/testcases/kernel/syscalls/brk/brk01.c
@@ -116,8 +116,8 @@
 
 #define MAX_SIZE_LC	1000	/* loop count test will reach max size */
 
-char *TCID = "brk01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "brk01";
+int TST_TOTAL = 1;
 
 long Max_brk_byte_size;
 long Beg_brk_val;
diff --git a/testcases/kernel/syscalls/cacheflush/cacheflush01.c b/testcases/kernel/syscalls/cacheflush/cacheflush01.c
index cb3fb5a..d4d353f 100644
--- a/testcases/kernel/syscalls/cacheflush/cacheflush01.c
+++ b/testcases/kernel/syscalls/cacheflush/cacheflush01.c
@@ -44,7 +44,6 @@
 #include <stdlib.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -65,11 +64,8 @@
 #endif
 #endif
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "cacheflush01";	/* Test program identifier. */
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+char *TCID = "cacheflush01";
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/capget/capget01.c b/testcases/kernel/syscalls/capget/capget01.c
index 0de68c0..cd4057f 100644
--- a/testcases/kernel/syscalls/capget/capget01.c
+++ b/testcases/kernel/syscalls/capget/capget01.c
@@ -73,8 +73,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "capget01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "capget01";
+int TST_TOTAL = 1;
 
 static struct __user_cap_header_struct header;	/* cap_user_header_t is a pointer
 						   to __user_cap_header_struct */
diff --git a/testcases/kernel/syscalls/capget/capget02.c b/testcases/kernel/syscalls/capget/capget02.c
index d63f66c..daa654f 100644
--- a/testcases/kernel/syscalls/capget/capget02.c
+++ b/testcases/kernel/syscalls/capget/capget02.c
@@ -94,7 +94,7 @@
 static void cleanup();
 static void test_setup(int);
 
-char *TCID = "capget02";	/* Test program identifier.    */
+char *TCID = "capget02";
 static int exp_enos[] = { EFAULT, EINVAL, ESRCH, 0 };
 
 static struct __user_cap_header_struct header;
diff --git a/testcases/kernel/syscalls/capset/capset01.c b/testcases/kernel/syscalls/capset/capset01.c
index c367865..79d0d9f 100644
--- a/testcases/kernel/syscalls/capset/capset01.c
+++ b/testcases/kernel/syscalls/capset/capset01.c
@@ -86,8 +86,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "capset01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "capset01";
+int TST_TOTAL = 1;
 static int exp_enos[] = { EFAULT, EINVAL, EPERM, 0 };
 
 static struct __user_cap_header_struct header;	/* cap_user_header_t is a pointer
diff --git a/testcases/kernel/syscalls/capset/capset02.c b/testcases/kernel/syscalls/capset/capset02.c
index 0c3f911..307d990 100644
--- a/testcases/kernel/syscalls/capset/capset02.c
+++ b/testcases/kernel/syscalls/capset/capset02.c
@@ -104,7 +104,7 @@
 
 static pid_t child_pid = -1;
 
-char *TCID = "capset02";	/* Test program identifier.    */
+char *TCID = "capset02";
 static int exp_enos[] = { EFAULT, EINVAL, EPERM, 0 };
 
 static struct __user_cap_header_struct header;
diff --git a/testcases/kernel/syscalls/chdir/chdir01.c b/testcases/kernel/syscalls/chdir/chdir01.c
index d69f42a..04fb8b4 100644
--- a/testcases/kernel/syscalls/chdir/chdir01.c
+++ b/testcases/kernel/syscalls/chdir/chdir01.c
@@ -58,8 +58,8 @@
 #include "usctest.h"
 #include "safe_macros.h"
 
-char *TCID = "chdir01";		/* Test program identifier */
-int TST_TOTAL = 1;		/* Total number of test cases */
+char *TCID = "chdir01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { ENOTDIR, 0 };
 
diff --git a/testcases/kernel/syscalls/chdir/chdir02.c b/testcases/kernel/syscalls/chdir/chdir02.c
index f119f75..3ad0921 100644
--- a/testcases/kernel/syscalls/chdir/chdir02.c
+++ b/testcases/kernel/syscalls/chdir/chdir02.c
@@ -118,8 +118,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "chdir02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "chdir02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/chmod/chmod02.c b/testcases/kernel/syscalls/chmod/chmod02.c
index 4a80db1..242cbd3 100644
--- a/testcases/kernel/syscalls/chmod/chmod02.c
+++ b/testcases/kernel/syscalls/chmod/chmod02.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "chmod02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "chmod02";
+int TST_TOTAL = 1;
 
 char fname[255];
 char *buf = "file contents\n";
diff --git a/testcases/kernel/syscalls/chmod/chmod03.c b/testcases/kernel/syscalls/chmod/chmod03.c
index 4275e9b..f7df56e 100644
--- a/testcases/kernel/syscalls/chmod/chmod03.c
+++ b/testcases/kernel/syscalls/chmod/chmod03.c
@@ -89,8 +89,8 @@
 				 */
 #define TESTFILE	"testfile"
 
-char *TCID = "chmod03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "chmod03";
+int TST_TOTAL = 1;
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
diff --git a/testcases/kernel/syscalls/chmod/chmod04.c b/testcases/kernel/syscalls/chmod/chmod04.c
index 496c724..228a43f 100644
--- a/testcases/kernel/syscalls/chmod/chmod04.c
+++ b/testcases/kernel/syscalls/chmod/chmod04.c
@@ -89,13 +89,13 @@
 				 */
 #define TESTDIR		"testdir_4"
 
-char *TCID = "chmod04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "chmod04";
+int TST_TOTAL = 1;
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/chmod/chmod05.c b/testcases/kernel/syscalls/chmod/chmod05.c
index 6696515..93aeec4 100644
--- a/testcases/kernel/syscalls/chmod/chmod05.c
+++ b/testcases/kernel/syscalls/chmod/chmod05.c
@@ -110,8 +110,8 @@
 #define PERMS		(mode_t)(MODE_RWX | DIR_MODE)
 #define TESTDIR		"testdir"
 
-char *TCID = "chmod05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "chmod05";
+int TST_TOTAL = 1;
 
 void setup();			/* Main setup function for test */
 void cleanup();			/* Main cleanup function for test */
diff --git a/testcases/kernel/syscalls/chmod/chmod07.c b/testcases/kernel/syscalls/chmod/chmod07.c
index a898671..ee89290 100644
--- a/testcases/kernel/syscalls/chmod/chmod07.c
+++ b/testcases/kernel/syscalls/chmod/chmod07.c
@@ -92,8 +92,8 @@
 				 */
 #define TESTFILE	"testfile"
 
-char *TCID = "chmod07";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "chmod07";
+int TST_TOTAL = 1;
 
 void setup();			/* Main setup function for the test */
 void cleanup();			/* Main cleanup function for the test */
diff --git a/testcases/kernel/syscalls/chown/chown01.c b/testcases/kernel/syscalls/chown/chown01.c
index 9139ec4..50b9ea5 100644
--- a/testcases/kernel/syscalls/chown/chown01.c
+++ b/testcases/kernel/syscalls/chown/chown01.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "chown01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "chown01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/chown/chown02.c b/testcases/kernel/syscalls/chown/chown02.c
index 7ca8bf2..aa8ec15 100644
--- a/testcases/kernel/syscalls/chown/chown02.c
+++ b/testcases/kernel/syscalls/chown/chown02.c
@@ -87,7 +87,7 @@
 #define TESTFILE1	"testfile1"
 #define TESTFILE2	"testfile2"
 
-char *TCID = "chown02";		/* Test program identifier.    */
+char *TCID = "chown02";
 
 int setup1();			/* Test specific setup functions */
 int setup2();
@@ -122,7 +122,6 @@
 	int test_flag;		/* test condition specific flag variable */
 	char *file_name;	/* ptr. for test file name */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/chown/chown03.c b/testcases/kernel/syscalls/chown/chown03.c
index cb8e8e0..190a2a7 100644
--- a/testcases/kernel/syscalls/chown/chown03.c
+++ b/testcases/kernel/syscalls/chown/chown03.c
@@ -87,7 +87,7 @@
 #define NEW_PERMS	(S_IFREG|S_IRWXU|S_IRWXG|S_ISUID|S_ISGID)
 #define TESTFILE	"testfile"
 
-char *TCID = "chown03";		/* Test program identifier.    */
+char *TCID = "chown03";
 int TST_TOTAL = 1;		/* Total number of test conditions */
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
diff --git a/testcases/kernel/syscalls/clock_getres/clock_getres01.c b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
index 80e7ce5..0fb5df4 100644
--- a/testcases/kernel/syscalls/clock_getres/clock_getres01.c
+++ b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
@@ -57,17 +57,13 @@
 #include "config.h"
 #include "include_j_h.h"
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "clock_getres01";	/* Test program identifier. */
+char *TCID = "clock_getres01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/clock_nanosleep/clock_nanosleep01.c b/testcases/kernel/syscalls/clock_nanosleep/clock_nanosleep01.c
index b78041e..95a7e7c 100644
--- a/testcases/kernel/syscalls/clock_nanosleep/clock_nanosleep01.c
+++ b/testcases/kernel/syscalls/clock_nanosleep/clock_nanosleep01.c
@@ -57,17 +57,13 @@
 #include "../utils/common_j_h.c"
 #include "../utils/include_j_h.h"
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "clock_nanosleep01";	/* Test program identifier. */
+char *TCID = "clock_nanosleep01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 struct sigaction act;
 
 /*
diff --git a/testcases/kernel/syscalls/clock_nanosleep2/clock_nanosleep2_01.c b/testcases/kernel/syscalls/clock_nanosleep2/clock_nanosleep2_01.c
index e210a16..8676569 100644
--- a/testcases/kernel/syscalls/clock_nanosleep2/clock_nanosleep2_01.c
+++ b/testcases/kernel/syscalls/clock_nanosleep2/clock_nanosleep2_01.c
@@ -44,17 +44,13 @@
 #include <sys/syscall.h>
 #include <linux/unistd.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "clock_nanosleep2_01";	/* Test program identifier. */
+char *TCID = "clock_nanosleep2_01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/clone/clone04.c b/testcases/kernel/syscalls/clone/clone04.c
index 37afb46..4fefc89 100644
--- a/testcases/kernel/syscalls/clone/clone04.c
+++ b/testcases/kernel/syscalls/clone/clone04.c
@@ -104,7 +104,6 @@
 static void setup(void)
 {
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 	TEST_PAUSE;
 
diff --git a/testcases/kernel/syscalls/close/close08.c b/testcases/kernel/syscalls/close/close08.c
index 931fc5c..151fc0a 100644
--- a/testcases/kernel/syscalls/close/close08.c
+++ b/testcases/kernel/syscalls/close/close08.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "close08";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "close08";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/confstr/confstr01.c b/testcases/kernel/syscalls/confstr/confstr01.c
index f8a2adf..f301b35 100644
--- a/testcases/kernel/syscalls/confstr/confstr01.c
+++ b/testcases/kernel/syscalls/confstr/confstr01.c
@@ -50,8 +50,8 @@
 
 int local_flag = PASSED;
 
-char *TCID = "confstr01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "confstr01";
+int TST_TOTAL = 1;
 /**************/
 
 int confstr_var_vals[] = { _CS_PATH, _CS_XBS5_ILP32_OFF32_CFLAGS,
diff --git a/testcases/kernel/syscalls/connect/connect01.c b/testcases/kernel/syscalls/connect/connect01.c
index c61ab0a..07337d1 100644
--- a/testcases/kernel/syscalls/connect/connect01.c
+++ b/testcases/kernel/syscalls/connect/connect01.c
@@ -55,7 +55,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "connect01";	/* Test program identifier.    */
+char *TCID = "connect01";
 int testno;
 
 int s, s2;			/* socket descriptor */
@@ -110,7 +110,7 @@
 		    "invalid address family"}
 ,};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EBADF, EFAULT, EINVAL, ENOTSOCK, EISCONN, ECONNREFUSED,
 	EAFNOSUPPORT, 0
@@ -125,7 +125,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/creat/creat03.c b/testcases/kernel/syscalls/creat/creat03.c
index bd7778d..b2fa668 100644
--- a/testcases/kernel/syscalls/creat/creat03.c
+++ b/testcases/kernel/syscalls/creat/creat03.c
@@ -51,8 +51,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "creat03";		/* Test program identifier */
-int TST_TOTAL = 1;		/* Total number of test cases */
+char *TCID = "creat03";
+int TST_TOTAL = 1;
 
 char pfilname[40] = "";
 #define FMODE	0444
diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
index 0112a04..d4d8bcd 100644
--- a/testcases/kernel/syscalls/creat/creat09.c
+++ b/testcases/kernel/syscalls/creat/creat09.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "creat09";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "creat09";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/dup/dup02.c b/testcases/kernel/syscalls/dup/dup02.c
index c369c73..f96bd6c 100644
--- a/testcases/kernel/syscalls/dup/dup02.c
+++ b/testcases/kernel/syscalls/dup/dup02.c
@@ -119,8 +119,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "dup02";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "dup02";
+int TST_TOTAL = 2;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/dup/dup03.c b/testcases/kernel/syscalls/dup/dup03.c
index 214a25a..4012a43 100644
--- a/testcases/kernel/syscalls/dup/dup03.c
+++ b/testcases/kernel/syscalls/dup/dup03.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "dup03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "dup03";
+int TST_TOTAL = 1;
 
 char filename[255];
 int *fd = NULL;
diff --git a/testcases/kernel/syscalls/dup/dup04.c b/testcases/kernel/syscalls/dup/dup04.c
index e9270c6..1429054 100644
--- a/testcases/kernel/syscalls/dup/dup04.c
+++ b/testcases/kernel/syscalls/dup/dup04.c
@@ -124,8 +124,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "dup04";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "dup04";
+int TST_TOTAL = 2;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/dup/dup05.c b/testcases/kernel/syscalls/dup/dup05.c
index 27f603b..6d986fd 100644
--- a/testcases/kernel/syscalls/dup/dup05.c
+++ b/testcases/kernel/syscalls/dup/dup05.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "dup05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "dup05";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/dup2/dup201.c b/testcases/kernel/syscalls/dup2/dup201.c
index 5cebca6..c70884f 100644
--- a/testcases/kernel/syscalls/dup2/dup201.c
+++ b/testcases/kernel/syscalls/dup2/dup201.c
@@ -69,8 +69,8 @@
 void setup(void);
 void cleanup(void);
 
-char *TCID = "dup201";		/* Test program identifier.    */
-int TST_TOTAL = 4;		/* Total number of test cases. */
+char *TCID = "dup201";
+int TST_TOTAL = 4;
 
 int maxfd;
 int goodfd = 5;
diff --git a/testcases/kernel/syscalls/dup2/dup204.c b/testcases/kernel/syscalls/dup2/dup204.c
index ad15590..0edb1ce 100644
--- a/testcases/kernel/syscalls/dup2/dup204.c
+++ b/testcases/kernel/syscalls/dup2/dup204.c
@@ -55,8 +55,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "dup204";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "dup204";
+int TST_TOTAL = 2;
 
 int fd[2];
 int nfd[2];
diff --git a/testcases/kernel/syscalls/dup3/dup3_01.c b/testcases/kernel/syscalls/dup3/dup3_01.c
index 8113f85..beda6cb 100644
--- a/testcases/kernel/syscalls/dup3/dup3_01.c
+++ b/testcases/kernel/syscalls/dup3/dup3_01.c
@@ -58,7 +58,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -67,9 +66,8 @@
 #define O_CLOEXEC 02000000
 #endif
 
-/* Global Variables */
-char *TCID = "dup3_01";		/* test program identifier.              */
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+char *TCID = "dup3_01";
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/epoll/epoll-ltp.c b/testcases/kernel/syscalls/epoll/epoll-ltp.c
index 62d0ecd..df94001 100644
--- a/testcases/kernel/syscalls/epoll/epoll-ltp.c
+++ b/testcases/kernel/syscalls/epoll/epoll-ltp.c
@@ -194,8 +194,6 @@
 }										\
 kid_status = kid_status;})
 
-/* Extern Global Variables */
-
 /*
  * Given the number of random size requests to test,
  * test various boundary cases of epoll_create().
diff --git a/testcases/kernel/syscalls/epoll_create1/epoll_create1_01.c b/testcases/kernel/syscalls/epoll_create1/epoll_create1_01.c
index 9780321..e497059 100644
--- a/testcases/kernel/syscalls/epoll_create1/epoll_create1_01.c
+++ b/testcases/kernel/syscalls/epoll_create1/epoll_create1_01.c
@@ -60,7 +60,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -71,11 +70,8 @@
 
 #define EPOLL_CLOEXEC O_CLOEXEC
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "epoll_create1_01";	/* test program identifier.              */
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+char *TCID = "epoll_create1_01";
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/eventfd2/eventfd2_01.c b/testcases/kernel/syscalls/eventfd2/eventfd2_01.c
index e417597..cabb80e 100644
--- a/testcases/kernel/syscalls/eventfd2/eventfd2_01.c
+++ b/testcases/kernel/syscalls/eventfd2/eventfd2_01.c
@@ -59,7 +59,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -70,12 +69,9 @@
 
 #define EFD_CLOEXEC O_CLOEXEC
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "eventfd2_01";	/* test program identifier.              */
+char *TCID = "eventfd2_01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/eventfd2/eventfd2_02.c b/testcases/kernel/syscalls/eventfd2/eventfd2_02.c
index fba2e06..19ed8a9 100644
--- a/testcases/kernel/syscalls/eventfd2/eventfd2_02.c
+++ b/testcases/kernel/syscalls/eventfd2/eventfd2_02.c
@@ -56,7 +56,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -67,12 +66,9 @@
 
 #define EFD_NONBLOCK O_NONBLOCK
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "eventfd2_02";	/* test program identifier.              */
+char *TCID = "eventfd2_02";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/eventfd2/eventfd2_03.c b/testcases/kernel/syscalls/eventfd2/eventfd2_03.c
index 59c6686..1533b47 100644
--- a/testcases/kernel/syscalls/eventfd2/eventfd2_03.c
+++ b/testcases/kernel/syscalls/eventfd2/eventfd2_03.c
@@ -35,13 +35,12 @@
 #include <errno.h>
 #include <inttypes.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-char *TCID = "eventfd2_03";	/* test program identifier */
-int TST_TOTAL = 1;		/* total number of tests in this file */
+char *TCID = "eventfd2_03";
+int TST_TOTAL = 1;
 
 #ifndef EFD_SEMLIKE
 #define EFD_SEMLIKE (1 << 0)
diff --git a/testcases/kernel/syscalls/execl/execl01.c b/testcases/kernel/syscalls/execl/execl01.c
index 94a4a20..e9bf489 100644
--- a/testcases/kernel/syscalls/execl/execl01.c
+++ b/testcases/kernel/syscalls/execl/execl01.c
@@ -122,10 +122,10 @@
 void setup();
 void cleanup();
 
-char *TCID = "execl01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "execl01";
+int TST_TOTAL = 1;
 
-int exp_enos[] = { 0, 0 };	/* Zero terminated list of expected errnos */
+int exp_enos[] = { 0, 0 };
 
 pid_t pid;			/* process id from fork */
 int status;			/* status returned from waitpid */
diff --git a/testcases/kernel/syscalls/execle/execle01.c b/testcases/kernel/syscalls/execle/execle01.c
index 9c36dc5..3d52936 100644
--- a/testcases/kernel/syscalls/execle/execle01.c
+++ b/testcases/kernel/syscalls/execle/execle01.c
@@ -122,10 +122,10 @@
 void setup();
 void cleanup();
 
-char *TCID = "execle01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "execle01";
+int TST_TOTAL = 1;
 
-int exp_enos[] = { 0, 0 };	/* Zero terminated list of expected errnos */
+int exp_enos[] = { 0, 0 };
 
 pid_t pid;			/* process id from fork */
 int status;			/* status returned from waitpid */
diff --git a/testcases/kernel/syscalls/execlp/execlp01.c b/testcases/kernel/syscalls/execlp/execlp01.c
index 0924683..49859fb 100644
--- a/testcases/kernel/syscalls/execlp/execlp01.c
+++ b/testcases/kernel/syscalls/execlp/execlp01.c
@@ -123,10 +123,10 @@
 void setup();
 void cleanup();
 
-char *TCID = "execlp01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "execlp01";
+int TST_TOTAL = 1;
 
-int exp_enos[] = { 0, 0 };	/* Zero terminated list of expected errnos */
+int exp_enos[] = { 0, 0 };
 
 pid_t pid;			/* process id from fork */
 int status;			/* status returned from waitpid */
diff --git a/testcases/kernel/syscalls/execv/execv01.c b/testcases/kernel/syscalls/execv/execv01.c
index b655489..79d4a26 100644
--- a/testcases/kernel/syscalls/execv/execv01.c
+++ b/testcases/kernel/syscalls/execv/execv01.c
@@ -123,10 +123,10 @@
 void setup();
 void cleanup();
 
-char *TCID = "execv01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "execv01";
+int TST_TOTAL = 1;
 
-int exp_enos[] = { 0, 0 };	/* Zero terminated list of expected errnos */
+int exp_enos[] = { 0, 0 };
 
 pid_t pid;			/* process id from fork */
 int status;			/* status returned from waitpid */
diff --git a/testcases/kernel/syscalls/execve/execve01.c b/testcases/kernel/syscalls/execve/execve01.c
index 31432c9..e00938d 100644
--- a/testcases/kernel/syscalls/execve/execve01.c
+++ b/testcases/kernel/syscalls/execve/execve01.c
@@ -123,10 +123,10 @@
 void setup();
 void cleanup();
 
-char *TCID = "execve01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "execve01";
+int TST_TOTAL = 1;
 
-int exp_enos[] = { 0, 0 };	/* Zero terminated list of expected errnos */
+int exp_enos[] = { 0, 0 };
 
 pid_t pid;			/* process id from fork */
 int status;			/* status returned from waitpid */
diff --git a/testcases/kernel/syscalls/execvp/execvp01.c b/testcases/kernel/syscalls/execvp/execvp01.c
index 0ffcd36..7ce467a 100644
--- a/testcases/kernel/syscalls/execvp/execvp01.c
+++ b/testcases/kernel/syscalls/execvp/execvp01.c
@@ -123,10 +123,10 @@
 void setup();
 void cleanup();
 
-char *TCID = "execvp01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "execvp01";
+int TST_TOTAL = 1;
 
-int exp_enos[] = { 0, 0 };	/* Zero terminated list of expected errnos */
+int exp_enos[] = { 0, 0 };
 
 pid_t pid;			/* process id from fork */
 int status;			/* status returned from waitpid */
diff --git a/testcases/kernel/syscalls/exit_group/exit_group01.c b/testcases/kernel/syscalls/exit_group/exit_group01.c
index 4db694c..68c4fd5 100644
--- a/testcases/kernel/syscalls/exit_group/exit_group01.c
+++ b/testcases/kernel/syscalls/exit_group/exit_group01.c
@@ -43,17 +43,13 @@
 #include <linux/unistd.h>
 #include <sys/wait.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "exit_group01";	/* Test program identifier. */
+char *TCID = "exit_group01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/faccessat/faccessat01.c b/testcases/kernel/syscalls/faccessat/faccessat01.c
index 5c493bc..24308c1 100644
--- a/testcases/kernel/syscalls/faccessat/faccessat01.c
+++ b/testcases/kernel/syscalls/faccessat/faccessat01.c
@@ -65,8 +65,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "faccessat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "faccessat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256] = "";
 char testfile[256] = "";
 char testfile2[256] = "";
diff --git a/testcases/kernel/syscalls/fadvise/posix_fadvise01.c b/testcases/kernel/syscalls/fadvise/posix_fadvise01.c
index c16ce0a..5e93efc 100644
--- a/testcases/kernel/syscalls/fadvise/posix_fadvise01.c
+++ b/testcases/kernel/syscalls/fadvise/posix_fadvise01.c
@@ -56,7 +56,7 @@
 void setup();
 void cleanup();
 
-TCID_DEFINE(posix_fadvise01);	/* Test program identifier.    */
+TCID_DEFINE(posix_fadvise01);
 
 char fname[] = "/bin/cat";	/* test executable to open */
 int fd = -1;			/* initialized in open */
diff --git a/testcases/kernel/syscalls/fadvise/posix_fadvise02.c b/testcases/kernel/syscalls/fadvise/posix_fadvise02.c
index 61a8b31..140548d 100644
--- a/testcases/kernel/syscalls/fadvise/posix_fadvise02.c
+++ b/testcases/kernel/syscalls/fadvise/posix_fadvise02.c
@@ -54,7 +54,7 @@
 void setup();
 void cleanup();
 
-TCID_DEFINE(posix_fadvise02);	/* Test program identifier.    */
+TCID_DEFINE(posix_fadvise02);
 
 #define WRONG_FD       42	/* The number has no meaning.
 				   Just used as something wrong fd */
diff --git a/testcases/kernel/syscalls/fadvise/posix_fadvise03.c b/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
index 1c74405..be01c4c 100644
--- a/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
+++ b/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
@@ -55,7 +55,7 @@
 void setup();
 void cleanup();
 
-TCID_DEFINE(posix_fadvise03);	/* Test program identifier.    */
+TCID_DEFINE(posix_fadvise03);
 
 char fname[] = "/bin/cat";	/* test executable to open */
 int fd = -1;			/* initialized in open */
diff --git a/testcases/kernel/syscalls/fadvise/posix_fadvise04.c b/testcases/kernel/syscalls/fadvise/posix_fadvise04.c
index 829f614..d4384e4 100644
--- a/testcases/kernel/syscalls/fadvise/posix_fadvise04.c
+++ b/testcases/kernel/syscalls/fadvise/posix_fadvise04.c
@@ -53,7 +53,7 @@
 void setup();
 void cleanup();
 
-TCID_DEFINE(posix_fadvise04);	/* Test program identifier.    */
+TCID_DEFINE(posix_fadvise04);
 
 #define GIVEN_IN_SETUP 42	/* No mean. Just used as padding.
 				   This is overwritten by setup(). */
diff --git a/testcases/kernel/syscalls/fallocate/fallocate01.c b/testcases/kernel/syscalls/fallocate/fallocate01.c
index c6c0546..0240687 100644
--- a/testcases/kernel/syscalls/fallocate/fallocate01.c
+++ b/testcases/kernel/syscalls/fallocate/fallocate01.c
@@ -85,7 +85,6 @@
  *
 *************************************************************************/
 
-/* Standard Include Files */
 #include <stdio.h>
 #include <stdlib.h>
 #include <endian.h>
@@ -99,7 +98,6 @@
 #include <inttypes.h>
 #include <sys/utsname.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -112,7 +110,7 @@
 void populate_files(int fd);
 void runtest(int, int, loff_t);
 
-char *TCID = "fallocate01";	/* test program identifier */
+char *TCID = "fallocate01";
 char fname_mode1[255], fname_mode2[255];	/* Files used for testing */
 int fd_mode1, fd_mode2;
 int TST_TOTAL = 2;
diff --git a/testcases/kernel/syscalls/fallocate/fallocate02.c b/testcases/kernel/syscalls/fallocate/fallocate02.c
index d27d159..37f0635 100644
--- a/testcases/kernel/syscalls/fallocate/fallocate02.c
+++ b/testcases/kernel/syscalls/fallocate/fallocate02.c
@@ -84,7 +84,6 @@
  *
 *************************************************************************/
 
-/* Standard Include Files */
 #include <stdio.h>
 #include <stdlib.h>
 #include <endian.h>
@@ -95,7 +94,6 @@
 #include <inttypes.h>
 #include <sys/utsname.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -110,18 +108,15 @@
 
 #define OFFSET 12
 
-/*Local Functions*/
 static inline long fallocate();
 void populate_file();
 void create_fifo();
 void create_pipe();
 void get_blocksize(int fd);
 
-/* Extern Global Variables */
-/* Global Variables */
-char *TCID = "fallocate02";	/* test program identifier */
-char fnamew[255];		/* Files used for testing */
-char fnamer[255];		/* Files used for testing */
+char *TCID = "fallocate02";
+char fnamew[255];
+char fnamer[255];
 int fdw;
 int fdr;
 enum { RFILE, WFILE, PIPE, FIFO };
@@ -142,7 +137,7 @@
 	WFILE, DEFAULT_TEST_MODE, BLOCKS_WRITTEN - OFFSET, 1, 0}
 };
 
-/* total number of tests in this file */
+
 int TST_TOTAL = sizeof(test_data) / sizeof(test_data[0]);
 int block_size;
 int buf_size;
diff --git a/testcases/kernel/syscalls/fallocate/fallocate03.c b/testcases/kernel/syscalls/fallocate/fallocate03.c
index bfce49e..973b2d7 100644
--- a/testcases/kernel/syscalls/fallocate/fallocate03.c
+++ b/testcases/kernel/syscalls/fallocate/fallocate03.c
@@ -82,7 +82,6 @@
  *
 *************************************************************************/
 
-/* Standard Include Files */
 #include <stdio.h>
 #include <stdlib.h>
 #include <endian.h>
@@ -94,7 +93,6 @@
 #include <inttypes.h>
 #include <sys/utsname.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -105,16 +103,12 @@
 #define FALLOC_FL_KEEP_SIZE 1	//Need to be removed once the glibce support is provided
 #define TRUE 0
 
-/*Local Functions*/
 static inline long fallocate();
 void get_blocksize(int);
 void populate_file();
 void file_seek(off_t);
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "fallocate03";	/* test program identifier */
+char *TCID = "fallocate03";
 char fname[255];
 int fd;
 struct test_data_t {
@@ -137,7 +131,7 @@
 		    1, TRUE}
 };
 
-int TST_TOTAL = sizeof(test_data) / sizeof(test_data[0]);	/* total number of tests in this file.   */
+int TST_TOTAL = sizeof(test_data) / sizeof(test_data[0]);
 int block_size;
 int buf_size;
 
diff --git a/testcases/kernel/syscalls/fchmod/fchmod01.c b/testcases/kernel/syscalls/fchmod/fchmod01.c
index f61c461..19d8ed9 100644
--- a/testcases/kernel/syscalls/fchmod/fchmod01.c
+++ b/testcases/kernel/syscalls/fchmod/fchmod01.c
@@ -117,8 +117,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fchmod01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fchmod01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fchmod/fchmod02.c b/testcases/kernel/syscalls/fchmod/fchmod02.c
index 65ad6ae..c0672a0 100644
--- a/testcases/kernel/syscalls/fchmod/fchmod02.c
+++ b/testcases/kernel/syscalls/fchmod/fchmod02.c
@@ -93,8 +93,8 @@
 #define TESTFILE	"testfile"
 
 int fd;				/* file descriptor variable */
-char *TCID = "fchmod02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fchmod02";
+int TST_TOTAL = 1;
 
 void setup();			/* Main setup function for the test */
 void cleanup();			/* Main cleanup function for the test */
@@ -105,7 +105,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/fchmod/fchmod03.c b/testcases/kernel/syscalls/fchmod/fchmod03.c
index 0341e03..628d18c 100644
--- a/testcases/kernel/syscalls/fchmod/fchmod03.c
+++ b/testcases/kernel/syscalls/fchmod/fchmod03.c
@@ -87,8 +87,8 @@
 #define TESTFILE	"testfile"
 
 int fd;				/* file descriptor for test file */
-char *TCID = "fchmod03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fchmod03";
+int TST_TOTAL = 1;
 
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
diff --git a/testcases/kernel/syscalls/fchmod/fchmod04.c b/testcases/kernel/syscalls/fchmod/fchmod04.c
index 5602472..ff77ca2 100644
--- a/testcases/kernel/syscalls/fchmod/fchmod04.c
+++ b/testcases/kernel/syscalls/fchmod/fchmod04.c
@@ -90,14 +90,14 @@
 #define TESTDIR		"testdir_4"
 
 int fd;				/* file descriptor for test directory */
-char *TCID = "fchmod04";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fchmod04";
+int TST_TOTAL = 1;
 
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/fchmod/fchmod05.c b/testcases/kernel/syscalls/fchmod/fchmod05.c
index 8daea52..ccb72d0 100644
--- a/testcases/kernel/syscalls/fchmod/fchmod05.c
+++ b/testcases/kernel/syscalls/fchmod/fchmod05.c
@@ -94,8 +94,8 @@
 #define TESTDIR		"testdir"
 
 int fd;				/* file descriptor for test directory */
-char *TCID = "fchmod05";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fchmod05";
+int TST_TOTAL = 1;
 
 void setup();			/* Main setup function for test */
 void cleanup();			/* Main cleanup function for test */
@@ -107,7 +107,6 @@
 	char *msg;
 	mode_t dir_mode;	/* mode permissions set on test directory */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/fchmod/fchmod06.c b/testcases/kernel/syscalls/fchmod/fchmod06.c
index f510839..c0e02cd 100644
--- a/testcases/kernel/syscalls/fchmod/fchmod06.c
+++ b/testcases/kernel/syscalls/fchmod/fchmod06.c
@@ -109,8 +109,8 @@
 	1, FILE_MODE, EPERM, setup1}, {
 2, FILE_MODE, EBADF, setup2},};
 
-char *TCID = "fchmod06";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "fchmod06";
+int TST_TOTAL = 2;
 int exp_enos[] = { EPERM, EBADF, 0 };
 
 char nobody_uid[] = "nobody";
diff --git a/testcases/kernel/syscalls/fchmod/fchmod07.c b/testcases/kernel/syscalls/fchmod/fchmod07.c
index 3a0b955..aaee580 100644
--- a/testcases/kernel/syscalls/fchmod/fchmod07.c
+++ b/testcases/kernel/syscalls/fchmod/fchmod07.c
@@ -80,7 +80,7 @@
 #define TESTFILE	"testfile"
 
 int fd;				/* file descriptor for testfile */
-char *TCID = "fchmod07";	/* Test program identifier.    */
+char *TCID = "fchmod07";
 int TST_TOTAL = 8;		/* Total number of test conditions */
 
 int Modes[] = { 0, 07, 070, 0700, 0777, 02777, 04777, 06777 };
@@ -98,7 +98,6 @@
 
 	TST_TOTAL = sizeof(Modes) / sizeof(int);
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/fchmodat/fchmodat01.c b/testcases/kernel/syscalls/fchmodat/fchmodat01.c
index fc21aac..adf731d 100644
--- a/testcases/kernel/syscalls/fchmodat/fchmodat01.c
+++ b/testcases/kernel/syscalls/fchmodat/fchmodat01.c
@@ -65,8 +65,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "fchmodat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "fchmodat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256] = "";
 char testfile[256] = "";
 char testfile2[256] = "";
diff --git a/testcases/kernel/syscalls/fchown/fchown01.c b/testcases/kernel/syscalls/fchown/fchown01.c
index be79ef4..3efa74c 100644
--- a/testcases/kernel/syscalls/fchown/fchown01.c
+++ b/testcases/kernel/syscalls/fchown/fchown01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fchown01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fchown01";
+int TST_TOTAL = 1;
 
 int fd;				/* file descriptor for fchown */
 
diff --git a/testcases/kernel/syscalls/fchown/fchown02.c b/testcases/kernel/syscalls/fchown/fchown02.c
index 333eb44..27e12c1 100644
--- a/testcases/kernel/syscalls/fchown/fchown02.c
+++ b/testcases/kernel/syscalls/fchown/fchown02.c
@@ -87,7 +87,7 @@
 #define TESTFILE1	"testfile1"
 #define TESTFILE2	"testfile2"
 
-char *TCID = "fchown02";	/* Test program identifier.    */
+char *TCID = "fchown02";
 int TST_TOTAL = 2;		/* Total number of test conditions */
 int Fd1;			/* File descriptor for testfile1 */
 int Fd2;			/* File descriptor for testfile2 */
@@ -127,7 +127,6 @@
 	char *file_name;	/* ptr. for test file name */
 	char *test_desc;	/* test specific message */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/fchown/fchown03.c b/testcases/kernel/syscalls/fchown/fchown03.c
index bb3abf3..92920b0 100644
--- a/testcases/kernel/syscalls/fchown/fchown03.c
+++ b/testcases/kernel/syscalls/fchown/fchown03.c
@@ -89,7 +89,7 @@
 #define TESTFILE	"testfile"
 
 int fildes;			/* File descriptor for test file */
-char *TCID = "fchown03";	/* Test program identifier. */
+char *TCID = "fchown03";
 int TST_TOTAL = 1;		/* Total number of test conditions */
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
@@ -105,7 +105,6 @@
 	uid_t user_id;		/* Owner id of the test file. */
 	gid_t group_id;		/* Group id of the test file. */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/fchown/fchown04.c b/testcases/kernel/syscalls/fchown/fchown04.c
index a3fdd7a..8329550 100644
--- a/testcases/kernel/syscalls/fchown/fchown04.c
+++ b/testcases/kernel/syscalls/fchown/fchown04.c
@@ -105,8 +105,8 @@
 2, EBADF, setup2},};
 
 char test_home[PATH_MAX];	/* variable to hold TESTHOME env */
-char *TCID = "fchown04";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "fchown04";
+int TST_TOTAL = 2;
 int exp_enos[] = { EPERM, EBADF, 0 };
 
 char bin_uid[] = "bin";
diff --git a/testcases/kernel/syscalls/fchown/fchown05.c b/testcases/kernel/syscalls/fchown/fchown05.c
index 3d88b67..f03c97a 100644
--- a/testcases/kernel/syscalls/fchown/fchown05.c
+++ b/testcases/kernel/syscalls/fchown/fchown05.c
@@ -82,7 +82,7 @@
 #define TESTFILE	"testfile"
 
 int fildes;			/* File descriptor for the test file */
-char *TCID = "fchown05";	/* Test program identifier.    */
+char *TCID = "fchown05";
 int TST_TOTAL = 5;		/* Total number of test conditions */
 
 struct test_case_t {		/* Struct. for for test case looping */
@@ -112,7 +112,6 @@
 	gid_t group_id;		/* group id of the user set for testfile */
 	char *test_desc;	/* test specific message */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/fchownat/fchownat01.c b/testcases/kernel/syscalls/fchownat/fchownat01.c
index 7a096e9..8a81f41 100644
--- a/testcases/kernel/syscalls/fchownat/fchownat01.c
+++ b/testcases/kernel/syscalls/fchownat/fchownat01.c
@@ -65,8 +65,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "fchownat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "fchownat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256];
 char testfile[256];
 char testfile2[256];
diff --git a/testcases/kernel/syscalls/fcntl/fcntl02.c b/testcases/kernel/syscalls/fcntl/fcntl02.c
index 537d6e6..b47b971 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl02.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl02.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl03.c b/testcases/kernel/syscalls/fcntl/fcntl03.c
index 46ef658..0351c69 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl03.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl03.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl03";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl04.c b/testcases/kernel/syscalls/fcntl/fcntl04.c
index 07bed2d..e81cc0a 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl04.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl04.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl04";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl05.c b/testcases/kernel/syscalls/fcntl/fcntl05.c
index 0a359b8..093251f 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl05.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl05.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl05";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl07.c b/testcases/kernel/syscalls/fcntl/fcntl07.c
index 763157f..0ccff8c 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl07.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl07.c
@@ -150,8 +150,8 @@
 void cleanup();
 void help();
 
-char *TCID = "fcntl07";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "fcntl07";
+int TST_TOTAL = 2;
 
 int fflag, Tflag;		/* binary flags: opt or not */
 char *fopt, *Topt;		/* option arguments */
diff --git a/testcases/kernel/syscalls/fcntl/fcntl07B.c b/testcases/kernel/syscalls/fcntl/fcntl07B.c
index 60579c3..593291f 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl07B.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl07B.c
@@ -148,8 +148,8 @@
 void cleanup();
 void help();
 
-char *TCID = "fcntl07B";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl07B";
+int TST_TOTAL = 1;
 
 /* for parse_opts */
 int fflag, Tflag;		/* binary flags: opt or not */
diff --git a/testcases/kernel/syscalls/fcntl/fcntl08.c b/testcases/kernel/syscalls/fcntl/fcntl08.c
index 8c3d815..652a31d 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl08.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl08.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl08";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl08";
+int TST_TOTAL = 1;
 
 char fname[255];
 int arg, fd;
diff --git a/testcases/kernel/syscalls/fcntl/fcntl09.c b/testcases/kernel/syscalls/fcntl/fcntl09.c
index 7afa879..5a0f25f 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl09.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl09.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl09";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "fcntl09";
+int TST_TOTAL = 2;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl10.c b/testcases/kernel/syscalls/fcntl/fcntl10.c
index 6243f96..2a37620 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl10.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl10.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl10";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "fcntl10";
+int TST_TOTAL = 2;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl14.c b/testcases/kernel/syscalls/fcntl/fcntl14.c
index a622b59..e7d54b4 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl14.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl14.c
@@ -543,8 +543,8 @@
 extern void catch1();		/* signal catching subroutine */
 extern void catch_alarm();
 
-char *TCID = "fcntl14";		/* Test program identifier */
-int TST_TOTAL = 1;		/* Total number of test cases */
+char *TCID = "fcntl14";
+int TST_TOTAL = 1;
 
 #ifdef UCLINUX
 static char *argv0;		/* Set by main(), passed to self_exec() */
diff --git a/testcases/kernel/syscalls/fcntl/fcntl23.c b/testcases/kernel/syscalls/fcntl/fcntl23.c
index a1e8f18..3e24244 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl23.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl23.c
@@ -98,8 +98,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl23";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl23";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl24.c b/testcases/kernel/syscalls/fcntl/fcntl24.c
index 6c95bec..b2d1662 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl24.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl24.c
@@ -98,8 +98,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl24";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl24";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl25.c b/testcases/kernel/syscalls/fcntl/fcntl25.c
index bd8479f..80b8a90 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl25.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl25.c
@@ -99,8 +99,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl25";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl25";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl26.c b/testcases/kernel/syscalls/fcntl/fcntl26.c
index 08cce97..e78ee6f 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl26.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl26.c
@@ -99,8 +99,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl26";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl26";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fcntl/fcntl27.c b/testcases/kernel/syscalls/fcntl/fcntl27.c
index 3edc5ad..dd16e0b 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl27.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl27.c
@@ -99,8 +99,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl27";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl27";
+int TST_TOTAL = 1;
 
 char fname[255];
 int fd;
diff --git a/testcases/kernel/syscalls/fcntl/fcntl28.c b/testcases/kernel/syscalls/fcntl/fcntl28.c
index 40eb1ef..49d8c71 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl28.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl28.c
@@ -96,8 +96,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fcntl28";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fcntl28";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };
 
diff --git a/testcases/kernel/syscalls/fdatasync/fdatasync01.c b/testcases/kernel/syscalls/fdatasync/fdatasync01.c
index 775efc8..78b0fbd 100644
--- a/testcases/kernel/syscalls/fdatasync/fdatasync01.c
+++ b/testcases/kernel/syscalls/fdatasync/fdatasync01.c
@@ -77,8 +77,8 @@
 static void setup(void);
 static void cleanup(void);
 
-char *TCID = "fdatasync01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fdatasync01";
+int TST_TOTAL = 1;
 
 int main(int argc, char **argv)
 {
diff --git a/testcases/kernel/syscalls/flock/flock01.c b/testcases/kernel/syscalls/flock/flock01.c
index cbc7523..3a2d0ad 100644
--- a/testcases/kernel/syscalls/flock/flock01.c
+++ b/testcases/kernel/syscalls/flock/flock01.c
@@ -78,8 +78,8 @@
 /* 0 terminated list of expected errnos */
 int exp_enos[] = { EWOULDBLOCK, EAGAIN, EINVAL, 0 };
 
-char *TCID = "flock01";		/* Test program identifier */
-int TST_TOTAL = 3;		/* Total number of test cases */
+char *TCID = "flock01";
+int TST_TOTAL = 3;
 char filename[100];
 int fd;
 
@@ -151,7 +151,6 @@
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Pause if that option was specified
diff --git a/testcases/kernel/syscalls/flock/flock02.c b/testcases/kernel/syscalls/flock/flock02.c
index 75e2d97..d5883cd 100644
--- a/testcases/kernel/syscalls/flock/flock02.c
+++ b/testcases/kernel/syscalls/flock/flock02.c
@@ -85,8 +85,8 @@
 
 int exp_enos[] = { EBADF, EINVAL, 0 };
 
-char *TCID = "flock02";		/* Test program identifier */
-int TST_TOTAL = 3;		/* Total number of test cases */
+char *TCID = "flock02";
+int TST_TOTAL = 3;
 char filename[100];
 int fd;
 
diff --git a/testcases/kernel/syscalls/flock/flock04.c b/testcases/kernel/syscalls/flock/flock04.c
index 64218f8..5982ba9 100644
--- a/testcases/kernel/syscalls/flock/flock04.c
+++ b/testcases/kernel/syscalls/flock/flock04.c
@@ -83,8 +83,8 @@
 
 int exp_enos[] = { EWOULDBLOCK, EAGAIN, 0 };
 
-char *TCID = "flock04";		/* Test program identifier */
-int TST_TOTAL = 2;		/* Total number of test cases */
+char *TCID = "flock04";
+int TST_TOTAL = 2;
 char filename[100];
 int fd, fd1, status;
 
diff --git a/testcases/kernel/syscalls/flock/flock05.c b/testcases/kernel/syscalls/flock/flock05.c
index 36e3f34..6db7e11 100644
--- a/testcases/kernel/syscalls/flock/flock05.c
+++ b/testcases/kernel/syscalls/flock/flock05.c
@@ -84,8 +84,8 @@
 /* 0 terminated list of expected errnos */
 int exp_enos[] = { EWOULDBLOCK, EAGAIN, 0 };
 
-char *TCID = "flock05";		/* Test program identifier */
-int TST_TOTAL = 2;		/* Total number of test cases */
+char *TCID = "flock05";
+int TST_TOTAL = 2;
 char filename[100];
 int fd, fd1, status;
 
@@ -177,7 +177,6 @@
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Pause if that option was specified
diff --git a/testcases/kernel/syscalls/flock/flock06.c b/testcases/kernel/syscalls/flock/flock06.c
index b60e223..4e373c3 100644
--- a/testcases/kernel/syscalls/flock/flock06.c
+++ b/testcases/kernel/syscalls/flock/flock06.c
@@ -72,8 +72,8 @@
 void setup(void);
 void cleanup(void);
 
-char *TCID = "flock06";		/* Test program identifier */
-int TST_TOTAL = 3;		/* Total number of test cases */
+char *TCID = "flock06";
+int TST_TOTAL = 3;
 char filename[100];
 
 int main(int argc, char **argv)
diff --git a/testcases/kernel/syscalls/fpathconf/fpathconf01.c b/testcases/kernel/syscalls/fpathconf/fpathconf01.c
index e566dfa..2fcedea 100644
--- a/testcases/kernel/syscalls/fpathconf/fpathconf01.c
+++ b/testcases/kernel/syscalls/fpathconf/fpathconf01.c
@@ -120,7 +120,7 @@
 void setup();
 void cleanup();
 
-char *TCID = "fpathconf01";	/* Test program identifier.    */
+char *TCID = "fpathconf01";
 
 #define FILENAME	"fpafile01"
 
diff --git a/testcases/kernel/syscalls/fstat/fstat01.c b/testcases/kernel/syscalls/fstat/fstat01.c
index ad3e422..de08278 100644
--- a/testcases/kernel/syscalls/fstat/fstat01.c
+++ b/testcases/kernel/syscalls/fstat/fstat01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fstat01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fstat01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fstat/fstat02.c b/testcases/kernel/syscalls/fstat/fstat02.c
index 1e68cf3..ad5cbfb 100644
--- a/testcases/kernel/syscalls/fstat/fstat02.c
+++ b/testcases/kernel/syscalls/fstat/fstat02.c
@@ -83,8 +83,8 @@
 #define BUF_SIZE	256
 #define MASK		0777
 
-char *TCID = "fstat02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fstat02";
+int TST_TOTAL = 1;
 uid_t user_id;			/* user id/group id of test process */
 gid_t group_id;
 int fildes;			/* File descriptor of testfile */
@@ -92,8 +92,8 @@
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/fstat/fstat03.c b/testcases/kernel/syscalls/fstat/fstat03.c
index b10115f..8558a42 100644
--- a/testcases/kernel/syscalls/fstat/fstat03.c
+++ b/testcases/kernel/syscalls/fstat/fstat03.c
@@ -62,8 +62,8 @@
 #define FILE_MODE	S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 #define TEST_FILE	"testfile"
 
-char *TCID = "fstat03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fstat03";
+int TST_TOTAL = 1;
 int exp_enos[] = { EBADF, 0 };
 
 int fildes;			/* testfile descriptor */
@@ -77,7 +77,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/fstat/fstat04.c b/testcases/kernel/syscalls/fstat/fstat04.c
index 2a697e4..b2d3251 100644
--- a/testcases/kernel/syscalls/fstat/fstat04.c
+++ b/testcases/kernel/syscalls/fstat/fstat04.c
@@ -82,8 +82,8 @@
 #define BUF_SIZE	256
 #define MASK		0777
 
-char *TCID = "fstat04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fstat04";
+int TST_TOTAL = 1;
 uid_t user_id;			/* user id/group id of test process */
 gid_t group_id;
 int fildes;			/* File descriptor of testfile */
@@ -91,8 +91,8 @@
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
@@ -100,7 +100,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/fstat/fstat05.c b/testcases/kernel/syscalls/fstat/fstat05.c
index 5c5f417..5dc2a87 100644
--- a/testcases/kernel/syscalls/fstat/fstat05.c
+++ b/testcases/kernel/syscalls/fstat/fstat05.c
@@ -101,8 +101,8 @@
 struct passwd *ltpuser;
 extern struct passwd *my_getpwnam(char *);
 
-char *TCID = "fstat05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fstat05";
+int TST_TOTAL = 1;
 int exp_enos[] = { EFAULT, 0 };
 
 int fildes;			/* testfile descriptor */
@@ -136,7 +136,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/fstatat/fstatat01.c b/testcases/kernel/syscalls/fstatat/fstatat01.c
index b0f6ba4..b5f022c 100644
--- a/testcases/kernel/syscalls/fstatat/fstatat01.c
+++ b/testcases/kernel/syscalls/fstatat/fstatat01.c
@@ -65,8 +65,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "fstatat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "fstatat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256];
 char testfile[256];
 char testfile2[256];
diff --git a/testcases/kernel/syscalls/fstatfs/fstatfs01.c b/testcases/kernel/syscalls/fstatfs/fstatfs01.c
index 068da69..1a434f8 100644
--- a/testcases/kernel/syscalls/fstatfs/fstatfs01.c
+++ b/testcases/kernel/syscalls/fstatfs/fstatfs01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fstatfs01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fstatfs01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/fsync/fsync01.c b/testcases/kernel/syscalls/fsync/fsync01.c
index f597889..5e47f7e 100644
--- a/testcases/kernel/syscalls/fsync/fsync01.c
+++ b/testcases/kernel/syscalls/fsync/fsync01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "fsync01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "fsync01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/ftruncate/ftruncate01.c b/testcases/kernel/syscalls/ftruncate/ftruncate01.c
index 85f4ed4..dca4e19 100644
--- a/testcases/kernel/syscalls/ftruncate/ftruncate01.c
+++ b/testcases/kernel/syscalls/ftruncate/ftruncate01.c
@@ -83,7 +83,7 @@
 #define FILE_SIZE	1024	/* test file size */
 #define TRUNC_LEN	256	/* truncation length */
 
-TCID_DEFINE(ftruncate01);	/* Test program identifier.    */
+TCID_DEFINE(ftruncate01);
 int TST_TOTAL = 1;		/* Total number of test conditions */
 int fildes;			/* file descriptor for test file */
 
@@ -97,7 +97,6 @@
 	char *msg;
 	off_t file_length;	/* test file length */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/ftruncate/ftruncate02.c b/testcases/kernel/syscalls/ftruncate/ftruncate02.c
index b885477..afea8bf 100644
--- a/testcases/kernel/syscalls/ftruncate/ftruncate02.c
+++ b/testcases/kernel/syscalls/ftruncate/ftruncate02.c
@@ -84,7 +84,7 @@
 #define TRUNC_LEN1	256	/* truncation length */
 #define TRUNC_LEN2	512	/* truncation length */
 
-TCID_DEFINE(ftruncate02);	/* Test program identifier.    */
+TCID_DEFINE(ftruncate02);
 int TST_TOTAL = 1;		/* Total number of test conditions */
 int fd;				/* file descriptor of testfile */
 char tst_buff[BUF_SIZE];	/* buffer to hold testfile contents */
@@ -103,7 +103,6 @@
 	int read_len = 0;	/* total no. of bytes read from testfile */
 	int err_flag = 0;	/* error indicator flag */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/futimesat/futimesat01.c b/testcases/kernel/syscalls/futimesat/futimesat01.c
index ba3d8b3..bfde21c 100644
--- a/testcases/kernel/syscalls/futimesat/futimesat01.c
+++ b/testcases/kernel/syscalls/futimesat/futimesat01.c
@@ -65,8 +65,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "futimesat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "futimesat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256];
 char testfile[256];
 char testfile2[256];
diff --git a/testcases/kernel/syscalls/get_mempolicy/get_mempolicy01.c b/testcases/kernel/syscalls/get_mempolicy/get_mempolicy01.c
index 7b84856..408add8 100644
--- a/testcases/kernel/syscalls/get_mempolicy/get_mempolicy01.c
+++ b/testcases/kernel/syscalls/get_mempolicy/get_mempolicy01.c
@@ -65,8 +65,8 @@
 #include "common_j_h.c"
 #include "numa_helper.h"
 
-char *TCID = "get_mempolicy01";	/* Test program identifier. */
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+char *TCID = "get_mempolicy01";
+int TST_TOTAL = 1;
 
 #if HAVE_NUMA_H && HAVE_NUMAIF_H && HAVE_MPOL_CONSTANTS
 
diff --git a/testcases/kernel/syscalls/get_robust_list/get_robust_list01.c b/testcases/kernel/syscalls/get_robust_list/get_robust_list01.c
index ea1100f..dd5e726 100644
--- a/testcases/kernel/syscalls/get_robust_list/get_robust_list01.c
+++ b/testcases/kernel/syscalls/get_robust_list/get_robust_list01.c
@@ -54,8 +54,8 @@
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-char *TCID = "get_robust_list01";	/* test program identifier.              */
-int TST_TOTAL = 5;		/* total number of tests in this file.   */
+char *TCID = "get_robust_list01";
+int TST_TOTAL = 5;
 
 struct robust_list {
 	struct robust_list *next;
diff --git a/testcases/kernel/syscalls/getcontext/getcontext01.c b/testcases/kernel/syscalls/getcontext/getcontext01.c
index b3bdd24..03b2df9 100644
--- a/testcases/kernel/syscalls/getcontext/getcontext01.c
+++ b/testcases/kernel/syscalls/getcontext/getcontext01.c
@@ -43,14 +43,14 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "getcontext01";	/* Test program identifier.    */
+char *TCID = "getcontext01";
 
 #if !defined(__UCLIBC__)
 
 void setup();
 void cleanup();
 
-int TST_TOTAL = 1;		/* Total number of test cases. */
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* must be a 0 terminated list */
 
diff --git a/testcases/kernel/syscalls/getcwd/getcwd01.c b/testcases/kernel/syscalls/getcwd/getcwd01.c
index cb2b3f6..583dc49 100644
--- a/testcases/kernel/syscalls/getcwd/getcwd01.c
+++ b/testcases/kernel/syscalls/getcwd/getcwd01.c
@@ -98,7 +98,6 @@
 	}
 	setup();
 
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	/*
diff --git a/testcases/kernel/syscalls/getdomainname/getdomainname01.c b/testcases/kernel/syscalls/getdomainname/getdomainname01.c
index 593e2aa..1d0ed91 100644
--- a/testcases/kernel/syscalls/getdomainname/getdomainname01.c
+++ b/testcases/kernel/syscalls/getdomainname/getdomainname01.c
@@ -72,8 +72,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "getdomainname01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getdomainname01";
+int TST_TOTAL = 1;
 
 static char domain_name[MAX_NAME_LEN];
 
diff --git a/testcases/kernel/syscalls/getdtablesize/getdtablesize01.c b/testcases/kernel/syscalls/getdtablesize/getdtablesize01.c
index bb71ac9..9fef88f 100644
--- a/testcases/kernel/syscalls/getdtablesize/getdtablesize01.c
+++ b/testcases/kernel/syscalls/getdtablesize/getdtablesize01.c
@@ -50,8 +50,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "getdtablesize01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getdtablesize01";
+int TST_TOTAL = 1;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/getegid/getegid01.c b/testcases/kernel/syscalls/getegid/getegid01.c
index fefbe9c..3b4f17e 100644
--- a/testcases/kernel/syscalls/getegid/getegid01.c
+++ b/testcases/kernel/syscalls/getegid/getegid01.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-TCID_DEFINE(getegid01);		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+TCID_DEFINE(getegid01);
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* must be a 0 terminated list */
 
diff --git a/testcases/kernel/syscalls/geteuid/geteuid01.c b/testcases/kernel/syscalls/geteuid/geteuid01.c
index 0b641d7..15d9a32 100644
--- a/testcases/kernel/syscalls/geteuid/geteuid01.c
+++ b/testcases/kernel/syscalls/geteuid/geteuid01.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-TCID_DEFINE(geteuid01);		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+TCID_DEFINE(geteuid01);
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* must be a 0 terminated list */
 
diff --git a/testcases/kernel/syscalls/getgid/getgid01.c b/testcases/kernel/syscalls/getgid/getgid01.c
index 1ca7a0a..07b5bcd 100644
--- a/testcases/kernel/syscalls/getgid/getgid01.c
+++ b/testcases/kernel/syscalls/getgid/getgid01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-TCID_DEFINE(getgid01);		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+TCID_DEFINE(getgid01);
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/gethostid/gethostid01.c b/testcases/kernel/syscalls/gethostid/gethostid01.c
index 396d3f2..1259752 100644
--- a/testcases/kernel/syscalls/gethostid/gethostid01.c
+++ b/testcases/kernel/syscalls/gethostid/gethostid01.c
@@ -134,8 +134,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "gethostid01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "gethostid01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* must be a 0 terminated list */
 
diff --git a/testcases/kernel/syscalls/gethostname/gethostname01.c b/testcases/kernel/syscalls/gethostname/gethostname01.c
index 87328666..9a288b4 100644
--- a/testcases/kernel/syscalls/gethostname/gethostname01.c
+++ b/testcases/kernel/syscalls/gethostname/gethostname01.c
@@ -117,8 +117,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "gethostname01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "gethostname01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* must be a 0 terminated list */
 
diff --git a/testcases/kernel/syscalls/getitimer/getitimer02.c b/testcases/kernel/syscalls/getitimer/getitimer02.c
index 775fa31..fcb3d6c 100644
--- a/testcases/kernel/syscalls/getitimer/getitimer02.c
+++ b/testcases/kernel/syscalls/getitimer/getitimer02.c
@@ -126,7 +126,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/getitimer/getitimer03.c b/testcases/kernel/syscalls/getitimer/getitimer03.c
index 3e8e41b..ec26979 100644
--- a/testcases/kernel/syscalls/getitimer/getitimer03.c
+++ b/testcases/kernel/syscalls/getitimer/getitimer03.c
@@ -144,7 +144,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/getpagesize/getpagesize01.c b/testcases/kernel/syscalls/getpagesize/getpagesize01.c
index e7665d5..99aecbe 100644
--- a/testcases/kernel/syscalls/getpagesize/getpagesize01.c
+++ b/testcases/kernel/syscalls/getpagesize/getpagesize01.c
@@ -46,8 +46,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "getpagesize01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getpagesize01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* must be a 0 terminated list */
 
diff --git a/testcases/kernel/syscalls/getpeername/getpeername01.c b/testcases/kernel/syscalls/getpeername/getpeername01.c
index cda7c8d..a30cd08 100644
--- a/testcases/kernel/syscalls/getpeername/getpeername01.c
+++ b/testcases/kernel/syscalls/getpeername/getpeername01.c
@@ -55,7 +55,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "getpeername01";	/* Test program identifier.    */
+char *TCID = "getpeername01";
 int testno;
 
 int s, s2;			/* socket descriptors */
@@ -101,7 +101,7 @@
 #endif
 };
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EBADF, ENOTSOCK, ENOTCONN, EFAULT, 0 };
 
@@ -110,7 +110,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -119,7 +118,6 @@
 
 	setup();
 
-	/* set up the expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	for (lc = 0; TEST_LOOPING(lc); ++lc) {
@@ -156,7 +154,7 @@
 
 void setup(void)
 {
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 
 	/* initialize local sockaddr */
 	sin0.sin_family = AF_INET;
diff --git a/testcases/kernel/syscalls/getpgrp/getpgrp01.c b/testcases/kernel/syscalls/getpgrp/getpgrp01.c
index 60cfdeb..312d0ee 100644
--- a/testcases/kernel/syscalls/getpgrp/getpgrp01.c
+++ b/testcases/kernel/syscalls/getpgrp/getpgrp01.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "getpgrp01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getpgrp01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/getpid/getpid01.c b/testcases/kernel/syscalls/getpid/getpid01.c
index 2492a23..bda123c 100644
--- a/testcases/kernel/syscalls/getpid/getpid01.c
+++ b/testcases/kernel/syscalls/getpid/getpid01.c
@@ -118,8 +118,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "getpid01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getpid01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/getpid/getpid02.c b/testcases/kernel/syscalls/getpid/getpid02.c
index df25461..acb67bb 100644
--- a/testcases/kernel/syscalls/getpid/getpid02.c
+++ b/testcases/kernel/syscalls/getpid/getpid02.c
@@ -76,8 +76,8 @@
 void setup();			/* Main setup function of test */
 void cleanup();			/* cleanup function for the test */
 
-char *TCID = "getpid02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getpid02";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/getppid/getppid01.c b/testcases/kernel/syscalls/getppid/getppid01.c
index ddc3222..3395915 100644
--- a/testcases/kernel/syscalls/getppid/getppid01.c
+++ b/testcases/kernel/syscalls/getppid/getppid01.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "getppid01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getppid01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/getpriority/getpriority01.c b/testcases/kernel/syscalls/getpriority/getpriority01.c
index 2ba9274..cf1928c 100644
--- a/testcases/kernel/syscalls/getpriority/getpriority01.c
+++ b/testcases/kernel/syscalls/getpriority/getpriority01.c
@@ -76,8 +76,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "getpriority01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getpriority01";
+int TST_TOTAL = 1;
 
 void setup();			/* setup function for the test */
 void cleanup();			/* cleanup function for the test */
@@ -93,7 +93,6 @@
 
 	TST_TOTAL = sizeof(prio_which) / sizeof(int);
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/getpriority/getpriority02.c b/testcases/kernel/syscalls/getpriority/getpriority02.c
index 3ffa0df..fcdc594 100644
--- a/testcases/kernel/syscalls/getpriority/getpriority02.c
+++ b/testcases/kernel/syscalls/getpriority/getpriority02.c
@@ -82,8 +82,8 @@
 #define INVAL_PID	-1
 #define INVAL_FLAG      -1
 
-char *TCID = "getpriority02";	/* Test program identifier.    */
-int TST_TOTAL = 4;		/* Total number of test cases. */
+char *TCID = "getpriority02";
+int TST_TOTAL = 4;
 int exp_enos[] = { EINVAL, ESRCH, 0 };
 
 struct test_case_t {		/* test case struct. to hold ref. test cond's */
@@ -112,7 +112,6 @@
 	int which;		/* process priority category */
 	uid_t who;		/* process uid of the test process */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/getresgid/getresgid01.c b/testcases/kernel/syscalls/getresgid/getresgid01.c
index 39224db..03add89 100644
--- a/testcases/kernel/syscalls/getresgid/getresgid01.c
+++ b/testcases/kernel/syscalls/getresgid/getresgid01.c
@@ -71,8 +71,8 @@
 
 extern int getresgid(gid_t *, gid_t *, gid_t *);
 
-char *TCID = "getresgid01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getresgid01";
+int TST_TOTAL = 1;
 gid_t pr_gid, pe_gid, ps_gid;	/* calling process real/effective/saved gid */
 
 void setup();			/* Main setup function of test */
@@ -85,7 +85,6 @@
 	gid_t real_gid,		/* real/eff./saved user id from getresgid() */
 	 eff_gid, sav_gid;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/getresgid/getresgid02.c b/testcases/kernel/syscalls/getresgid/getresgid02.c
index deaba7e..919a2d1 100644
--- a/testcases/kernel/syscalls/getresgid/getresgid02.c
+++ b/testcases/kernel/syscalls/getresgid/getresgid02.c
@@ -81,8 +81,8 @@
 
 extern int getresgid(gid_t *, gid_t *, gid_t *);
 
-char *TCID = "getresgid02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getresgid02";
+int TST_TOTAL = 1;
 gid_t pr_gid, pe_gid, ps_gid;	/* calling process real/effective/saved gid */
 
 void setup();			/* Main setup function of test */
@@ -95,7 +95,6 @@
 	gid_t real_gid,		/* real/eff./saved user id from getresgid() */
 	 eff_gid, sav_gid;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/getresgid/getresgid03.c b/testcases/kernel/syscalls/getresgid/getresgid03.c
index 56172ef..032fe3e 100644
--- a/testcases/kernel/syscalls/getresgid/getresgid03.c
+++ b/testcases/kernel/syscalls/getresgid/getresgid03.c
@@ -82,8 +82,8 @@
 extern int getresgid(gid_t *, gid_t *, gid_t *);
 extern int setresgid(gid_t, gid_t, gid_t);
 
-char *TCID = "getresgid03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getresgid03";
+int TST_TOTAL = 1;
 gid_t pr_gid, pe_gid, ps_gid;	/* calling process real/effective/saved gid */
 
 void setup();			/* Main setup function of test */
@@ -96,7 +96,6 @@
 	gid_t real_gid,		/* real/eff./saved user id from getresgid() */
 	 eff_gid, sav_gid;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/getresuid/getresuid01.c b/testcases/kernel/syscalls/getresuid/getresuid01.c
index 80ed099..c5c63c3 100644
--- a/testcases/kernel/syscalls/getresuid/getresuid01.c
+++ b/testcases/kernel/syscalls/getresuid/getresuid01.c
@@ -76,8 +76,8 @@
 
 extern int getresuid(uid_t *, uid_t *, uid_t *);
 
-char *TCID = "getresuid01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getresuid01";
+int TST_TOTAL = 1;
 uid_t pr_uid, pe_uid, ps_uid;	/* calling process real/effective/saved uid */
 
 void setup();			/* Main setup function of test */
@@ -90,7 +90,6 @@
 	uid_t real_uid,		/* real/eff./saved user id from getresuid() */
 	 eff_uid, sav_uid;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/getresuid/getresuid02.c b/testcases/kernel/syscalls/getresuid/getresuid02.c
index 15dc33e..7dc0b70 100644
--- a/testcases/kernel/syscalls/getresuid/getresuid02.c
+++ b/testcases/kernel/syscalls/getresuid/getresuid02.c
@@ -81,8 +81,8 @@
 
 extern int getresuid(uid_t *, uid_t *, uid_t *);
 
-char *TCID = "getresuid02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getresuid02";
+int TST_TOTAL = 1;
 uid_t pr_uid, pe_uid, ps_uid;	/* calling process real/effective/saved uid */
 
 void setup();			/* Main setup function of test */
@@ -95,7 +95,6 @@
 	uid_t real_uid,		/* real/eff./saved user id from getresuid() */
 	 eff_uid, sav_uid;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/getresuid/getresuid03.c b/testcases/kernel/syscalls/getresuid/getresuid03.c
index 8b45ef0..b213f2b 100644
--- a/testcases/kernel/syscalls/getresuid/getresuid03.c
+++ b/testcases/kernel/syscalls/getresuid/getresuid03.c
@@ -81,8 +81,8 @@
 extern int getresuid(uid_t *, uid_t *, uid_t *);
 extern int setresuid(uid_t, uid_t, uid_t);
 
-char *TCID = "getresuid03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "getresuid03";
+int TST_TOTAL = 1;
 uid_t pr_uid, pe_uid, ps_uid;	/* calling process real/effective/saved uid */
 
 void setup();			/* Main setup function of test */
@@ -95,7 +95,6 @@
 	uid_t real_uid,		/* real/eff./saved user id from getresuid() */
 	 eff_uid, sav_uid;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/getrlimit/getrlimit01.c b/testcases/kernel/syscalls/getrlimit/getrlimit01.c
index 5e8ec60..3fe846b 100644
--- a/testcases/kernel/syscalls/getrlimit/getrlimit01.c
+++ b/testcases/kernel/syscalls/getrlimit/getrlimit01.c
@@ -103,7 +103,6 @@
 	int lc;
 	char *msg;		/* parse_opts() return message */
 
-	/* Parse standard options */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 		tst_exit();
diff --git a/testcases/kernel/syscalls/getrlimit/getrlimit02.c b/testcases/kernel/syscalls/getrlimit/getrlimit02.c
index ba2b53f..a13a5ee 100644
--- a/testcases/kernel/syscalls/getrlimit/getrlimit02.c
+++ b/testcases/kernel/syscalls/getrlimit/getrlimit02.c
@@ -108,7 +108,6 @@
 	int lc;
 	char *msg;		/* parse_opts() return message */
 
-	/* Parse standard options */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 		tst_exit();
@@ -152,7 +151,6 @@
  */
 void setup()
 {
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* capture the signals */
diff --git a/testcases/kernel/syscalls/getrusage/getrusage01.c b/testcases/kernel/syscalls/getrusage/getrusage01.c
index 0106ad5..e950a41 100644
--- a/testcases/kernel/syscalls/getrusage/getrusage01.c
+++ b/testcases/kernel/syscalls/getrusage/getrusage01.c
@@ -73,7 +73,7 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "getrusage01";	/* Test program identifier.    */
+char *TCID = "getrusage01";
 int who[2] = { RUSAGE_SELF, RUSAGE_CHILDREN };
 
 int TST_TOTAL = 2;
diff --git a/testcases/kernel/syscalls/getrusage/getrusage02.c b/testcases/kernel/syscalls/getrusage/getrusage02.c
index e6383a3..ed45c43 100644
--- a/testcases/kernel/syscalls/getrusage/getrusage02.c
+++ b/testcases/kernel/syscalls/getrusage/getrusage02.c
@@ -81,7 +81,7 @@
 static void cleanup();
 static int exp_enos[] = { EINVAL, EFAULT, 0 };
 
-char *TCID = "getrusage02";	/* Test program identifier.    */
+char *TCID = "getrusage02";
 
 static struct rusage usage;
 
diff --git a/testcases/kernel/syscalls/getsockname/getsockname01.c b/testcases/kernel/syscalls/getsockname/getsockname01.c
index dc16207..436a65a 100644
--- a/testcases/kernel/syscalls/getsockname/getsockname01.c
+++ b/testcases/kernel/syscalls/getsockname/getsockname01.c
@@ -54,7 +54,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "getsockname01";	/* Test program identifier.    */
+char *TCID = "getsockname01";
 int testno;
 
 int s;				/* socket descriptor */
@@ -100,7 +100,7 @@
 #endif
 };
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EBADF, ENOTSOCK, EFAULT, 0 };
 
@@ -109,7 +109,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -148,9 +147,8 @@
 
 void setup(void)
 {
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* initialize local sockaddr */
diff --git a/testcases/kernel/syscalls/getsockopt/getsockopt01.c b/testcases/kernel/syscalls/getsockopt/getsockopt01.c
index 1b942b1..69983c7 100644
--- a/testcases/kernel/syscalls/getsockopt/getsockopt01.c
+++ b/testcases/kernel/syscalls/getsockopt/getsockopt01.c
@@ -54,7 +54,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "getsockopt01";	/* Test program identifier.    */
+char *TCID = "getsockopt01";
 int testno;
 
 int s;				/* socket descriptor */
@@ -125,7 +125,7 @@
 		    ENOPROTOOPT, setup1, cleanup1, "invalid option name (TCP)"}
 ,};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EBADF, ENOTSOCK, EFAULT, EOPNOTSUPP, ENOPROTOOPT, 0 };
 
@@ -134,7 +134,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -175,9 +174,8 @@
 
 void setup(void)
 {
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* initialize local sockaddr */
diff --git a/testcases/kernel/syscalls/gettid/gettid01.c b/testcases/kernel/syscalls/gettid/gettid01.c
index ad48c76..93bc33c 100644
--- a/testcases/kernel/syscalls/gettid/gettid01.c
+++ b/testcases/kernel/syscalls/gettid/gettid01.c
@@ -37,7 +37,7 @@
 void setup();
 void cleanup();
 
-char *TCID = "gettid01";	/* Test program identifier.    */
+char *TCID = "gettid01";
 
 int TST_TOTAL = 1;
 
diff --git a/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c b/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
index a26d7fc..4eade2a 100644
--- a/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
+++ b/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
@@ -133,7 +133,7 @@
 }
 #else
 
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main(void)
 {
diff --git a/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c b/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
index 2dc6b6f..cb11344 100644
--- a/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
+++ b/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
@@ -54,8 +54,8 @@
 
 #define gettimeofday(a,b)  syscall(__NR_gettimeofday,a,b)
 
-char *TCID = "gettimeofday02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "gettimeofday02";
+int TST_TOTAL = 1;
 
 int Tflag;
 char *tlen = "30";
diff --git a/testcases/kernel/syscalls/getuid/getuid01.c b/testcases/kernel/syscalls/getuid/getuid01.c
index 92ac7f9..4c2d65c 100644
--- a/testcases/kernel/syscalls/getuid/getuid01.c
+++ b/testcases/kernel/syscalls/getuid/getuid01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-TCID_DEFINE(getuid01);		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+TCID_DEFINE(getuid01);
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/inotify/inotify01.c b/testcases/kernel/syscalls/inotify/inotify01.c
index 512473a..49f4db5 100644
--- a/testcases/kernel/syscalls/inotify/inotify01.c
+++ b/testcases/kernel/syscalls/inotify/inotify01.c
@@ -64,8 +64,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "inotify01";	/* Test program identifier.    */
-int TST_TOTAL = 7;		/* Total number of test cases. */
+char *TCID = "inotify01";
+int TST_TOTAL = 7;
 
 #define BUF_SIZE 256
 char fname[BUF_SIZE];
@@ -278,8 +278,8 @@
 
 #else
 
-char *TCID = "inotify01";	/* Test program identifier.    */
-int TST_TOTAL = 0;		/* Total number of test cases. */
+char *TCID = "inotify01";
+int TST_TOTAL = 0;
 
 int main(void)
 {
diff --git a/testcases/kernel/syscalls/inotify/inotify02.c b/testcases/kernel/syscalls/inotify/inotify02.c
index a2df236..76142a3 100644
--- a/testcases/kernel/syscalls/inotify/inotify02.c
+++ b/testcases/kernel/syscalls/inotify/inotify02.c
@@ -72,8 +72,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "inotify02";	/* Test program identifier. */
-int TST_TOTAL = 9;		/* Total number of test cases. */
+char *TCID = "inotify02";
+int TST_TOTAL = 9;
 
 #define BUF_SIZE 256
 char fname1[BUF_SIZE], fname2[BUF_SIZE], fname3[BUF_SIZE];
@@ -336,8 +336,8 @@
 
 #else
 
-char *TCID = "inotify02";	/* Test program identifier.    */
-int TST_TOTAL = 0;		/* Total number of test cases. */
+char *TCID = "inotify02";
+int TST_TOTAL = 0;
 
 int main(void)
 {
diff --git a/testcases/kernel/syscalls/inotify/inotify03.c b/testcases/kernel/syscalls/inotify/inotify03.c
index 5d31f88..f4c8194 100644
--- a/testcases/kernel/syscalls/inotify/inotify03.c
+++ b/testcases/kernel/syscalls/inotify/inotify03.c
@@ -64,8 +64,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "inotify03";	/* Test program identifier.     */
-int TST_TOTAL = 3;		/* Total number of test cases. */
+char *TCID = "inotify03";
+int TST_TOTAL = 3;
 
 #define BUF_SIZE 1024
 char fname[BUF_SIZE];
@@ -316,8 +316,8 @@
 
 #else
 
-char *TCID = "inotify03";	/* Test program identifier.     */
-int TST_TOTAL = 0;		/* Total number of test cases. */
+char *TCID = "inotify03";
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/inotify_init/inotify_init1_01.c b/testcases/kernel/syscalls/inotify_init/inotify_init1_01.c
index 0d092cc..3232076 100644
--- a/testcases/kernel/syscalls/inotify_init/inotify_init1_01.c
+++ b/testcases/kernel/syscalls/inotify_init/inotify_init1_01.c
@@ -59,7 +59,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -70,12 +69,9 @@
 
 #define IN_CLOEXEC O_CLOEXEC
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "inotify_init1_01";	/* test program identifier.              */
+char *TCID = "inotify_init1_01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -134,7 +130,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(argc, argv, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/inotify_init/inotify_init1_02.c b/testcases/kernel/syscalls/inotify_init/inotify_init1_02.c
index b4f43a2..f69c79d 100644
--- a/testcases/kernel/syscalls/inotify_init/inotify_init1_02.c
+++ b/testcases/kernel/syscalls/inotify_init/inotify_init1_02.c
@@ -56,7 +56,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -67,10 +66,9 @@
 
 #define IN_NONBLOCK O_NONBLOCK
 
-/* Global Variables */
-char *TCID = "inotify_init1_02";	/* test program identifier.              */
+char *TCID = "inotify_init1_02";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -129,7 +127,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(argc, argv, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/ioctl/ioctl03.c b/testcases/kernel/syscalls/ioctl/ioctl03.c
index 6bc3e2a..cefe444 100644
--- a/testcases/kernel/syscalls/ioctl/ioctl03.c
+++ b/testcases/kernel/syscalls/ioctl/ioctl03.c
@@ -46,7 +46,6 @@
 #include <stdio.h>
 #include <linux/if_tun.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 
diff --git a/testcases/kernel/syscalls/ioperm/ioperm01.c b/testcases/kernel/syscalls/ioperm/ioperm01.c
index 6b97444..da003b9 100644
--- a/testcases/kernel/syscalls/ioperm/ioperm01.c
+++ b/testcases/kernel/syscalls/ioperm/ioperm01.c
@@ -63,7 +63,7 @@
  *
  ****************************************************************/
 
-char *TCID = "ioperm01";	/* Test program identifier.    */
+char *TCID = "ioperm01";
 
 #if defined __i386__ || defined(__x86_64__)
 
@@ -85,7 +85,7 @@
 static void setup();
 static void cleanup();
 
-int TST_TOTAL = 1;		/* Total number of test cases. */
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
@@ -180,7 +180,7 @@
 #include "test.h"
 #include "usctest.h"
 
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/ioperm/ioperm02.c b/testcases/kernel/syscalls/ioperm/ioperm02.c
index 3131217..cfcfcf1 100644
--- a/testcases/kernel/syscalls/ioperm/ioperm02.c
+++ b/testcases/kernel/syscalls/ioperm/ioperm02.c
@@ -68,7 +68,7 @@
  *
  ****************************************************************/
 
-char *TCID = "ioperm02";	/* Test program identifier.    */
+char *TCID = "ioperm02";
 
 #if defined __i386__ || defined(__x86_64__)
 
@@ -237,7 +237,6 @@
 		test_cases[1].from = IO_BITMAP_BITS_16 - NUM_BYTES;
 	}
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
@@ -260,7 +259,7 @@
 #include "test.h"
 #include "usctest.h"
 
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/iopl/iopl01.c b/testcases/kernel/syscalls/iopl/iopl01.c
index c925489..172d706 100644
--- a/testcases/kernel/syscalls/iopl/iopl01.c
+++ b/testcases/kernel/syscalls/iopl/iopl01.c
@@ -63,7 +63,7 @@
  *
  ****************************************************************/
 
-char *TCID = "iopl01";		/* Test program identifier.    */
+char *TCID = "iopl01";
 
 #if defined __i386__ || defined(__x86_64__)
 
@@ -77,7 +77,7 @@
 static void setup();
 static void cleanup();
 
-int TST_TOTAL = 4;		/* Total number of test cases. */
+int TST_TOTAL = 4;
 
 int level;			/* I/O privilege level of the process */
 
@@ -164,7 +164,7 @@
 #include "test.h"
 #include "usctest.h"
 
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/iopl/iopl02.c b/testcases/kernel/syscalls/iopl/iopl02.c
index b0b6ac5..0790345 100644
--- a/testcases/kernel/syscalls/iopl/iopl02.c
+++ b/testcases/kernel/syscalls/iopl/iopl02.c
@@ -69,7 +69,7 @@
  *
  ****************************************************************/
 
-char *TCID = "iopl02";		/* Test program identifier.    */
+char *TCID = "iopl02";
 
 #if defined __i386__ || defined(__x86_64__)
 
@@ -203,7 +203,6 @@
 		tst_brkm(TBROK, NULL, "\"nobody\" user id doesn't exist");
 	}
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
@@ -230,7 +229,7 @@
 #include "test.h"
 #include "usctest.h"
 
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/keyctl/keyctl01.c b/testcases/kernel/syscalls/keyctl/keyctl01.c
index b76bae7..dc49e2a 100644
--- a/testcases/kernel/syscalls/keyctl/keyctl01.c
+++ b/testcases/kernel/syscalls/keyctl/keyctl01.c
@@ -50,17 +50,13 @@
 #include <limits.h>
 #include <stdio.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "keyctl01";	/* Test program identifier. */
+char *TCID = "keyctl01";
 int testno;
-int TST_TOTAL = 2;		/* total number of tests in this file.   */
+int TST_TOTAL = 2;
 
 #if HAVE_KEYCTL_SYSCALL
 /* Extern Global Functions */
diff --git a/testcases/kernel/syscalls/kill/kill02.c b/testcases/kernel/syscalls/kill/kill02.c
index 72bd90f..df322b2 100644
--- a/testcases/kernel/syscalls/kill/kill02.c
+++ b/testcases/kernel/syscalls/kill/kill02.c
@@ -201,8 +201,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "kill02";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "kill02";
+int TST_TOTAL = 2;
 
 int exp_enos[] = { 0 };		/* Array of expected errnos */
 
diff --git a/testcases/kernel/syscalls/kill/kill09.c b/testcases/kernel/syscalls/kill/kill09.c
index b1b8e91..7f83942 100644
--- a/testcases/kernel/syscalls/kill/kill09.c
+++ b/testcases/kernel/syscalls/kill/kill09.c
@@ -124,8 +124,8 @@
 void alarm_handler(int sig);
 void do_child();
 
-char *TCID = "kill09";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "kill09";
+int TST_TOTAL = 1;
 
 int fork_pid;
 
diff --git a/testcases/kernel/syscalls/kill/kill10.c b/testcases/kernel/syscalls/kill/kill10.c
index 6fefe9b..529d131 100644
--- a/testcases/kernel/syscalls/kill/kill10.c
+++ b/testcases/kernel/syscalls/kill/kill10.c
@@ -188,8 +188,8 @@
 
 inline int k_sigaction(int sig, struct sigaction *sa, struct sigaction *osa);
 
-char *TCID = "kill10";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "kill10";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/link/link02.c b/testcases/kernel/syscalls/link/link02.c
index b7a418c..35cd614 100644
--- a/testcases/kernel/syscalls/link/link02.c
+++ b/testcases/kernel/syscalls/link/link02.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "link02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "link02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/link/link03.c b/testcases/kernel/syscalls/link/link03.c
index 6768acc..5a0d337 100644
--- a/testcases/kernel/syscalls/link/link03.c
+++ b/testcases/kernel/syscalls/link/link03.c
@@ -123,8 +123,8 @@
 void help();
 void cleanup();
 
-char *TCID = "link03";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "link03";
+int TST_TOTAL = 2;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/link/link04.c b/testcases/kernel/syscalls/link/link04.c
index 5f92502..1a023e4 100644
--- a/testcases/kernel/syscalls/link/link04.c
+++ b/testcases/kernel/syscalls/link/link04.c
@@ -126,8 +126,8 @@
 
 extern char *get_high_address();
 
-char *TCID = "link04";		/* Test program identifier.    */
-int TST_TOTAL = 14;		/* Total number of test cases. */
+char *TCID = "link04";
+int TST_TOTAL = 14;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/link/link05.c b/testcases/kernel/syscalls/link/link05.c
index 9427ddb..ef772fe 100644
--- a/testcases/kernel/syscalls/link/link05.c
+++ b/testcases/kernel/syscalls/link/link05.c
@@ -122,11 +122,11 @@
 void cleanup();
 void help();
 
-char *TCID = "link05";		/* Test program identifier.    */
+char *TCID = "link05";
 #ifdef CRAY
-int TST_TOTAL = 2;		/* Total number of test cases. */
+int TST_TOTAL = 2;
 #else
-int TST_TOTAL = 1;		/* Total number of test cases. */
+int TST_TOTAL = 1;
 #endif
 
 #define BASENAME	"lkfile"
diff --git a/testcases/kernel/syscalls/link/link06.c b/testcases/kernel/syscalls/link/link06.c
index b9637c9..6bcc737 100644
--- a/testcases/kernel/syscalls/link/link06.c
+++ b/testcases/kernel/syscalls/link/link06.c
@@ -92,8 +92,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "link06";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "link06";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { EACCES, 0 };
 
diff --git a/testcases/kernel/syscalls/link/link07.c b/testcases/kernel/syscalls/link/link07.c
index d208331..f5a85f0 100644
--- a/testcases/kernel/syscalls/link/link07.c
+++ b/testcases/kernel/syscalls/link/link07.c
@@ -98,8 +98,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "link07";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "link07";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { EACCES, 0 };
 
diff --git a/testcases/kernel/syscalls/listen/listen01.c b/testcases/kernel/syscalls/listen/listen01.c
index 8dccbdf..bce33e2 100644
--- a/testcases/kernel/syscalls/listen/listen01.c
+++ b/testcases/kernel/syscalls/listen/listen01.c
@@ -55,7 +55,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "listen01";	/* Test program identifier.    */
+char *TCID = "listen01";
 int testno;
 
 int s;				/* socket descriptor */
@@ -80,7 +80,7 @@
 PF_INET, SOCK_DGRAM, 0, 0, -1, EOPNOTSUPP, setup1, cleanup1,
 		    "UDP listen"},};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EBADF, ENOTSOCK, EOPNOTSUPP, 0 };
 
@@ -89,7 +89,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -98,7 +97,6 @@
 
 	setup();
 
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	for (lc = 0; TEST_LOOPING(lc); ++lc) {
@@ -130,7 +128,7 @@
 
 void setup(void)
 {
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 }
 
 void cleanup(void)
diff --git a/testcases/kernel/syscalls/llseek/llseek01.c b/testcases/kernel/syscalls/llseek/llseek01.c
index 95df4fc..94f61ad 100644
--- a/testcases/kernel/syscalls/llseek/llseek01.c
+++ b/testcases/kernel/syscalls/llseek/llseek01.c
@@ -89,8 +89,8 @@
 #define TEMP_FILE	"tmp_file"
 #define FILE_MODE	0644
 
-char *TCID = "llseek01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "llseek01";
+int TST_TOTAL = 1;
 char write_buff[BUFSIZ];	/* buffer to hold data */
 int fildes;			/* file handle for temp file */
 
diff --git a/testcases/kernel/syscalls/llseek/llseek02.c b/testcases/kernel/syscalls/llseek/llseek02.c
index 8dc39b5..9e3646f 100644
--- a/testcases/kernel/syscalls/llseek/llseek02.c
+++ b/testcases/kernel/syscalls/llseek/llseek02.c
@@ -89,8 +89,8 @@
 #define FILE_MODE	S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 #define SEEK_TOP	10
 
-char *TCID = "llseek02";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "llseek02";
+int TST_TOTAL = 2;
 
 int no_setup();
 int setup1();			/* setup function to test llseek() for EINVAL */
@@ -127,7 +127,6 @@
 	char *test_desc;	/* test specific error message */
 	int ind;		/* counter to test different test conditions */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -136,7 +135,6 @@
 
 	setup();
 
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	for (lc = 0; TEST_LOOPING(lc); lc++) {
diff --git a/testcases/kernel/syscalls/lseek/lseek01.c b/testcases/kernel/syscalls/lseek/lseek01.c
index a16a28a..114792f 100644
--- a/testcases/kernel/syscalls/lseek/lseek01.c
+++ b/testcases/kernel/syscalls/lseek/lseek01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "lseek01";		/* Test program identifier.    */
-int TST_TOTAL = 3;		/* Total number of test cases. */
+char *TCID = "lseek01";
+int TST_TOTAL = 3;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/lseek/lseek02.c b/testcases/kernel/syscalls/lseek/lseek02.c
index f30fba5..364cf19 100644
--- a/testcases/kernel/syscalls/lseek/lseek02.c
+++ b/testcases/kernel/syscalls/lseek/lseek02.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "lseek02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "lseek02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/lseek/lseek04.c b/testcases/kernel/syscalls/lseek/lseek04.c
index 028bc69..d20ae7b 100644
--- a/testcases/kernel/syscalls/lseek/lseek04.c
+++ b/testcases/kernel/syscalls/lseek/lseek04.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "lseek04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "lseek04";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/lseek/lseek05.c b/testcases/kernel/syscalls/lseek/lseek05.c
index 5c2a815..a3209af 100644
--- a/testcases/kernel/syscalls/lseek/lseek05.c
+++ b/testcases/kernel/syscalls/lseek/lseek05.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "lseek05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "lseek05";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/lseek/lseek06.c b/testcases/kernel/syscalls/lseek/lseek06.c
index 94f1105..d895383 100644
--- a/testcases/kernel/syscalls/lseek/lseek06.c
+++ b/testcases/kernel/syscalls/lseek/lseek06.c
@@ -83,8 +83,8 @@
 #define TEMP_FILE	"tmp_file"
 #define FILE_MODE	S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 
-char *TCID = "lseek06";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "lseek06";
+int TST_TOTAL = 1;
 int fildes;			/* file handle for temp file */
 
 void setup();			/* Main setup function of test */
@@ -96,7 +96,6 @@
 	char *msg;
 	char read_buf[1];	/* data read from temp. file */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/lseek/lseek07.c b/testcases/kernel/syscalls/lseek/lseek07.c
index 40e6259..70dff94 100644
--- a/testcases/kernel/syscalls/lseek/lseek07.c
+++ b/testcases/kernel/syscalls/lseek/lseek07.c
@@ -83,8 +83,8 @@
 #define TEMP_FILE	"tmp_file"
 #define FILE_MODE	S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 
-char *TCID = "lseek07";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "lseek07";
+int TST_TOTAL = 1;
 int fildes;			/* file handle for temp file */
 size_t file_size;		/* size of temporary file */
 char write_buf1[BUFSIZ];	/* buffer to hold data */
@@ -100,7 +100,6 @@
 	char read_buf[BUFSIZ];	/* data read from temp. file */
 	off_t offset;		/* byte position in temporary file */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/lseek/lseek08.c b/testcases/kernel/syscalls/lseek/lseek08.c
index b106bc9..175393e 100644
--- a/testcases/kernel/syscalls/lseek/lseek08.c
+++ b/testcases/kernel/syscalls/lseek/lseek08.c
@@ -82,8 +82,8 @@
 #define TEMP_FILE	"tmp_file"
 #define FILE_MODE	S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 
-char *TCID = "lseek08";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "lseek08";
+int TST_TOTAL = 1;
 int fildes;			/* file handle for temp file */
 size_t file_size;		/* size of the temporary file */
 
@@ -96,7 +96,6 @@
 	char *msg;
 	char read_buf[1];	/* data read from temp. file */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/lseek/lseek09.c b/testcases/kernel/syscalls/lseek/lseek09.c
index 409ba41..603c515 100644
--- a/testcases/kernel/syscalls/lseek/lseek09.c
+++ b/testcases/kernel/syscalls/lseek/lseek09.c
@@ -84,8 +84,8 @@
 #define TEMP_FILE	"tmp_file"
 #define FILE_MODE	S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 
-char *TCID = "lseek09";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "lseek09";
+int TST_TOTAL = 1;
 int fildes;			/* file handle for temp file */
 size_t file_size;		/* total size of file after data write */
 
@@ -98,7 +98,6 @@
 	char *msg;
 	char read_buf[BUFSIZ];	/* data read from temp. file */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/lseek/lseek10.c b/testcases/kernel/syscalls/lseek/lseek10.c
index 7213d4b..b7ea5da 100644
--- a/testcases/kernel/syscalls/lseek/lseek10.c
+++ b/testcases/kernel/syscalls/lseek/lseek10.c
@@ -90,8 +90,8 @@
 #define PIPE_MODE	S_IFIFO | S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 #define SEEK_TOP	10
 
-char *TCID = "lseek10";		/* Test program identifier.    */
-int TST_TOTAL = 3;		/* Total number of test cases. */
+char *TCID = "lseek10";
+int TST_TOTAL = 3;
 int exp_enos[] = { ESPIPE, EINVAL, EBADF, 0 };
 
 int no_setup();
@@ -130,7 +130,6 @@
 	char *test_desc;	/* test specific error message */
 	int ind;		/* counter to test different test conditions */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/lstat/lstat01.c b/testcases/kernel/syscalls/lstat/lstat01.c
index 1dc88a0..ced9f05 100644
--- a/testcases/kernel/syscalls/lstat/lstat01.c
+++ b/testcases/kernel/syscalls/lstat/lstat01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "lstat01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "lstat01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/lstat/lstat02.c b/testcases/kernel/syscalls/lstat/lstat02.c
index bece836..7111cce 100644
--- a/testcases/kernel/syscalls/lstat/lstat02.c
+++ b/testcases/kernel/syscalls/lstat/lstat02.c
@@ -129,8 +129,8 @@
 	NULL, NULL, 0, no_setup}
 };
 
-char *TCID = "lstat02";		/* Test program identifier.    */
-int TST_TOTAL = sizeof(Test_cases) / sizeof(*Test_cases);	/* Total number of test cases. */
+char *TCID = "lstat02";
+int TST_TOTAL = sizeof(Test_cases) / sizeof(*Test_cases);
 int exp_enos[] = { EACCES, EFAULT, ENAMETOOLONG, ENOENT, ENOTDIR, 0 };
 
 char nobody_uid[] = "nobody";
@@ -150,7 +150,6 @@
 	char *test_desc;	/* test specific error message */
 	int ind;		/* counter to test different test conditions */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/lstat/lstat03.c b/testcases/kernel/syscalls/lstat/lstat03.c
index 81a152a..e93da6d 100644
--- a/testcases/kernel/syscalls/lstat/lstat03.c
+++ b/testcases/kernel/syscalls/lstat/lstat03.c
@@ -84,16 +84,16 @@
 #define BUF_SIZE	256
 #define PERMS		0644
 
-char *TCID = "lstat03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "lstat03";
+int TST_TOTAL = 1;
 uid_t user_id;			/* user id/group id of test process */
 gid_t group_id;
 
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
@@ -101,7 +101,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/memmap/mem03.c b/testcases/kernel/syscalls/memmap/mem03.c
index 418858c..e6902c0 100644
--- a/testcases/kernel/syscalls/memmap/mem03.c
+++ b/testcases/kernel/syscalls/memmap/mem03.c
@@ -61,8 +61,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "mem03";		/* Test program identifier. */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mem03";
+int TST_TOTAL = 1;
 
 int f1 = -1, f2 = -1;
 char *mm1 = NULL, *mm2 = NULL;
diff --git a/testcases/kernel/syscalls/mincore/mincore02.c b/testcases/kernel/syscalls/mincore/mincore02.c
index 94e26c0..6b51b69 100644
--- a/testcases/kernel/syscalls/mincore/mincore02.c
+++ b/testcases/kernel/syscalls/mincore/mincore02.c
@@ -61,10 +61,8 @@
 /* comment out if you need to debug */
 /* #define DEBUG_MODE 1 */
 
-/* Extern Global Variables */
-/* Global Variables */
-char *TCID = "mincore02";	/* test program identifier. */
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+char *TCID = "mincore02";
+int TST_TOTAL = 1;
 
 static int file_desc = 0;	/* this is for the file descriptor */
 static char *position = NULL;
diff --git a/testcases/kernel/syscalls/mkdir/mkdir01.c b/testcases/kernel/syscalls/mkdir/mkdir01.c
index 872103b..cfef762 100644
--- a/testcases/kernel/syscalls/mkdir/mkdir01.c
+++ b/testcases/kernel/syscalls/mkdir/mkdir01.c
@@ -116,8 +116,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "mkdir01";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "mkdir01";
+int TST_TOTAL = 2;
 
 int exp_enos[] = { EFAULT, 0 };	/* List must end with 0 */
 
diff --git a/testcases/kernel/syscalls/mkdir/mkdir02.c b/testcases/kernel/syscalls/mkdir/mkdir02.c
index f97ea9a..48eb6a6 100644
--- a/testcases/kernel/syscalls/mkdir/mkdir02.c
+++ b/testcases/kernel/syscalls/mkdir/mkdir02.c
@@ -83,8 +83,8 @@
 
 #define PERMS		0777
 
-char *TCID = "mkdir02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mkdir02";
+int TST_TOTAL = 1;
 
 char tstdir1[100];
 char tstdir2[100];
diff --git a/testcases/kernel/syscalls/mkdir/mkdir03.c b/testcases/kernel/syscalls/mkdir/mkdir03.c
index 500ca6c..9243299 100644
--- a/testcases/kernel/syscalls/mkdir/mkdir03.c
+++ b/testcases/kernel/syscalls/mkdir/mkdir03.c
@@ -84,7 +84,7 @@
 
 #define NAMELEN		50
 
-char *TCID = "mkdir03";		/* Test program identifier.    */
+char *TCID = "mkdir03";
 int fileHandle, fileHandle2 = 0;
 
 char tstdir3[NAMELEN];
diff --git a/testcases/kernel/syscalls/mkdir/mkdir04.c b/testcases/kernel/syscalls/mkdir/mkdir04.c
index 5981dd5..9eb71f2 100644
--- a/testcases/kernel/syscalls/mkdir/mkdir04.c
+++ b/testcases/kernel/syscalls/mkdir/mkdir04.c
@@ -88,8 +88,8 @@
 char user1name[] = "nobody";
 char user2name[] = "bin";
 
-char *TCID = "mkdir04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mkdir04";
+int TST_TOTAL = 1;
 int fail;
 
 char tstdir1[100];
diff --git a/testcases/kernel/syscalls/mkdir/mkdir05.c b/testcases/kernel/syscalls/mkdir/mkdir05.c
index de2a6e9..ed3d00b 100644
--- a/testcases/kernel/syscalls/mkdir/mkdir05.c
+++ b/testcases/kernel/syscalls/mkdir/mkdir05.c
@@ -79,8 +79,8 @@
 
 #define PERMS		0777
 
-char *TCID = "mkdir05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mkdir05";
+int TST_TOTAL = 1;
 
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
diff --git a/testcases/kernel/syscalls/mkdir/mkdir08.c b/testcases/kernel/syscalls/mkdir/mkdir08.c
index e5e4fb7..ba05310 100644
--- a/testcases/kernel/syscalls/mkdir/mkdir08.c
+++ b/testcases/kernel/syscalls/mkdir/mkdir08.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "mkdir08";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mkdir08";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/mkdir/mkdir09.c b/testcases/kernel/syscalls/mkdir/mkdir09.c
index b995e9a..1834ae8 100644
--- a/testcases/kernel/syscalls/mkdir/mkdir09.c
+++ b/testcases/kernel/syscalls/mkdir/mkdir09.c
@@ -73,8 +73,8 @@
  *  * These globals must be defined in the test.
  *   */
 
-char *TCID = "mkdir09";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mkdir09";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { EFAULT, 0 };	/* List must end with 0 */
 
diff --git a/testcases/kernel/syscalls/mkdirat/mkdirat01.c b/testcases/kernel/syscalls/mkdirat/mkdirat01.c
index ff3b62c..69cd2b3 100644
--- a/testcases/kernel/syscalls/mkdirat/mkdirat01.c
+++ b/testcases/kernel/syscalls/mkdirat/mkdirat01.c
@@ -64,8 +64,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "mkdirat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "mkdirat01";
+int TST_TOTAL = TEST_CASES;
 char testdir[256];
 char testsubdir[256];
 char testsubdir2[256];
diff --git a/testcases/kernel/syscalls/mknod/mknod01.c b/testcases/kernel/syscalls/mknod/mknod01.c
index 1230587..7dd2099 100644
--- a/testcases/kernel/syscalls/mknod/mknod01.c
+++ b/testcases/kernel/syscalls/mknod/mknod01.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "mknod01";		/* Test program identifier.    */
-int TST_TOTAL;			/* Total number of test cases. */
+char *TCID = "mknod01";
+int TST_TOTAL;
 
 char Path[1024];		/* path to create */
 int i;
diff --git a/testcases/kernel/syscalls/mknod/mknod02.c b/testcases/kernel/syscalls/mknod/mknod02.c
index 4a0a9c7..8dacf8a 100644
--- a/testcases/kernel/syscalls/mknod/mknod02.c
+++ b/testcases/kernel/syscalls/mknod/mknod02.c
@@ -91,8 +91,8 @@
 struct stat buf;		/* struct. to hold stat(2) o/p contents */
 struct passwd *user1;		/* struct. to hold getpwnam(3) o/p contents */
 
-char *TCID = "mknod02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mknod02";
+int TST_TOTAL = 1;
 char node_name[PATH_MAX];	/* buffer to hold node name created */
 
 gid_t group1_gid, group2_gid, mygid;	/* user and process group id's */
@@ -108,7 +108,6 @@
 	int fflag;		/* functionality flag variable */
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/mknod/mknod03.c b/testcases/kernel/syscalls/mknod/mknod03.c
index 4d5663a..13655a9 100644
--- a/testcases/kernel/syscalls/mknod/mknod03.c
+++ b/testcases/kernel/syscalls/mknod/mknod03.c
@@ -91,8 +91,8 @@
 struct stat buf;		/* struct. to hold stat(2) o/p contents */
 struct passwd *user1;		/* struct. to hold getpwnam(3) o/p contents */
 
-char *TCID = "mknod03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mknod03";
+int TST_TOTAL = 1;
 char node_name[PATH_MAX];	/* buffer to hold node name created */
 
 gid_t group1_gid, group2_gid, mygid;	/* user and process group id's */
@@ -108,7 +108,6 @@
 	int fflag;		/* functionality flag variable */
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/mknod/mknod04.c b/testcases/kernel/syscalls/mknod/mknod04.c
index db6fcec..92a7c2f 100644
--- a/testcases/kernel/syscalls/mknod/mknod04.c
+++ b/testcases/kernel/syscalls/mknod/mknod04.c
@@ -91,8 +91,8 @@
 struct stat buf;		/* struct. to hold stat(2) o/p contents */
 struct passwd *user1;		/* struct. to hold getpwnam(3) o/p contents */
 
-char *TCID = "mknod04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mknod04";
+int TST_TOTAL = 1;
 char node_name[PATH_MAX];	/* buffer to hold node name created */
 
 gid_t group1_gid, group2_gid, mygid;	/* user and process group id's */
@@ -108,7 +108,6 @@
 	int fflag;		/* functionality flag variable */
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/mknod/mknod05.c b/testcases/kernel/syscalls/mknod/mknod05.c
index fabe527..07e81b7 100644
--- a/testcases/kernel/syscalls/mknod/mknod05.c
+++ b/testcases/kernel/syscalls/mknod/mknod05.c
@@ -91,8 +91,8 @@
 struct stat buf;		/* struct. to hold stat(2) o/p contents */
 struct passwd *user1;		/* struct. to hold getpwnam(3) o/p contents */
 
-char *TCID = "mknod05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mknod05";
+int TST_TOTAL = 1;
 char node_name[PATH_MAX];	/* buffer to hold node name created */
 
 gid_t group1_gid, group2_gid, mygid;	/* user and process group id's */
@@ -108,7 +108,6 @@
 	int fflag;		/* functionality flag variable */
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/mknod/mknod06.c b/testcases/kernel/syscalls/mknod/mknod06.c
index fb289a5..c85a5c0 100644
--- a/testcases/kernel/syscalls/mknod/mknod06.c
+++ b/testcases/kernel/syscalls/mknod/mknod06.c
@@ -118,7 +118,7 @@
 	NULL, NULL, 0, no_setup}
 };
 
-char *TCID = "mknod06";		/* Test program identifier.    */
+char *TCID = "mknod06";
 int TST_TOTAL = (sizeof(Test_cases) / sizeof(*Test_cases));
 #if !defined(UCLINUX)
 extern char *get_high_address();
@@ -140,7 +140,6 @@
 	char *test_desc;	/* test specific error message */
 	int ind;		/* counter to test different test conditions */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/mknod/mknod07.c b/testcases/kernel/syscalls/mknod/mknod07.c
index e7a6fc8..6cdf980 100644
--- a/testcases/kernel/syscalls/mknod/mknod07.c
+++ b/testcases/kernel/syscalls/mknod/mknod07.c
@@ -97,8 +97,8 @@
 	"tnode_1", SOCKET_MODE, EACCES, NULL}, {
 "tnode_2", NEWMODE, EACCES, setup2},};
 
-char *TCID = "mknod07";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "mknod07";
+int TST_TOTAL = 2;
 int exp_enos[] = { EPERM, EACCES, 0 };
 
 char nobody_uid[] = "nobody";
diff --git a/testcases/kernel/syscalls/mknod/mknod08.c b/testcases/kernel/syscalls/mknod/mknod08.c
index 9369cb9..29d07ff 100644
--- a/testcases/kernel/syscalls/mknod/mknod08.c
+++ b/testcases/kernel/syscalls/mknod/mknod08.c
@@ -90,8 +90,8 @@
 struct stat buf;		/* struct. to hold stat(2) o/p contents */
 struct passwd *user1;		/* struct. to hold getpwnam(3) o/p contents */
 
-char *TCID = "mknod08";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mknod08";
+int TST_TOTAL = 1;
 char node_name[PATH_MAX];	/* buffer to hold node name created */
 
 gid_t group1_gid, group2_gid, mygid;	/* user and process group id's */
@@ -107,7 +107,6 @@
 	int fflag;		/* functionality flag variable */
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/mknod/mknod09.c b/testcases/kernel/syscalls/mknod/mknod09.c
index 8398ba7..f589c30 100644
--- a/testcases/kernel/syscalls/mknod/mknod09.c
+++ b/testcases/kernel/syscalls/mknod/mknod09.c
@@ -74,8 +74,8 @@
 #define MODE_RWX	S_IFMT	/* mode different from those expected */
 #define TNODE		"tnode"	/*pathname */
 
-char *TCID = "mknod09";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mknod09";
+int TST_TOTAL = 1;
 int exp_enos[] = { EINVAL, 0 };
 
 void setup();			/* setup function for the test */
@@ -87,7 +87,6 @@
 	char *msg;
 	char *test_desc;	/* test specific error message */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/mknodat/mknodat01.c b/testcases/kernel/syscalls/mknodat/mknodat01.c
index be54e48..28a8111 100644
--- a/testcases/kernel/syscalls/mknodat/mknodat01.c
+++ b/testcases/kernel/syscalls/mknodat/mknodat01.c
@@ -64,8 +64,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "mknodat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "mknodat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256];
 char testfile[256];
 char testfile2[256];
diff --git a/testcases/kernel/syscalls/mlock/mlock01.c b/testcases/kernel/syscalls/mlock/mlock01.c
index d4a989c..2524273 100644
--- a/testcases/kernel/syscalls/mlock/mlock01.c
+++ b/testcases/kernel/syscalls/mlock/mlock01.c
@@ -56,8 +56,8 @@
 void setup1(int);
 void cleanup();
 
-char *TCID = "mlock01";		/* Test program identifier.    */
-int TST_TOTAL = 4;		/* Total number of test cases. */
+char *TCID = "mlock01";
+int TST_TOTAL = 4;
 
 int exp_enos[] = { 0 };
 
diff --git a/testcases/kernel/syscalls/mlock/mlock02.c b/testcases/kernel/syscalls/mlock/mlock02.c
index a0062a3..edd9e45 100644
--- a/testcases/kernel/syscalls/mlock/mlock02.c
+++ b/testcases/kernel/syscalls/mlock/mlock02.c
@@ -55,8 +55,8 @@
 void setup1();
 void cleanup();
 
-char *TCID = "mlock02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mlock02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { ENOMEM, 0 };
 
diff --git a/testcases/kernel/syscalls/mlockall/mlockall01.c b/testcases/kernel/syscalls/mlockall/mlockall01.c
index 97cc171..c59e412 100644
--- a/testcases/kernel/syscalls/mlockall/mlockall01.c
+++ b/testcases/kernel/syscalls/mlockall/mlockall01.c
@@ -73,8 +73,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "mlockall01";	/* Test program identifier.    */
-int TST_TOTAL = 3;		/* Total number of test cases. */
+char *TCID = "mlockall01";
+int TST_TOTAL = 3;
 
 int exp_enos[] = { 0 };
 
diff --git a/testcases/kernel/syscalls/mlockall/mlockall02.c b/testcases/kernel/syscalls/mlockall/mlockall02.c
index 5ddb3a5..952329b 100644
--- a/testcases/kernel/syscalls/mlockall/mlockall02.c
+++ b/testcases/kernel/syscalls/mlockall/mlockall02.c
@@ -85,8 +85,8 @@
 void cleanup_test(int);
 void cleanup();
 
-char *TCID = "mlockall02";	/* Test program identifier.    */
-int TST_TOTAL = 3;		/* Total number of test cases. */
+char *TCID = "mlockall02";
+int TST_TOTAL = 3;
 
 int exp_enos[] = { ENOMEM, EPERM, EINVAL, 0 };
 
diff --git a/testcases/kernel/syscalls/mlockall/mlockall03.c b/testcases/kernel/syscalls/mlockall/mlockall03.c
index ff4d8a4..6d51321 100644
--- a/testcases/kernel/syscalls/mlockall/mlockall03.c
+++ b/testcases/kernel/syscalls/mlockall/mlockall03.c
@@ -89,8 +89,8 @@
 void cleanup_test(int);
 void cleanup();
 
-char *TCID = "mlockall03";	/* Test program identifier.    */
-int TST_TOTAL = 3;		/* Total number of test cases. */
+char *TCID = "mlockall03";
+int TST_TOTAL = 3;
 
 #if !defined(UCLINUX)
 
diff --git a/testcases/kernel/syscalls/mmap/mmap01.c b/testcases/kernel/syscalls/mmap/mmap01.c
index de1d694..06a8ef6 100644
--- a/testcases/kernel/syscalls/mmap/mmap01.c
+++ b/testcases/kernel/syscalls/mmap/mmap01.c
@@ -88,8 +88,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "mmap01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mmap01";
+int TST_TOTAL = 1;
 char *addr;			/* addr of memory mapped region */
 char *dummy;			/* dummy string */
 size_t page_sz;			/* system page size */
@@ -105,7 +105,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mmap/mmap02.c b/testcases/kernel/syscalls/mmap/mmap02.c
index b03dbf9..5bdb589 100644
--- a/testcases/kernel/syscalls/mmap/mmap02.c
+++ b/testcases/kernel/syscalls/mmap/mmap02.c
@@ -85,8 +85,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "mmap02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mmap02";
+int TST_TOTAL = 1;
 char *addr;			/* addr of memory mapped region */
 char *dummy;			/* dummy string */
 size_t page_sz;			/* system page size */
@@ -100,7 +100,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mmap/mmap03.c b/testcases/kernel/syscalls/mmap/mmap03.c
index 70416b9..8743142 100644
--- a/testcases/kernel/syscalls/mmap/mmap03.c
+++ b/testcases/kernel/syscalls/mmap/mmap03.c
@@ -92,8 +92,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "mmap03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mmap03";
+int TST_TOTAL = 1;
 size_t page_sz;			/* system page size */
 char *addr;			/* addr of memory mapped region */
 char *dummy;			/* dummy variable to hold temp file contents */
@@ -110,7 +110,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mmap/mmap04.c b/testcases/kernel/syscalls/mmap/mmap04.c
index e133331..6f5d8ee 100644
--- a/testcases/kernel/syscalls/mmap/mmap04.c
+++ b/testcases/kernel/syscalls/mmap/mmap04.c
@@ -88,8 +88,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "mmap04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mmap04";
+int TST_TOTAL = 1;
 size_t page_sz;			/* system page size */
 char *addr;			/* addr of memory mapped region */
 char *dummy;			/* dummy variable to hold temp file contents */
@@ -103,7 +103,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mmap/mmap05.c b/testcases/kernel/syscalls/mmap/mmap05.c
index 44ac2ca..63d165e 100644
--- a/testcases/kernel/syscalls/mmap/mmap05.c
+++ b/testcases/kernel/syscalls/mmap/mmap05.c
@@ -89,8 +89,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "mmap05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mmap05";
+int TST_TOTAL = 1;
 size_t page_sz;			/* system page size */
 volatile char *addr;		/* addr of memory mapped region */
 int fildes;			/* file descriptor for temporary file */
diff --git a/testcases/kernel/syscalls/mmap/mmap06.c b/testcases/kernel/syscalls/mmap/mmap06.c
index b18a91c..8626e3b 100644
--- a/testcases/kernel/syscalls/mmap/mmap06.c
+++ b/testcases/kernel/syscalls/mmap/mmap06.c
@@ -84,8 +84,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "mmap06";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mmap06";
+int TST_TOTAL = 1;
 int exp_enos[] = { EACCES, 0 };
 
 size_t page_sz;			/* system page size */
@@ -100,7 +100,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mmap/mmap07.c b/testcases/kernel/syscalls/mmap/mmap07.c
index 49de352..1c24e06 100644
--- a/testcases/kernel/syscalls/mmap/mmap07.c
+++ b/testcases/kernel/syscalls/mmap/mmap07.c
@@ -85,8 +85,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "mmap07";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mmap07";
+int TST_TOTAL = 1;
 int exp_enos[] = { EACCES, 0 };
 
 size_t page_sz;			/* system page size */
@@ -101,7 +101,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mmap/mmap08.c b/testcases/kernel/syscalls/mmap/mmap08.c
index 44fa45a..3f97c31 100644
--- a/testcases/kernel/syscalls/mmap/mmap08.c
+++ b/testcases/kernel/syscalls/mmap/mmap08.c
@@ -80,8 +80,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "mmap08";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mmap08";
+int TST_TOTAL = 1;
 int exp_enos[] = { EBADF, 0 };
 
 size_t page_sz;			/* system page size */
@@ -96,7 +96,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mount/mount01.c b/testcases/kernel/syscalls/mount/mount01.c
index 78afdf2..5dfa750 100644
--- a/testcases/kernel/syscalls/mount/mount01.c
+++ b/testcases/kernel/syscalls/mount/mount01.c
@@ -79,8 +79,8 @@
 static void setup(void);
 static void cleanup(void);
 
-char *TCID = "mount01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mount01";
+int TST_TOTAL = 1;
 
 #define DEFAULT_FSTYPE	"ext2"
 #define DIR_MODE	S_IRWXU | S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP
diff --git a/testcases/kernel/syscalls/mount/mount02.c b/testcases/kernel/syscalls/mount/mount02.c
index e5398a1..1d1a5c1 100644
--- a/testcases/kernel/syscalls/mount/mount02.c
+++ b/testcases/kernel/syscalls/mount/mount02.c
@@ -100,7 +100,7 @@
 static int setup_test(int, int);
 static int cleanup_test(int);
 
-char *TCID = "mount02";		/* Test program identifier.    */
+char *TCID = "mount02";
 
 #define DEFAULT_FSTYPE "ext2"
 #define FSTYPE_LEN	20
@@ -395,7 +395,6 @@
 			 mntpoint, DIR_MODE);
 	}
 
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
index 0b4aead..04570b9 100644
--- a/testcases/kernel/syscalls/mount/mount03.c
+++ b/testcases/kernel/syscalls/mount/mount03.c
@@ -100,8 +100,8 @@
 static int test_rwflag(int, int);
 static int setup_uid(void);
 
-char *TCID = "mount03";		/* Test program identifier.    */
-int TST_TOTAL = 6;		/* Total number of test cases. */
+char *TCID = "mount03";
+int TST_TOTAL = 6;
 extern char **environ;		/* pointer to this processes env */
 
 #define DEFAULT_FSTYPE	"ext2"
diff --git a/testcases/kernel/syscalls/mount/mount04.c b/testcases/kernel/syscalls/mount/mount04.c
index e58f350..8d5c945 100644
--- a/testcases/kernel/syscalls/mount/mount04.c
+++ b/testcases/kernel/syscalls/mount/mount04.c
@@ -83,7 +83,7 @@
 static void setup(void);
 static void cleanup(void);
 
-char *TCID = "mount04";		/* Test program identifier.    */
+char *TCID = "mount04";
 
 #define DEFAULT_FSTYPE "ext2"
 #define FSTYPE_LEN	20
@@ -105,7 +105,6 @@
 	"User not Super User/root", EPERM, "EPERM"}
 };
 
-/* Total number of test cases. */
 int TST_TOTAL = sizeof(testcases) / sizeof(testcases[0]);
 
 static int exp_enos[] = { EPERM, 0 };
@@ -230,7 +229,6 @@
 			 strerror(errno));
 	}
 
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Setup for mount(2) returning errno EACCES. */
diff --git a/testcases/kernel/syscalls/mq_notify/mq_notify01.c b/testcases/kernel/syscalls/mq_notify/mq_notify01.c
index 370514a..19426f7 100644
--- a/testcases/kernel/syscalls/mq_notify/mq_notify01.c
+++ b/testcases/kernel/syscalls/mq_notify/mq_notify01.c
@@ -58,17 +58,13 @@
 
 #include "../utils/include_j_h.h"
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "mq_notify01";	/* Test program identifier. */
+char *TCID = "mq_notify01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/mq_open/mq_open01.c b/testcases/kernel/syscalls/mq_open/mq_open01.c
index 170f7f7..57efd5b 100644
--- a/testcases/kernel/syscalls/mq_open/mq_open01.c
+++ b/testcases/kernel/syscalls/mq_open/mq_open01.c
@@ -61,17 +61,13 @@
 #include "../utils/include_j_h.h"
 #include "../utils/common_j_h.c"
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "mq_open01";	/* Test program identifier. */
+char *TCID = "mq_open01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/mq_timedreceive/mq_timedreceive01.c b/testcases/kernel/syscalls/mq_timedreceive/mq_timedreceive01.c
index f2c73be..9329b5e 100644
--- a/testcases/kernel/syscalls/mq_timedreceive/mq_timedreceive01.c
+++ b/testcases/kernel/syscalls/mq_timedreceive/mq_timedreceive01.c
@@ -65,17 +65,13 @@
 #include "../utils/include_j_h.h"
 #include "../utils/common_j_h.c"
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "mq_timedreceive01";	/* Test program identifier. */
+char *TCID = "mq_timedreceive01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 struct sigaction act;
 
 /*
diff --git a/testcases/kernel/syscalls/mq_timedsend/mq_timedsend01.c b/testcases/kernel/syscalls/mq_timedsend/mq_timedsend01.c
index 3b0c924..e716398 100644
--- a/testcases/kernel/syscalls/mq_timedsend/mq_timedsend01.c
+++ b/testcases/kernel/syscalls/mq_timedsend/mq_timedsend01.c
@@ -63,17 +63,13 @@
 #include "../utils/include_j_h.h"
 #include "../utils/common_j_h.c"
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "mq_timedsend01";	/* Test program identifier. */
+char *TCID = "mq_timedsend01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 struct sigaction act;
 
 /*
diff --git a/testcases/kernel/syscalls/mq_unlink/mq_unlink01.c b/testcases/kernel/syscalls/mq_unlink/mq_unlink01.c
index 0eac266..9523e13 100644
--- a/testcases/kernel/syscalls/mq_unlink/mq_unlink01.c
+++ b/testcases/kernel/syscalls/mq_unlink/mq_unlink01.c
@@ -62,17 +62,13 @@
 #include "../utils/include_j_h.h"
 #include "../utils/common_j_h.c"
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "mq_ulink01";	/* Test program identifier. */
+char *TCID = "mq_ulink01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/mremap/mremap01.c b/testcases/kernel/syscalls/mremap/mremap01.c
index 47d67bf..12af3ee 100644
--- a/testcases/kernel/syscalls/mremap/mremap01.c
+++ b/testcases/kernel/syscalls/mremap/mremap01.c
@@ -86,8 +86,8 @@
 
 #define TEMPFILE	"mremapfile"
 
-char *TCID = "mremap01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mremap01";
+int TST_TOTAL = 1;
 char *addr;			/* addr of memory mapped region */
 int memsize;			/* memory mapped size */
 int newsize;			/* new size of virtual memory block */
@@ -101,7 +101,6 @@
 	char *msg;
 	int ind;		/* counter variable */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mremap/mremap02.c b/testcases/kernel/syscalls/mremap/mremap02.c
index 24ae505..36330c1 100644
--- a/testcases/kernel/syscalls/mremap/mremap02.c
+++ b/testcases/kernel/syscalls/mremap/mremap02.c
@@ -82,8 +82,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "mremap02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mremap02";
+int TST_TOTAL = 1;
 char *addr;			/* addr of memory mapped region */
 int memsize;			/* memory mapped size */
 int newsize;			/* new size of virtual memory block */
@@ -97,7 +97,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mremap/mremap03.c b/testcases/kernel/syscalls/mremap/mremap03.c
index e579557..cbec34e 100644
--- a/testcases/kernel/syscalls/mremap/mremap03.c
+++ b/testcases/kernel/syscalls/mremap/mremap03.c
@@ -83,8 +83,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "mremap03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mremap03";
+int TST_TOTAL = 1;
 char *addr;			/* addr of memory mapped region */
 int memsize;			/* memory mapped size */
 int newsize;			/* new size of virtual memory block */
@@ -99,7 +99,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/mremap/mremap04.c b/testcases/kernel/syscalls/mremap/mremap04.c
index 07ab6f5..3bc50a8 100644
--- a/testcases/kernel/syscalls/mremap/mremap04.c
+++ b/testcases/kernel/syscalls/mremap/mremap04.c
@@ -90,8 +90,8 @@
 
 #define SHM_MODE	(SHM_R | SHM_W)	/* mode permissions of shared memory */
 
-char *TCID = "mremap04";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "mremap04";
+int TST_TOTAL = 1;
 char *addr;			/* addr of memory mapped region */
 char *shmaddr;			/* pointer to shared memory segment */
 int shmid;			/* shared memory identifier. */
@@ -109,7 +109,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/msync/msync01.c b/testcases/kernel/syscalls/msync/msync01.c
index 0d3b895..a4b2cb0 100644
--- a/testcases/kernel/syscalls/msync/msync01.c
+++ b/testcases/kernel/syscalls/msync/msync01.c
@@ -76,8 +76,8 @@
 #define TEMPFILE	"msync_file"
 #define BUF_SIZE	256
 
-char *TCID = "msync01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "msync01";
+int TST_TOTAL = 1;
 
 char *addr;			/* addr of memory mapped region */
 size_t page_sz;			/* system page size */
diff --git a/testcases/kernel/syscalls/msync/msync02.c b/testcases/kernel/syscalls/msync/msync02.c
index 48cd499..75a497d 100644
--- a/testcases/kernel/syscalls/msync/msync02.c
+++ b/testcases/kernel/syscalls/msync/msync02.c
@@ -75,8 +75,8 @@
 #define TEMPFILE	"msync_file"
 #define BUF_SIZE	256
 
-char *TCID = "msync02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "msync02";
+int TST_TOTAL = 1;
 
 char *addr;			/* addr of memory mapped region */
 size_t page_sz;			/* system page size */
diff --git a/testcases/kernel/syscalls/msync/msync03.c b/testcases/kernel/syscalls/msync/msync03.c
index 68fe63e..e152f2c 100644
--- a/testcases/kernel/syscalls/msync/msync03.c
+++ b/testcases/kernel/syscalls/msync/msync03.c
@@ -70,8 +70,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "msync03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "msync03";
+int TST_TOTAL = 1;
 
 void *addr;			/* addr of memory mapped region */
 size_t page_sz;			/* system page size */
diff --git a/testcases/kernel/syscalls/msync/msync04.c b/testcases/kernel/syscalls/msync/msync04.c
index 07f40bb..a739e62 100644
--- a/testcases/kernel/syscalls/msync/msync04.c
+++ b/testcases/kernel/syscalls/msync/msync04.c
@@ -75,8 +75,8 @@
 #define BUF_SIZE	256
 #define INV_SYNC	-1
 
-char *TCID = "msync04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "msync04";
+int TST_TOTAL = 1;
 
 char *addr;			/* addr of memory mapped region */
 size_t page_sz;			/* system page size */
diff --git a/testcases/kernel/syscalls/msync/msync05.c b/testcases/kernel/syscalls/msync/msync05.c
index 9a91e05..eaf28ab 100644
--- a/testcases/kernel/syscalls/msync/msync05.c
+++ b/testcases/kernel/syscalls/msync/msync05.c
@@ -69,8 +69,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "msync05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "msync05";
+int TST_TOTAL = 1;
 
 void *addr;			/* addr of memory mapped region */
 size_t page_sz;			/* system page size */
diff --git a/testcases/kernel/syscalls/munlock/munlock01.c b/testcases/kernel/syscalls/munlock/munlock01.c
index 38edbe6..3420fb8 100644
--- a/testcases/kernel/syscalls/munlock/munlock01.c
+++ b/testcases/kernel/syscalls/munlock/munlock01.c
@@ -73,8 +73,8 @@
 void setup1(int);
 void cleanup();
 
-char *TCID = "munlock01";	/* Test program identifier.    */
-int TST_TOTAL = 4;		/* Total number of test cases. */
+char *TCID = "munlock01";
+int TST_TOTAL = 4;
 
 int exp_enos[] = { 0 };
 
diff --git a/testcases/kernel/syscalls/munlock/munlock02.c b/testcases/kernel/syscalls/munlock/munlock02.c
index 040c7d1..8485ac7 100644
--- a/testcases/kernel/syscalls/munlock/munlock02.c
+++ b/testcases/kernel/syscalls/munlock/munlock02.c
@@ -78,8 +78,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "munlock02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "munlock02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { ENOMEM, 0 };
 
diff --git a/testcases/kernel/syscalls/munlockall/munlockall01.c b/testcases/kernel/syscalls/munlockall/munlockall01.c
index 3412a87..a85652b 100644
--- a/testcases/kernel/syscalls/munlockall/munlockall01.c
+++ b/testcases/kernel/syscalls/munlockall/munlockall01.c
@@ -69,8 +69,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "munlockall01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "munlockall01";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 #if !defined(UCLINUX)
diff --git a/testcases/kernel/syscalls/munlockall/munlockall02.c b/testcases/kernel/syscalls/munlockall/munlockall02.c
index 0f8827a..9e666c0 100644
--- a/testcases/kernel/syscalls/munlockall/munlockall02.c
+++ b/testcases/kernel/syscalls/munlockall/munlockall02.c
@@ -75,8 +75,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "munlockall02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "munlockall02";
+int TST_TOTAL = 1;
 static int exp_enos[] = { EPERM, 0 };
 
 static char nobody_uid[] = "nobody";
diff --git a/testcases/kernel/syscalls/munmap/munmap01.c b/testcases/kernel/syscalls/munmap/munmap01.c
index 2110684..2d9005c 100644
--- a/testcases/kernel/syscalls/munmap/munmap01.c
+++ b/testcases/kernel/syscalls/munmap/munmap01.c
@@ -79,8 +79,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "munmap01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "munmap01";
+int TST_TOTAL = 1;
 
 char *addr;			/* addr of memory mapped region */
 int fildes;			/* file descriptor for tempfile */
@@ -95,7 +95,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/munmap/munmap02.c b/testcases/kernel/syscalls/munmap/munmap02.c
index 5829913..b2dfd69 100644
--- a/testcases/kernel/syscalls/munmap/munmap02.c
+++ b/testcases/kernel/syscalls/munmap/munmap02.c
@@ -80,8 +80,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "munmap02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "munmap02";
+int TST_TOTAL = 1;
 
 size_t page_sz;			/* system page size */
 char *addr;			/* addr of memory mapped region */
@@ -99,7 +99,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/munmap/munmap03.c b/testcases/kernel/syscalls/munmap/munmap03.c
index 937da60..bead61a 100644
--- a/testcases/kernel/syscalls/munmap/munmap03.c
+++ b/testcases/kernel/syscalls/munmap/munmap03.c
@@ -77,8 +77,8 @@
 
 #define TEMPFILE	"mmapfile"
 
-char *TCID = "munmap03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "munmap03";
+int TST_TOTAL = 1;
 
 size_t page_sz;			/* system page size */
 char *addr;			/* addr of memory mapped region */
@@ -96,7 +96,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/nanosleep/nanosleep01.c b/testcases/kernel/syscalls/nanosleep/nanosleep01.c
index 6b616bd..be2af8e 100644
--- a/testcases/kernel/syscalls/nanosleep/nanosleep01.c
+++ b/testcases/kernel/syscalls/nanosleep/nanosleep01.c
@@ -74,8 +74,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "nanosleep01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "nanosleep01";
+int TST_TOTAL = 1;
 
 struct timespec timereq;	/* time struct. buffer for nanosleep() */
 
@@ -91,7 +91,6 @@
 	struct timeval ntime;	/* time after child resumes execution */
 	int retval = 0, e_code, status;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/nanosleep/nanosleep02.c b/testcases/kernel/syscalls/nanosleep/nanosleep02.c
index 65cc433..44bc672 100644
--- a/testcases/kernel/syscalls/nanosleep/nanosleep02.c
+++ b/testcases/kernel/syscalls/nanosleep/nanosleep02.c
@@ -80,8 +80,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "nanosleep02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "nanosleep02";
+int TST_TOTAL = 1;
 
 struct timespec timereq;	/* time struct. buffer for nanosleep() */
 struct timespec timerem;	/* time struct. buffer for nanosleep() */
@@ -110,7 +110,6 @@
 	pid_t cpid;		/* Child process id */
 	int status;		/* child exit status */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 #ifdef UCLINUX
diff --git a/testcases/kernel/syscalls/nanosleep/nanosleep03.c b/testcases/kernel/syscalls/nanosleep/nanosleep03.c
index 2928277..e13e9df 100644
--- a/testcases/kernel/syscalls/nanosleep/nanosleep03.c
+++ b/testcases/kernel/syscalls/nanosleep/nanosleep03.c
@@ -70,8 +70,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "nanosleep03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "nanosleep03";
+int TST_TOTAL = 1;
 
 struct timespec timereq;	/* time struct. buffer for nanosleep() */
 struct timespec timerem;	/* time struct. buffer for nanosleep() */
@@ -90,7 +90,6 @@
 	pid_t cpid;		/* Child process id */
 	int status;		/* child exit status */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 #ifdef UCLINUX
diff --git a/testcases/kernel/syscalls/nanosleep/nanosleep04.c b/testcases/kernel/syscalls/nanosleep/nanosleep04.c
index 62f695e..acf395b 100644
--- a/testcases/kernel/syscalls/nanosleep/nanosleep04.c
+++ b/testcases/kernel/syscalls/nanosleep/nanosleep04.c
@@ -70,8 +70,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "nanosleep04";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "nanosleep04";
+int TST_TOTAL = 1;
 
 struct timespec timereq;	/* time struct. buffer for nanosleep() */
 
@@ -87,7 +87,6 @@
 	pid_t cpid;		/* Child process id */
 	int status;		/* child exit status */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/newuname/newuname01.c b/testcases/kernel/syscalls/newuname/newuname01.c
index a36bc28..aa7a6ce 100644
--- a/testcases/kernel/syscalls/newuname/newuname01.c
+++ b/testcases/kernel/syscalls/newuname/newuname01.c
@@ -44,17 +44,13 @@
 #include <sys/stat.h>
 #include <stdlib.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "newuname01";	/* Test program identifier. */
+char *TCID = "newuname01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/nftw/nftw.c b/testcases/kernel/syscalls/nftw/nftw.c
index 9651905..a38db8d 100644
--- a/testcases/kernel/syscalls/nftw/nftw.c
+++ b/testcases/kernel/syscalls/nftw/nftw.c
@@ -43,8 +43,8 @@
 int block_number;
 
 FILE *temp;
-char *TCID = "nftw01";		/* Test program identifier.    */
-int TST_TOTAL = 10;		/* Total number of test cases. */
+char *TCID = "nftw01";
+int TST_TOTAL = 10;
 
 struct passwd *ltpuser;		/* password struct for ltpuser */
 /**************/
diff --git a/testcases/kernel/syscalls/nftw/nftw64.c b/testcases/kernel/syscalls/nftw/nftw64.c
index 0b3fe6c..ad7eafa 100644
--- a/testcases/kernel/syscalls/nftw/nftw64.c
+++ b/testcases/kernel/syscalls/nftw/nftw64.c
@@ -43,8 +43,8 @@
 int block_number;
 
 FILE *temp;
-char *TCID = "nftw6401";	/* Test program identifier.    */
-int TST_TOTAL = 10;		/* Total number of test cases. */
+char *TCID = "nftw6401";
+int TST_TOTAL = 10;
 
 struct passwd *ltpuser;		/* password struct for ltpuser */
 /**************/
diff --git a/testcases/kernel/syscalls/nice/nice01.c b/testcases/kernel/syscalls/nice/nice01.c
index 5f75698..2fdaf72 100644
--- a/testcases/kernel/syscalls/nice/nice01.c
+++ b/testcases/kernel/syscalls/nice/nice01.c
@@ -77,8 +77,8 @@
 #define	NICEINC		-12
 #define TEMPFILE	"temp_file"
 
-char *TCID = "nice01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "nice01";
+int TST_TOTAL = 1;
 
 int Org_nice;			/* original priority of the test process */
 FILE *fp;
@@ -93,7 +93,6 @@
 	int New_nice;		/* priority of process after nice() */
 	int rval;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/nice/nice02.c b/testcases/kernel/syscalls/nice/nice02.c
index 87cf073..7614ada 100644
--- a/testcases/kernel/syscalls/nice/nice02.c
+++ b/testcases/kernel/syscalls/nice/nice02.c
@@ -72,8 +72,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "nice02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "nice02";
+int TST_TOTAL = 1;
 
 #define	NICEINC		50
 
@@ -87,7 +87,6 @@
 	int New_nice;		/* priority of process after nice() */
 	int max_val;		/* Maximum nice value per OS. */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/nice/nice03.c b/testcases/kernel/syscalls/nice/nice03.c
index 4591781..cae875d 100644
--- a/testcases/kernel/syscalls/nice/nice03.c
+++ b/testcases/kernel/syscalls/nice/nice03.c
@@ -75,8 +75,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "nice03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "nice03";
+int TST_TOTAL = 1;
 
 #define	NICEINC		2
 int Org_nice;			/* original priority of the test process */
@@ -90,7 +90,6 @@
 	char *msg;
 	int New_nice;		/* priority of process after nice() */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/nice/nice04.c b/testcases/kernel/syscalls/nice/nice04.c
index 77d0590..a832d12 100644
--- a/testcases/kernel/syscalls/nice/nice04.c
+++ b/testcases/kernel/syscalls/nice/nice04.c
@@ -70,8 +70,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "nice04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "nice04";
+int TST_TOTAL = 1;
 
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
@@ -98,7 +98,6 @@
 	int incr_val;		/* nice value for the process */
 	char *test_desc;	/* test specific error message */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/nice/nice05.c b/testcases/kernel/syscalls/nice/nice05.c
index c951605..928248e 100644
--- a/testcases/kernel/syscalls/nice/nice05.c
+++ b/testcases/kernel/syscalls/nice/nice05.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "nice05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "nice05";
+int TST_TOTAL = 1;
 
 int val;
 
diff --git a/testcases/kernel/syscalls/openat/openat01.c b/testcases/kernel/syscalls/openat/openat01.c
index 1417393..2f68d2f 100644
--- a/testcases/kernel/syscalls/openat/openat01.c
+++ b/testcases/kernel/syscalls/openat/openat01.c
@@ -64,8 +64,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "openat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "openat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256];
 char testfile[256];
 char testfile2[256];
diff --git a/testcases/kernel/syscalls/pathconf/pathconf01.c b/testcases/kernel/syscalls/pathconf/pathconf01.c
index a675fe2..f4a6223 100644
--- a/testcases/kernel/syscalls/pathconf/pathconf01.c
+++ b/testcases/kernel/syscalls/pathconf/pathconf01.c
@@ -120,8 +120,8 @@
 void cleanup();
 void help();
 
-char *TCID = "pathconf01";	/* Test program identifier.    */
-int TST_TOTAL;			/* Total number of test cases. */
+char *TCID = "pathconf01";
+int TST_TOTAL;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/pause/pause01.c b/testcases/kernel/syscalls/pause/pause01.c
index 7753398..27232de 100644
--- a/testcases/kernel/syscalls/pause/pause01.c
+++ b/testcases/kernel/syscalls/pause/pause01.c
@@ -117,8 +117,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "pause01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "pause01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { EINTR, 0 };
 
diff --git a/testcases/kernel/syscalls/pause/pause03.c b/testcases/kernel/syscalls/pause/pause03.c
index fd650e1..b88e9db 100644
--- a/testcases/kernel/syscalls/pause/pause03.c
+++ b/testcases/kernel/syscalls/pause/pause03.c
@@ -73,8 +73,8 @@
 int cflag;			/* flag to indicate child process status */
 pid_t cpid;			/* child process id */
 
-char *TCID = "pause03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "pause03";
+int TST_TOTAL = 1;
 
 void do_child();		/* Function to run in child process */
 void setup();			/* Main setup function of test */
@@ -88,7 +88,6 @@
 	int status;		/* child process exit status */
 	int ret_val;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 #ifdef UCLINUX
diff --git a/testcases/kernel/syscalls/pipe2/pipe2_01.c b/testcases/kernel/syscalls/pipe2/pipe2_01.c
index a5fd112..991d929 100644
--- a/testcases/kernel/syscalls/pipe2/pipe2_01.c
+++ b/testcases/kernel/syscalls/pipe2/pipe2_01.c
@@ -67,7 +67,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -76,12 +75,9 @@
 #define O_CLOEXEC 02000000
 #endif
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "pipe2_01";	/* test program identifier.              */
+char *TCID = "pipe2_01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -141,7 +137,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/pipe2/pipe2_02.c b/testcases/kernel/syscalls/pipe2/pipe2_02.c
index b64f5e6..0a42fcf 100644
--- a/testcases/kernel/syscalls/pipe2/pipe2_02.c
+++ b/testcases/kernel/syscalls/pipe2/pipe2_02.c
@@ -58,7 +58,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -67,12 +66,9 @@
 #define O_CLOEXEC 02000000
 #endif
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "pipe2_02";	/* test program identifier.              */
+char *TCID = "pipe2_02";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -132,7 +128,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/poll/poll01.c b/testcases/kernel/syscalls/poll/poll01.c
index 5a3083a..47e9e31 100644
--- a/testcases/kernel/syscalls/poll/poll01.c
+++ b/testcases/kernel/syscalls/poll/poll01.c
@@ -73,8 +73,8 @@
 
 #define BUF_SIZE	512
 
-char *TCID = "poll01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "poll01";
+int TST_TOTAL = 1;
 
 int fildes[2];			/* file descriptors of the pipe. */
 struct pollfd fds[1];		/* struct. for poll() */
@@ -93,7 +93,6 @@
 	int status;		/* exit status of child process */
 	int rval;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/ppoll/ppoll01.c b/testcases/kernel/syscalls/ppoll/ppoll01.c
index 0bf50d7..94219f0 100644
--- a/testcases/kernel/syscalls/ppoll/ppoll01.c
+++ b/testcases/kernel/syscalls/ppoll/ppoll01.c
@@ -68,7 +68,6 @@
 #include "../utils/include_j_h.h"
 #include "../utils/common_j_h.c"
 
-/* Harness Specific Include Files. */
 #include "ltp_signal.h"
 #include "test.h"
 #include "usctest.h"
@@ -79,9 +78,9 @@
 #define POLLRDHUP 0x2000
 #endif
 
-char *TCID = "ppoll01";		/* Test program identifier. */
+char *TCID = "ppoll01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 void sighandler(int sig)
 {
diff --git a/testcases/kernel/syscalls/prctl/prctl01.c b/testcases/kernel/syscalls/prctl/prctl01.c
index d24e222..7f336cb 100644
--- a/testcases/kernel/syscalls/prctl/prctl01.c
+++ b/testcases/kernel/syscalls/prctl/prctl01.c
@@ -83,7 +83,7 @@
 static void setup(void);
 static void cleanup(void);
 
-char *TCID = "prctl01";		/* Test program identifier.    */
+char *TCID = "prctl01";
 
 int option[2] = { PR_GET_PDEATHSIG, PR_SET_PDEATHSIG };
 
diff --git a/testcases/kernel/syscalls/prctl/prctl02.c b/testcases/kernel/syscalls/prctl/prctl02.c
index 28ee575..fb0d35f 100644
--- a/testcases/kernel/syscalls/prctl/prctl02.c
+++ b/testcases/kernel/syscalls/prctl/prctl02.c
@@ -89,7 +89,7 @@
 static void setup(void);
 static void cleanup(void);
 
-char *TCID = "prctl02";		/* Test program identifier.    */
+char *TCID = "prctl02";
 static int exp_enos[] = { EINVAL, EINVAL, 0 };
 
 struct test_cases_t {
diff --git a/testcases/kernel/syscalls/pread/pread01.c b/testcases/kernel/syscalls/pread/pread01.c
index b7bb036..b82e4e4 100644
--- a/testcases/kernel/syscalls/pread/pread01.c
+++ b/testcases/kernel/syscalls/pread/pread01.c
@@ -85,8 +85,8 @@
 #define K4              (K1 * 4)
 #define NBUFS           4
 
-char *TCID = "pread01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "pread01";
+int TST_TOTAL = 1;
 
 int fildes;			/* file descriptor for tempfile */
 char *write_buf[NBUFS];		/* buffer to hold data to be written */
@@ -104,7 +104,6 @@
 	char *msg;
 	int nread;		/* no. of bytes read by pread() */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/pread/pread02.c b/testcases/kernel/syscalls/pread/pread02.c
index 3b6fdd0..9787877 100644
--- a/testcases/kernel/syscalls/pread/pread02.c
+++ b/testcases/kernel/syscalls/pread/pread02.c
@@ -78,8 +78,8 @@
 #define K1              1024
 #define NBUFS           4
 
-char *TCID = "pread02";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "pread02";
+int TST_TOTAL = 2;
 
 char *write_buf[NBUFS];		/* buffer to hold data to be written */
 char *read_buf[NBUFS];		/* buffer to hold data read from file */
@@ -119,7 +119,6 @@
 	off_t offset;		/* offset position in the specified file */
 	char *test_desc;	/* test specific error message */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/pread/pread03.c b/testcases/kernel/syscalls/pread/pread03.c
index 0a5ab0e..cc8ac5d 100644
--- a/testcases/kernel/syscalls/pread/pread03.c
+++ b/testcases/kernel/syscalls/pread/pread03.c
@@ -85,8 +85,8 @@
 #define K1              2048
 #define NBUFS           1
 
-char *TCID = "pread03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "pread03";
+int TST_TOTAL = 1;
 
 char *read_buf[NBUFS];		/* buffer to hold data read from file */
 char test_dir[100];
@@ -105,7 +105,6 @@
 	off_t offset;		/* offset position in the specified file */
 	char *test_desc;	/* test specific error message */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/pselect/pselect01.c b/testcases/kernel/syscalls/pselect/pselect01.c
index 66bec22..45c405f 100644
--- a/testcases/kernel/syscalls/pselect/pselect01.c
+++ b/testcases/kernel/syscalls/pselect/pselect01.c
@@ -52,8 +52,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "pselect01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "pselect01";
+int TST_TOTAL = 1;
 
 #define FILENAME "pselect01_test"
 #define LOOP_COUNT 4
diff --git a/testcases/kernel/syscalls/ptrace/ptrace01.c b/testcases/kernel/syscalls/ptrace/ptrace01.c
index 7c1facc..2961fd2 100644
--- a/testcases/kernel/syscalls/ptrace/ptrace01.c
+++ b/testcases/kernel/syscalls/ptrace/ptrace01.c
@@ -105,7 +105,7 @@
 
 static int got_signal = 0;
 
-char *TCID = "ptrace01";	/* Test program identifier.    */
+char *TCID = "ptrace01";
 static int i;			/* loop test case counter, shared with do_child */
 
 int TST_TOTAL = 2;
diff --git a/testcases/kernel/syscalls/ptrace/ptrace02.c b/testcases/kernel/syscalls/ptrace/ptrace02.c
index 7e5c598..3991ecf 100644
--- a/testcases/kernel/syscalls/ptrace/ptrace02.c
+++ b/testcases/kernel/syscalls/ptrace/ptrace02.c
@@ -105,7 +105,7 @@
 
 static int got_signal = 0;
 
-char *TCID = "ptrace02";	/* Test program identifier.    */
+char *TCID = "ptrace02";
 static int i;			/* loop test case counter, shared with do_child */
 
 int TST_TOTAL = 2;
diff --git a/testcases/kernel/syscalls/ptrace/ptrace03.c b/testcases/kernel/syscalls/ptrace/ptrace03.c
index c6d7c7c..c17850a 100644
--- a/testcases/kernel/syscalls/ptrace/ptrace03.c
+++ b/testcases/kernel/syscalls/ptrace/ptrace03.c
@@ -100,7 +100,7 @@
 
 static int exp_enos[] = { EPERM, ESRCH, 0 };
 
-char *TCID = "ptrace03";	/* Test program identifier.    */
+char *TCID = "ptrace03";
 
 struct test_case_t {
 	enum __ptrace_request request;
diff --git a/testcases/kernel/syscalls/pwrite/pwrite01.c b/testcases/kernel/syscalls/pwrite/pwrite01.c
index e4e7079..ecde602 100644
--- a/testcases/kernel/syscalls/pwrite/pwrite01.c
+++ b/testcases/kernel/syscalls/pwrite/pwrite01.c
@@ -88,8 +88,8 @@
 #define K4              (K1 * 4)
 #define NBUFS           4
 
-char *TCID = "pwrite01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "pwrite01";
+int TST_TOTAL = 1;
 int fildes;			/* file descriptor for tempfile */
 char *write_buf[NBUFS];		/* buffer to hold data to be written */
 
@@ -105,7 +105,6 @@
 	char *msg;
 	int nwrite;		/* no. of bytes written by pwrite() */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/pwrite/pwrite02.c b/testcases/kernel/syscalls/pwrite/pwrite02.c
index 11b7f3f..57dc7de 100644
--- a/testcases/kernel/syscalls/pwrite/pwrite02.c
+++ b/testcases/kernel/syscalls/pwrite/pwrite02.c
@@ -79,8 +79,8 @@
 #define K1              1024
 #define NBUFS           4
 
-char *TCID = "pwrite02";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "pwrite02";
+int TST_TOTAL = 2;
 
 char *write_buf[NBUFS];		/* buffer to hold data to be written */
 int pfd[2];			/* pair of file descriptors */
@@ -120,7 +120,6 @@
 	off_t offset;		/* offset position in the specified file */
 	char *test_desc;	/* test specific error message */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/pwrite/pwrite03.c b/testcases/kernel/syscalls/pwrite/pwrite03.c
index 726f589..fac8a9f 100644
--- a/testcases/kernel/syscalls/pwrite/pwrite03.c
+++ b/testcases/kernel/syscalls/pwrite/pwrite03.c
@@ -77,8 +77,8 @@
 #define TEMPFILE	"pwrite_file"
 #define NBUFS           1
 
-char *TCID = "pwrite03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "pwrite03";
+int TST_TOTAL = 1;
 
 char *write_buf[NBUFS];		/* buffer to hold data to be written */
 int fd1;			/* file descriptor of temporary file */
@@ -99,7 +99,6 @@
 	off_t offset;		/* offset position in the specified file */
 	char *test_desc;	/* test specific error message */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/quotactl/quotactl01.c b/testcases/kernel/syscalls/quotactl/quotactl01.c
index 6734903..b31b65f 100644
--- a/testcases/kernel/syscalls/quotactl/quotactl01.c
+++ b/testcases/kernel/syscalls/quotactl/quotactl01.c
@@ -60,17 +60,13 @@
 #define BROKEN_QUOTACTL 1
 #endif
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "quotactl01";	/* Test program identifier.             */
+char *TCID = "quotactl01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.  */
+int TST_TOTAL = 1;
 
 #define QUOTACTL(cmd, addr) \
 	ltp_syscall(__NR_quotactl, QCMD(cmd, USRQUOTA), block_dev, id, \
diff --git a/testcases/kernel/syscalls/read/read01.c b/testcases/kernel/syscalls/read/read01.c
index 7401e09..d6d7688 100644
--- a/testcases/kernel/syscalls/read/read01.c
+++ b/testcases/kernel/syscalls/read/read01.c
@@ -130,8 +130,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "read01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "read01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/readdir/readdir01.c b/testcases/kernel/syscalls/readdir/readdir01.c
index 4829f34..d01f107 100644
--- a/testcases/kernel/syscalls/readdir/readdir01.c
+++ b/testcases/kernel/syscalls/readdir/readdir01.c
@@ -130,8 +130,8 @@
 void help();
 void cleanup();
 
-char *TCID = "readdir01";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "readdir01";
+int TST_TOTAL = 2;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/readdir/readdir02.c b/testcases/kernel/syscalls/readdir/readdir02.c
index 175516e..85fe510 100644
--- a/testcases/kernel/syscalls/readdir/readdir02.c
+++ b/testcases/kernel/syscalls/readdir/readdir02.c
@@ -80,8 +80,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "readdir02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "readdir02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { EBADF, 0 };
 
diff --git a/testcases/kernel/syscalls/readlink/readlink01.c b/testcases/kernel/syscalls/readlink/readlink01.c
index 2fc9af2..1eb02df 100644
--- a/testcases/kernel/syscalls/readlink/readlink01.c
+++ b/testcases/kernel/syscalls/readlink/readlink01.c
@@ -79,13 +79,13 @@
 #define FILE_MODE       S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 #define MAX_SIZE	256
 
-char *TCID = "readlink01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "readlink01";
+int TST_TOTAL = 1;
 
 int exp_val;			/* strlen of testfile */
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
@@ -96,7 +96,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/readlink/readlink02.c b/testcases/kernel/syscalls/readlink/readlink02.c
index d108a9a..621f24f 100644
--- a/testcases/kernel/syscalls/readlink/readlink02.c
+++ b/testcases/kernel/syscalls/readlink/readlink02.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "readlink02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "readlink02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/readlink/readlink03.c b/testcases/kernel/syscalls/readlink/readlink03.c
index 3582104..8362844 100644
--- a/testcases/kernel/syscalls/readlink/readlink03.c
+++ b/testcases/kernel/syscalls/readlink/readlink03.c
@@ -95,8 +95,8 @@
 #define SYM_FILE2	"sfile_2"
 #define MAX_SIZE	256
 
-char *TCID = "readlink03";	/* Test program identifier.    */
-int TST_TOTAL = 5;		/* Total number of test cases. */
+char *TCID = "readlink03";
+int TST_TOTAL = 5;
 int exp_enos[] = { EACCES, EINVAL, ENAMETOOLONG, ENOENT, 0 };
 
 char nobody_uid[] = "nobody";
@@ -135,8 +135,8 @@
 	NULL, NULL, 0, 0, no_setup}
 };
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/readlinkat/readlinkat01.c b/testcases/kernel/syscalls/readlinkat/readlinkat01.c
index aa3d0ca..f58ab07 100644
--- a/testcases/kernel/syscalls/readlinkat/readlinkat01.c
+++ b/testcases/kernel/syscalls/readlinkat/readlinkat01.c
@@ -71,8 +71,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "readlinkat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "readlinkat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256];
 char dpathname[256];
 char testfile[256];
diff --git a/testcases/kernel/syscalls/reboot/reboot01.c b/testcases/kernel/syscalls/reboot/reboot01.c
index 2059630..e067d63 100644
--- a/testcases/kernel/syscalls/reboot/reboot01.c
+++ b/testcases/kernel/syscalls/reboot/reboot01.c
@@ -79,8 +79,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "reboot01";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "reboot01";
+int TST_TOTAL = 2;
 
 static int flag[2] = { LINUX_REBOOT_CMD_CAD_ON, LINUX_REBOOT_CMD_CAD_OFF };
 
diff --git a/testcases/kernel/syscalls/reboot/reboot02.c b/testcases/kernel/syscalls/reboot/reboot02.c
index 8e76579..b6d3dd5 100644
--- a/testcases/kernel/syscalls/reboot/reboot02.c
+++ b/testcases/kernel/syscalls/reboot/reboot02.c
@@ -86,8 +86,8 @@
 static void cleanup();
 static int setup_test();
 
-char *TCID = "reboot02";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "reboot02";
+int TST_TOTAL = 2;
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 static int exp_enos[] = { EINVAL, EPERM, 0 };
diff --git a/testcases/kernel/syscalls/recv/recv01.c b/testcases/kernel/syscalls/recv/recv01.c
index 746c508..4966587 100644
--- a/testcases/kernel/syscalls/recv/recv01.c
+++ b/testcases/kernel/syscalls/recv/recv01.c
@@ -55,7 +55,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "recv01";		/* Test program identifier.    */
+char *TCID = "recv01";
 int testno;
 
 char buf[1024];
@@ -99,7 +99,7 @@
 		    -1, EINVAL, setup1, cleanup1, "invalid flags set"}
 ,};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EBADF, ENOTSOCK, EFAULT, EINVAL, 0 };
 
@@ -112,7 +112,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(argc, argv, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 #ifdef UCLINUX
@@ -158,7 +157,7 @@
 
 void setup(void)
 {
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 
 	/* initialize sockaddr's */
 	sin1.sin_family = AF_INET;
diff --git a/testcases/kernel/syscalls/recvfrom/recvfrom01.c b/testcases/kernel/syscalls/recvfrom/recvfrom01.c
index 14b280a..171b3ab 100644
--- a/testcases/kernel/syscalls/recvfrom/recvfrom01.c
+++ b/testcases/kernel/syscalls/recvfrom/recvfrom01.c
@@ -55,7 +55,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "recvfrom01";	/* Test program identifier.    */
+char *TCID = "recvfrom01";
 int testno;
 
 char buf[1024];
@@ -119,7 +119,7 @@
 		    (struct sockaddr *)&from, &fromlen,
 		    -1, EINVAL, setup1, cleanup1, "invalid flags set"},};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EBADF, ENOTSOCK, EFAULT, EINVAL, 0 };
 
@@ -132,7 +132,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(argc, argv, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
@@ -180,7 +179,7 @@
 
 void setup(void)
 {
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 
 	/* initialize sockaddr's */
 	sin1.sin_family = AF_INET;
diff --git a/testcases/kernel/syscalls/recvmsg/recvmsg01.c b/testcases/kernel/syscalls/recvmsg/recvmsg01.c
index 48e258d..847c0d1 100644
--- a/testcases/kernel/syscalls/recvmsg/recvmsg01.c
+++ b/testcases/kernel/syscalls/recvmsg/recvmsg01.c
@@ -72,7 +72,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "recvmsg01";	/* Test program identifier.    */
+char *TCID = "recvmsg01";
 int testno;
 
 char buf[1024], cbuf[1024];
@@ -187,7 +187,7 @@
 		    0, 0, setup4, cleanup2, "large cmesg length"}
 ,};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int exp_enos[] = { EBADF, ENOTSOCK, EFAULT, EINVAL, 0 };
 
@@ -200,7 +200,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(argc, argv, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 #ifdef UCLINUX
@@ -259,7 +258,7 @@
 void setup(void)
 {
 	int tfd;
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 
 	/* initialize sockaddr's */
 	sin1.sin_family = AF_INET;
diff --git a/testcases/kernel/syscalls/remap_file_pages/remap_file_pages01.c b/testcases/kernel/syscalls/remap_file_pages/remap_file_pages01.c
index bf20768..616e603 100644
--- a/testcases/kernel/syscalls/remap_file_pages/remap_file_pages01.c
+++ b/testcases/kernel/syscalls/remap_file_pages/remap_file_pages01.c
@@ -103,8 +103,8 @@
 static void cleanup();
 static void test_nonlinear(int fd);
 
-char *TCID = "remap_file_pages01";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "remap_file_pages01";
+int TST_TOTAL = 2;
 
 static char *cache_contents;
 int fd1, fd2;			/* File descriptors used at the test */
diff --git a/testcases/kernel/syscalls/remap_file_pages/remap_file_pages02.c b/testcases/kernel/syscalls/remap_file_pages/remap_file_pages02.c
index b543957..adc09eb 100644
--- a/testcases/kernel/syscalls/remap_file_pages/remap_file_pages02.c
+++ b/testcases/kernel/syscalls/remap_file_pages/remap_file_pages02.c
@@ -97,8 +97,8 @@
 static int setup04(int test);
 static void cleanup();
 
-char *TCID = "remap_file_pages02";	/* Test program identifier.    */
-int TST_TOTAL = 4;		/* Total number of test cases. */
+char *TCID = "remap_file_pages02";
+int TST_TOTAL = 4;
 static int exp_enos[] = { EINVAL, 0 };
 
 static char *cache_contents;
diff --git a/testcases/kernel/syscalls/rename/rename01.c b/testcases/kernel/syscalls/rename/rename01.c
index 2945cac..7f3a814 100644
--- a/testcases/kernel/syscalls/rename/rename01.c
+++ b/testcases/kernel/syscalls/rename/rename01.c
@@ -78,8 +78,8 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename01";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "rename01";
+int TST_TOTAL = 2;
 
 char fname[255], mname[255];
 char fdir[255], mdir[255];
diff --git a/testcases/kernel/syscalls/rename/rename02.c b/testcases/kernel/syscalls/rename/rename02.c
index 4895be8..18a6ee4 100644
--- a/testcases/kernel/syscalls/rename/rename02.c
+++ b/testcases/kernel/syscalls/rename/rename02.c
@@ -121,8 +121,8 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rename02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/rename/rename03.c b/testcases/kernel/syscalls/rename/rename03.c
index e30de45..a4bafce 100644
--- a/testcases/kernel/syscalls/rename/rename03.c
+++ b/testcases/kernel/syscalls/rename/rename03.c
@@ -76,8 +76,8 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename03";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "rename03";
+int TST_TOTAL = 2;
 
 char fname[255], mname[255];
 char fdir[255], mdir[255];
diff --git a/testcases/kernel/syscalls/rename/rename04.c b/testcases/kernel/syscalls/rename/rename04.c
index 6c66c3c..56fd2dd 100644
--- a/testcases/kernel/syscalls/rename/rename04.c
+++ b/testcases/kernel/syscalls/rename/rename04.c
@@ -70,8 +70,8 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename04";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rename04";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { ENOTEMPTY, EEXIST, 0 };	/* List must end with 0 */
 
diff --git a/testcases/kernel/syscalls/rename/rename05.c b/testcases/kernel/syscalls/rename/rename05.c
index 5cfa174..d7cc923 100644
--- a/testcases/kernel/syscalls/rename/rename05.c
+++ b/testcases/kernel/syscalls/rename/rename05.c
@@ -68,8 +68,8 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename05";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rename05";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { EISDIR, 0 };	/* List must end with 0 */
 
diff --git a/testcases/kernel/syscalls/rename/rename06.c b/testcases/kernel/syscalls/rename/rename06.c
index 383abd4..b66f745 100644
--- a/testcases/kernel/syscalls/rename/rename06.c
+++ b/testcases/kernel/syscalls/rename/rename06.c
@@ -69,8 +69,8 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename06";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rename06";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { EINVAL, 0 };	/* List must end with 0 */
 
diff --git a/testcases/kernel/syscalls/rename/rename07.c b/testcases/kernel/syscalls/rename/rename07.c
index a4e4b26..cfddc81 100644
--- a/testcases/kernel/syscalls/rename/rename07.c
+++ b/testcases/kernel/syscalls/rename/rename07.c
@@ -51,8 +51,8 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename07";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rename07";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { ENOTDIR, 0 };	/* List must end with 0 */
 
diff --git a/testcases/kernel/syscalls/rename/rename08.c b/testcases/kernel/syscalls/rename/rename08.c
index bc24f84..7c31fa1 100644
--- a/testcases/kernel/syscalls/rename/rename08.c
+++ b/testcases/kernel/syscalls/rename/rename08.c
@@ -77,7 +77,7 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename08";	/* Test program identifier.    */
+char *TCID = "rename08";
 
 int exp_enos[] = { EFAULT, 0 };	/* List must end with 0 */
 
diff --git a/testcases/kernel/syscalls/rename/rename09.c b/testcases/kernel/syscalls/rename/rename09.c
index c75c662..6c80d56 100644
--- a/testcases/kernel/syscalls/rename/rename09.c
+++ b/testcases/kernel/syscalls/rename/rename09.c
@@ -91,8 +91,8 @@
 char user1name[] = "nobody";
 char user2name[] = "bin";
 
-char *TCID = "rename09";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rename09";
+int TST_TOTAL = 1;
 
 char fdir[255], mdir[255];
 char fname[255], mname[255];
diff --git a/testcases/kernel/syscalls/rename/rename10.c b/testcases/kernel/syscalls/rename/rename10.c
index 5a5ae81..99f1ad6 100644
--- a/testcases/kernel/syscalls/rename/rename10.c
+++ b/testcases/kernel/syscalls/rename/rename10.c
@@ -71,8 +71,8 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename10";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "rename10";
+int TST_TOTAL = 2;
 
 char badmname[] =
     "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyz";
diff --git a/testcases/kernel/syscalls/rename/rename12.c b/testcases/kernel/syscalls/rename/rename12.c
index 85d5555..3888be6 100644
--- a/testcases/kernel/syscalls/rename/rename12.c
+++ b/testcases/kernel/syscalls/rename/rename12.c
@@ -84,8 +84,8 @@
 char user1name[] = "nobody";
 char user2name[] = "bin";
 
-char *TCID = "rename12";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rename12";
+int TST_TOTAL = 1;
 
 int fd;
 char fdir[255];
diff --git a/testcases/kernel/syscalls/rename/rename13.c b/testcases/kernel/syscalls/rename/rename13.c
index 24ae2a6..2759f6a 100644
--- a/testcases/kernel/syscalls/rename/rename13.c
+++ b/testcases/kernel/syscalls/rename/rename13.c
@@ -71,8 +71,8 @@
 void cleanup();
 extern void do_file_setup(char *);
 
-char *TCID = "rename13";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rename13";
+int TST_TOTAL = 1;
 
 int fd;
 char fname[255], mname[255];
diff --git a/testcases/kernel/syscalls/rename/rename14.c b/testcases/kernel/syscalls/rename/rename14.c
index 2d3e5d5..e9a8062 100644
--- a/testcases/kernel/syscalls/rename/rename14.c
+++ b/testcases/kernel/syscalls/rename/rename14.c
@@ -52,8 +52,8 @@
 
 int local_flag = PASSED;
 
-char *TCID = "rename14";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rename14";
+int TST_TOTAL = 1;
 /**************/
 
 #define RUNTIME	45
@@ -76,7 +76,6 @@
 #ifdef UCLINUX
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(argc, argv, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/renameat/renameat01.c b/testcases/kernel/syscalls/renameat/renameat01.c
index 79c8c1e..7ce9416 100644
--- a/testcases/kernel/syscalls/renameat/renameat01.c
+++ b/testcases/kernel/syscalls/renameat/renameat01.c
@@ -69,8 +69,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "renameat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "renameat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256];
 char dpathname[256];
 char testfile[256];
diff --git a/testcases/kernel/syscalls/rmdir/rmdir01.c b/testcases/kernel/syscalls/rmdir/rmdir01.c
index 855008c..013b64c 100644
--- a/testcases/kernel/syscalls/rmdir/rmdir01.c
+++ b/testcases/kernel/syscalls/rmdir/rmdir01.c
@@ -70,8 +70,8 @@
 
 #define PERMS		0777
 
-char *TCID = "rmdir01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rmdir01";
+int TST_TOTAL = 1;
 
 char tstdir[100];
 
diff --git a/testcases/kernel/syscalls/rmdir/rmdir02.c b/testcases/kernel/syscalls/rmdir/rmdir02.c
index 59d0caf..0371dc8 100644
--- a/testcases/kernel/syscalls/rmdir/rmdir02.c
+++ b/testcases/kernel/syscalls/rmdir/rmdir02.c
@@ -93,7 +93,7 @@
 
 #define PERMS		0777
 
-char *TCID = "rmdir02";		/* Test program identifier.    */
+char *TCID = "rmdir02";
 
 int exp_enos[] = { ENOTEMPTY, EBUSY, ENAMETOOLONG, ENOENT, ENOTDIR, EFAULT, 0 };
 
diff --git a/testcases/kernel/syscalls/rmdir/rmdir03.c b/testcases/kernel/syscalls/rmdir/rmdir03.c
index d4af8db..529e0ca 100644
--- a/testcases/kernel/syscalls/rmdir/rmdir03.c
+++ b/testcases/kernel/syscalls/rmdir/rmdir03.c
@@ -84,8 +84,8 @@
 
 char user1name[] = "nobody";
 
-char *TCID = "rmdir03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rmdir03";
+int TST_TOTAL = 1;
 
 char tstdir1[255];
 char tstdir2[255];
diff --git a/testcases/kernel/syscalls/rmdir/rmdir04.c b/testcases/kernel/syscalls/rmdir/rmdir04.c
index 30d194e..8b18603 100644
--- a/testcases/kernel/syscalls/rmdir/rmdir04.c
+++ b/testcases/kernel/syscalls/rmdir/rmdir04.c
@@ -123,8 +123,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "rmdir04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "rmdir04";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/rmdir/rmdir05.c b/testcases/kernel/syscalls/rmdir/rmdir05.c
index 09b1c28..96da5ff 100644
--- a/testcases/kernel/syscalls/rmdir/rmdir05.c
+++ b/testcases/kernel/syscalls/rmdir/rmdir05.c
@@ -112,7 +112,7 @@
 int TST_TOTAL = 4;
 #endif
 
-char *TCID = "rmdir05";		/* Test program identifier.    */
+char *TCID = "rmdir05";
 struct stat stat_buf;		/* Stat buffer used for verification. */
 char dir_name[256];		/* Array to hold directory name. */
 
diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
index a724b0c..e1dde16 100644
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
@@ -50,19 +50,15 @@
 #include <sys/syscall.h>
 #include <string.h>
 
-/* Harness Specific Include Files. */
 #define LTP_RT_SIG_TEST
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 #include "ltp_signal.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "rt_sigaction01";	/* Test program identifier. */
+char *TCID = "rt_sigaction01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
index 3fa8eb6..5beabef 100644
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
@@ -46,7 +46,6 @@
 #include <sys/syscall.h>
 #include <string.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -72,12 +71,9 @@
 
 #define INVAL_STRUCT -1
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "rt_sigaction02";	/* Test program identifier. */
+char *TCID = "rt_sigaction02";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
index f866b00..646c37d 100644
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
@@ -46,19 +46,15 @@
 #include <sys/syscall.h>
 #include <string.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
 #define INVAL_SIGSETSIZE -1
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "rt_sigaction03";	/* Test program identifier. */
+char *TCID = "rt_sigaction03";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c
index 1c27841..45127b4 100644
--- a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c
+++ b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c
@@ -57,19 +57,15 @@
 #include <signal.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 #define LTP_RT_SIG_TEST
 #include "ltp_signal.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "rt_sigprocmask01";	/* Test program identifier. */
+char *TCID = "rt_sigprocmask01";
 int testno;
-int TST_TOTAL = 8;		/* total number of tests in this file.   */
+int TST_TOTAL = 8;
 
 #define TEST_SIG SIGRTMIN+1
 
diff --git a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask02.c b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask02.c
index f664427..2c3526c 100644
--- a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask02.c
+++ b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask02.c
@@ -70,17 +70,13 @@
 #include <signal.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 #include "ltp_signal.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "rt_sigprocmask02";	/* Test program identifier. */
-int TST_TOTAL = 2;		/* total number of tests in this file.   */
+char *TCID = "rt_sigprocmask02";
+int TST_TOTAL = 2;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/rt_sigqueueinfo/rt_sigqueueinfo01.c b/testcases/kernel/syscalls/rt_sigqueueinfo/rt_sigqueueinfo01.c
index 9ede6d0..8da3353 100644
--- a/testcases/kernel/syscalls/rt_sigqueueinfo/rt_sigqueueinfo01.c
+++ b/testcases/kernel/syscalls/rt_sigqueueinfo/rt_sigqueueinfo01.c
@@ -48,15 +48,13 @@
 #include <sys/syscall.h>
 #include <string.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Global Variables */
-char *TCID = "rt_sigqueueinfo01";	/* Test program identifier. */
+char *TCID = "rt_sigqueueinfo01";
 int testno;
-int TST_TOTAL = 2;		/* total number of tests in this file.   */
+int TST_TOTAL = 2;
 
 extern void cleanup()
 {
diff --git a/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c b/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c
index e4502aa..dcc6b71 100644
--- a/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c
+++ b/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c
@@ -42,19 +42,15 @@
 #include <signal.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 #define LTP_RT_SIG_TEST
 #include "ltp_signal.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "rt_sigsuspend01";	/* Test program identifier.              */
+char *TCID = "rt_sigsuspend01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.     */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/sbrk/sbrk01.c b/testcases/kernel/syscalls/sbrk/sbrk01.c
index 72ee467..ff50385 100644
--- a/testcases/kernel/syscalls/sbrk/sbrk01.c
+++ b/testcases/kernel/syscalls/sbrk/sbrk01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "sbrk01";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "sbrk01";
+int TST_TOTAL = 2;
 
 int Increment;			/* Amount to make change size by */
 
diff --git a/testcases/kernel/syscalls/sched_get_priority_max/sched_get_priority_max01.c b/testcases/kernel/syscalls/sched_get_priority_max/sched_get_priority_max01.c
index 3ecf250..28714d8 100644
--- a/testcases/kernel/syscalls/sched_get_priority_max/sched_get_priority_max01.c
+++ b/testcases/kernel/syscalls/sched_get_priority_max/sched_get_priority_max01.c
@@ -71,7 +71,7 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_get_priority_max01";	/* Test program identifier.    */
+char *TCID = "sched_get_priority_max01";
 
 static struct test_case_t {
 	char *desc;
diff --git a/testcases/kernel/syscalls/sched_get_priority_max/sched_get_priority_max02.c b/testcases/kernel/syscalls/sched_get_priority_max/sched_get_priority_max02.c
index f21af75..16385c8 100644
--- a/testcases/kernel/syscalls/sched_get_priority_max/sched_get_priority_max02.c
+++ b/testcases/kernel/syscalls/sched_get_priority_max/sched_get_priority_max02.c
@@ -74,7 +74,7 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_get_priority_max02";	/* Test program identifier.    */
+char *TCID = "sched_get_priority_max02";
 
 int TST_TOTAL = 1;
 
diff --git a/testcases/kernel/syscalls/sched_get_priority_min/sched_get_priority_min01.c b/testcases/kernel/syscalls/sched_get_priority_min/sched_get_priority_min01.c
index d4e9b9e..f2862eb 100644
--- a/testcases/kernel/syscalls/sched_get_priority_min/sched_get_priority_min01.c
+++ b/testcases/kernel/syscalls/sched_get_priority_min/sched_get_priority_min01.c
@@ -71,7 +71,7 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_get_priority_min01";	/* Test program identifier.    */
+char *TCID = "sched_get_priority_min01";
 
 static struct test_case_t {
 	char *desc;
diff --git a/testcases/kernel/syscalls/sched_get_priority_min/sched_get_priority_min02.c b/testcases/kernel/syscalls/sched_get_priority_min/sched_get_priority_min02.c
index f6b786b..40a7e51 100644
--- a/testcases/kernel/syscalls/sched_get_priority_min/sched_get_priority_min02.c
+++ b/testcases/kernel/syscalls/sched_get_priority_min/sched_get_priority_min02.c
@@ -74,7 +74,7 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_get_priority_min02";	/* Test program identifier.    */
+char *TCID = "sched_get_priority_min02";
 
 int TST_TOTAL = 1;
 
diff --git a/testcases/kernel/syscalls/sched_getparam/sched_getparam01.c b/testcases/kernel/syscalls/sched_getparam/sched_getparam01.c
index 18535ab..ca40e7a 100644
--- a/testcases/kernel/syscalls/sched_getparam/sched_getparam01.c
+++ b/testcases/kernel/syscalls/sched_getparam/sched_getparam01.c
@@ -70,8 +70,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_getparam01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sched_getparam01";
+int TST_TOTAL = 1;
 
 static struct sched_param param;
 
diff --git a/testcases/kernel/syscalls/sched_getparam/sched_getparam02.c b/testcases/kernel/syscalls/sched_getparam/sched_getparam02.c
index 8c354ab..ad7b962 100644
--- a/testcases/kernel/syscalls/sched_getparam/sched_getparam02.c
+++ b/testcases/kernel/syscalls/sched_getparam/sched_getparam02.c
@@ -80,8 +80,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_getparam02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sched_getparam02";
+int TST_TOTAL = 1;
 
 static struct sched_param param;
 
diff --git a/testcases/kernel/syscalls/sched_getparam/sched_getparam03.c b/testcases/kernel/syscalls/sched_getparam/sched_getparam03.c
index b666561..2a2a275 100644
--- a/testcases/kernel/syscalls/sched_getparam/sched_getparam03.c
+++ b/testcases/kernel/syscalls/sched_getparam/sched_getparam03.c
@@ -154,7 +154,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c
index 96bf462..1500837 100644
--- a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c
+++ b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c
@@ -72,8 +72,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_rr_get_interval01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sched_rr_get_interval01";
+int TST_TOTAL = 1;
 
 struct timespec tp;
 
diff --git a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval02.c b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval02.c
index be0ba8e..04e2709 100644
--- a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval02.c
+++ b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval02.c
@@ -73,8 +73,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_rr_get_interval02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sched_rr_get_interval02";
+int TST_TOTAL = 1;
 
 struct timespec tp;
 
diff --git a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval03.c b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval03.c
index a6a1fe4..b2e6503 100644
--- a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval03.c
+++ b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval03.c
@@ -80,7 +80,7 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_rr_get_interval03";	/* Test program identifier.    */
+char *TCID = "sched_rr_get_interval03";
 struct timespec tp;
 static int exp_enos[] = { EINVAL, ESRCH, EFAULT, 0 };
 
@@ -153,7 +153,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/sched_setparam/sched_setparam01.c b/testcases/kernel/syscalls/sched_setparam/sched_setparam01.c
index 4b390e0..1aaa000 100644
--- a/testcases/kernel/syscalls/sched_setparam/sched_setparam01.c
+++ b/testcases/kernel/syscalls/sched_setparam/sched_setparam01.c
@@ -70,8 +70,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_setparam01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sched_setparam01";
+int TST_TOTAL = 1;
 
 static struct sched_param param;
 
diff --git a/testcases/kernel/syscalls/sched_setparam/sched_setparam02.c b/testcases/kernel/syscalls/sched_setparam/sched_setparam02.c
index 4d3ea0f..41f3964 100644
--- a/testcases/kernel/syscalls/sched_setparam/sched_setparam02.c
+++ b/testcases/kernel/syscalls/sched_setparam/sched_setparam02.c
@@ -75,7 +75,7 @@
 static void cleanup();
 static int verify_priority(int);
 
-char *TCID = "sched_setparam02";	/* Test program identifier.    */
+char *TCID = "sched_setparam02";
 
 static struct sched_param param;
 static struct sched_param param1 = { 1 };
diff --git a/testcases/kernel/syscalls/sched_setparam/sched_setparam03.c b/testcases/kernel/syscalls/sched_setparam/sched_setparam03.c
index 22a67c6..4beda36 100644
--- a/testcases/kernel/syscalls/sched_setparam/sched_setparam03.c
+++ b/testcases/kernel/syscalls/sched_setparam/sched_setparam03.c
@@ -81,8 +81,8 @@
 static void cleanup();
 static int verify_priority();
 
-char *TCID = "sched_setparam03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sched_setparam03";
+int TST_TOTAL = 1;
 
 static struct sched_param param = { NEW_PRIORITY };
 
diff --git a/testcases/kernel/syscalls/sched_setparam/sched_setparam04.c b/testcases/kernel/syscalls/sched_setparam/sched_setparam04.c
index b49dc3c..61a72e6 100644
--- a/testcases/kernel/syscalls/sched_setparam/sched_setparam04.c
+++ b/testcases/kernel/syscalls/sched_setparam/sched_setparam04.c
@@ -160,7 +160,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/sched_setparam/sched_setparam05.c b/testcases/kernel/syscalls/sched_setparam/sched_setparam05.c
index 3f19fba..197e59b 100644
--- a/testcases/kernel/syscalls/sched_setparam/sched_setparam05.c
+++ b/testcases/kernel/syscalls/sched_setparam/sched_setparam05.c
@@ -81,8 +81,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sched_setparam05";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sched_setparam05";
+int TST_TOTAL = 1;
 
 static struct sched_param param = { 0 };
 static int exp_enos[] = { EPERM, 0 };
diff --git a/testcases/kernel/syscalls/select/select01.c b/testcases/kernel/syscalls/select/select01.c
index 1d8598c..fa14faa 100644
--- a/testcases/kernel/syscalls/select/select01.c
+++ b/testcases/kernel/syscalls/select/select01.c
@@ -126,8 +126,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "select01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "select01";
+int TST_TOTAL = 1;
 
 int Fd = -1;
 fd_set Readfds;
diff --git a/testcases/kernel/syscalls/select/select02.c b/testcases/kernel/syscalls/select/select02.c
index 41fed38..9953a6b 100644
--- a/testcases/kernel/syscalls/select/select02.c
+++ b/testcases/kernel/syscalls/select/select02.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "select02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "select02";
+int TST_TOTAL = 1;
 
 int Fd[2];
 fd_set saved_Readfds, saved_Writefds;
diff --git a/testcases/kernel/syscalls/select/select03.c b/testcases/kernel/syscalls/select/select03.c
index bb725ab..5232802 100644
--- a/testcases/kernel/syscalls/select/select03.c
+++ b/testcases/kernel/syscalls/select/select03.c
@@ -124,8 +124,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "select03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "select03";
+int TST_TOTAL = 1;
 
 int Fd;
 fd_set saved_Readfds, saved_Writefds;
diff --git a/testcases/kernel/syscalls/set_robust_list/set_robust_list01.c b/testcases/kernel/syscalls/set_robust_list/set_robust_list01.c
index 927cc8d..1ba4a0f 100644
--- a/testcases/kernel/syscalls/set_robust_list/set_robust_list01.c
+++ b/testcases/kernel/syscalls/set_robust_list/set_robust_list01.c
@@ -68,8 +68,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "set_robust_list01";	/* test program identifier.              */
-int TST_TOTAL = 2;		/* total number of tests in this file.   */
+char *TCID = "set_robust_list01";
+int TST_TOTAL = 2;
 
 int exp_enos[] = { EINVAL, 0 };
 
diff --git a/testcases/kernel/syscalls/set_tid_address/set_tid_address01.c b/testcases/kernel/syscalls/set_tid_address/set_tid_address01.c
index f9fa0e0..ee3767c 100644
--- a/testcases/kernel/syscalls/set_tid_address/set_tid_address01.c
+++ b/testcases/kernel/syscalls/set_tid_address/set_tid_address01.c
@@ -41,17 +41,13 @@
 #include <stdio.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "set_tid_address01";	/* Test program identifier. */
+char *TCID = "set_tid_address01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/setdomainname/setdomainname01.c b/testcases/kernel/syscalls/setdomainname/setdomainname01.c
index 3cc75f1..269c0d2 100644
--- a/testcases/kernel/syscalls/setdomainname/setdomainname01.c
+++ b/testcases/kernel/syscalls/setdomainname/setdomainname01.c
@@ -75,8 +75,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "setdomainname01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "setdomainname01";
+int TST_TOTAL = 1;
 
 static char *test_domain_name = "test_dom";
 static char old_domain_name[MAX_NAME_LEN];
diff --git a/testcases/kernel/syscalls/setdomainname/setdomainname02.c b/testcases/kernel/syscalls/setdomainname/setdomainname02.c
index f2e11fa..5c0c227 100644
--- a/testcases/kernel/syscalls/setdomainname/setdomainname02.c
+++ b/testcases/kernel/syscalls/setdomainname/setdomainname02.c
@@ -163,7 +163,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Check whether we are root */
diff --git a/testcases/kernel/syscalls/setdomainname/setdomainname03.c b/testcases/kernel/syscalls/setdomainname/setdomainname03.c
index 377d219..4832093 100644
--- a/testcases/kernel/syscalls/setdomainname/setdomainname03.c
+++ b/testcases/kernel/syscalls/setdomainname/setdomainname03.c
@@ -81,8 +81,8 @@
 
 #define MAX_NAME_LEN __NEW_UTS_LEN
 
-char *TCID = "setdomainname03";	/* Test program identifier. */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "setdomainname03";
+int TST_TOTAL = 1;
 static int exp_enos[] = { EPERM, 0 };
 
 static char nobody_uid[] = "nobody";
@@ -99,7 +99,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/setgid/setgid01.c b/testcases/kernel/syscalls/setgid/setgid01.c
index 1510035..9121e47 100644
--- a/testcases/kernel/syscalls/setgid/setgid01.c
+++ b/testcases/kernel/syscalls/setgid/setgid01.c
@@ -120,8 +120,8 @@
 
 #include "compat_16.h"
 
-TCID_DEFINE(setgid01);		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+TCID_DEFINE(setgid01);
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/setgroups/setgroups01.c b/testcases/kernel/syscalls/setgroups/setgroups01.c
index 6251d7e..9d70612 100644
--- a/testcases/kernel/syscalls/setgroups/setgroups01.c
+++ b/testcases/kernel/syscalls/setgroups/setgroups01.c
@@ -124,8 +124,8 @@
 void setup();
 void cleanup();
 
-TCID_DEFINE(setgroups01);	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+TCID_DEFINE(setgroups01);
+int TST_TOTAL = 1;
 
 int len = NGROUPS, ngrps = 0;
 GID_T list[NGROUPS];
diff --git a/testcases/kernel/syscalls/setgroups/setgroups02.c b/testcases/kernel/syscalls/setgroups/setgroups02.c
index b9b407c..6829f24 100644
--- a/testcases/kernel/syscalls/setgroups/setgroups02.c
+++ b/testcases/kernel/syscalls/setgroups/setgroups02.c
@@ -77,7 +77,7 @@
 
 #define TESTUSER	"nobody"
 
-TCID_DEFINE(setgroups02);	/* Test program identifier.    */
+TCID_DEFINE(setgroups02);
 int TST_TOTAL = 1;		/* Total number of test conditions */
 GID_T groups_list[NGROUPS];	/* Array to hold gids for getgroups() */
 
@@ -92,7 +92,6 @@
 	int gidsetsize = 1;	/* only one GID, the GID of TESTUSER */
 	int PASS_FLAG = 0;	/* used for checking group array */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/setgroups/setgroups03.c b/testcases/kernel/syscalls/setgroups/setgroups03.c
index bf19e57..8245c2a 100644
--- a/testcases/kernel/syscalls/setgroups/setgroups03.c
+++ b/testcases/kernel/syscalls/setgroups/setgroups03.c
@@ -82,7 +82,7 @@
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-TCID_DEFINE(setgroups03);	/* Test program identifier.    */
+TCID_DEFINE(setgroups03);
 int TST_TOTAL = 2;		/* Total number of test conditions */
 
 int exp_enos[] = { EINVAL, EPERM, 0 };
@@ -114,7 +114,6 @@
 	char *test_desc;	/* test specific error message */
 	int ngroups_max = sysconf(_SC_NGROUPS_MAX);	/* max no. of groups in the current system */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/setgroups/setgroups04.c b/testcases/kernel/syscalls/setgroups/setgroups04.c
index 0a2d1f7..5932b4e 100644
--- a/testcases/kernel/syscalls/setgroups/setgroups04.c
+++ b/testcases/kernel/syscalls/setgroups/setgroups04.c
@@ -72,7 +72,7 @@
 
 #include "compat_16.h"
 
-TCID_DEFINE(setgroups04);	/* Test program identifier.    */
+TCID_DEFINE(setgroups04);
 int TST_TOTAL = 1;
 
 GID_T groups_list[NGROUPS];	/* Array to hold gids for getgroups() */
@@ -90,7 +90,6 @@
 	int gidsetsize;		/* total no. of groups */
 	char *test_desc;	/* test specific error message */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/sethostname/sethostname02.c b/testcases/kernel/syscalls/sethostname/sethostname02.c
index e5ad58b..9e41520 100644
--- a/testcases/kernel/syscalls/sethostname/sethostname02.c
+++ b/testcases/kernel/syscalls/sethostname/sethostname02.c
@@ -123,7 +123,6 @@
 	int lc;
 	char *msg;		/* parse_opts() return message */
 
-	/* Parse standard options */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 		tst_exit();
@@ -168,7 +167,6 @@
 {
 	int ret;
 
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* capture the signals */
diff --git a/testcases/kernel/syscalls/setitimer/setitimer02.c b/testcases/kernel/syscalls/setitimer/setitimer02.c
index 5df95ec..72f5349 100644
--- a/testcases/kernel/syscalls/setitimer/setitimer02.c
+++ b/testcases/kernel/syscalls/setitimer/setitimer02.c
@@ -158,7 +158,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/setitimer/setitimer03.c b/testcases/kernel/syscalls/setitimer/setitimer03.c
index cbdf468..078326a 100644
--- a/testcases/kernel/syscalls/setitimer/setitimer03.c
+++ b/testcases/kernel/syscalls/setitimer/setitimer03.c
@@ -157,7 +157,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/setpgid/setpgid01.c b/testcases/kernel/syscalls/setpgid/setpgid01.c
index c13ea3e..e41ed0b 100644
--- a/testcases/kernel/syscalls/setpgid/setpgid01.c
+++ b/testcases/kernel/syscalls/setpgid/setpgid01.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "setpgid01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "setpgid01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/setpgrp/setpgrp01.c b/testcases/kernel/syscalls/setpgrp/setpgrp01.c
index 44acb89..e2f27d2 100644
--- a/testcases/kernel/syscalls/setpgrp/setpgrp01.c
+++ b/testcases/kernel/syscalls/setpgrp/setpgrp01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "setpgrp01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "setpgrp01";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/setpriority/setpriority02.c b/testcases/kernel/syscalls/setpriority/setpriority02.c
index e83780a..630b699 100644
--- a/testcases/kernel/syscalls/setpriority/setpriority02.c
+++ b/testcases/kernel/syscalls/setpriority/setpriority02.c
@@ -139,7 +139,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/setpriority/setpriority03.c b/testcases/kernel/syscalls/setpriority/setpriority03.c
index c9a01f2..e2bc169 100644
--- a/testcases/kernel/syscalls/setpriority/setpriority03.c
+++ b/testcases/kernel/syscalls/setpriority/setpriority03.c
@@ -128,7 +128,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/setpriority/setpriority04.c b/testcases/kernel/syscalls/setpriority/setpriority04.c
index 8368514..94eb9c7 100644
--- a/testcases/kernel/syscalls/setpriority/setpriority04.c
+++ b/testcases/kernel/syscalls/setpriority/setpriority04.c
@@ -146,7 +146,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for the -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/setpriority/setpriority05.c b/testcases/kernel/syscalls/setpriority/setpriority05.c
index 6361a3a..80baa8d 100644
--- a/testcases/kernel/syscalls/setpriority/setpriority05.c
+++ b/testcases/kernel/syscalls/setpriority/setpriority05.c
@@ -139,7 +139,6 @@
 
 	tst_sig(NOFORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/setregid/setregid01.c b/testcases/kernel/syscalls/setregid/setregid01.c
index 59ca150..a24177d 100644
--- a/testcases/kernel/syscalls/setregid/setregid01.c
+++ b/testcases/kernel/syscalls/setregid/setregid01.c
@@ -121,10 +121,10 @@
 void setup();
 void cleanup();
 
-char *TCID = "setregid01";	/* Test program identifier.    */
-int TST_TOTAL = 5;		/* Total number of test cases. */
+char *TCID = "setregid01";
+int TST_TOTAL = 5;
 
-int exp_enos[] = { 0, 0 };	/* Zero terminated list of expected errnos */
+int exp_enos[] = { 0, 0 };
 
 int gid, egid;			/* current real and effective group id */
 
diff --git a/testcases/kernel/syscalls/setregid/setregid02.c b/testcases/kernel/syscalls/setregid/setregid02.c
index 5e09758..349a494 100644
--- a/testcases/kernel/syscalls/setregid/setregid02.c
+++ b/testcases/kernel/syscalls/setregid/setregid02.c
@@ -117,8 +117,8 @@
 
 int TST_TOTAL = sizeof(test_data) / sizeof(test_data[0]);
 
-void setup(void);		/* Setup function for the test */
-void cleanup(void);		/* Cleanup function for the test */
+void setup(void);
+void cleanup(void);
 void gid_verify(struct group *ru, struct group *eu, char *when);
 
 int main(int ac, char **av)
diff --git a/testcases/kernel/syscalls/setregid/setregid03.c b/testcases/kernel/syscalls/setregid/setregid03.c
index 6c49335..b9a5311 100644
--- a/testcases/kernel/syscalls/setregid/setregid03.c
+++ b/testcases/kernel/syscalls/setregid/setregid03.c
@@ -123,8 +123,8 @@
 
 int TST_TOTAL = sizeof(test_data) / sizeof(test_data[0]);
 
-void setup(void);		/* Setup function for the test */
-void cleanup(void);		/* Cleanup function for the test */
+void setup(void);
+void cleanup(void);
 void gid_verify(struct group *ru, struct group *eu, char *when);
 
 int main(int ac, char **av)
diff --git a/testcases/kernel/syscalls/setregid/setregid04.c b/testcases/kernel/syscalls/setregid/setregid04.c
index 1de990b..ee1348c 100644
--- a/testcases/kernel/syscalls/setregid/setregid04.c
+++ b/testcases/kernel/syscalls/setregid/setregid04.c
@@ -112,8 +112,8 @@
 
 int TST_TOTAL = sizeof(test_data) / sizeof(test_data[0]);
 
-void setup(void);		/* Setup function for the test */
-void cleanup(void);		/* Cleanup function for the test */
+void setup(void);
+void cleanup(void);
 void gid_verify(struct group *ru, struct group *eu, const char *when);
 
 int main(int ac, char **av)
diff --git a/testcases/kernel/syscalls/setresuid/setresuid01.c b/testcases/kernel/syscalls/setresuid/setresuid01.c
index 7bfd402..1f19f39 100644
--- a/testcases/kernel/syscalls/setresuid/setresuid01.c
+++ b/testcases/kernel/syscalls/setresuid/setresuid01.c
@@ -112,11 +112,10 @@
 &root_pw_uid, &neg_one, &root_pw_uid, &root, &root, &root,
 		    "After setresuid(root, -1, -1),"},};
 
-/* Total number of test cases. */
 int TST_TOTAL = sizeof(test_data) / sizeof(test_data[0]);
 
-void setup(void);		/* Setup function for the test */
-void cleanup(void);		/* Cleanup function for the test */
+void setup(void);
+void cleanup(void);
 
 void
 uid_verify(struct passwd *ru, struct passwd *eu, struct passwd *su, char *when);
diff --git a/testcases/kernel/syscalls/setreuid/setreuid01.c b/testcases/kernel/syscalls/setreuid/setreuid01.c
index 43767dc..1f54337 100644
--- a/testcases/kernel/syscalls/setreuid/setreuid01.c
+++ b/testcases/kernel/syscalls/setreuid/setreuid01.c
@@ -121,10 +121,10 @@
 void setup();
 void cleanup();
 
-char *TCID = "setreuid01";	/* Test program identifier.    */
-int TST_TOTAL = 5;		/* Total number of test cases. */
+char *TCID = "setreuid01";
+int TST_TOTAL = 5;
 
-int exp_enos[] = { 0, 0 };	/* Zero terminated list of expected errnos */
+int exp_enos[] = { 0, 0 };
 
 int ruid, euid;			/* real and effective user ids */
 
diff --git a/testcases/kernel/syscalls/setreuid/setreuid02.c b/testcases/kernel/syscalls/setreuid/setreuid02.c
index cc16cc2..5fdd918 100644
--- a/testcases/kernel/syscalls/setreuid/setreuid02.c
+++ b/testcases/kernel/syscalls/setreuid/setreuid02.c
@@ -101,8 +101,8 @@
 
 int TST_TOTAL = sizeof(test_data) / sizeof(test_data[0]);
 
-void setup(void);		/* Setup function for the test */
-void cleanup(void);		/* Cleanup function for the test */
+void setup(void);
+void cleanup(void);
 void uid_verify(struct passwd *ru, struct passwd *eu, char *when);
 
 int main(int ac, char **av)
diff --git a/testcases/kernel/syscalls/setsockopt/setsockopt01.c b/testcases/kernel/syscalls/setsockopt/setsockopt01.c
index 3593d48..a792c6f 100644
--- a/testcases/kernel/syscalls/setsockopt/setsockopt01.c
+++ b/testcases/kernel/syscalls/setsockopt/setsockopt01.c
@@ -56,7 +56,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "setsockopt01";	/* Test program identifier.    */
+char *TCID = "setsockopt01";
 int testno;
 int exp_enos[] = { EBADF, ENOTSOCK, EFAULT, EINVAL, ENOPROTOOPT, 0 };
 
@@ -128,14 +128,13 @@
 		    "invalid option name (TCP)"}
 ,};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int main(int argc, char *argv[])
 {
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -184,7 +183,7 @@
 	/* set the expected errnos... */
 	TEST_EXP_ENOS(exp_enos);
 
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 
 	/* initialize local sockaddr */
 	sin0.sin_family = AF_INET;
diff --git a/testcases/kernel/syscalls/setuid/setuid01.c b/testcases/kernel/syscalls/setuid/setuid01.c
index 6e01a35..c51e72b 100644
--- a/testcases/kernel/syscalls/setuid/setuid01.c
+++ b/testcases/kernel/syscalls/setuid/setuid01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "setuid01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "setuid01";
+int TST_TOTAL = 1;
 
 int uid;			/* current user id */
 
diff --git a/testcases/kernel/syscalls/setuid/setuid02.c b/testcases/kernel/syscalls/setuid/setuid02.c
index 4c4aa14..08a7c91 100644
--- a/testcases/kernel/syscalls/setuid/setuid02.c
+++ b/testcases/kernel/syscalls/setuid/setuid02.c
@@ -121,10 +121,10 @@
 void setup();
 void cleanup();
 
-char *TCID = "setuid02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "setuid02";
+int TST_TOTAL = 1;
 
-int exp_enos[] = { 0, 0 };	/* Zero terminated list of expected errnos */
+int exp_enos[] = { 0, 0 };
 
 int uid;			/* current user id */
 
diff --git a/testcases/kernel/syscalls/sgetmask/sgetmask01.c b/testcases/kernel/syscalls/sgetmask/sgetmask01.c
index 9fa1e2c..120bb96 100644
--- a/testcases/kernel/syscalls/sgetmask/sgetmask01.c
+++ b/testcases/kernel/syscalls/sgetmask/sgetmask01.c
@@ -52,17 +52,13 @@
 #include <stdio.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "sgetmask01";	/* Test program identifier. */
+char *TCID = "sgetmask01";
 int testno;
-int TST_TOTAL = 2;		/* total number of tests in this file.   */
+int TST_TOTAL = 2;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/sigaltstack/sigaltstack01.c b/testcases/kernel/syscalls/sigaltstack/sigaltstack01.c
index edeb57d..41c94c5 100644
--- a/testcases/kernel/syscalls/sigaltstack/sigaltstack01.c
+++ b/testcases/kernel/syscalls/sigaltstack/sigaltstack01.c
@@ -78,8 +78,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "sigaltstack01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sigaltstack01";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 void *addr, *main_stk;		/* address of main stack for signal */
@@ -99,7 +99,6 @@
 	char *msg;
 	void *alt_stk;		/* address of alternate stack for signal */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/sigaltstack/sigaltstack02.c b/testcases/kernel/syscalls/sigaltstack/sigaltstack02.c
index 787da31..d83aa1f 100644
--- a/testcases/kernel/syscalls/sigaltstack/sigaltstack02.c
+++ b/testcases/kernel/syscalls/sigaltstack/sigaltstack02.c
@@ -82,8 +82,8 @@
 
 #define INVAL_FLAGS	9999
 
-char *TCID = "sigaltstack02";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "sigaltstack02";
+int TST_TOTAL = 2;
 int exp_enos[] = { EINVAL, ENOMEM, 0 };
 
 stack_t sigstk;			/* signal stack storing struct. */
@@ -117,7 +117,6 @@
 	char *test_desc;	/* test specific error message */
 	int ind;		/* counter to test different test conditions */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/sighold/sighold02.c b/testcases/kernel/syscalls/sighold/sighold02.c
index b8ba436..268904b 100644
--- a/testcases/kernel/syscalls/sighold/sighold02.c
+++ b/testcases/kernel/syscalls/sighold/sighold02.c
@@ -119,8 +119,8 @@
 
 #define TIMEOUT 2		/* time used in the alarm calls as backup */
 
-char *TCID = "sighold02";	/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "sighold02";
+int TST_TOTAL = 2;
 
 char signals_received[MAXMESG];
 int pid;			/* process id of child */
diff --git a/testcases/kernel/syscalls/signalfd4/signalfd4_01.c b/testcases/kernel/syscalls/signalfd4/signalfd4_01.c
index 0e37c55..2021c3b 100644
--- a/testcases/kernel/syscalls/signalfd4/signalfd4_01.c
+++ b/testcases/kernel/syscalls/signalfd4/signalfd4_01.c
@@ -61,7 +61,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -73,12 +72,9 @@
 
 #define SFD_CLOEXEC O_CLOEXEC
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "signalfd4_01";	/* test program identifier.              */
+char *TCID = "signalfd4_01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -139,7 +135,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/signalfd4/signalfd4_02.c b/testcases/kernel/syscalls/signalfd4/signalfd4_02.c
index 8df55ba..67709b8 100644
--- a/testcases/kernel/syscalls/signalfd4/signalfd4_02.c
+++ b/testcases/kernel/syscalls/signalfd4/signalfd4_02.c
@@ -57,7 +57,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -65,12 +64,9 @@
 
 #define SFD_NONBLOCK O_NONBLOCK
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "signalfd4_02";	/* test program identifier.              */
+char *TCID = "signalfd4_02";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -131,7 +127,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/sigpending/sigpending02.c b/testcases/kernel/syscalls/sigpending/sigpending02.c
index 96e8ff2..8f4c00e 100644
--- a/testcases/kernel/syscalls/sigpending/sigpending02.c
+++ b/testcases/kernel/syscalls/sigpending/sigpending02.c
@@ -59,8 +59,8 @@
 void help();
 void cleanup();
 
-char *TCID = "sigpending02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sigpending02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { EFAULT, 0 };
 
diff --git a/testcases/kernel/syscalls/sigprocmask/sigprocmask01.c b/testcases/kernel/syscalls/sigprocmask/sigprocmask01.c
index 4ab59ec..d56d8aa 100644
--- a/testcases/kernel/syscalls/sigprocmask/sigprocmask01.c
+++ b/testcases/kernel/syscalls/sigprocmask/sigprocmask01.c
@@ -86,8 +86,8 @@
 void cleanup();			/* cleanup function for the test */
 void sig_handler(int sig);	/* signal catching function */
 
-char *TCID = "sigprocmask01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sigprocmask01";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 int sig_catch = 0;		/* variable to blocked/unblocked signals */
@@ -102,7 +102,6 @@
 	char *msg;
 	pid_t my_pid;		/* test process id */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/sigsuspend/sigsuspend01.c b/testcases/kernel/syscalls/sigsuspend/sigsuspend01.c
index c92db9c..6ed0669 100644
--- a/testcases/kernel/syscalls/sigsuspend/sigsuspend01.c
+++ b/testcases/kernel/syscalls/sigsuspend/sigsuspend01.c
@@ -80,8 +80,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "sigsuspend01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sigsuspend01";
+int TST_TOTAL = 1;
 int exp_enos[] = { EINTR, 0 };
 
 struct sigaction sa_new;	/* struct to hold signal info */
@@ -98,7 +98,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/socket/socket01.c b/testcases/kernel/syscalls/socket/socket01.c
index f42c84a..a0d287f 100644
--- a/testcases/kernel/syscalls/socket/socket01.c
+++ b/testcases/kernel/syscalls/socket/socket01.c
@@ -54,7 +54,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "socket01";	/* Test program identifier.    */
+char *TCID = "socket01";
 int testno;
 int exp_enos[] = { EINVAL, EPERM, EPROTONOSUPPORT, 0 };
 
@@ -80,7 +80,7 @@
 	PF_INET, SOCK_STREAM, 6, 0, 0, "TCP socket"}, {
 PF_INET, SOCK_STREAM, 1, -1, ESOCKTNOSUPPORT, "ICMP stream"},};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int main(int argc, char *argv[])
 {
@@ -88,7 +88,6 @@
 	char *msg;
 	int s;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -130,7 +129,7 @@
 	/* set the expected errnos... */
 	TEST_EXP_ENOS(exp_enos);
 
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 }
 
 void cleanup(void)
diff --git a/testcases/kernel/syscalls/socket/socket02.c b/testcases/kernel/syscalls/socket/socket02.c
index ed7a518..2f2f250 100644
--- a/testcases/kernel/syscalls/socket/socket02.c
+++ b/testcases/kernel/syscalls/socket/socket02.c
@@ -62,7 +62,6 @@
 #include <netinet/in.h>
 #include <sys/socket.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 
@@ -77,12 +76,9 @@
 #define SOCK_CLOEXEC O_CLOEXEC
 #endif
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "socket02";	/* test program identifier.              */
+char *TCID = "socket02";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -142,7 +138,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/socket/socket03.c b/testcases/kernel/syscalls/socket/socket03.c
index 5a2085a..6ce71a4 100644
--- a/testcases/kernel/syscalls/socket/socket03.c
+++ b/testcases/kernel/syscalls/socket/socket03.c
@@ -53,7 +53,6 @@
 #include <sys/socket.h>
 #include <sys/syscall.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 
@@ -61,12 +60,9 @@
 #define SOCK_NONBLOCK O_NONBLOCK
 #endif
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "socket03";	/* test program identifier.              */
+char *TCID = "socket03";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -126,7 +122,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/socketcall/socketcall01.c b/testcases/kernel/syscalls/socketcall/socketcall01.c
index cff630e..d31f55f 100644
--- a/testcases/kernel/syscalls/socketcall/socketcall01.c
+++ b/testcases/kernel/syscalls/socketcall/socketcall01.c
@@ -75,7 +75,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "socketcall01";	/* Test program identifier.    */
+char *TCID = "socketcall01";
 
 #ifdef __NR_socketcall
 
@@ -165,7 +165,7 @@
 
 #else
 
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/socketcall/socketcall02.c b/testcases/kernel/syscalls/socketcall/socketcall02.c
index 53fec30..da0c32f 100644
--- a/testcases/kernel/syscalls/socketcall/socketcall02.c
+++ b/testcases/kernel/syscalls/socketcall/socketcall02.c
@@ -79,7 +79,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "socketcall02";	/* Test program identifier.    */
+char *TCID = "socketcall02";
 
 #ifdef __NR_socketcall
 
@@ -88,7 +88,7 @@
 void setup();
 void cleanup();
 
-int TST_TOTAL = 1;		/* Total number of test cases. */
+int TST_TOTAL = 1;
 int exp_enos[] = { EINVAL, 0 };
 
 struct test_case_t {
@@ -165,7 +165,7 @@
 
 #else
 
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/socketcall/socketcall03.c b/testcases/kernel/syscalls/socketcall/socketcall03.c
index 72d8fff..dc073b7 100644
--- a/testcases/kernel/syscalls/socketcall/socketcall03.c
+++ b/testcases/kernel/syscalls/socketcall/socketcall03.c
@@ -75,7 +75,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "socketcall03";	/* Test program identifier.    */
+char *TCID = "socketcall03";
 
 #ifdef __NR_socketcall
 
@@ -85,7 +85,7 @@
 void cleanup();
 void setup1(void);
 
-int TST_TOTAL = 1;		/* Total number of test cases. */
+int TST_TOTAL = 1;
 int s;
 unsigned long args[3];
 struct sockaddr_in si;
@@ -177,7 +177,7 @@
 
 #else
 
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/socketcall/socketcall04.c b/testcases/kernel/syscalls/socketcall/socketcall04.c
index 10b1e6d..23b2b84 100644
--- a/testcases/kernel/syscalls/socketcall/socketcall04.c
+++ b/testcases/kernel/syscalls/socketcall/socketcall04.c
@@ -75,7 +75,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "socketcall04";	/* Test program identifier.    */
+char *TCID = "socketcall04";
 
 #ifdef __NR_socketcall
 
@@ -85,7 +85,7 @@
 void cleanup();
 void setup1(void);
 
-int TST_TOTAL = 1;		/* Total number of test cases. */
+int TST_TOTAL = 1;
 int i, s;
 unsigned long args[3];
 struct sockaddr_in si;
@@ -170,7 +170,7 @@
 
 #else
 
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/socketpair/socketpair01.c b/testcases/kernel/syscalls/socketpair/socketpair01.c
index cb18f1f..383b78d 100644
--- a/testcases/kernel/syscalls/socketpair/socketpair01.c
+++ b/testcases/kernel/syscalls/socketpair/socketpair01.c
@@ -54,7 +54,7 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "socketpair01";	/* Test program identifier.    */
+char *TCID = "socketpair01";
 int testno;
 int exp_enos[] = { EINVAL, EPERM, EFAULT, EOPNOTSUPP, EPROTONOSUPPORT, 0 };
 
@@ -90,7 +90,7 @@
 	PF_INET, SOCK_STREAM, 6, sv, -1, EOPNOTSUPP, "TCP socket"}, {
 PF_INET, SOCK_STREAM, 1, sv, -1, ESOCKTNOSUPPORT, "ICMP stream"},};
 
-int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(tdat) / sizeof(tdat[0]);
 
 int main(int argc, char *argv[])
 {
@@ -143,7 +143,7 @@
 	/* set the expected errnos... */
 	TEST_EXP_ENOS(exp_enos);
 
-	TEST_PAUSE;		/* if -P option specified */
+	TEST_PAUSE;
 }
 
 void cleanup(void)
diff --git a/testcases/kernel/syscalls/socketpair/socketpair02.c b/testcases/kernel/syscalls/socketpair/socketpair02.c
index 5c3a6db..3b9732e 100644
--- a/testcases/kernel/syscalls/socketpair/socketpair02.c
+++ b/testcases/kernel/syscalls/socketpair/socketpair02.c
@@ -53,7 +53,6 @@
 #include <sys/socket.h>
 #include <sys/syscall.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 
@@ -62,8 +61,7 @@
 #endif
 
 int TST_TOTAL = 2;
-/* Global Variables */
-char *TCID = "socketpair02";	/* test program identifier.              */
+char *TCID = "socketpair02";
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/splice/splice01.c b/testcases/kernel/syscalls/splice/splice01.c
index e03b5a3..782be18 100644
--- a/testcases/kernel/syscalls/splice/splice01.c
+++ b/testcases/kernel/syscalls/splice/splice01.c
@@ -58,8 +58,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "splice01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "splice01";
+int TST_TOTAL = 1;
 char testfile1[256];
 char testfile2[256];
 
diff --git a/testcases/kernel/syscalls/splice/splice02.c b/testcases/kernel/syscalls/splice/splice02.c
index d240ed7..3455113 100644
--- a/testcases/kernel/syscalls/splice/splice02.c
+++ b/testcases/kernel/syscalls/splice/splice02.c
@@ -37,17 +37,13 @@
 #include <unistd.h>
 #include <fcntl.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "splice02";	/* Test program identifier. */
+char *TCID = "splice02";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 static inline long ltp_splice(int fd_in, loff_t * off_in,
 			      int fd_out, loff_t * off_out,
diff --git a/testcases/kernel/syscalls/ssetmask/ssetmask01.c b/testcases/kernel/syscalls/ssetmask/ssetmask01.c
index 12a470f..bd81a8d 100644
--- a/testcases/kernel/syscalls/ssetmask/ssetmask01.c
+++ b/testcases/kernel/syscalls/ssetmask/ssetmask01.c
@@ -43,17 +43,13 @@
 #include <stdlib.h>
 #include <signal.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "ssetmask01";	/* Test program identifier. */
+char *TCID = "ssetmask01";
 int testno;
-int TST_TOTAL = 2;		/* total number of tests in this file.   */
+int TST_TOTAL = 2;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/stat/stat01.c b/testcases/kernel/syscalls/stat/stat01.c
index cf076da..9f51c6d 100644
--- a/testcases/kernel/syscalls/stat/stat01.c
+++ b/testcases/kernel/syscalls/stat/stat01.c
@@ -84,8 +84,8 @@
 #define BUF_SIZE	256
 #define MASK		0777
 
-char *TCID = "stat01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "stat01";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 uid_t user_id;			/* Owner id of the test file */
@@ -93,8 +93,8 @@
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
@@ -102,7 +102,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/stat/stat02.c b/testcases/kernel/syscalls/stat/stat02.c
index 9af3df1..a9950c5 100644
--- a/testcases/kernel/syscalls/stat/stat02.c
+++ b/testcases/kernel/syscalls/stat/stat02.c
@@ -86,8 +86,8 @@
 #define NEW_MODE	0222
 #define MASK		0777
 
-char *TCID = "stat02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "stat02";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 uid_t user_id;			/* eff. user id/group id of test process */
@@ -95,8 +95,8 @@
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
@@ -104,7 +104,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/stat/stat03.c b/testcases/kernel/syscalls/stat/stat03.c
index dfbe02e..fb74ec6 100644
--- a/testcases/kernel/syscalls/stat/stat03.c
+++ b/testcases/kernel/syscalls/stat/stat03.c
@@ -126,7 +126,7 @@
 	NULL, NULL, 0, no_setup}
 };
 
-char *TCID = "stat03";		/* Test program identifier.    */
+char *TCID = "stat03";
 int TST_TOTAL = (sizeof(Test_cases) / sizeof(*Test_cases));
 int exp_enos[] = { EACCES,
 #if !defined(UCLINUX)
@@ -149,7 +149,6 @@
 	char *test_desc;	/* test specific error message */
 	int ind;		/* counter to test different test conditions */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/stat/stat05.c b/testcases/kernel/syscalls/stat/stat05.c
index ff95809..067e557 100644
--- a/testcases/kernel/syscalls/stat/stat05.c
+++ b/testcases/kernel/syscalls/stat/stat05.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "stat05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "stat05";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/stat/stat06.c b/testcases/kernel/syscalls/stat/stat06.c
index c1afabb..d2fa97c 100644
--- a/testcases/kernel/syscalls/stat/stat06.c
+++ b/testcases/kernel/syscalls/stat/stat06.c
@@ -126,7 +126,7 @@
 void setup();
 void cleanup();
 
-char *TCID = "stat06";		/* Test program identifier.    */
+char *TCID = "stat06";
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/statfs/statfs01.c b/testcases/kernel/syscalls/statfs/statfs01.c
index a77a66a..d6b7df1 100644
--- a/testcases/kernel/syscalls/statfs/statfs01.c
+++ b/testcases/kernel/syscalls/statfs/statfs01.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "statfs01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "statfs01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/statvfs/statvfs01.c b/testcases/kernel/syscalls/statvfs/statvfs01.c
index 767cde6..62571f8 100644
--- a/testcases/kernel/syscalls/statvfs/statvfs01.c
+++ b/testcases/kernel/syscalls/statvfs/statvfs01.c
@@ -48,8 +48,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "statvfs01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "statvfs01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* must be a 0 terminated list */
 
diff --git a/testcases/kernel/syscalls/stime/stime01.c b/testcases/kernel/syscalls/stime/stime01.c
index f002845..201d5a9 100644
--- a/testcases/kernel/syscalls/stime/stime01.c
+++ b/testcases/kernel/syscalls/stime/stime01.c
@@ -83,8 +83,8 @@
 
 #define BASH_CLOCK
 
-char *TCID = "stime01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "stime01";
+int TST_TOTAL = 1;
 struct timeval real_time_tv, pres_time_tv;
 time_t new_time;		/* system's new time */
 int exp_enos[] = { 0 };
@@ -97,7 +97,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/stime/stime02.c b/testcases/kernel/syscalls/stime/stime02.c
index 5b9b1a7..ccf7fd6 100644
--- a/testcases/kernel/syscalls/stime/stime02.c
+++ b/testcases/kernel/syscalls/stime/stime02.c
@@ -78,8 +78,8 @@
 
 #define INCR_TIME	10	/* increment in the system's current time */
 
-char *TCID = "stime02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "stime02";
+int TST_TOTAL = 1;
 int exp_enos[] = { EPERM, 0 };
 
 time_t curr_time;		/* system's current time in seconds */
@@ -96,7 +96,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/swapoff/swapoff01.c b/testcases/kernel/syscalls/swapoff/swapoff01.c
index 2921476..78fb65e 100644
--- a/testcases/kernel/syscalls/swapoff/swapoff01.c
+++ b/testcases/kernel/syscalls/swapoff/swapoff01.c
@@ -86,8 +86,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "swapoff01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "swapoff01";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/swapoff/swapoff02.c b/testcases/kernel/syscalls/swapoff/swapoff02.c
index ef1dff6..633bf26 100644
--- a/testcases/kernel/syscalls/swapoff/swapoff02.c
+++ b/testcases/kernel/syscalls/swapoff/swapoff02.c
@@ -95,8 +95,8 @@
 static int cleanup01();
 static int setup02();
 
-char *TCID = "swapoff02";	/* Test program identifier.    */
-int TST_TOTAL = 3;		/* Total number of test cases. */
+char *TCID = "swapoff02";
+int TST_TOTAL = 3;
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 int need_swapfile_cleanup = 0;	/* attempt to swapoff in cleanup */
diff --git a/testcases/kernel/syscalls/swapon/swapon01.c b/testcases/kernel/syscalls/swapon/swapon01.c
index 9550bb2..11a49f9 100644
--- a/testcases/kernel/syscalls/swapon/swapon01.c
+++ b/testcases/kernel/syscalls/swapon/swapon01.c
@@ -85,8 +85,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "swapon01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "swapon01";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/swapon/swapon02.c b/testcases/kernel/syscalls/swapon/swapon02.c
index 05324fc..d44d6c3 100644
--- a/testcases/kernel/syscalls/swapon/swapon02.c
+++ b/testcases/kernel/syscalls/swapon/swapon02.c
@@ -109,8 +109,8 @@
 static int cleanup03();
 void handler(int);
 
-char *TCID = "swapon02";	/* Test program identifier.    */
-int TST_TOTAL = 4;		/* Total number of test cases. */
+char *TCID = "swapon02";
+int TST_TOTAL = 4;
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
diff --git a/testcases/kernel/syscalls/swapon/swapon03.c b/testcases/kernel/syscalls/swapon/swapon03.c
index 806c5e4..3dbc998 100644
--- a/testcases/kernel/syscalls/swapon/swapon03.c
+++ b/testcases/kernel/syscalls/swapon/swapon03.c
@@ -82,8 +82,8 @@
 int check_and_swapoff(char *filename);
 int create_swapfile(char *swapfile, int bs, int count);
 
-char *TCID = "swapon03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "swapon03";
+int TST_TOTAL = 1;
 
 static int exp_enos[] = { EPERM, 0 };
 
diff --git a/testcases/kernel/syscalls/switch/endian_switch01.c b/testcases/kernel/syscalls/switch/endian_switch01.c
index 1c30f86..394e9d4 100644
--- a/testcases/kernel/syscalls/switch/endian_switch01.c
+++ b/testcases/kernel/syscalls/switch/endian_switch01.c
@@ -60,8 +60,8 @@
 
 static void cleanup();
 
-char *TCID = "endian_switch01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "endian_switch01";
+int TST_TOTAL = 1;
 
 #if defined (__powerpc64__) || (__powerpc__)
 void setup()
diff --git a/testcases/kernel/syscalls/symlink/symlink02.c b/testcases/kernel/syscalls/symlink/symlink02.c
index e0247d0..fb54b56 100644
--- a/testcases/kernel/syscalls/symlink/symlink02.c
+++ b/testcases/kernel/syscalls/symlink/symlink02.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "symlink02";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "symlink02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/symlink/symlink03.c b/testcases/kernel/syscalls/symlink/symlink03.c
index 721b311..b322589 100644
--- a/testcases/kernel/syscalls/symlink/symlink03.c
+++ b/testcases/kernel/syscalls/symlink/symlink03.c
@@ -100,8 +100,8 @@
 #define TEST_FILE3      "tfile_3"
 #define SYM_FILE3	"t_file/sfile_3"
 
-char *TCID = "symlink03";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "symlink03";
+int TST_TOTAL = 1;
 int exp_enos[] = { ENOTDIR, ENOENT, ENAMETOOLONG, EFAULT, EEXIST, EACCES, 0 };
 
 char *bad_addr = 0;
@@ -145,8 +145,8 @@
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
@@ -157,7 +157,6 @@
 	char *test_desc;	/* test specific error message */
 	int ind;		/* counter to test different test conditions */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/symlink/symlink04.c b/testcases/kernel/syscalls/symlink/symlink04.c
index 695e6f1..33ea425 100644
--- a/testcases/kernel/syscalls/symlink/symlink04.c
+++ b/testcases/kernel/syscalls/symlink/symlink04.c
@@ -82,12 +82,12 @@
 #define  SYMFILE	"slink_file"
 #define FILE_MODE       S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 
-char *TCID = "symlink04";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "symlink04";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
@@ -95,7 +95,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/symlink/symlink05.c b/testcases/kernel/syscalls/symlink/symlink05.c
index e790416..232495b 100644
--- a/testcases/kernel/syscalls/symlink/symlink05.c
+++ b/testcases/kernel/syscalls/symlink/symlink05.c
@@ -82,12 +82,12 @@
 #define  TESTFILE	"testfile"
 #define  SYMFILE	"slink_file"
 
-char *TCID = "symlink05";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "symlink05";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
-void setup();			/* Setup function for the test */
-void cleanup();			/* Cleanup function for the test */
+void setup();
+void cleanup();
 
 int main(int ac, char **av)
 {
@@ -95,7 +95,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/symlinkat/symlinkat01.c b/testcases/kernel/syscalls/symlinkat/symlinkat01.c
index 43d63ce..2a20188 100644
--- a/testcases/kernel/syscalls/symlinkat/symlinkat01.c
+++ b/testcases/kernel/syscalls/symlinkat/symlinkat01.c
@@ -133,8 +133,8 @@
 	    /*      { TEST_FIFO, &newdirfd, TEST_FILE1, TEST_DIR1"/"TEST_FIFO, TEST_DIR2"/"TEST_FILE1, 0 }, */
 };
 
-char *TCID = "symlinkat01";	/* Test program identifier.    */
-int TST_TOTAL = sizeof(test_desc) / sizeof(*test_desc);	/* Total number of test cases. */
+char *TCID = "symlinkat01";
+int TST_TOTAL = sizeof(test_desc) / sizeof(*test_desc);
 
 #define SUCCEED_OR_DIE(syscall, message, ...)														\
 	(errno = 0,																														\
diff --git a/testcases/kernel/syscalls/sync/sync01.c b/testcases/kernel/syscalls/sync/sync01.c
index 7aca91d..a16bab0 100644
--- a/testcases/kernel/syscalls/sync/sync01.c
+++ b/testcases/kernel/syscalls/sync/sync01.c
@@ -118,8 +118,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "sync01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sync01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/sync/sync02.c b/testcases/kernel/syscalls/sync/sync02.c
index b5709f8..6614f6e 100644
--- a/testcases/kernel/syscalls/sync/sync02.c
+++ b/testcases/kernel/syscalls/sync/sync02.c
@@ -81,8 +81,8 @@
 #define TEMP_FILE	"temp_file"
 #define FILE_MODE       S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 
-char *TCID = "sync02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sync02";
+int TST_TOTAL = 1;
 char write_buffer[BUFSIZ];	/* buffer used to write data to file */
 int fildes;			/* file descriptor for temporary file */
 
@@ -95,7 +95,6 @@
 	char *msg;
 	char read_buffer[BUFSIZ];	/* buffer used to read data from file */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/sync_file_range/sync_file_range01.c b/testcases/kernel/syscalls/sync_file_range/sync_file_range01.c
index e317442..ccb32e2 100644
--- a/testcases/kernel/syscalls/sync_file_range/sync_file_range01.c
+++ b/testcases/kernel/syscalls/sync_file_range/sync_file_range01.c
@@ -81,7 +81,6 @@
  ******************************************************************************/
 #define _GNU_SOURCE
 
-/* Standard Include Files */
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/utsname.h>
@@ -92,7 +91,6 @@
 #include <stdlib.h>
 #include <unistd.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -105,10 +103,7 @@
 
 #define SYNC_FILE_RANGE_INVALID 8
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "sync_file_range01";	/* test program identifier.       */
+char *TCID = "sync_file_range01";
 char filename[255];		/* file used for testing */
 char spl_file[] = "/dev/null";
 int filed, sfd;			/* normal and special fds */
diff --git a/testcases/kernel/syscalls/sysctl/sysctl01.c b/testcases/kernel/syscalls/sysctl/sysctl01.c
index 411fcb2..ce414c4 100644
--- a/testcases/kernel/syscalls/sysctl/sysctl01.c
+++ b/testcases/kernel/syscalls/sysctl/sysctl01.c
@@ -200,7 +200,7 @@
 }
 
 #else
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/sysctl/sysctl03.c b/testcases/kernel/syscalls/sysctl/sysctl03.c
index 72ae398..60b9aea 100644
--- a/testcases/kernel/syscalls/sysctl/sysctl03.c
+++ b/testcases/kernel/syscalls/sysctl/sysctl03.c
@@ -219,7 +219,7 @@
 }
 
 #else
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/sysctl/sysctl04.c b/testcases/kernel/syscalls/sysctl/sysctl04.c
index 1c37d76..632c166 100644
--- a/testcases/kernel/syscalls/sysctl/sysctl04.c
+++ b/testcases/kernel/syscalls/sysctl/sysctl04.c
@@ -172,7 +172,7 @@
 }
 
 #else
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/sysctl/sysctl05.c b/testcases/kernel/syscalls/sysctl/sysctl05.c
index 57af290..2832bf1 100644
--- a/testcases/kernel/syscalls/sysctl/sysctl05.c
+++ b/testcases/kernel/syscalls/sysctl/sysctl05.c
@@ -199,7 +199,7 @@
 }
 
 #else
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/sysfs/sysfs01.c b/testcases/kernel/syscalls/sysfs/sysfs01.c
index 0113203..ed7e6de 100644
--- a/testcases/kernel/syscalls/sysfs/sysfs01.c
+++ b/testcases/kernel/syscalls/sysfs/sysfs01.c
@@ -75,8 +75,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sysfs01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sysfs01";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/sysfs/sysfs02.c b/testcases/kernel/syscalls/sysfs/sysfs02.c
index 8aea1ea..cbd260a 100644
--- a/testcases/kernel/syscalls/sysfs/sysfs02.c
+++ b/testcases/kernel/syscalls/sysfs/sysfs02.c
@@ -73,8 +73,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sysfs02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sysfs02";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/sysfs/sysfs03.c b/testcases/kernel/syscalls/sysfs/sysfs03.c
index 9a8992d..8db20a8 100644
--- a/testcases/kernel/syscalls/sysfs/sysfs03.c
+++ b/testcases/kernel/syscalls/sysfs/sysfs03.c
@@ -73,8 +73,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sysfs03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sysfs03";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/sysfs/sysfs04.c b/testcases/kernel/syscalls/sysfs/sysfs04.c
index 878ca2e..0da92bb 100644
--- a/testcases/kernel/syscalls/sysfs/sysfs04.c
+++ b/testcases/kernel/syscalls/sysfs/sysfs04.c
@@ -77,8 +77,8 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sysfs04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "sysfs04";
+int TST_TOTAL = 1;
 static int exp_enos[] = { EINVAL, 0 };
 
 int main(int ac, char **av)
diff --git a/testcases/kernel/syscalls/sysfs/sysfs05.c b/testcases/kernel/syscalls/sysfs/sysfs05.c
index 32a598f..449443d 100644
--- a/testcases/kernel/syscalls/sysfs/sysfs05.c
+++ b/testcases/kernel/syscalls/sysfs/sysfs05.c
@@ -77,7 +77,7 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sysfs05";		/* Test program identifier.    */
+char *TCID = "sysfs05";
 static int option[3] = { 1, 4, 1 };	/* valid and invalid option */
 static char *fsname[] = { "ext0", " ext2", (char *)-1 };
 static int exp_enos[] = { EINVAL, EFAULT, 0 };
diff --git a/testcases/kernel/syscalls/sysfs/sysfs06.c b/testcases/kernel/syscalls/sysfs/sysfs06.c
index 9871c9b..7c39caf 100644
--- a/testcases/kernel/syscalls/sysfs/sysfs06.c
+++ b/testcases/kernel/syscalls/sysfs/sysfs06.c
@@ -78,7 +78,7 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "sysfs06";		/* Test program identifier.    */
+char *TCID = "sysfs06";
 static int option[3] = { 2, 4, 2 };	/* valid and invalid option */
 static int fsindex[3] = { 10000, 0, 1 };	/*invalid and valid fsindex */
 static int exp_enos[] = { EINVAL, EFAULT, 0 };
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo01.c b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
index 7d54f67..9d685f1 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo01.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
@@ -77,8 +77,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "sysinfo01";	/* Test program identifier */
-int TST_TOTAL = 1;		/* Total number of test cases */
+char *TCID = "sysinfo01";
+int TST_TOTAL = 1;
 
 int main(int ac, char **av)
 {
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo02.c b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
index a7674d5..cd1499a 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo02.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
@@ -76,8 +76,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "sysinfo02";	/* Test program identifier */
-int TST_TOTAL = 1;		/* Total number of test cases */
+char *TCID = "sysinfo02";
+int TST_TOTAL = 1;
 
 #if !defined(UCLINUX)
 
diff --git a/testcases/kernel/syscalls/syslog/syslogtst.c b/testcases/kernel/syscalls/syslog/syslogtst.c
index fad6fc0..0935503 100644
--- a/testcases/kernel/syscalls/syslog/syslogtst.c
+++ b/testcases/kernel/syscalls/syslog/syslogtst.c
@@ -34,8 +34,8 @@
  *These globals must be defined in the test.
  */
 
-char *TCID = "syslogtst";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "syslogtst";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* List must end with 0 */
 
diff --git a/testcases/kernel/syscalls/tee/tee01.c b/testcases/kernel/syscalls/tee/tee01.c
index 1c8e17f..57b8ba1 100644
--- a/testcases/kernel/syscalls/tee/tee01.c
+++ b/testcases/kernel/syscalls/tee/tee01.c
@@ -59,8 +59,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "tee01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "tee01";
+int TST_TOTAL = 1;
 char testfile1[256];
 char testfile2[256];
 
diff --git a/testcases/kernel/syscalls/time/time01.c b/testcases/kernel/syscalls/time/time01.c
index d599a68..c81b6b1 100644
--- a/testcases/kernel/syscalls/time/time01.c
+++ b/testcases/kernel/syscalls/time/time01.c
@@ -119,8 +119,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "time01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "time01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/time/time02.c b/testcases/kernel/syscalls/time/time02.c
index 4d67bc2..9015c84 100644
--- a/testcases/kernel/syscalls/time/time02.c
+++ b/testcases/kernel/syscalls/time/time02.c
@@ -81,8 +81,8 @@
 void setup();			/* setup function for the test */
 void cleanup();			/* cleanup function for the test */
 
-char *TCID = "time02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "time02";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 int main(int ac, char **av)
@@ -91,7 +91,6 @@
 	char *msg;
 	time_t tloc;		/* time_t variables for time(2) */
 
-	/* Parse standard options given to run the test. */
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/timer_getoverrun/timer_getoverrun01.c b/testcases/kernel/syscalls/timer_getoverrun/timer_getoverrun01.c
index cc852d2..21e2375 100644
--- a/testcases/kernel/syscalls/timer_getoverrun/timer_getoverrun01.c
+++ b/testcases/kernel/syscalls/timer_getoverrun/timer_getoverrun01.c
@@ -44,7 +44,6 @@
 #include <signal.h>
 #include <syscall.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -54,12 +53,9 @@
  */
 typedef int kernel_timer_t;
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "timer_getoverrun01";	/* Test program identifier. */
+char *TCID = "timer_getoverrun01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/timer_gettime/timer_gettime01.c b/testcases/kernel/syscalls/timer_gettime/timer_gettime01.c
index f96fe96..fe5eb94 100644
--- a/testcases/kernel/syscalls/timer_gettime/timer_gettime01.c
+++ b/testcases/kernel/syscalls/timer_gettime/timer_gettime01.c
@@ -43,7 +43,6 @@
 #include <stdio.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -53,12 +52,9 @@
  */
 typedef int kernel_timer_t;
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "timer_gettime01";	/* Test program identifier. */
+char *TCID = "timer_gettime01";
 int testno;
-int TST_TOTAL = 3;		/* total number of tests in this file.   */
+int TST_TOTAL = 3;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/timerfd/timerfd01.c b/testcases/kernel/syscalls/timerfd/timerfd01.c
index db3b80c..357b054 100644
--- a/testcases/kernel/syscalls/timerfd/timerfd01.c
+++ b/testcases/kernel/syscalls/timerfd/timerfd01.c
@@ -48,7 +48,7 @@
 
 #define cleanup tst_exit
 
-char *TCID = "timerfd01";	/* Test program identifier */
+char *TCID = "timerfd01";
 
 /*
  * This were good at the time of 2.6.23-rc7 ...
@@ -269,7 +269,7 @@
 }
 
 #else
-int TST_TOTAL = 0;		/* Total number of test cases. */
+int TST_TOTAL = 0;
 
 int main()
 {
diff --git a/testcases/kernel/syscalls/timerfd/timerfd02.c b/testcases/kernel/syscalls/timerfd/timerfd02.c
index f376b33..4034398 100644
--- a/testcases/kernel/syscalls/timerfd/timerfd02.c
+++ b/testcases/kernel/syscalls/timerfd/timerfd02.c
@@ -61,7 +61,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -72,12 +71,9 @@
 
 #define TFD_CLOEXEC O_CLOEXEC
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "timerfd02";	/* test program identifier.              */
+char *TCID = "timerfd02";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -137,7 +133,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/timerfd/timerfd03.c b/testcases/kernel/syscalls/timerfd/timerfd03.c
index 0d1eafd..b9e59af 100644
--- a/testcases/kernel/syscalls/timerfd/timerfd03.c
+++ b/testcases/kernel/syscalls/timerfd/timerfd03.c
@@ -57,7 +57,6 @@
 #include <sys/syscall.h>
 #include <errno.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
@@ -68,12 +67,9 @@
 
 #define TFD_NONBLOCK O_NONBLOCK
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "timerfd03";	/* test program identifier.              */
+char *TCID = "timerfd03";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
@@ -133,7 +129,6 @@
 	int lc;
 	char *msg;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(argc, argv, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/times/times01.c b/testcases/kernel/syscalls/times/times01.c
index fceb413..4584acc 100644
--- a/testcases/kernel/syscalls/times/times01.c
+++ b/testcases/kernel/syscalls/times/times01.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "times01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "times01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/tkill/tkill01.c b/testcases/kernel/syscalls/tkill/tkill01.c
index f6fe1b9..fd96e72 100644
--- a/testcases/kernel/syscalls/tkill/tkill01.c
+++ b/testcases/kernel/syscalls/tkill/tkill01.c
@@ -48,17 +48,13 @@
 #include <linux/unistd.h>
 #include <sys/types.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "tkill01";		/* Test program identifier. */
+char *TCID = "tkill01";
 int testno;
-int TST_TOTAL = 2;		/* total number of tests in this file.   */
+int TST_TOTAL = 2;
 
 void cleanup()
 {
diff --git a/testcases/kernel/syscalls/tkill/tkill02.c b/testcases/kernel/syscalls/tkill/tkill02.c
index 8f4bd5b..88f1bd8 100644
--- a/testcases/kernel/syscalls/tkill/tkill02.c
+++ b/testcases/kernel/syscalls/tkill/tkill02.c
@@ -45,15 +45,11 @@
 #include <signal.h>
 #include <sys/syscall.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "tkill02";		/* Test program identifier. */
+char *TCID = "tkill02";
 int testno;
 
 /* Extern Global Functions */
diff --git a/testcases/kernel/syscalls/truncate/truncate01.c b/testcases/kernel/syscalls/truncate/truncate01.c
index 509daa0..cd07e37 100644
--- a/testcases/kernel/syscalls/truncate/truncate01.c
+++ b/testcases/kernel/syscalls/truncate/truncate01.c
@@ -85,7 +85,7 @@
 #define FILE_SIZE	1024	/* test file size */
 #define TRUNC_LEN	256	/* truncation length */
 
-TCID_DEFINE(truncate01);	/* Test program identifier.    */
+TCID_DEFINE(truncate01);
 int TST_TOTAL = 1;		/* Total number of test conditions */
 int exp_enos[] = { 0 };
 
@@ -99,7 +99,6 @@
 	char *msg;
 	off_t file_length;	/* test file length */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/truncate/truncate02.c b/testcases/kernel/syscalls/truncate/truncate02.c
index 42e98a9..e59edb0 100644
--- a/testcases/kernel/syscalls/truncate/truncate02.c
+++ b/testcases/kernel/syscalls/truncate/truncate02.c
@@ -86,7 +86,7 @@
 #define TRUNC_LEN1	256	/* truncation length */
 #define TRUNC_LEN2	512	/* truncation length */
 
-TCID_DEFINE(truncate02);	/* Test program identifier.    */
+TCID_DEFINE(truncate02);
 int TST_TOTAL = 1;		/* Total number of test conditions */
 int fd;				/* file descriptor of testfile */
 char tst_buff[BUF_SIZE];	/* buffer to hold testfile contents */
@@ -106,7 +106,6 @@
 	int read_len = 0;	/* total no. of bytes read from testfile */
 	int err_flag = 0;	/* error indicator flag */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/truncate/truncate03.c b/testcases/kernel/syscalls/truncate/truncate03.c
index dda98e4..b72e807 100644
--- a/testcases/kernel/syscalls/truncate/truncate03.c
+++ b/testcases/kernel/syscalls/truncate/truncate03.c
@@ -106,7 +106,7 @@
 int setup2();			/* setup function to test chmod for ENOTDIR */
 int longpath_setup();		/* setup function to test chmod for ENAMETOOLONG */
 
-TCID_DEFINE(truncate03);	/* Test program identifier.    */
+TCID_DEFINE(truncate03);
 int exp_enos[] = { EACCES, ENOTDIR, EFAULT, ENAMETOOLONG, ENOENT, 0 };
 
 char *bad_addr = 0;
@@ -148,7 +148,6 @@
 	char *test_desc;	/* test specific error message */
 	int ind;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/truncate/truncate04.c b/testcases/kernel/syscalls/truncate/truncate04.c
index 69448c0..2c45d17 100644
--- a/testcases/kernel/syscalls/truncate/truncate04.c
+++ b/testcases/kernel/syscalls/truncate/truncate04.c
@@ -87,7 +87,7 @@
 char nobody_uid[] = "nobody";
 struct passwd *ltpuser;
 
-TCID_DEFINE(truncate04);	/* Test program identifier.    */
+TCID_DEFINE(truncate04);
 int TST_TOTAL = 1;		/* Total number of test conditions */
 
 char test_desc[] = "File is a directory";
@@ -105,7 +105,6 @@
 	char *msg;
 	char *file_name;	/* testfile name */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/ulimit/ulimit01.c b/testcases/kernel/syscalls/ulimit/ulimit01.c
index 0e43bc2..fca59aa 100644
--- a/testcases/kernel/syscalls/ulimit/ulimit01.c
+++ b/testcases/kernel/syscalls/ulimit/ulimit01.c
@@ -119,8 +119,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "ulimit01";	/* Test program identifier.    */
-int TST_TOTAL = 6;		/* Total number of test cases. */
+char *TCID = "ulimit01";
+int TST_TOTAL = 6;
 
 int cmd;
 long limit;			/* saved limit */
diff --git a/testcases/kernel/syscalls/umask/umask01.c b/testcases/kernel/syscalls/umask/umask01.c
index 7ab856d..be197e2 100644
--- a/testcases/kernel/syscalls/umask/umask01.c
+++ b/testcases/kernel/syscalls/umask/umask01.c
@@ -120,8 +120,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "umask01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "umask01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/umount/umount01.c b/testcases/kernel/syscalls/umount/umount01.c
index a5dcd3c..2337818 100644
--- a/testcases/kernel/syscalls/umount/umount01.c
+++ b/testcases/kernel/syscalls/umount/umount01.c
@@ -79,8 +79,8 @@
 static void setup(void);
 static void cleanup(void);
 
-char *TCID = "umount01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "umount01";
+int TST_TOTAL = 1;
 
 #define DEFAULT_FSTYPE	"ext2"
 #define DIR_MODE	S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH
diff --git a/testcases/kernel/syscalls/umount/umount02.c b/testcases/kernel/syscalls/umount/umount02.c
index ec25337..2dd59c0 100644
--- a/testcases/kernel/syscalls/umount/umount02.c
+++ b/testcases/kernel/syscalls/umount/umount02.c
@@ -94,7 +94,7 @@
 static int setup_test(int, int);
 static int cleanup_test(int);
 
-char *TCID = "umount02";	/* Test program identifier.    */
+char *TCID = "umount02";
 
 #define DEFAULT_FSTYPE "ext2"
 #define FSTYPE_LEN	20
@@ -130,7 +130,6 @@
 	"Pathname too long", ENAMETOOLONG, "ENAMETOOLONG"}
 };
 
-/* Total number of test cases. */
 int TST_TOTAL = sizeof(testcases) / sizeof(testcases[0]);
 
 static int exp_enos[] = { EBUSY, EINVAL, EFAULT, ENAMETOOLONG, ENOENT, 0 };
@@ -358,7 +357,6 @@
 			 strerror(errno));
 	}
 
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/umount/umount03.c b/testcases/kernel/syscalls/umount/umount03.c
index 45c0930..715a910 100644
--- a/testcases/kernel/syscalls/umount/umount03.c
+++ b/testcases/kernel/syscalls/umount/umount03.c
@@ -85,7 +85,7 @@
 static void cleanup(void);
 static void cleanup1(void);
 
-char *TCID = "umount03";	/* Test program identifier.    */
+char *TCID = "umount03";
 
 #define DEFAULT_FSTYPE "ext2"
 #define FSTYPE_LEN	20
@@ -105,7 +105,6 @@
 } testcases = {
 "User not Super User/root", EPERM, "EPERM"};
 
-/* Total number of test cases. */
 int TST_TOTAL = 1;
 
 static int exp_enos[] = { EPERM, 0 };
@@ -265,7 +264,6 @@
 		tst_brkm(TBROK, cleanup1, "setuid failed to set the effective"
 			 " uid to %d", ltpuser->pw_uid);
 	}
-	/* set up expected error numbers */
 	TEST_EXP_ENOS(exp_enos);
 
 	if (access(device, F_OK)) {
diff --git a/testcases/kernel/syscalls/uname/uname01.c b/testcases/kernel/syscalls/uname/uname01.c
index e369f42..b591efb 100644
--- a/testcases/kernel/syscalls/uname/uname01.c
+++ b/testcases/kernel/syscalls/uname/uname01.c
@@ -119,8 +119,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "uname01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "uname01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/unlink/unlink05.c b/testcases/kernel/syscalls/unlink/unlink05.c
index f347fd4..f906224 100644
--- a/testcases/kernel/syscalls/unlink/unlink05.c
+++ b/testcases/kernel/syscalls/unlink/unlink05.c
@@ -121,8 +121,8 @@
 void cleanup();
 void create_file();
 
-char *TCID = "unlink05";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "unlink05";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/unlink/unlink06.c b/testcases/kernel/syscalls/unlink/unlink06.c
index 4217fd7..11f8516 100644
--- a/testcases/kernel/syscalls/unlink/unlink06.c
+++ b/testcases/kernel/syscalls/unlink/unlink06.c
@@ -123,8 +123,8 @@
 void create_file();
 void cleanup();
 
-char *TCID = "unlink06";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "unlink06";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/unlink/unlink07.c b/testcases/kernel/syscalls/unlink/unlink07.c
index 6b43f8a..6e73ba0 100644
--- a/testcases/kernel/syscalls/unlink/unlink07.c
+++ b/testcases/kernel/syscalls/unlink/unlink07.c
@@ -126,8 +126,8 @@
 
 extern char *get_high_address();
 
-char *TCID = "unlink07";	/* Test program identifier.    */
-int TST_TOTAL = 6;		/* Total number of test cases. */
+char *TCID = "unlink07";
+int TST_TOTAL = 6;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/unlink/unlink08.c b/testcases/kernel/syscalls/unlink/unlink08.c
index 03f899e..3fb7cc2 100644
--- a/testcases/kernel/syscalls/unlink/unlink08.c
+++ b/testcases/kernel/syscalls/unlink/unlink08.c
@@ -122,8 +122,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "unlink08";	/* Test program identifier.    */
-int TST_TOTAL = 3;		/* Total number of test cases. */
+char *TCID = "unlink08";
+int TST_TOTAL = 3;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/unlinkat/unlinkat01.c b/testcases/kernel/syscalls/unlinkat/unlinkat01.c
index 03c2bec..5d9716a 100644
--- a/testcases/kernel/syscalls/unlinkat/unlinkat01.c
+++ b/testcases/kernel/syscalls/unlinkat/unlinkat01.c
@@ -69,8 +69,8 @@
 void cleanup();
 void setup_every_copy();
 
-char *TCID = "unlinkat01";	/* Test program identifier.    */
-int TST_TOTAL = TEST_CASES;	/* Total number of test cases. */
+char *TCID = "unlinkat01";
+int TST_TOTAL = TEST_CASES;
 char pathname[256];
 char subpathname[256];
 char testfile[256];
diff --git a/testcases/kernel/syscalls/unshare/unshare01.c b/testcases/kernel/syscalls/unshare/unshare01.c
index 1c69534..16a248d 100644
--- a/testcases/kernel/syscalls/unshare/unshare01.c
+++ b/testcases/kernel/syscalls/unshare/unshare01.c
@@ -91,15 +91,13 @@
 #include <sys/param.h>
 #include <stdio.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "config.h"
 
-/* Global Variables */
-char *TCID = "unshare01";	/* Test program identifier. */
+char *TCID = "unshare01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 #ifdef HAVE_UNSHARE
 
diff --git a/testcases/kernel/syscalls/unshare/unshare02.c b/testcases/kernel/syscalls/unshare/unshare02.c
index 081ed73..0379058 100644
--- a/testcases/kernel/syscalls/unshare/unshare02.c
+++ b/testcases/kernel/syscalls/unshare/unshare02.c
@@ -53,17 +53,13 @@
 #include <sys/param.h>
 #include <stdio.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "config.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "unshare02";	/* Test program identifier. */
+char *TCID = "unshare02";
 int testno;
-int TST_TOTAL = 2;		/* total number of tests in this file.   */
+int TST_TOTAL = 2;
 
 #ifdef HAVE_UNSHARE
 
diff --git a/testcases/kernel/syscalls/ustat/ustat01.c b/testcases/kernel/syscalls/ustat/ustat01.c
index 3cda930..9f7afca 100644
--- a/testcases/kernel/syscalls/ustat/ustat01.c
+++ b/testcases/kernel/syscalls/ustat/ustat01.c
@@ -86,7 +86,6 @@
 	int lc, i;
 	char *msg;
 
-	/*parse standard options */
 	if ((msg = parse_opts(argc, argv, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
 
diff --git a/testcases/kernel/syscalls/ustat/ustat02.c b/testcases/kernel/syscalls/ustat/ustat02.c
index a70ce8d..beb8e2f 100644
--- a/testcases/kernel/syscalls/ustat/ustat02.c
+++ b/testcases/kernel/syscalls/ustat/ustat02.c
@@ -78,7 +78,7 @@
 static void setup();
 static void cleanup();
 
-char *TCID = "ustat02";		/* Test program identifier.    */
+char *TCID = "ustat02";
 
 static int exp_enos[] = { EINVAL, EFAULT, 0 };
 
@@ -96,7 +96,7 @@
 #endif
 };
 
-int TST_TOTAL = sizeof(testcase) / sizeof(*testcase);	/* Total number of test cases. */
+int TST_TOTAL = sizeof(testcase) / sizeof(*testcase);
 
 dev_t dev_num[2];
 struct ustat *ubuf;
diff --git a/testcases/kernel/syscalls/utime/utime01.c b/testcases/kernel/syscalls/utime/utime01.c
index cfcf904..a0ad30e 100644
--- a/testcases/kernel/syscalls/utime/utime01.c
+++ b/testcases/kernel/syscalls/utime/utime01.c
@@ -86,8 +86,8 @@
 #define TEMP_FILE	"tmp_file"
 #define FILE_MODE	S_IRUSR | S_IRGRP | S_IROTH
 
-char *TCID = "utime01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "utime01";
+int TST_TOTAL = 1;
 time_t curr_time;		/* current time in seconds */
 time_t tloc;			/* argument var. for time() */
 int exp_enos[] = { 0 };
@@ -103,7 +103,6 @@
 	time_t modf_time, access_time;
 	time_t pres_time;	/* file modification/access/present time */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/utime/utime02.c b/testcases/kernel/syscalls/utime/utime02.c
index ad60cb0..32303ae 100644
--- a/testcases/kernel/syscalls/utime/utime02.c
+++ b/testcases/kernel/syscalls/utime/utime02.c
@@ -89,8 +89,8 @@
 #define TEMP_FILE	"tmp_file"
 #define FILE_MODE	S_IRUSR | S_IRGRP | S_IROTH
 
-char *TCID = "utime02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "utime02";
+int TST_TOTAL = 1;
 time_t curr_time;		/* current time in seconds */
 time_t tloc;			/* argument var. for time() */
 int exp_enos[] = { 0 };
@@ -109,7 +109,6 @@
 	time_t modf_time, access_time;
 	time_t pres_time;	/* file modification/access/present time */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/utime/utime03.c b/testcases/kernel/syscalls/utime/utime03.c
index d6d6940..8ce0d79 100644
--- a/testcases/kernel/syscalls/utime/utime03.c
+++ b/testcases/kernel/syscalls/utime/utime03.c
@@ -96,8 +96,8 @@
 #define LTPUSER1	"nobody"
 #define LTPUSER2	"bin"
 
-char *TCID = "utime03";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "utime03";
+int TST_TOTAL = 1;
 time_t curr_time;		/* current time in seconds */
 time_t tloc;			/* argument var. for time() */
 int exp_enos[] = { 0 };
@@ -119,7 +119,6 @@
 	time_t pres_time;	/* file modification/access/present time */
 	pid_t pid;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/utime/utime04.c b/testcases/kernel/syscalls/utime/utime04.c
index d224ef8..dfda2c7 100644
--- a/testcases/kernel/syscalls/utime/utime04.c
+++ b/testcases/kernel/syscalls/utime/utime04.c
@@ -86,8 +86,8 @@
 #define FILE_MODE	S_IRUSR | S_IRGRP | S_IROTH
 #define NEW_TIME	10000
 
-char *TCID = "utime04";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "utime04";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 struct utimbuf times;		/* struct. buffer for utime() */
@@ -103,7 +103,6 @@
 	time_t modf_time, access_time;
 	/* file modification/access time */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/utime/utime05.c b/testcases/kernel/syscalls/utime/utime05.c
index d6da33e..441e821 100644
--- a/testcases/kernel/syscalls/utime/utime05.c
+++ b/testcases/kernel/syscalls/utime/utime05.c
@@ -89,8 +89,8 @@
 #define FILE_MODE	S_IRUSR | S_IRGRP | S_IROTH
 #define NEW_TIME	10000
 
-char *TCID = "utime05";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "utime05";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 char nobody_uid[] = "nobody";
@@ -109,7 +109,6 @@
 	time_t modf_time, access_time;
 	/* file modification/access time */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/utime/utime06.c b/testcases/kernel/syscalls/utime/utime06.c
index 659fb65..bccf51a 100644
--- a/testcases/kernel/syscalls/utime/utime06.c
+++ b/testcases/kernel/syscalls/utime/utime06.c
@@ -96,8 +96,8 @@
 #define TEMP_FILE	"tmp_file"
 #define FILE_MODE	S_IRUSR | S_IRGRP | S_IROTH
 
-char *TCID = "utime06";		/* Test program identifier.    */
-int TST_TOTAL = 2;		/* Total number of test cases. */
+char *TCID = "utime06";
+int TST_TOTAL = 2;
 time_t curr_time;		/* current time in seconds */
 time_t tloc;			/* argument var. for time() */
 int exp_enos[] = { EACCES, ENOENT, 0 };
@@ -135,7 +135,6 @@
 	int ind;		/* counter to test different test conditions */
 	int pid;
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/utimensat/utimensat01.c b/testcases/kernel/syscalls/utimensat/utimensat01.c
index f7b38eb..3495069 100644
--- a/testcases/kernel/syscalls/utimensat/utimensat01.c
+++ b/testcases/kernel/syscalls/utimensat/utimensat01.c
@@ -43,8 +43,8 @@
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-char *TCID = "utimensat01";	/* Test program identifier.    */
-int TST_TOTAL = 0;		/* Total number of test cases. */
+char *TCID = "utimensat01";
+int TST_TOTAL = 0;
 
 #define cleanup tst_exit
 
diff --git a/testcases/kernel/syscalls/utimes/utimes01.c b/testcases/kernel/syscalls/utimes/utimes01.c
index 1717d13..b15da33 100644
--- a/testcases/kernel/syscalls/utimes/utimes01.c
+++ b/testcases/kernel/syscalls/utimes/utimes01.c
@@ -57,15 +57,13 @@
 #include "../utils/include_j_h.h"
 #include "../utils/common_j_h.c"
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Global Variables */
-char *TCID = "utimes01";	/* Test program identifier. */
+char *TCID = "utimes01";
 int testno;
-int TST_TOTAL = 1;		/* total number of tests in this file.   */
+int TST_TOTAL = 1;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/vfork/vfork01.c b/testcases/kernel/syscalls/vfork/vfork01.c
index 35c9e7b..9d8a18c 100644
--- a/testcases/kernel/syscalls/vfork/vfork01.c
+++ b/testcases/kernel/syscalls/vfork/vfork01.c
@@ -84,8 +84,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "vfork01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "vfork01";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 /* Variables to hold parent/child eff/real/saved uid/gid values */
@@ -113,7 +113,6 @@
 	pid_t cpid;		/* process id of the child process */
 	int exit_status;	/* exit status of child process */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/vfork/vfork02.c b/testcases/kernel/syscalls/vfork/vfork02.c
index f1e90f5..0cfa714 100644
--- a/testcases/kernel/syscalls/vfork/vfork02.c
+++ b/testcases/kernel/syscalls/vfork/vfork02.c
@@ -80,8 +80,8 @@
 #include "test.h"
 #include "usctest.h"
 
-char *TCID = "vfork02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "vfork02";
+int TST_TOTAL = 1;
 int exp_enos[] = { 0 };
 
 void setup();			/* Main setup function of test */
@@ -96,7 +96,6 @@
 	int exit_status;	/* exit status of child process */
 	sigset_t PendSig;	/* variable to hold pending signal */
 
-	/* Parse standard options given to run the test. */
 	msg = parse_opts(ac, av, NULL, NULL);
 	if (msg != NULL) {
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
diff --git a/testcases/kernel/syscalls/vhangup/vhangup01.c b/testcases/kernel/syscalls/vhangup/vhangup01.c
index de6b93b..79e0f63 100644
--- a/testcases/kernel/syscalls/vhangup/vhangup01.c
+++ b/testcases/kernel/syscalls/vhangup/vhangup01.c
@@ -127,7 +127,6 @@
  */
 void setup(void)
 {
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Pause if that option was specified
diff --git a/testcases/kernel/syscalls/vmsplice/vmsplice01.c b/testcases/kernel/syscalls/vmsplice/vmsplice01.c
index 66f29a1..4276102 100644
--- a/testcases/kernel/syscalls/vmsplice/vmsplice01.c
+++ b/testcases/kernel/syscalls/vmsplice/vmsplice01.c
@@ -61,8 +61,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "vmsplice01";	/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "vmsplice01";
+int TST_TOTAL = 1;
 char testfile[256];
 
 static long mysplice(int fd_in, loff_t * off_in,
diff --git a/testcases/kernel/syscalls/wait/wait02.c b/testcases/kernel/syscalls/wait/wait02.c
index 4159767..0a27c8f 100644
--- a/testcases/kernel/syscalls/wait/wait02.c
+++ b/testcases/kernel/syscalls/wait/wait02.c
@@ -121,8 +121,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "wait02";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "wait02";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/waitid/waitid01.c b/testcases/kernel/syscalls/waitid/waitid01.c
index 0ba53a9..404b4ad 100644
--- a/testcases/kernel/syscalls/waitid/waitid01.c
+++ b/testcases/kernel/syscalls/waitid/waitid01.c
@@ -46,17 +46,13 @@
 #include <unistd.h>
 #include <sys/stat.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "waitid01";	/* Test program identifier. */
+char *TCID = "waitid01";
 int testno;
-int TST_TOTAL = 3;		/* total number of tests in this file.   */
+int TST_TOTAL = 3;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/waitid/waitid02.c b/testcases/kernel/syscalls/waitid/waitid02.c
index 5995cab..98bf3ea 100644
--- a/testcases/kernel/syscalls/waitid/waitid02.c
+++ b/testcases/kernel/syscalls/waitid/waitid02.c
@@ -46,17 +46,13 @@
 #include <unistd.h>
 #include <sys/stat.h>
 
-/* Harness Specific Include Files. */
 #include "test.h"
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
-/* Extern Global Variables */
-
-/* Global Variables */
-char *TCID = "waitid02";	/* Test program identifier. */
+char *TCID = "waitid02";
 int testno;
-int TST_TOTAL = 4;		/* total number of tests in this file.  */
+int TST_TOTAL = 4;
 
 /* Extern Global Functions */
 /******************************************************************************/
diff --git a/testcases/kernel/syscalls/waitpid/waitpid04.c b/testcases/kernel/syscalls/waitpid/waitpid04.c
index 8fe859b..2f621e7 100644
--- a/testcases/kernel/syscalls/waitpid/waitpid04.c
+++ b/testcases/kernel/syscalls/waitpid/waitpid04.c
@@ -146,7 +146,6 @@
 
 static void setup(void)
 {
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/write/write01.c b/testcases/kernel/syscalls/write/write01.c
index fdefca1..32f0738 100644
--- a/testcases/kernel/syscalls/write/write01.c
+++ b/testcases/kernel/syscalls/write/write01.c
@@ -125,8 +125,8 @@
 void setup();
 void cleanup();
 
-char *TCID = "write01";		/* Test program identifier.    */
-int TST_TOTAL = 1;		/* Total number of test cases. */
+char *TCID = "write01";
+int TST_TOTAL = 1;
 
 int exp_enos[] = { 0, 0 };
 
diff --git a/testcases/kernel/syscalls/write/write03.c b/testcases/kernel/syscalls/write/write03.c
index 9aad4d4..5adba39 100644
--- a/testcases/kernel/syscalls/write/write03.c
+++ b/testcases/kernel/syscalls/write/write03.c
@@ -157,7 +157,6 @@
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Pause if that option was specified
diff --git a/testcases/kernel/syscalls/write/write04.c b/testcases/kernel/syscalls/write/write04.c
index f2ce252..c88f25a 100644
--- a/testcases/kernel/syscalls/write/write04.c
+++ b/testcases/kernel/syscalls/write/write04.c
@@ -221,7 +221,6 @@
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Pause if that option was specified
diff --git a/testcases/kernel/syscalls/write/write05.c b/testcases/kernel/syscalls/write/write05.c
index ad36c78..699bd11 100644
--- a/testcases/kernel/syscalls/write/write05.c
+++ b/testcases/kernel/syscalls/write/write05.c
@@ -68,8 +68,8 @@
 /* 0 terminated list of expected errnos */
 int exp_enos[] = { 9, 14, 32, 0 };
 
-char *TCID = "write05";		/* Test program identifier */
-int TST_TOTAL = 1;		/* Total number of test cases */
+char *TCID = "write05";
+int TST_TOTAL = 1;
 char filename[100];
 int fd;
 
@@ -189,7 +189,6 @@
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Pause if that option was specified
diff --git a/testcases/kernel/syscalls/writev/writev03.c b/testcases/kernel/syscalls/writev/writev03.c
index ac92429..105e401 100644
--- a/testcases/kernel/syscalls/writev/writev03.c
+++ b/testcases/kernel/syscalls/writev/writev03.c
@@ -219,7 +219,6 @@
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Pause if that option was specified.
diff --git a/testcases/kernel/syscalls/writev/writev04.c b/testcases/kernel/syscalls/writev/writev04.c
index 5a6e251..f11307c 100644
--- a/testcases/kernel/syscalls/writev/writev04.c
+++ b/testcases/kernel/syscalls/writev/writev04.c
@@ -294,7 +294,6 @@
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	TEST_PAUSE;
diff --git a/testcases/kernel/syscalls/writev/writev05.c b/testcases/kernel/syscalls/writev/writev05.c
index f9a14c8..7ccd2fc 100644
--- a/testcases/kernel/syscalls/writev/writev05.c
+++ b/testcases/kernel/syscalls/writev/writev05.c
@@ -219,7 +219,6 @@
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Pause if that option was specified.
diff --git a/testcases/kernel/syscalls/writev/writev06.c b/testcases/kernel/syscalls/writev/writev06.c
index f05fed2..66c8fd8 100644
--- a/testcases/kernel/syscalls/writev/writev06.c
+++ b/testcases/kernel/syscalls/writev/writev06.c
@@ -167,7 +167,6 @@
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Set up the expected error numbers for -e option */
 	TEST_EXP_ENOS(exp_enos);
 
 	/* Pause if that option was specified.
