Removing VFS_UTIMENS_* field macros.
Change-Id: I3be1acfbb77b6e229d784d8dbc3ceec1b26abf90
This commit is contained in:
		
							parent
							
								
									94c9376df5
								
							
						
					
					
						commit
						b33edbfe7a
					
				| @ -288,16 +288,6 @@ | |||||||
| #define VFS_MAPDRIVER_LABELLEN	m1_i2	/* size_t */ | #define VFS_MAPDRIVER_LABELLEN	m1_i2	/* size_t */ | ||||||
| #define VFS_MAPDRIVER_LABEL	m1_p1	/* char * */ | #define VFS_MAPDRIVER_LABEL	m1_p1	/* char * */ | ||||||
| 
 | 
 | ||||||
| /* Field names for the utimens(2) call. */ |  | ||||||
| #define VFS_UTIMENS_FD		m2_i1	/* int */ |  | ||||||
| #define VFS_UTIMENS_NAME	m2_p1	/* const char * */ |  | ||||||
| #define VFS_UTIMENS_LEN		m2_i1	/* size_t */ |  | ||||||
| #define VFS_UTIMENS_ATIME	m2_l1	/* time_t */ |  | ||||||
| #define VFS_UTIMENS_ANSEC	m2_i2	/* long */ |  | ||||||
| #define VFS_UTIMENS_MTIME	m2_l2	/* time_t */ |  | ||||||
| #define VFS_UTIMENS_MNSEC	m2_i3	/* long */ |  | ||||||
| #define VFS_UTIMENS_FLAGS	m2_s1	/* int */ |  | ||||||
| 
 |  | ||||||
| /* Field names for the fsync(2) call. */ | /* Field names for the fsync(2) call. */ | ||||||
| #define VFS_FSYNC_FD		m1_i1	/* int */ | #define VFS_FSYNC_FD		m1_i1	/* int */ | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -134,6 +134,19 @@ typedef struct { | |||||||
| } mess_sigcalls; | } mess_sigcalls; | ||||||
| _ASSERT_MSG_SIZE(mess_sigcalls); | _ASSERT_MSG_SIZE(mess_sigcalls); | ||||||
| 
 | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	time_t atime; | ||||||
|  | 	time_t mtime; | ||||||
|  | 	long ansec; | ||||||
|  | 	long mnsec; | ||||||
|  | 	size_t len; | ||||||
|  | 	char *name; | ||||||
|  | 	int fd; | ||||||
|  | 	int flags; | ||||||
|  | 	uint8_t padding[16]; | ||||||
|  | } mess_vfs_utimens; | ||||||
|  | _ASSERT_MSG_SIZE(mess_vfs_utimens); | ||||||
|  | 
 | ||||||
| typedef struct { | typedef struct { | ||||||
| 	off_t offset; | 	off_t offset; | ||||||
| 	dev_t dev; | 	dev_t dev; | ||||||
| @ -186,6 +199,7 @@ typedef struct { | |||||||
| 	mess_mmap m_mmap; | 	mess_mmap m_mmap; | ||||||
| 	mess_notify m_notify; | 	mess_notify m_notify; | ||||||
| 	mess_sigcalls m_sigcalls; | 	mess_sigcalls m_sigcalls; | ||||||
|  | 	mess_vfs_utimens m_vfs_utimens; | ||||||
| 	mess_vm_vfs_mmap m_vm_vfs_mmap; | 	mess_vm_vfs_mmap m_vm_vfs_mmap; | ||||||
| 	mess_vmmcp m_vmmcp; | 	mess_vmmcp m_vmmcp; | ||||||
| 	mess_vmmcp_reply m_vmmcp_reply; | 	mess_vmmcp_reply m_vmmcp_reply; | ||||||
|  | |||||||
| @ -13,14 +13,13 @@ int futimens(int fd, const struct timespec tv[2]) | |||||||
|   if (tv == NULL) tv = now; |   if (tv == NULL) tv = now; | ||||||
| 
 | 
 | ||||||
|   memset(&m, 0, sizeof(m)); |   memset(&m, 0, sizeof(m)); | ||||||
|   m.VFS_UTIMENS_FD = fd; |   m.m_vfs_utimens.fd = fd; | ||||||
|   /* For now just truncate to 32bit time_t values. */ |   m.m_vfs_utimens.atime = tv[0].tv_sec; | ||||||
|   m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec; |   m.m_vfs_utimens.mtime = tv[1].tv_sec; | ||||||
|   m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec; |   m.m_vfs_utimens.ansec = tv[0].tv_nsec; | ||||||
|   m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_nsec; |   m.m_vfs_utimens.mnsec = tv[1].tv_nsec; | ||||||
|   m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_nsec; |   m.m_vfs_utimens.name = NULL; | ||||||
|   m.VFS_UTIMENS_NAME = NULL; |   m.m_vfs_utimens.flags = 0; | ||||||
|   m.VFS_UTIMENS_FLAGS = 0; |  | ||||||
| 
 | 
 | ||||||
|   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); |   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); | ||||||
| } | } | ||||||
|  | |||||||
| @ -15,19 +15,19 @@ int futimes(int fd, const struct timeval tv[2]) | |||||||
|   message m; |   message m; | ||||||
| 
 | 
 | ||||||
|   memset(&m, 0, sizeof(m)); |   memset(&m, 0, sizeof(m)); | ||||||
|   m.VFS_UTIMENS_FD = fd; |   m.m_vfs_utimens.fd = fd; | ||||||
|   if (tv == NULL) { |   if (tv == NULL) { | ||||||
| 	m.VFS_UTIMENS_ATIME = m.VFS_UTIMENS_MTIME = 0; | 	m.m_vfs_utimens.atime = m.m_vfs_utimens.mtime = 0; | ||||||
| 	m.VFS_UTIMENS_ANSEC = m.VFS_UTIMENS_MNSEC = UTIME_NOW; | 	m.m_vfs_utimens.ansec = m.m_vfs_utimens.mnsec = UTIME_NOW; | ||||||
|   } |   } | ||||||
|   else { |   else { | ||||||
| 	m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec; | 	m.m_vfs_utimens.atime = tv[0].tv_sec; | ||||||
| 	m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec; | 	m.m_vfs_utimens.mtime = tv[1].tv_sec; | ||||||
| 	m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_usec * 1000; | 	m.m_vfs_utimens.ansec = tv[0].tv_usec * 1000; | ||||||
| 	m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_usec * 1000; | 	m.m_vfs_utimens.mnsec = tv[1].tv_usec * 1000; | ||||||
|   } |   } | ||||||
|   m.VFS_UTIMENS_NAME = NULL; |   m.m_vfs_utimens.name = NULL; | ||||||
|   m.VFS_UTIMENS_FLAGS = 0; |   m.m_vfs_utimens.flags = 0; | ||||||
| 
 | 
 | ||||||
|   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); |   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); | ||||||
| } | } | ||||||
|  | |||||||
| @ -25,20 +25,19 @@ int lutimes(const char *name, const struct timeval tv[2]) | |||||||
| 	return -1; | 	return -1; | ||||||
|   } |   } | ||||||
|   memset(&m, 0, sizeof(m)); |   memset(&m, 0, sizeof(m)); | ||||||
|   m.VFS_UTIMENS_FD = strlen(name) + 1; |   m.m_vfs_utimens.len = strlen(name) + 1; | ||||||
|   m.VFS_UTIMENS_NAME = (char *) __UNCONST(name); |   m.m_vfs_utimens.name = (char *) __UNCONST(name); | ||||||
|   if (tv == NULL) { |   if (tv == NULL) { | ||||||
| 	m.VFS_UTIMENS_ATIME = m.VFS_UTIMENS_MTIME = 0; | 	m.m_vfs_utimens.atime = m.m_vfs_utimens.mtime = 0; | ||||||
| 	m.VFS_UTIMENS_ANSEC = m.VFS_UTIMENS_MNSEC = UTIME_NOW; | 	m.m_vfs_utimens.ansec = m.m_vfs_utimens.mnsec = UTIME_NOW; | ||||||
|   } |   } | ||||||
|   else { |   else { | ||||||
| 	/* For now just truncate time_t values to 32bits. */ | 	m.m_vfs_utimens.atime = tv[0].tv_sec; | ||||||
| 	m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec; | 	m.m_vfs_utimens.mtime = tv[1].tv_sec; | ||||||
| 	m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec; | 	m.m_vfs_utimens.ansec = tv[0].tv_usec * 1000; | ||||||
| 	m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_usec * 1000; | 	m.m_vfs_utimens.mnsec = tv[1].tv_usec * 1000; | ||||||
| 	m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_usec * 1000; |  | ||||||
|   } |   } | ||||||
|   m.VFS_UTIMENS_FLAGS = AT_SYMLINK_NOFOLLOW; |   m.m_vfs_utimens.flags = AT_SYMLINK_NOFOLLOW; | ||||||
| 
 | 
 | ||||||
|   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); |   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); | ||||||
| } | } | ||||||
|  | |||||||
| @ -44,14 +44,13 @@ int utimensat(int fd, const char *name, const struct timespec tv[2], | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   memset(&m, 0, sizeof(m)); |   memset(&m, 0, sizeof(m)); | ||||||
|   m.VFS_UTIMENS_LEN = strlen(name) + 1; |   m.m_vfs_utimens.len = strlen(name) + 1; | ||||||
|   m.VFS_UTIMENS_NAME = (char *) __UNCONST(name); |   m.m_vfs_utimens.name = __UNCONST(name); | ||||||
|   /* For now just truncate time_t values to 32bits. */ |   m.m_vfs_utimens.atime = tv[0].tv_sec; | ||||||
|   m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec; |   m.m_vfs_utimens.mtime = tv[1].tv_sec; | ||||||
|   m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec; |   m.m_vfs_utimens.ansec = tv[0].tv_nsec; | ||||||
|   m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_nsec; |   m.m_vfs_utimens.mnsec = tv[1].tv_nsec; | ||||||
|   m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_nsec; |   m.m_vfs_utimens.flags = flags; | ||||||
|   m.VFS_UTIMENS_FLAGS = flags; |  | ||||||
| 
 | 
 | ||||||
|   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); |   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); | ||||||
| } | } | ||||||
|  | |||||||
| @ -24,20 +24,19 @@ int utimes(const char *name, const struct timeval tv[2]) | |||||||
| 	return -1; | 	return -1; | ||||||
|   } |   } | ||||||
|   memset(&m, 0, sizeof(m)); |   memset(&m, 0, sizeof(m)); | ||||||
|   m.VFS_UTIMENS_LEN = strlen(name) + 1; |   m.m_vfs_utimens.len = strlen(name) + 1; | ||||||
|   m.VFS_UTIMENS_NAME = (char *) __UNCONST(name); |   m.m_vfs_utimens.name = __UNCONST(name); | ||||||
|   if (tv == NULL) { |   if (tv == NULL) { | ||||||
| 	m.VFS_UTIMENS_ATIME = m.VFS_UTIMENS_MTIME = 0; | 	m.m_vfs_utimens.atime = m.m_vfs_utimens.mtime = 0; | ||||||
| 	m.VFS_UTIMENS_ANSEC = m.VFS_UTIMENS_MNSEC = UTIME_NOW; | 	m.m_vfs_utimens.ansec = m.m_vfs_utimens.mnsec = UTIME_NOW; | ||||||
|   } |   } | ||||||
|   else { |   else { | ||||||
| 	/* For now just truncate time_t values to 32bits. */ | 	m.m_vfs_utimens.atime = tv[0].tv_sec; | ||||||
| 	m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec; | 	m.m_vfs_utimens.mtime = tv[1].tv_sec; | ||||||
| 	m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec; | 	m.m_vfs_utimens.ansec = tv[0].tv_usec * 1000; | ||||||
| 	m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_usec * 1000; | 	m.m_vfs_utimens.mnsec = tv[1].tv_usec * 1000; | ||||||
| 	m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_usec * 1000; |  | ||||||
|   } |   } | ||||||
|   m.VFS_UTIMENS_FLAGS = 0; |   m.m_vfs_utimens.flags = 0; | ||||||
| 
 | 
 | ||||||
|   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); |   return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m)); | ||||||
| } | } | ||||||
|  | |||||||
| @ -51,19 +51,19 @@ int do_utimens(void) | |||||||
|   memset(&now, 0, sizeof(now)); |   memset(&now, 0, sizeof(now)); | ||||||
| 
 | 
 | ||||||
|   /* The case times==NULL is handled by the caller, replaced with UTIME_NOW */ |   /* The case times==NULL is handled by the caller, replaced with UTIME_NOW */ | ||||||
|   actim.tv_sec = job_m_in.VFS_UTIMENS_ATIME; |   actim.tv_sec = job_m_in.m_vfs_utimens.atime; | ||||||
|   actim.tv_nsec = job_m_in.VFS_UTIMENS_ANSEC; |   actim.tv_nsec = job_m_in.m_vfs_utimens.ansec; | ||||||
|   modtim.tv_sec = job_m_in.VFS_UTIMENS_MTIME; |   modtim.tv_sec = job_m_in.m_vfs_utimens.mtime; | ||||||
|   modtim.tv_nsec = job_m_in.VFS_UTIMENS_MNSEC; |   modtim.tv_nsec = job_m_in.m_vfs_utimens.mnsec; | ||||||
| 
 | 
 | ||||||
|   if (job_m_in.VFS_UTIMENS_NAME != NULL) { |   if (job_m_in.m_vfs_utimens.name != NULL) { | ||||||
| 	kind = UTIMENS_STYLE; | 	kind = UTIMENS_STYLE; | ||||||
| 	if (job_m_in.VFS_UTIMENS_FLAGS & ~AT_SYMLINK_NOFOLLOW) | 	if (job_m_in.m_vfs_utimens.flags & ~AT_SYMLINK_NOFOLLOW) | ||||||
| 		return EINVAL; /* unknown flag */ | 		return EINVAL; /* unknown flag */ | ||||||
| 	/* Temporarily open the file */ | 	/* Temporarily open the file */ | ||||||
| 	vname = (vir_bytes) job_m_in.VFS_UTIMENS_NAME; | 	vname = (vir_bytes) job_m_in.m_vfs_utimens.name; | ||||||
| 	vname_length = (size_t) job_m_in.VFS_UTIMENS_LEN; | 	vname_length = (size_t) job_m_in.m_vfs_utimens.len; | ||||||
| 	if (job_m_in.VFS_UTIMENS_FLAGS & AT_SYMLINK_NOFOLLOW) | 	if (job_m_in.m_vfs_utimens.flags & AT_SYMLINK_NOFOLLOW) | ||||||
| 		lookup_flags = PATH_RET_SYMLINK; | 		lookup_flags = PATH_RET_SYMLINK; | ||||||
| 	else | 	else | ||||||
| 		lookup_flags = PATH_NOFLAGS; | 		lookup_flags = PATH_NOFLAGS; | ||||||
| @ -77,9 +77,9 @@ int do_utimens(void) | |||||||
|   else { |   else { | ||||||
| 	kind = FUTIMENS_STYLE; | 	kind = FUTIMENS_STYLE; | ||||||
| 	/* Change timestamps on already-opened fd. Is it valid? */ | 	/* Change timestamps on already-opened fd. Is it valid? */ | ||||||
| 	if (job_m_in.VFS_UTIMENS_FLAGS != 0) | 	if (job_m_in.m_vfs_utimens.flags != 0) | ||||||
| 		return EINVAL; /* unknown flag */ | 		return EINVAL; /* unknown flag */ | ||||||
| 	if ((filp = get_filp(job_m_in.VFS_UTIMENS_FD, VNODE_READ)) == NULL) | 	if ((filp = get_filp(job_m_in.m_vfs_utimens.fd, VNODE_READ)) == NULL) | ||||||
| 		return err_code; | 		return err_code; | ||||||
| 	vp = filp->filp_vno; | 	vp = filp->filp_vno; | ||||||
|   } |   } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Lionel Sambuc
						Lionel Sambuc