64-bit VFS_TRUNCATE_OFF

Change-Id: I4bd5cc57ddda2525b0bec6f044f35196a2c21f2e
This commit is contained in:
Ben Gras 2014-02-24 17:12:30 +01:00 committed by Lionel Sambuc
parent 4694fcc1d5
commit 188a5fde1f
4 changed files with 5 additions and 10 deletions

View file

@ -301,8 +301,7 @@
#define VFS_TRUNCATE_FD m2_i1 /* int */ #define VFS_TRUNCATE_FD m2_i1 /* int */
#define VFS_TRUNCATE_NAME m2_p1 /* const char * */ #define VFS_TRUNCATE_NAME m2_p1 /* const char * */
#define VFS_TRUNCATE_LEN m2_i1 /* size_t */ #define VFS_TRUNCATE_LEN m2_i1 /* size_t */
#define VFS_TRUNCATE_OFF_LO m2_l1 /* off_t (low 32 bits) */ #define VFS_TRUNCATE_OFF m2_ll1 /* off_t */
#define VFS_TRUNCATE_OFF_HI m2_l2 /* off_t (high 32 bits) */
/* Field names for the pipe2(2) call. */ /* Field names for the pipe2(2) call. */
#define VFS_PIPE2_FD0 m1_i1 /* int */ #define VFS_PIPE2_FD0 m1_i1 /* int */

View file

@ -15,8 +15,7 @@ int ftruncate(int _fd, off_t _length)
message m; message m;
memset(&m, 0, sizeof(m)); memset(&m, 0, sizeof(m));
m.VFS_TRUNCATE_OFF_LO = ex64lo(_length); m.VFS_TRUNCATE_OFF = _length;
m.VFS_TRUNCATE_OFF_HI = ex64hi(_length);
m.VFS_TRUNCATE_FD = _fd; m.VFS_TRUNCATE_FD = _fd;
return(_syscall(VFS_PROC_NR, VFS_FTRUNCATE, &m)); return(_syscall(VFS_PROC_NR, VFS_FTRUNCATE, &m));

View file

@ -13,8 +13,7 @@ int truncate(const char *_path, off_t _length)
memset(&m, 0, sizeof(m)); memset(&m, 0, sizeof(m));
m.VFS_TRUNCATE_NAME = (char *) __UNCONST(_path); m.VFS_TRUNCATE_NAME = (char *) __UNCONST(_path);
m.VFS_TRUNCATE_LEN = strlen(_path)+1; m.VFS_TRUNCATE_LEN = strlen(_path)+1;
m.VFS_TRUNCATE_OFF_LO = ex64lo(_length); m.VFS_TRUNCATE_OFF = _length;
m.VFS_TRUNCATE_OFF_HI = ex64hi(_length);
return(_syscall(VFS_PROC_NR, VFS_TRUNCATE, &m)); return(_syscall(VFS_PROC_NR, VFS_TRUNCATE, &m));
} }

View file

@ -297,8 +297,7 @@ int do_truncate(void)
resolve.l_vmnt_lock = VMNT_READ; resolve.l_vmnt_lock = VMNT_READ;
resolve.l_vnode_lock = VNODE_WRITE; resolve.l_vnode_lock = VNODE_WRITE;
length = (off_t) make64(job_m_in.VFS_TRUNCATE_OFF_LO, length = (off_t) job_m_in.VFS_TRUNCATE_OFF;
job_m_in.VFS_TRUNCATE_OFF_HI);
if (length < 0) return(EINVAL); if (length < 0) return(EINVAL);
/* Temporarily open file */ /* Temporarily open file */
@ -336,8 +335,7 @@ int do_ftruncate(void)
scratch(fp).file.fd_nr = job_m_in.VFS_TRUNCATE_FD; scratch(fp).file.fd_nr = job_m_in.VFS_TRUNCATE_FD;
length = (off_t) make64(job_m_in.VFS_TRUNCATE_OFF_LO, length = (off_t) job_m_in.VFS_TRUNCATE_OFF;
job_m_in.VFS_TRUNCATE_OFF_HI);
if (length < 0) return(EINVAL); if (length < 0) return(EINVAL);
/* File is already opened; get a vnode pointer from filp */ /* File is already opened; get a vnode pointer from filp */