Add the devclass_get_count(9) function and man page. It gets a count of

the number of devices in a devclass and is a subset of
devclass_get_devices(9).

Reviewed by:	imp, dfr
This commit is contained in:
Nate Lawson 2004-12-08 02:39:56 +00:00
parent 2ad036b657
commit 8844d5efa6
3 changed files with 67 additions and 7 deletions

View File

@ -0,0 +1,47 @@
.\" -*- nroff -*-
.\"
.\" Copyright (c) 2004 Nate Lawson
.\" All rights reserved.
.\"
.\" 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 DEVELOPERS ``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 DEVELOPERS 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.
.\"
.\" $FreeBSD$
.\"
.Dd December 5, 2004
.Dt DEVCLASS_GET_COUNT 9
.Os
.Sh NAME
.Nm devclass_get_count
.Nd get the number of devices in a devclass
.Sh SYNOPSIS
.In sys/param.h
.In sys/bus.h
.Ft int
.Fn devclass_get_count "devclass_t dc"
.Sh DESCRIPTION
Returns the number of device instances in the specified
.Dv devclass .
.Sh SEE ALSO
.Xr devclass 9 ,
.Xr device 9
.Sh AUTHORS
This man page was written by
.An Nate Lawson .

View File

@ -1054,15 +1054,10 @@ devclass_get_softc(devclass_t dc, int unit)
int
devclass_get_devices(devclass_t dc, device_t **devlistp, int *devcountp)
{
int i;
int count;
int count, i;
device_t *list;
count = 0;
for (i = 0; i < dc->maxunit; i++)
if (dc->devices[i])
count++;
count = devclass_get_count(dc);
list = malloc(count * sizeof(device_t), M_TEMP, M_NOWAIT|M_ZERO);
if (!list)
return (ENOMEM);
@ -1081,6 +1076,23 @@ devclass_get_devices(devclass_t dc, device_t **devlistp, int *devcountp)
return (0);
}
/**
* @brief Get the number of devices in a devclass
*
* @param dc the devclass to examine
*/
int
devclass_get_count(devclass_t dc)
{
int count, i;
count = 0;
for (i = 0; i < dc->maxunit; i++)
if (dc->devices[i])
count++;
return (count);
}
/**
* @brief Get the maximum unit number used in a devclass
*

View File

@ -381,6 +381,7 @@ const char *devclass_get_name(devclass_t dc);
device_t devclass_get_device(devclass_t dc, int unit);
void *devclass_get_softc(devclass_t dc, int unit);
int devclass_get_devices(devclass_t dc, device_t **listp, int *countp);
int devclass_get_count(devclass_t dc);
int devclass_get_maxunit(devclass_t dc);
int devclass_find_free_unit(devclass_t dc, int unit);
void devclass_set_parent(devclass_t dc, devclass_t pdc);