2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright (c) 2002-2004, Network Appliance, Inc. All rights reserved. 2N/A * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/A * PURPOSE: DAT return codes 2N/A * Description: Header file for "uDAPL: User Direct Access Programming 2N/A * Library, Version: 1.2" 2N/A * Error types are compound types, as mapped out below. 2N/A * All return codes are actually a 3-way tuple: 2N/A * type: DAT_RETURN_CLASS DAT_RETURN_TYPE DAT_RETURN_SUBTYPE 2N/A * bits: 31-30 29-16 15-0 2N/A * +----------------------------------------------------------------------+ 2N/A * |3130 | 29282726252423222120191817 | 1615141312111009080706054003020100| 2N/A * |CLAS | DAT_TYPE_STATUS | SUBTYPE_STATUS | 2N/A * +----------------------------------------------------------------------+ 2N/A * Determining the success of an operation is best done with a macro; 2N/A * each of these returns a boolean value. 2N/A * DAT return types. The ERROR bit is enabled for these definitions 2N/A /* The operation was successful. */ 2N/A * The operation was aborted because IA was closed or EVD was 2N/A /* The specified Connection Qualifier was in use. */ 2N/A /* The operation failed due to resource limitations. */ 2N/A * Provider internal error. This error can be returned by any 2N/A * operation when the Provider have detected an internal error. 2N/A * This error does no mask any error causes by Consumer. 2N/A /* One of the DAT handles was invalid. */ 2N/A /* One of the parameters was invalid. */ 2N/A * One of the parameters was invalid for this operation. There 2N/A * are Event Streams associated with the Event Dispatcher feeding 2N/A * The size of the receiving buffer is too small for sending 2N/A * buffer data. The size of the local buffer is too small for 2N/A * the data of the remote buffer. 2N/A /* The requested Model was not supported by the Provider. */ 2N/A * The provider name or specified attributes are not found in 2N/A * Protection violation for local or remote memory 2N/A * access. Protection Zone mismatch between an LMR of one of the 2N/A * local_iov segments and the local Endpoint. 2N/A * Privileges violation for local or re-mote memory access. One 2N/A * of the LMRs used in local_iov was either invalid or did not 2N/A * have the local read privileges. 2N/A /* The operation timed out without a notification. */ 2N/A /* The Event Dispatcher queue is full. */ 2N/A /* The operation timed out. UDAPL ONLY */ 2N/A /* The provider name was already registered */ 2N/A /* The provider is "in-use" and cannot be closed at this time */ 2N/A /* The requested remote address is not valid or not reachable */ 2N/A /* [Unix only] dat_evd_wait or dat_cno_wait has been interrupted. */ 2N/A /* No Connection Qualifiers are available */ 2N/A /* Provider does not support the operation yet. */ 2N/A/* Backwared compatibility with DAT 1.0 */ 2N/A * DAT_RETURN_SUBTYPE listing 2N/A /* First element is no subtype */ 2N/A /* ABORT sub types */ 2N/A /* call was interrupted by a signal, or otherwise */ 2N/A /* DAT_CONN_QUAL_IN_USE has no subtypes */ 2N/A /* INSUFFICIENT_RESOURCES subtypes */ 2N/A /* DAT_INTERNAL_ERROR has no subtypes */ 2N/A /* INVALID_HANDLE subtypes */ 2N/A /* DAT_INVALID_PARAMETER subtypes */ 2N/A /* DAT_INVALID_EP_STATE subtypes */ 2N/A * bands of EVD state.The Threshold one is uDAPL specific. 2N/A * EVD can be either in enabled or disabled but not both 2N/A * or neither at the same time 2N/A * EVD can be either in waitable or unwaitable but not 2N/A * both or neither at the same time 2N/A /* Do not release an EVD if it is in use */ 2N/A * EVD can be either in notify or solicited or threshold 2N/A * but not any pair, or all, or none at the same time. 2N/A * The threshold one is for uDAPL only 2N/A /* DAT_INVALID_STATE_SRQ subtypes */ 2N/A /* DAT_LENGTH_ERROR has no subtypes */ 2N/A /* DAT_MODEL_NOT_SUPPORTED has no subtypes */ 2N/A /* DAT_PRIVILEGES_VIOLATION subtypes */ 2N/A /* DAT_PROTECTION_VIOLATION subtypes */ 2N/A /* DAT_QUEUE_EMPTY has no subtypes */ 2N/A /* DAT_QUEUE_FULL has no subtypes */ 2N/A /* DAT_TIMEOUT_EXPIRED has no subtypes */ 2N/A /* DAT_PROVIDER_ALREADY_REGISTERED has no subtypes */ 2N/A /* DAT_PROVIDER_IN_USE has no subtypes */ 2N/A /* DAT_INVALID_ADDRESS subtypes */ 2N/A * Unsupported addresses - those that are not Malformed, 2N/A * but are incorrect for use in DAT (regardless of local 2N/A * routing capabilities): IPv6 Multicast Addresses (ff/8) 2N/A * Unreachable addresses - A Provider may know that certain 2N/A * addresses are unreachable immediately. One examples would 2N/A * be an IPv6 addresses on an IPv4-only system. This may also 2N/A * be returned if it is known that there is no route to the 2N/A * host. A Provider is not obligated to check for this 2N/A * Malformed addresses -- these cannot be valid in any context. 2N/A * Those listed in RFC1884 section 2.3 as "Reserved" or 2N/A /* DAT_INTERRUPTED_CALL has no subtypes */ 2N/A /* DAT_CONN_QUAL_UNAVAILABLE has no subtypes */ 2N/A /* DAT_PROVIDER_NOT_FOUND subtypes. Erratta to the 1.1 spec */ 2N/A /* DAT_INVALID_PARAMETER Sun specific */ 2N/A#
endif /* _DAT_ERROR_H_ */