Add a simple tool for checking the queue stats in the aac(4) driver. The
ioctl interface for this has been here for years, so it might as well get used.
This commit is contained in:
parent
a98f273f43
commit
7720bf145a
12
tools/tools/aac/Makefile
Normal file
12
tools/tools/aac/Makefile
Normal file
@ -0,0 +1,12 @@
|
||||
# $FreeBSD$
|
||||
BINDIR= /usr/local/bin
|
||||
|
||||
ALL= aac_checkq
|
||||
|
||||
all: $(ALL)
|
||||
|
||||
aac_checkq: aac_checkq.c
|
||||
${CC} -o aac_checkq aac_checkq.c
|
||||
|
||||
install: ${ALL}
|
||||
${INSTALL} aac_checkq ${DESTDIR}${BINDIR}
|
76
tools/tools/aac/aac_checkq.c
Normal file
76
tools/tools/aac/aac_checkq.c
Normal file
@ -0,0 +1,76 @@
|
||||
/*-
|
||||
* Copyright (c) 2004 Scott Long
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include "/sys/dev/aac/aac_ioctl.h"
|
||||
|
||||
__FBSDID("$FreeBSD$");
|
||||
|
||||
/*
|
||||
* Simple program to print out the queue stats on the given queue index.
|
||||
* See /sys/dev/aac/aac_ioctl.h for the definitions of each queue index.
|
||||
*/
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
printf("Usage: aac_checkq <queue_number>\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
union aac_statrequest sr;
|
||||
int fd, retval, queue;
|
||||
|
||||
if (argc != 2)
|
||||
usage();
|
||||
|
||||
fd = open("/dev/aac0", O_RDWR);
|
||||
if (fd == -1) {
|
||||
printf("couldn't open aac0: %s\n", strerror(errno));
|
||||
return (-1);
|
||||
}
|
||||
|
||||
queue = atoi(argv[1]);
|
||||
printf("Getting stats for queue %d\n", queue);
|
||||
bzero(&sr, sizeof(union aac_statrequest));
|
||||
sr.as_item = queue;
|
||||
retval = ioctl(fd, AACIO_STATS, &sr);
|
||||
if (retval == -1) {
|
||||
printf("error on ioctl: %s\n", strerror(errno));
|
||||
return (-1);
|
||||
}
|
||||
|
||||
printf("length= %d, max= %d\n",sr.as_qstat.q_length, sr.as_qstat.q_max);
|
||||
|
||||
close(fd);
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user