*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->FreeBSD man pages -> DEVICE_IDENTIFY (9)              
Title
Content
Arch
Section
 

DEVICE_IDENTIFY(9)

Contents


NAME    [Toc]    [Back]

     DEVICE_IDENTIFY -- identify a device, register it

SYNOPSIS    [Toc]    [Back]

     #include <sys/param.h>
     #include <sys/bus.h>

     void
     DEVICE_IDENTIFY(driver_t *driver, device_t parent);

DESCRIPTION    [Toc]    [Back]

     The identify function for a device is only needed for devices on busses
     that cannot identify their children independently, e.g. the ISA bus.  It
     is used to recognize the device (usually done by accessing non-ambiguous
     registers in the hardware) and to tell the kernel about it and thus creating
 a new device instance.

     BUS_ADD_CHILD(9) is used to register the device as a child of the bus.
     The device's resources (such as IRQ and I/O ports) are registered with
     the kernel by calling bus_set_resource() for each resource (refer to
     bus_set_resource(9) for more information).

EXAMPLES    [Toc]    [Back]

     The following pseudo-code shows an example of a function that probes for
     a piece of hardware and registers it and its resource (an I/O port) with
     the kernel.  It also sets the description of the device.

     void
     foo_identify(driver_t *driver, device_t parent)
     {
	     device_t child;

	     retrieve_device_information;
	     if (devices matches one of your supported devices) {
		     child = BUS_ADD_CHILD(parent, 0, "foo", -1);
		     device_set_desc_copy(child, "foo chip ver.123");
		     device_set_driver(child, driver);
		     bus_set_resource(child, SYS_RES_IOPORT, 0, FOO_IOADDR, 1);
	     }
     }

RETURN VALUES    [Toc]    [Back]

     Zero is returned on success, otherwise an appropriate error is returned
     (see errno(2)).

SEE ALSO    [Toc]    [Back]

      
      
     BUS_ADD_CHILD(9), bus_set_resource(9), device(9), device_add_child(9),
     DEVICE_ATTACH(9), DEVICE_DETACH(9), DEVICE_PROBE(9),
     device_set_desc_copy(9), device_set_driver(9), DEVICE_SHUTDOWN(9)

AUTHORS    [Toc]    [Back]

     This man page was written by Alexander Langer <[email protected]>.


FreeBSD 5.2.1			March 10, 2001			 FreeBSD 5.2.1
[ Back ]
 Similar pages
Name OS Title
ident HP-UX identify files in RCS
ident Tru64 identify files
pthread_self IRIX identify a thread
pthread_main_np OpenBSD identify the main thread
pthread_main_np FreeBSD identify the initial thread
idlookup HP-UX identify the user of a particular TCP connection
fstat FreeBSD identify active files
what IRIX identify SCCS files
mvIs IRIX identify movie instances
fuser Linux identify processes using files or sockets
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service