summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-04-18 14:50:39 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-04-18 15:06:41 +0200
commit22257c7d81148e5b78027116e07627a54f4efb95 (patch)
tree7cc322ff56197bd8b0cd5a65329de24cdbf2b195
parentintrmask_t: Provide dummy type definition (diff)
downloadrtems-libbsd-22257c7d81148e5b78027116e07627a54f4efb95.tar.bz2
Avoid use of cap_rights_t
-rw-r--r--freebsd/sys/kern/uipc_syscalls.c4
-rw-r--r--freebsd/sys/sys/file.h7
-rw-r--r--freebsd/sys/sys/user.h4
3 files changed, 11 insertions, 4 deletions
diff --git a/freebsd/sys/kern/uipc_syscalls.c b/freebsd/sys/kern/uipc_syscalls.c
index 5b57df89..73e1a64c 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 dd30c249..cf813275 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 72b48f66..dc594398 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__ */
};
/*