diff options
author | Mark Mitchell <mark@codesourcery.com> | 2005-03-21 21:23:35 +0000 |
---|---|---|
committer | Mark Mitchell <mark@codesourcery.com> | 2005-03-21 21:23:35 +0000 |
commit | d3ea68091c7b557fa76c915778273f6b9a743938 (patch) | |
tree | 2a68a6676df975f4251f4897cde6a6551ef6a801 /gdb/remote-fileio.c | |
parent | d460b7f5daae7daa8044d121d25fd41817bd4bd7 (diff) | |
download | gdb-d3ea68091c7b557fa76c915778273f6b9a743938.zip gdb-d3ea68091c7b557fa76c915778273f6b9a743938.tar.gz gdb-d3ea68091c7b557fa76c915778273f6b9a743938.tar.bz2 |
* configure.ac (stat.st_blksize): Check for it.
(getuid): Likewise.
(getgid): Likewise.
* configure: Regenerated.
* config.in: Likewise.
* remote-fileio.c (remote_fileio_to_fio_stat): Check
HAVE_STRUCT_STAT_ST_BLKSIZE.
Diffstat (limited to 'gdb/remote-fileio.c')
-rw-r--r-- | gdb/remote-fileio.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/gdb/remote-fileio.c b/gdb/remote-fileio.c index 7d8744d..9c2e430 100644 --- a/gdb/remote-fileio.c +++ b/gdb/remote-fileio.c @@ -417,6 +417,8 @@ remote_fileio_to_fio_ulong (LONGEST num, fio_ulong_t fnum) static void remote_fileio_to_fio_stat (struct stat *st, struct fio_stat *fst) { + LONGEST blksize; + /* `st_dev' is set in the calling function */ remote_fileio_to_fio_uint ((long) st->st_ino, fst->fst_ino); remote_fileio_to_fio_mode (st->st_mode, fst->fst_mode); @@ -425,15 +427,20 @@ remote_fileio_to_fio_stat (struct stat *st, struct fio_stat *fst) remote_fileio_to_fio_uint ((long) st->st_gid, fst->fst_gid); remote_fileio_to_fio_uint ((long) st->st_rdev, fst->fst_rdev); remote_fileio_to_fio_ulong ((LONGEST) st->st_size, fst->fst_size); - remote_fileio_to_fio_ulong ((LONGEST) st->st_blksize, fst->fst_blksize); +#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE + blksize = st->st_blksize; +#else + blksize = 512; +#endif + remote_fileio_to_fio_ulong (blksize, fst->fst_blksize); #if HAVE_STRUCT_STAT_ST_BLOCKS remote_fileio_to_fio_ulong ((LONGEST) st->st_blocks, fst->fst_blocks); #else /* FIXME: This is correct for DJGPP, but other systems that don't have st_blocks, if any, might prefer 512 instead of st_blksize. (eliz, 30-12-2003) */ - remote_fileio_to_fio_ulong (((LONGEST) st->st_size + st->st_blksize - 1) - / (LONGEST) st->st_blksize, + remote_fileio_to_fio_ulong (((LONGEST) st->st_size + blksize - 1) + / blksize, fst->fst_blocks); #endif remote_fileio_to_fio_time (st->st_atime, fst->fst_atime); @@ -1150,11 +1157,21 @@ remote_fileio_func_fstat (char *buf) remote_fileio_to_fio_uint (1, fst.fst_dev); st.st_mode = S_IFCHR | (fd == FIO_FD_CONSOLE_IN ? S_IRUSR : S_IWUSR); st.st_nlink = 1; +#ifdef HAVE_GETUID st.st_uid = getuid (); +#else + st.st_uid = 0; +#endif +#ifdef HAVE_GETGID st.st_gid = getgid (); +#else + st.st_gid = 0; +#endif st.st_rdev = 0; st.st_size = 0; +#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE st.st_blksize = 512; +#endif #if HAVE_STRUCT_STAT_ST_BLOCKS st.st_blocks = 0; #endif |