This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] Support mmap2 , *32 syscalls for m32r-linux-sim.
- From: Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
- To: Andrew Cagney <cagney at gnu dot org>, Kei Sakamoto <sakamoto dot kei at renesas dot com>
- Cc: "gdb-patches at sources dot redhat dot com" <gdb-patches at sources dot redhat dot com>
- Date: Mon, 06 Dec 2004 12:06:55 +0900
- Subject: [PATCH] Support mmap2 , *32 syscalls for m32r-linux-sim.
Hi Andrew,
Hi Kei,
Our provided glibc uses a mmap2 system call
and our linux-kernel uses system calls for 32bit uids.
http://www.linux-m32r.org/eng/download.html
But the dummy system call routine of m32r-linux-sim have not
supported that.
This patch fixes these problems.
Please commit it.
Regards,
Kazuhiro Inaoka
sim/m32r/ChangeLog
2004-12-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* traps-linux.c (m32r_trap): Added dymmy systemcall's entries of
__NR_mmap2, __NR_lchown32, __NR_getuid32, __NR_getgid32,
__NR_geteuid32, __NR_getegid32, __NR_getgroups32, __NR_fchown32,
__NR_setfsuid32, __NR_setfsgid32, __NR_getresuid32,
__NR_getresgid32 and __NR_chown32.
* syscall.h: Added new definitions of system call number.
Index: m32r/syscall.h
===================================================================
RCS file: /cvs/src/src/sim/m32r/syscall.h,v
retrieving revision 1.1
diff -u -r1.1 syscall.h
--- m32r/syscall.h 19 Dec 2003 11:43:57 -0000 1.1
+++ m32r/syscall.h 6 Dec 2004 02:17:45 -0000
@@ -193,3 +193,89 @@
#define __NR_putpmsg 189 /* some people actually want streams */
#define __NR_vfork 190
+#define __NR_pread64 180
+#define __NR_pwrite64 181
+
+#define __NR_ugetrlimit 191 /* SuS compliant getrlimit */
+#define __NR_mmap2 192
+#define __NR_truncate64 193
+#define __NR_ftruncate64 194
+#define __NR_stat64 195
+#define __NR_lstat64 196
+#define __NR_fstat64 197
+#define __NR_lchown32 198
+#define __NR_getuid32 199
+#define __NR_getgid32 200
+#define __NR_geteuid32 201
+#define __NR_getegid32 202
+#define __NR_setreuid32 203
+#define __NR_setregid32 204
+#define __NR_getgroups32 205
+#define __NR_setgroups32 206
+#define __NR_fchown32 207
+#define __NR_setresuid32 208
+#define __NR_getresuid32 209
+#define __NR_setresgid32 210
+#define __NR_getresgid32 211
+#define __NR_chown32 212
+#define __NR_setuid32 213
+#define __NR_setgid32 214
+#define __NR_setfsuid32 215
+#define __NR_setfsgid32 216
+#define __NR_pivot_root 217
+#define __NR_mincore 218
+#define __NR_madvise 219
+#define __NR_madvise1 219 /* delete when C lib stub is removed */
+#define __NR_getdents64 220
+#define __NR_fcntl64 221
+/* 223 is unused */
+#define __NR_gettid 224
+#define __NR_readahead 225
+#define __NR_setxattr 226
+#define __NR_lsetxattr 227
+#define __NR_fsetxattr 228
+#define __NR_getxattr 229
+#define __NR_lgetxattr 230
+#define __NR_fgetxattr 231
+#define __NR_listxattr 232
+#define __NR_llistxattr 233
+#define __NR_flistxattr 234
+#define __NR_removexattr 235
+#define __NR_lremovexattr 236
+#define __NR_fremovexattr 237
+#define __NR_tkill 238
+#define __NR_sendfile64 239
+#define __NR_futex 240
+#define __NR_sched_setaffinity 241
+#define __NR_sched_getaffinity 242
+#define __NR_set_thread_area 243
+#define __NR_get_thread_area 244
+#define __NR_io_setup 245
+#define __NR_io_destroy 246
+#define __NR_io_getevents 247
+#define __NR_io_submit 248
+#define __NR_io_cancel 249
+#define __NR_fadvise64 250
+
+#define __NR_exit_group 252
+#define __NR_lookup_dcookie 253
+#define __NR_epoll_create 254
+#define __NR_epoll_ctl 255
+#define __NR_epoll_wait 256
+#define __NR_remap_file_pages 257
+#define __NR_set_tid_address 258
+#define __NR_timer_create 259
+#define __NR_timer_settime (__NR_timer_create+1)
+#define __NR_timer_gettime (__NR_timer_create+2)
+#define __NR_timer_getoverrun (__NR_timer_create+3)
+#define __NR_timer_delete (__NR_timer_create+4)
+#define __NR_clock_settime (__NR_timer_create+5)
+#define __NR_clock_gettime (__NR_timer_create+6)
+#define __NR_clock_getres (__NR_timer_create+7)
+#define __NR_clock_nanosleep (__NR_timer_create+8)
+#define __NR_statfs64 268
+#define __NR_fstatfs64 269
+#define __NR_tgkill 270
+#define __NR_utimes 271
+#define __NR_fadvise64_64 272
+#define __NR_vserver 273
Index: m32r/traps-linux.c
===================================================================
RCS file: /cvs/src/src/sim/m32r/traps-linux.c,v
retrieving revision 1.2
diff -u -r1.2 traps-linux.c
--- m32r/traps-linux.c 27 Oct 2004 17:19:02 -0000 1.2
+++ m32r/traps-linux.c 6 Dec 2004 02:17:45 -0000
@@ -384,6 +384,7 @@
errcode = errno;
break;
+ case __NR_lchown32:
case __NR_lchown:
result = lchown((char *) t2h_addr(cb, &s, arg1),
(uid_t) arg2, (gid_t) arg3);
@@ -400,6 +401,7 @@
errcode = errno;
break;
+ case __NR_getuid32:
case __NR_getuid:
result = getuid();
errcode = errno;
@@ -483,16 +485,19 @@
//result = arg1;
break;
+ case __NR_getgid32:
case __NR_getgid:
result = getgid();
errcode = errno;
break;
+ case __NR_geteuid32:
case __NR_geteuid:
result = geteuid();
errcode = errno;
break;
+ case __NR_getegid32:
case __NR_getegid:
result = getegid();
errcode = errno;
@@ -592,6 +597,7 @@
}
break;
+ case __NR_getgroups32:
case __NR_getgroups:
{
gid_t *list;
@@ -750,6 +756,7 @@
}
break;
#endif
+ case __NR_mmap2:
case __NR_mmap:
{
void *addr;
@@ -813,6 +820,7 @@
errcode = errno;
break;
+ case __NR_fchown32:
case __NR_fchown:
result = fchown(arg1, arg2, arg3);
errcode = errno;
@@ -1100,11 +1108,13 @@
errcode = errno;
break;
+ case __NR_setfsuid32:
case __NR_setfsuid:
result = setfsuid(arg1);
errcode = errno;
break;
+ case __NR_setfsgid32:
case __NR_setfsgid:
result = setfsgid(arg1);
errcode = errno;
@@ -1231,6 +1241,7 @@
errcode = errno;
break;
+ case __NR_getresuid32:
case __NR_getresuid:
{
uid_t ruid, euid, suid;
@@ -1261,6 +1272,7 @@
}
break;
+ case __NR_getresgid32:
case __NR_getresgid:
{
uid_t rgid, egid, sgid;
@@ -1287,6 +1299,7 @@
errcode = errno;
break;
+ case __NR_chown32:
case __NR_chown:
result = chown((char *) t2h_addr(cb, &s, arg1), arg2, arg3);
errcode = errno;