This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Support mmap2 , *32 syscalls for m32r-linux-sim.


Since this patch affects only m32r-sim, I believe I'm granted permission 
to approve it. If it's beyond my authority, please let me know.

Approved and committed.

Kei Sakamoto

> 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;
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]