Skip to content

Commit

Permalink
MFC r306588:
Browse files Browse the repository at this point in the history
Export the mq_getfd_np() and timer_oshandle_np() symbols from librt.so.
  • Loading branch information
kostikbel committed Oct 9, 2016
1 parent 777e9ec commit 6e61756
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 11 deletions.
4 changes: 3 additions & 1 deletion include/mqueue.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ ssize_t mq_timedreceive(mqd_t, char *__restrict, size_t,
int mq_timedsend(mqd_t, const char *, size_t, unsigned,
const struct timespec *);
int mq_unlink(const char *);
int __mq_oshandle(mqd_t mqd);
#if __BSD_VISIBLE
int mq_getfd_np(mqd_t mqd);
#endif /* __BSD_VISIBLE */

__END_DECLS
#endif
1 change: 1 addition & 0 deletions include/time.h
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ char *timezone(int, int); /* XXX XSI conflict */
void tzsetwall(void);
time_t timelocal(struct tm * const);
time_t timegm(struct tm * const);
int timer_oshandle_np(timer_t timerid);
#endif /* __BSD_VISIBLE */

#if __POSIX_VISIBLE >= 200809 || defined(_XLOCALE_H_)
Expand Down
5 changes: 5 additions & 0 deletions lib/librt/Symbol.map
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ FBSD_1.0 {
timer_getoverrun;
};

FBSD_1.5 {
mq_getfd_np;
timer_oshandle_np;
};

FBSDprivate_1.0 {
_aio_read;
_aio_write;
Expand Down
3 changes: 2 additions & 1 deletion lib/librt/mq.c
Original file line number Diff line number Diff line change
Expand Up @@ -272,8 +272,9 @@ __mq_unlink(const char *path)
return __sys_kmq_unlink(path);
}

#pragma weak mq_getfd_np
int
__mq_oshandle(mqd_t mqd)
mq_getfd_np(mqd_t mqd)
{

return (mqd->oshandle);
Expand Down
3 changes: 2 additions & 1 deletion lib/librt/timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,9 @@ __timer_settime(timer_t timerid, int flags,
flags, value, ovalue);
}

#pragma weak timer_oshandle_np
int
__timer_oshandle(timer_t timerid)
timer_oshandle_np(timer_t timerid)
{

return (timerid->oshandle);
Expand Down
4 changes: 2 additions & 2 deletions tests/sys/mqueue/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ CFLAGS+= -I${SRCTOP}/tests

PROGS+= mqtest1
PROGS+= mqtest2
#PROGS+= mqtest3
#PROGS+= mqtest4
PROGS+= mqtest3
PROGS+= mqtest4
PROGS+= mqtest5

LIBADD+= rt
Expand Down
10 changes: 6 additions & 4 deletions tests/sys/mqueue/mqtest3.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,10 @@ main(void)
buf = malloc(attr.mq_msgsize);
for (j = 0; j < LOOPS; ++j) {
FD_ZERO(&set);
FD_SET(__mq_oshandle(mq), &set);
FD_SET(mq_getfd_np(mq), &set);
alarm(3);
status = select(__mq_oshandle(mq)+1, &set, NULL, NULL, NULL);
status = select(mq_getfd_np(mq) + 1, &set, NULL,
NULL, NULL);
if (status != 1)
err(1, "child process: select()");
status = mq_receive(mq, buf, attr.mq_msgsize, &prio);
Expand Down Expand Up @@ -94,8 +95,9 @@ main(void)
}
alarm(3);
FD_ZERO(&set);
FD_SET(__mq_oshandle(mq), &set);
status = select(__mq_oshandle(mq)+1, NULL, &set, NULL, NULL);
FD_SET(mq_getfd_np(mq), &set);
status = select(mq_getfd_np(mq) + 1, NULL, &set,
NULL, NULL);
if (status != 1)
err(1, "select()");
status = mq_send(mq, buf, attr.mq_msgsize, PRIO);
Expand Down
4 changes: 2 additions & 2 deletions tests/sys/mqueue/mqtest4.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ main(void)
mq = mq_open(MQNAME, O_RDWR);
if (mq == (mqd_t)-1)
err(1, "child: mq_open");
EV_SET(&kev, __mq_oshandle(mq), EVFILT_READ, EV_ADD, 0, 0, 0);
EV_SET(&kev, mq_getfd_np(mq), EVFILT_READ, EV_ADD, 0, 0, 0);
status = kevent(kq, &kev, 1, NULL, 0, NULL);
if (status == -1)
err(1, "child: kevent");
Expand Down Expand Up @@ -89,7 +89,7 @@ main(void)

signal(SIGALRM, sighandler);
kq = kqueue();
EV_SET(&kev, __mq_oshandle(mq), EVFILT_WRITE, EV_ADD, 0, 0, 0);
EV_SET(&kev, mq_getfd_np(mq), EVFILT_WRITE, EV_ADD, 0, 0, 0);
status = kevent(kq, &kev, 1, NULL, 0, NULL);
if (status == -1)
err(1, "kevent");
Expand Down

0 comments on commit 6e61756

Please sign in to comment.