Tweak the fds test program so that it actually compiles. Also use 0 instead
of -1 for the bogus ioctl command so that dmesg doesn't get spammed with sign extension warnings when the test program runs. MFC after: 1 week
This commit is contained in:
parent
2698a8a55b
commit
c537027e53
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=278738
@ -26,6 +26,8 @@
|
|||||||
|
|
||||||
#pragma ident "%Z%%M% %I% %E% SMI"
|
#pragma ident "%Z%%M% %I% %E% SMI"
|
||||||
|
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
@ -69,7 +71,7 @@ main(int argc, char *argv[])
|
|||||||
*/
|
*/
|
||||||
if (sigsetjmp(env, 1) == 0) {
|
if (sigsetjmp(env, 1) == 0) {
|
||||||
for (;;)
|
for (;;)
|
||||||
(void) ioctl(-1, -1, NULL);
|
(void) ioctl(-1, 0, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -80,20 +82,19 @@ main(int argc, char *argv[])
|
|||||||
fds[n++] = open(file, O_WRONLY);
|
fds[n++] = open(file, O_WRONLY);
|
||||||
fds[n++] = open(file, O_RDWR);
|
fds[n++] = open(file, O_RDWR);
|
||||||
|
|
||||||
fds[n++] = open(file, O_RDWR | O_APPEND | O_CREAT | O_DSYNC |
|
fds[n++] = open(file, O_RDWR | O_APPEND | O_CREAT |
|
||||||
O_LARGEFILE | O_NOCTTY | O_NONBLOCK | O_NDELAY | O_RSYNC |
|
O_NOCTTY | O_NONBLOCK | O_NDELAY | O_SYNC | O_TRUNC | 0666);
|
||||||
O_SYNC | O_TRUNC | O_XATTR, 0666);
|
|
||||||
|
|
||||||
fds[n++] = open(file, O_RDWR);
|
fds[n++] = open(file, O_RDWR);
|
||||||
(void) lseek(fds[n - 1], 123, SEEK_SET);
|
(void) lseek(fds[n - 1], 123, SEEK_SET);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Once we have all the file descriptors in the state we want to test,
|
* Once we have all the file descriptors in the state we want to test,
|
||||||
* issue a bogus ioctl() on each fd with cmd -1 and arg NULL to whack
|
* issue a bogus ioctl() on each fd with cmd 0 and arg NULL to whack
|
||||||
* our DTrace script into recording the content of the fds[] array.
|
* our DTrace script into recording the content of the fds[] array.
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
(void) ioctl(fds[i], -1, NULL);
|
(void) ioctl(fds[i], 0, NULL);
|
||||||
|
|
||||||
assert(n <= sizeof (fds) / sizeof (fds[0]));
|
assert(n <= sizeof (fds) / sizeof (fds[0]));
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@ -36,7 +36,7 @@ syscall::ioctl:entry
|
|||||||
}
|
}
|
||||||
|
|
||||||
syscall::ioctl:entry
|
syscall::ioctl:entry
|
||||||
/pid == $1 && arg0 != -1u && arg1 == -1u && arg2 == NULL/
|
/pid == $1 && arg0 != -1u && arg1 == 0 && arg2 == NULL/
|
||||||
{
|
{
|
||||||
printf("fds[%d] fi_name = %s\n", arg0, fds[arg0].fi_name);
|
printf("fds[%d] fi_name = %s\n", arg0, fds[arg0].fi_name);
|
||||||
printf("fds[%d] fi_dirname = %s\n", arg0, fds[arg0].fi_dirname);
|
printf("fds[%d] fi_dirname = %s\n", arg0, fds[arg0].fi_dirname);
|
||||||
|
Loading…
Reference in New Issue
Block a user