64-bit VFS_TRUNCATE_OFF
Change-Id: I4bd5cc57ddda2525b0bec6f044f35196a2c21f2e
This commit is contained in:
parent
4694fcc1d5
commit
188a5fde1f
4 changed files with 5 additions and 10 deletions
|
@ -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 */
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
Loading…
Reference in a new issue