BADADDR man page on OSF1

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
OSF1 logo
[printable version]

BADADDR(9r)							   BADADDR(9r)

NAME
       BADADDR - General: Probes the address during device autoconfiguration

SYNOPSIS
       int BADADDR(
	       caddr_t addr,
	       int length,
	       struct bus_ctlr_common *ptr );

ARGUMENTS
       Specifies the address of the device registers or memory.	 Specifies the
       length (in bytes) of the data to be checked.  Valid values  are	1,  2,
       and  4  on 32-bit machines and 4 and 8 on 64-bit machines.  Specifies a
       pointer to a bus_ctlr_common structure. You cast	 this  argument	 as  a
       pointer to either a bus or controller structure.

DESCRIPTION
       The  BADADDR  routine  generates	 a call to a machine-dependent routine
       that does a read access check of the data at the supplied  address  and
       dismisses  any  machine	check  exception  that	may  result  from  the
       attempted access. You call this routine to  probe  for  memory  or  I/O
       devices at a specified address during device autoconfiguration.

NOTES
       You  can	 use  BADADDR in device drivers that are statically configured
       into the kernel. However, you cannot  use  BADADDR  if  the  driver  is
       dynamically configured into the kernel.

       If  you implement the driver to be both statically and dynamically con‐
       figured, you can declare a variable and use it to control the  call  to
       BADADDR.

       The  following  code  fragment shows the use of such a variable used in
       the probe routine for the /dev/none driver:

       .  .  .

	    if (none_is_dynamic) {

	    /* Code to handle tasks associated with a dynamically *
	     * configured driver */

       .  .  .

	    }
	    else {

	   /* Code to handle tasks (including the call to BADADDR) *
	    * associated with a statically configured driver *
	    * including call to BADADDR		   */
	   }

       .  .  .

       The EISA and ISA buses do not generate a	 machine  check	 when  BADADDR
       performs	 a  read  access to a nonexistent location. These buses always
       return success when BADADDR performs a read  access  to	their  address
       space.

       For  the PCI bus and the VMEbus, you must do the following before call‐
       ing BADADDR: Call the iohandle_to_phys routine to convert the I/O  han‐
       dle to a valid system physical address Call the PHYS_TO_KSEG routine to
       convert the valid system physical address to a kernel-unmapped  virtual
       address	Call the BADADDR routine, passing this kernel-unmapped virtual
       address as the first argument

RETURN VALUES
       The BADADDR routine returns the value 0 (zero) if the data is  accessi‐
       ble or a nonzero value if the data is not accessible.

								   BADADDR(9r)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server OSF1

List of man pages available for OSF1

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net