[rtems-libbsd commit] Avoid use of cap_rights_t

Sebastian Huber sebh at rtems.org
Mon Apr 18 13:19:25 UTC 2016


Module:    rtems-libbsd
Branch:    master
Commit:    22257c7d81148e5b78027116e07627a54f4efb95
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=22257c7d81148e5b78027116e07627a54f4efb95

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Apr 18 14:50:39 2016 +0200

Avoid use of cap_rights_t

---

 freebsd/sys/kern/uipc_syscalls.c | 4 ++++
 freebsd/sys/sys/file.h           | 7 +++----
 freebsd/sys/sys/user.h           | 4 ++++
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/freebsd/sys/kern/uipc_syscalls.c b/freebsd/sys/kern/uipc_syscalls.c
index 5b57df8..73e1a64 100644
--- a/freebsd/sys/kern/uipc_syscalls.c
+++ b/freebsd/sys/kern/uipc_syscalls.c
@@ -1033,18 +1033,22 @@ kern_sendit(td, s, mp, flags, control, segflg)
 	struct socket *so;
 	int i, error;
 	ssize_t len;
+#ifndef __rtems__
 	cap_rights_t rights;
+#endif /* __rtems__ */
 #ifdef KTRACE
 	struct uio *ktruio = NULL;
 #endif
 
 	AUDIT_ARG_FD(s);
+#ifndef __rtems__
 	rights = CAP_WRITE;
 	if (mp->msg_name != NULL)
 		rights |= CAP_CONNECT;
 	error = getsock_cap(td->td_proc->p_fd, s, rights, &fp, NULL);
 	if (error)
 		return (error);
+#endif /* __rtems__ */
 	so = (struct socket *)fp->f_data;
 
 #ifdef KTRACE
diff --git a/freebsd/sys/sys/file.h b/freebsd/sys/sys/file.h
index dd30c24..cf81327 100644
--- a/freebsd/sys/sys/file.h
+++ b/freebsd/sys/sys/file.h
@@ -309,17 +309,16 @@ int fget(struct thread *td, int fd, cap_rights_t rights, struct file **fpp);
 struct file *rtems_bsd_get_file(int fd);
 
 static inline int
-fget(struct thread *td, int fd, cap_rights_t rights, struct file **fpp)
+rtems_bsd_do_fget(int fd, struct file **fpp)
 {
 	struct file *fp = rtems_bsd_get_file(fd);
 
-	(void) td;
-	(void) rights;
-
 	*fpp = fp;
 
 	return fp != NULL ? 0 : EBADF;
 }
+
+#define	fget(td, fd, rights, fpp)	rtems_bsd_do_fget(fd, fpp)
 #endif /* __rtems__ */
 int fget_mmap(struct thread *td, int fd, cap_rights_t rights,
     u_char *maxprotp, struct file **fpp);
diff --git a/freebsd/sys/sys/user.h b/freebsd/sys/sys/user.h
index 72b48f6..dc59439 100644
--- a/freebsd/sys/sys/user.h
+++ b/freebsd/sys/sys/user.h
@@ -327,6 +327,7 @@ struct kinfo_ofile {
 #endif
 
 struct kinfo_file {
+#ifndef __rtems__
 	int		kf_structsize;		/* Variable size of record. */
 	int		kf_type;		/* Descriptor type. */
 	int		kf_fd;			/* Array index. */
@@ -397,6 +398,9 @@ struct kinfo_file {
 	int		_kf_ispare[4];		/* Space for more stuff. */
 	/* Truncated before copyout in sysctl */
 	char		kf_path[PATH_MAX];	/* Path to file, if any. */
+#else /* __rtems__ */
+	int		kf_dummy;
+#endif /* __rtems__ */
 };
 
 /*




More information about the vc mailing list