Changes between Version 4 and Version 5 of Dev/KernelHack/COINS/worklog/201110


Ignore:
Timestamp:
Oct 28, 2011 1:52:44 PM (13 years ago)
Author:
mitty
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Dev/KernelHack/COINS/worklog/201110

    v4 v5  
    12451245 * viola04:linux-2.6.35.14 s0711489$ svn cp i386/arch/x86/kernel/new_hello.c x86_64/arch/x86/kernel/ 
    12461246 * viola04:linux-2.6.35.14 s0711489$ svn merge i386/include/linux/syscalls.h x86_64/include/linux/syscalls.h -r 1358:1359 
     1247 
     1248 = 10/26 = 
     1249 == add new system call (x86_64) (cont) == 
     1250 * viola06:x86_64 s0711489$ svn revert include/linux/syscalls.h arch/x86/kernel/new_hello.c arch/x86/include/asm/new_hello.h 
     1251 * viola06:x86_64 s0711489$ rm arch/x86/kernel/new_hello.c arch/x86/include/asm/new_hello.h 
     1252 
     1253 * viola06:linux-2.6.35.14 s0711489$ svn merge i386/arch/ x86_64/arch/ -r1352:1359 
     1254 * viola06:linux-2.6.35.14 s0711489$ svn merge i386/include/ x86_64/include/ -r1358:1359 
     1255 * viola04:x86_64 s0711489$ vim arch/x86/include/asm/unistd_64.h 
     1256{{{ 
     1257Index: include/linux/syscalls.h 
     1258=================================================================== 
     1259--- include/linux/syscalls.h    (revision 1367) 
     1260+++ include/linux/syscalls.h    (revision 1368) 
     1261@@ -826,4 +826,6 @@ 
     1262                        unsigned long fd, unsigned long pgoff); 
     1263 asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg); 
     1264  
     1265+asmlinkage long sys_new_hello(int i); 
     1266+ 
     1267 #endif 
     1268Index: include 
     1269=================================================================== 
     1270--- include     (revision 1367) 
     1271+++ include     (revision 1368) 
     1272 
     1273Property changes on: include 
     1274___________________________________________________________________ 
     1275Added: svn:mergeinfo 
     1276   Merged /trunk/coursework/KernelHack/linux-2.6.35.14/i386/include:r1359 
     1277Index: arch/x86/kernel/syscall_table_32.S 
     1278=================================================================== 
     1279--- arch/x86/kernel/syscall_table_32.S  (revision 1367) 
     1280+++ arch/x86/kernel/syscall_table_32.S  (revision 1368) 
     1281@@ -337,3 +337,4 @@ 
     1282        .long sys_rt_tgsigqueueinfo     /* 335 */ 
     1283        .long sys_perf_event_open 
     1284        .long sys_recvmmsg 
     1285+       .long sys_new_hello 
     1286Index: arch/x86/kernel/Makefile 
     1287=================================================================== 
     1288--- arch/x86/kernel/Makefile    (revision 1367) 
     1289+++ arch/x86/kernel/Makefile    (revision 1368) 
     1290@@ -131,3 +131,5 @@ 
     1291        obj-$(CONFIG_PCI_MMCONFIG)      += mmconf-fam10h_64.o 
     1292        obj-y                           += vsmp_64.o 
     1293 endif 
     1294+ 
     1295+obj-y                          += new_hello.o 
     1296Index: arch/x86/kernel/new_hello.c 
     1297=================================================================== 
     1298--- arch/x86/kernel/new_hello.c (revision 0) 
     1299+++ arch/x86/kernel/new_hello.c (revision 1368) 
     1300@@ -0,0 +1,7 @@ 
     1301+#include <linux/kernel.h> 
     1302+#include <linux/syscalls.h> 
     1303+ 
     1304+SYSCALL_DEFINE1(new_hello, int, i) { 
     1305+        printk(KERN_DEBUG "new_hello() syscall with %d\n", i); 
     1306+        return i; 
     1307+} 
     1308Index: arch/x86/include/asm/unistd_32.h 
     1309=================================================================== 
     1310--- arch/x86/include/asm/unistd_32.h    (revision 1367) 
     1311+++ arch/x86/include/asm/unistd_32.h    (revision 1368) 
     1312@@ -343,10 +343,11 @@ 
     1313 #define __NR_rt_tgsigqueueinfo 335 
     1314 #define __NR_perf_event_open   336 
     1315 #define __NR_recvmmsg          337 
     1316+#define __NR_new_hello         338 
     1317  
     1318 #ifdef __KERNEL__ 
     1319  
     1320-#define NR_syscalls 338 
     1321+#define NR_syscalls 339 
     1322  
     1323 #define __ARCH_WANT_IPC_PARSE_VERSION 
     1324 #define __ARCH_WANT_OLD_READDIR 
     1325Index: arch/x86/include/asm/new_hello.h 
     1326=================================================================== 
     1327--- arch/x86/include/asm/new_hello.h    (revision 0) 
     1328+++ arch/x86/include/asm/new_hello.h    (revision 1368) 
     1329@@ -0,0 +1,7 @@ 
     1330+#ifndef _ASM_X86_NEW_HELLO_H 
     1331+#define _ASM_X86_NEW_HELLO_H 
     1332+ 
     1333+#include <asm/unistd.h> 
     1334+#define new_hello(x) syscall(__NR_new_hello, x) 
     1335+ 
     1336+#endif /* _ASM_X86_NEW_HELLO_H */ 
     1337Index: arch/x86/include/asm/unistd_64.h 
     1338=================================================================== 
     1339--- arch/x86/include/asm/unistd_64.h    (revision 1367) 
     1340+++ arch/x86/include/asm/unistd_64.h    (revision 1368) 
     1341@@ -663,6 +663,8 @@ 
     1342 __SYSCALL(__NR_perf_event_open, sys_perf_event_open) 
     1343 #define __NR_recvmmsg                          299 
     1344 __SYSCALL(__NR_recvmmsg, sys_recvmmsg) 
     1345+#define __NR_new_hello                         300 
     1346+__SYSCALL(__NR_new_hello, sys_new_hello) 
     1347  
     1348 #ifndef __NO_STUBS 
     1349 #define __ARCH_WANT_OLD_READDIR 
     1350Index: arch 
     1351=================================================================== 
     1352--- arch        (revision 1367) 
     1353+++ arch        (revision 1368) 
     1354 
     1355Property changes on: arch 
     1356___________________________________________________________________ 
     1357Added: svn:mergeinfo 
     1358   Merged /trunk/coursework/KernelHack/linux-2.6.35.14/i386/arch:r1353-1359 
     1359}}} 
     1360 
     1361 * viola06:x86_64 s0711489$ make -j 16 
     1362{{{ 
     1363Kernel: arch/x86/boot/bzImage is ready  (#2) 
     1364}}} 
     1365 * viola06:x86_64 s0711489$ make modules 
     1366 
     1367 
     1368 * s0711489@ubuntu-lucid64:~$ sudo /mnt/hgfs/tools/install.sh 
     1369 
     1370 * s0711489@ubuntu-lucid64:~/KernelHack/03$ uname -a 
     1371{{{ 
     1372Linux ubuntu-lucid64 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:07:13 UTC 2011 x86_64 GNU/Linux 
     1373}}} 
     1374 * s0711489@ubuntu-lucid64:~/KernelHack/03$ gcc -I /lib/modules/2.6.35.14/build/arch/x86/include/ new_hello.c 
     1375{{{ 
     1376new_hello.c: In function ‘main’: 
     1377new_hello.c:9: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’ 
     1378}}} 
     1379 * s0711489@ubuntu-lucid64:~/KernelHack/03$ ./a.out 
     1380{{{ 
     1381new_hello(1) -> -1 
     1382}}} 
     1383  * reboot 前はsyscallが存在しない 
     1384 
     1385 * s0711489@ubuntu-lucid64:~$ sudo reboot 
     1386 
     1387 * s0711489@ubuntu-lucid64:~$ uname -a 
     1388{{{ 
     1389Linux ubuntu-lucid64 2.6.35.14 #2 SMP Wed Oct 26 13:06:41 JST 2011 x86_64 GNU/Linux 
     1390}}} 
     1391 * s0711489@ubuntu-lucid64:~/KernelHack/03$ ./a.out 
     1392{{{ 
     1393new_hello(1) -> 1 
     1394}}} 
     1395 * s0711489@ubuntu-lucid64:~/KernelHack/03$ ./a.out 2 
     1396{{{ 
     1397new_hello(2) -> 2 
     1398}}} 
     1399 * s0711489@ubuntu-lucid64:~/KernelHack/03$ ./a.out 2 3 
     1400{{{ 
     1401new_hello(3) -> 3 
     1402}}} 
     1403 * s0711489@ubuntu-lucid64:~/KernelHack/03$ ./a.out 2 3 4 
     1404{{{ 
     1405new_hello(4) -> 4 
     1406}}} 
     1407 * s0711489@ubuntu-lucid64:~/KernelHack/03$ tail /var/log/kern.log 
     1408{{{ 
     1409Oct 26 13:12:40 ubuntu-lucid64 kernel: [   40.542158] new_hello() syscall with 1 
     1410Oct 26 13:12:42 ubuntu-lucid64 kernel: [   42.668465] new_hello() syscall with 2 
     1411Oct 26 13:12:43 ubuntu-lucid64 kernel: [   43.908292] new_hello() syscall with 3 
     1412Oct 26 13:12:45 ubuntu-lucid64 kernel: [   45.645548] new_hello() syscall with 4 
     1413}}}