xref: /illumos-gate/usr/src/man/man9f/dlbindack.9f (revision 75eba5b6d79ed4d2ce3daf7b2806306b6b69a938)
te
Copyright (c) 2006, 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]
DLBINDACK 9F "Jan 16, 2006"
NAME
dlbindack, dlphysaddrack, dlokack, dlerrorack, dluderrorind - DLPI device driver helper functions
SYNOPSIS

#include <sys/dlpi.h>



void dlokack(queue_t *wq, mblk_t *mp, t_uscalar_t correct_primitive);

void dlerrorack(queue_t *wq, mblk_t *mp, t_uscalar_t error_primitive,
 t_uscalar_t error, t_uscalar_t unix_errno);

void dlbindack(queue_t *wq, mblk_t *mp, t_scalar_t sap, const void *addrp,
 t_uscalar_t addrlen, t_uscalar_t maxconind,  t_uscalar_t xidtest);

void dlphysaddrack(queue_t *wq, mblk_t *mp, const void *addrp,
 t_uscalar_t addrlen);

void dluderrorind(queue_t *wq, mblk_t *mp, const void *addrp,
 t_uscalar_t addrlen, t_uscalar_t error, t_uscalar_t unix_errno);
INTERFACE LEVEL

Solaris DDI specific (Solaris DDI).

PARAMETERS
wq

Streams write queue.

mp

Pointer to the bind request message.

sap

Service access point being requested.

addrp

Pointer to the dlpi layer source address.

addrlen

Size of the dlpi layer address pointed to by addr.

maxconind

Maximum number of DL_CONNECT_IND messages allowed to be outstanding per stream.

xidtest

The XID and TEST responses supported.

correct_primitive

Identifies the DL primitive completing successfully.

error_primitive

Identifies the DL primitive in error.

error

DLPI error associated with the failure in the DLPI request.

unix_errno

Corresponding UNIX system error that can be associated with the failure in the DLPI request.

DESCRIPTION

All functions described in this manpage take a pointer to the message passed to the DLPI provider (mblk_t) and attempt to reuse it in formulating the M_PROTO reply. If the message block is too small to be reused, it is freed and a new one is allocated.

All functions reply upstream using qreply(9F). The write-side queue pointer must be provided.

The dlokack() function provides the successfull acknowledgement DL_OK_ACK message reply to the DLPI provider and is used to complete many of the DLPI requests in the DLPI consumer.

The dlerrorack() function provides the unsuccessfull acknowledgement DL_ERROR_ACK message reply to the DLPI() provider and is used for error completions were required for DLPI requests in the DLPI consumer.

The dlbindack() function provides the DL_BIND_ACK message reply to the DLPI provider and is used to complete the DL_BIND_REQ processing in the DLPI consumer.

The dlphysaddrack() function provides the ()DL_PHYS_ADDR_ACK message reply used to complete the DL_PHYS_ADDR_ACK processing.

The dluderrorind() function provides the DL_UDERROR_IND message reply used to complete an unsuccessful DL_UNITDATA_REQ.

RETURN VALUES

None.

NOTES

These functions are not required if you are are writing a DLPI device driver using gld(7D).

CONTEXT

All DLPI helper functions can be called from user, interrupt, or kernel context.

SEE ALSO

gld(7D), dlpi(7P), qreply(9F)

Writing Device Drivers

STREAMS Programming Guide