This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [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 15:22:50 +0900
- Subject: Re: [PATCH] Support mmap2 , *32 syscalls for m32r-linux-sim.
- References: <41B3CCCF.20701@renesas.com>
Hi Andrew,
Hi Kei,
Excuse me, I sent a miss patch.
Please replace with this patch.
Please commit this patch.
Regards,
Kazuhiro Inaoka
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: syscall.h
===================================================================
RCS file: /cvs/src/src/sim/m32r/syscall.h,v
retrieving revision 1.1
diff -u -r1.1 syscall.h
--- syscall.h 19 Dec 2003 11:43:57 -0000 1.1
+++ syscall.h 6 Dec 2004 06:05:03 -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: 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
--- traps-linux.c 27 Oct 2004 17:19:02 -0000 1.2
+++ traps-linux.c 6 Dec 2004 06:05:04 -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,33 @@
}
break;
#endif
+ case __NR_mmap2:
+ {
+ void *addr;
+ size_t len;
+ int prot, flags, fildes;
+ off_t off;
+
+ addr = (void *) t2h_addr(cb, &s, arg1);
+ len = arg2;
+ prot = arg3;
+ flags = arg4;
+ fildes = arg5;
+ off = arg6 << 12;
+
+ result = (int) mmap(addr, len, prot, flags, fildes, off);
+ errcode = errno;
+ if (result != -1)
+ {
+ char c;
+ if (sim_core_read_buffer (sd, NULL, read_map, &c, result, 1) == 0)
+ sim_core_attach (sd, NULL,
+ 0, access_read_write_exec, 0,
+ result, len, 0, NULL, NULL);
+ }
+ }
+ break;
+
case __NR_mmap:
{
void *addr;
@@ -813,6 +846,7 @@
errcode = errno;
break;
+ case __NR_fchown32:
case __NR_fchown:
result = fchown(arg1, arg2, arg3);
errcode = errno;
@@ -1100,11 +1134,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 +1267,7 @@
errcode = errno;
break;
+ case __NR_getresuid32:
case __NR_getresuid:
{
uid_t ruid, euid, suid;
@@ -1261,6 +1298,7 @@
}
break;
+ case __NR_getresgid32:
case __NR_getresgid:
{
uid_t rgid, egid, sgid;
@@ -1287,6 +1325,7 @@
errcode = errno;
break;
+ case __NR_chown32:
case __NR_chown:
result = chown((char *) t2h_addr(cb, &s, arg1), arg2, arg3);
errcode = errno;