xref: /titanic_50/usr/src/man/man3dat/dat_provider_init.3dat (revision 7b07063d906859b2be1e88791f801b3c96e432f6)
te
This manual page is derived from the DAT/uDAPL 1.2 specification.
Portions Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
DAT_PROVIDER_INIT 3DAT "Jul 16, 2004"
NAME
dat_provider_init - locate the Provider in the Static Registry
SYNOPSIS

cc [ flag.\|.\|. ] file.\|.\|. -ldat [ library.\|.\|. ]
#include <dat/udat.h>

void
 dat_provider_init (
 IN const DAT_PROVIDER_INFO *provider_info,
 IN const char * instance_data
 )
PARAMETERS
provider_info

The information that was provided by the Consumer to locate the Provider in the Static Registry.

instance_data

The instance data string obtained from the entry found in the Static Registry for the Provider.

DESCRIPTION

A constructor the Registry calls on a Provider before the first call to dat_ia_open(3DAT) for a given IA name when the Provider is auto-loaded. An application that explicitly loads a Provider on its own can choose to use dat_provider_init() just as the Registry would have done for an auto-loaded Provider.

The Provider's implementation of this method must call dat_registry_add_provider(3DAT), using the IA name in the provider_info.ia_name field, to register itself with the Dynamic Registry. The implementation must not register other IA names at this time. Otherwise, the Provider is free to perform any initialization it finds useful within this method.

This method is called before the first call to dat_ia_open() for a given IA name after one of the following has occurred:

The Provider library was loaded into memory.

The Registry called dat_provider_fini(3DAT) for that IA name.

The Provider called dat_registry_remove_provider(3DAT) for that IA name (but it is still the Provider indicated in the Static Registry).

If this method fails, it should ensure that it does not leave its entry in the Dynamic Registry.

RETURN VALUES

No values are returned.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Standard: uDAPL, 1.1, 1.2
MT-Level
SEE ALSO

dat_ia_open(3DAT), dat_provider_fini(3DAT), dat_registry_add_provider(3DAT), dat_registry_remove_provider(3DAT), libdat(3LIB), attributes(5)