Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

subsys_dev_iter_init(9) [centos man page]

SUBSYS_DEV_ITER_INIT(9) 				   Device drivers infrastructure				   SUBSYS_DEV_ITER_INIT(9)

NAME
subsys_dev_iter_init - initialize subsys device iterator SYNOPSIS
void subsys_dev_iter_init(struct subsys_dev_iter * iter, struct bus_type * subsys, struct device * start, const struct device_type * type); ARGUMENTS
iter subsys iterator to initialize subsys the subsys we wanna iterate over start the device to start iterating from, if any type device_type of the devices to iterate over, NULL for all DESCRIPTION
Initialize subsys iterator iter such that it iterates over devices of subsys. If start is set, the list iteration will start there, otherwise if it is NULL, the iteration starts at the beginning of the list. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 SUBSYS_DEV_ITER_INIT(9)

Check Out this Related Man Page

DEVITER(9)						   BSD Kernel Developer's Manual						DEVITER(9)

NAME
deviter, deviter_first, deviter_init, deviter_next, deviter_release -- machine-independent device iteration API SYNOPSIS
#include <sys/device.h> void deviter_init(deviter_t *di, deviter_flags_t flags); device_t deviter_first(deviter_t *di, deviter_flags_t flags); device_t deviter_next(deviter_t *di); void deviter_release(deviter_t *di); DESCRIPTION
The machine-independent deviter API lets interrupt handlers running at any priority level and kernel threads iterate over the devices attached to the kernel. Using deviter, it is safe for an interrupt handler or a thread to iterate over devices attached to the kernel while another thread attaches or detaches the devices. DATA TYPES
Kernel subsystems using deviter may make use of the following data types: deviter_flags_t The kernel can iterate over devices for different purposes and in different orders. The following flags affect device iteration: DEVITER_F_RW DEVITER_F_SHUTDOWN DEVITER_F_LEAVES_FIRST DEVITER_F_ROOT_FIRST deviter_t This is a device iteration ``cursor'' or ``iterator''. It holds iteration state such as the next device to visit. FUNCTIONS
deviter_init(di, flags) Initialize the device iterator, di. Set bits in flags to affect the order of iteration. Set DEVITER_F_LEAVES_FIRST to visit each device only after visiting its children (visit the leaves of the device tree, first). Set DEVITER_F_ROOT_FIRST to visit each device before visiting its children (visit the root of the device tree, first). If you set neither DEVITER_F_LEAVES_FIRST nor DEVITER_F_ROOT_FIRST, deviter returns devices in an arbitrary order. Set DEVITER_F_RW if your purpose for iterating over devices is to modify the device tree by attaching or detaching devices. Set DEVITER_F_SHUTDOWN if your purpose for iterating over devices is to detach all of the devices during system shutdown. DEVITER_F_SHUTDOWN implies DEVITER_F_RW. deviter_next(di) Advance the iterator di to the next device. deviter_next() returns the current device or NULL if there are no more devices. deviter_next() is undefined if di has not been initialized using deviter_init() or deviter_first(). deviter_first(di, flags) Initialize the iterator di with flags. Return the first device according to the ordering indicated by flags and advance di to the second device, or return NULL if there are no devices. This is equivalent to calling deviter_init(di, flags) and then deviter_next(di). deviter_release(di) Release all resources held by the iterator di. Every iterator that is initialized with deviter_first() or deviter_init() MUST be released. CODE REFERENCES
Device iteration is implemented within the files sys/sys/device.h and sys/kern/subr_autoconf.c. SEE ALSO
autoconf(9), driver(9) HISTORY
deviter appeared in NetBSD 5.0. AUTHORS
David Young <dyoung@NetBSD.org> BSD
November 4, 2009 BSD
Man Page