1*7836SJohn.Forte@Sun.COM /* 2*7836SJohn.Forte@Sun.COM * CDDL HEADER START 3*7836SJohn.Forte@Sun.COM * 4*7836SJohn.Forte@Sun.COM * The contents of this file are subject to the terms of the 5*7836SJohn.Forte@Sun.COM * Common Development and Distribution License (the "License"). 6*7836SJohn.Forte@Sun.COM * You may not use this file except in compliance with the License. 7*7836SJohn.Forte@Sun.COM * 8*7836SJohn.Forte@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*7836SJohn.Forte@Sun.COM * or http://www.opensolaris.org/os/licensing. 10*7836SJohn.Forte@Sun.COM * See the License for the specific language governing permissions 11*7836SJohn.Forte@Sun.COM * and limitations under the License. 12*7836SJohn.Forte@Sun.COM * 13*7836SJohn.Forte@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 14*7836SJohn.Forte@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*7836SJohn.Forte@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 16*7836SJohn.Forte@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 17*7836SJohn.Forte@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 18*7836SJohn.Forte@Sun.COM * 19*7836SJohn.Forte@Sun.COM * CDDL HEADER END 20*7836SJohn.Forte@Sun.COM */ 21*7836SJohn.Forte@Sun.COM /* 22*7836SJohn.Forte@Sun.COM * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*7836SJohn.Forte@Sun.COM * Use is subject to license terms. 24*7836SJohn.Forte@Sun.COM */ 25*7836SJohn.Forte@Sun.COM 26*7836SJohn.Forte@Sun.COM #ifndef _NCALL_MODULE_H 27*7836SJohn.Forte@Sun.COM #define _NCALL_MODULE_H 28*7836SJohn.Forte@Sun.COM 29*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 30*7836SJohn.Forte@Sun.COM extern "C" { 31*7836SJohn.Forte@Sun.COM #endif 32*7836SJohn.Forte@Sun.COM 33*7836SJohn.Forte@Sun.COM #ifdef _KERNEL 34*7836SJohn.Forte@Sun.COM 35*7836SJohn.Forte@Sun.COM #define NCALL_MODULE_VER 4 36*7836SJohn.Forte@Sun.COM 37*7836SJohn.Forte@Sun.COM typedef struct ncall_module_s { 38*7836SJohn.Forte@Sun.COM int ncall_version; 39*7836SJohn.Forte@Sun.COM char *ncall_name; 40*7836SJohn.Forte@Sun.COM 41*7836SJohn.Forte@Sun.COM int (*ncall_stop)(void); 42*7836SJohn.Forte@Sun.COM 43*7836SJohn.Forte@Sun.COM void (*ncall_register_svc)(int, void (*)(ncall_t *, int *)); 44*7836SJohn.Forte@Sun.COM void (*ncall_unregister_svc)(int); 45*7836SJohn.Forte@Sun.COM 46*7836SJohn.Forte@Sun.COM int (*ncall_nodeid)(char *); 47*7836SJohn.Forte@Sun.COM char *(*ncall_nodename)(int); 48*7836SJohn.Forte@Sun.COM int (*ncall_mirror)(int); 49*7836SJohn.Forte@Sun.COM int (*ncall_self)(void); 50*7836SJohn.Forte@Sun.COM 51*7836SJohn.Forte@Sun.COM int (*ncall_alloc)(int, int, int, ncall_t **); 52*7836SJohn.Forte@Sun.COM int (*ncall_timedsend)(ncall_t *, int, int, struct timeval *, 53*7836SJohn.Forte@Sun.COM va_list); 54*7836SJohn.Forte@Sun.COM int (*ncall_timedsendnotify)(ncall_t *, int, int, struct timeval *, 55*7836SJohn.Forte@Sun.COM void (*)(ncall_t *, void *), void *, va_list); 56*7836SJohn.Forte@Sun.COM int (*ncall_broadcast)(ncall_t *, int, int, struct timeval *, 57*7836SJohn.Forte@Sun.COM va_list); 58*7836SJohn.Forte@Sun.COM int (*ncall_read_reply)(ncall_t *, int, va_list); 59*7836SJohn.Forte@Sun.COM void (*ncall_reset)(ncall_t *); 60*7836SJohn.Forte@Sun.COM void (*ncall_free)(ncall_t *); 61*7836SJohn.Forte@Sun.COM 62*7836SJohn.Forte@Sun.COM int (*ncall_put_data)(ncall_t *, void *, int); 63*7836SJohn.Forte@Sun.COM int (*ncall_get_data)(ncall_t *, void *, int); 64*7836SJohn.Forte@Sun.COM 65*7836SJohn.Forte@Sun.COM int (*ncall_sender)(ncall_t *); 66*7836SJohn.Forte@Sun.COM void (*ncall_reply)(ncall_t *, va_list); 67*7836SJohn.Forte@Sun.COM void (*ncall_pend)(ncall_t *); 68*7836SJohn.Forte@Sun.COM void (*ncall_done)(ncall_t *); 69*7836SJohn.Forte@Sun.COM 70*7836SJohn.Forte@Sun.COM int (*ncall_ping)(char *, int *); 71*7836SJohn.Forte@Sun.COM int (*ncall_maxnodes)(void); 72*7836SJohn.Forte@Sun.COM int (*ncall_nextnode)(void **); 73*7836SJohn.Forte@Sun.COM int (*ncall_errcode)(ncall_t *, int *); 74*7836SJohn.Forte@Sun.COM } ncall_module_t; 75*7836SJohn.Forte@Sun.COM 76*7836SJohn.Forte@Sun.COM extern int ncall_register_module(ncall_module_t *, ncall_node_t *); 77*7836SJohn.Forte@Sun.COM extern int ncall_unregister_module(ncall_module_t *); 78*7836SJohn.Forte@Sun.COM 79*7836SJohn.Forte@Sun.COM #endif /* _KERNEL */ 80*7836SJohn.Forte@Sun.COM 81*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 82*7836SJohn.Forte@Sun.COM } 83*7836SJohn.Forte@Sun.COM #endif 84*7836SJohn.Forte@Sun.COM 85*7836SJohn.Forte@Sun.COM #endif /* _NCALL_MODULE_H */ 86