rsmndi.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * CDDL HEADER START
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * The contents of this file are subject to the terms of the
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * Common Development and Distribution License, Version 1.0 only
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * (the "License"). You may not use this file except in compliance
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * with the License.
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * See the License for the specific language governing permissions
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * and limitations under the License.
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * When distributing Covered Code, include this CDDL HEADER in each
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * If applicable, add the following below this CDDL HEADER, with the
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * fields enclosed by brackets "[]" replaced with your own identifying
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * information: Portions Copyright [yyyy] [name of copyright owner]
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * CDDL HEADER END
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * Copyright 2001-2002 Sun Microsystems, Inc. All rights reserved.
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * Use is subject to license terms.
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov#pragma ident "%Z%%M% %I% %E% SMI"
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * This structure defines the functions implemented in rsmlib
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * that the NDI library can call.
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankovtypedef struct {
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov/* Library attributes - set by specific NDI libraries */
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankovtypedef struct {
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov boolean_t rsm_putget_map_reqd; /* put/get require mapping */
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov boolean_t rsm_scatgath_map_reqd; /* putv/getv require mapping */
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov/* The opaque barrier handle used by the RSMNDI plugin for the barrier calls */
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankovtypedef struct rsm_barrier *rsm_barrier_handle_t;
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankovtypedef struct {
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * structure revision number:
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * import side memory segment operations
260e9a87725c090ba5835b1f9f0b62fa2f96036fYuri Pankov * import side memory segment operations (read access functions):
int (* rsm_memseg_import_get)
void *dst_addr,
int (* rsm_memseg_import_put8)
int (* rsm_memseg_import_put16)
int (* rsm_memseg_import_put32)
int (* rsm_memseg_import_put64)
int (* rsm_memseg_import_put)
void *src_addr,
int (* rsm_memseg_import_init_barrier)
int (* rsm_memseg_import_get_mode)
int (* rsm_memseg_import_set_mode)
int (* rsm_create_localmemory_handle)
int (* rsm_free_localmemory_handle)
int (* rsm_register_lib_funcs)
int (* rsm_get_lib_attr)
int (* rsm_closedevice)
} rsm_segops_t;
typedef struct rsm_controller {
void *cntr_privdata;
int cntr_fd;
int cntr_refcnt;
int cntr_unit;
void *rsmseg_privdata;
int rsmseg_fd;
int rsmseg_pollfd_refcnt;
void *rsmseg_data;
int rsmseg_type;
void *rsmbar_privdata;
#ifdef __cplusplus