1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2 * vim:expandtab:shiftwidth=8:tabstop=8:
4 * Copyright (c) 2002 Cray Inc.
5 * Copyright (c) 2003 Cluster File Systems, Inc.
7 * This file is part of Portals, http://www.sf.net/projects/sandiaportals/
10 #ifndef _PROCBRIDGE_H_
11 #define _PROCBRIDGE_H_
17 #define NAL_FLAG_RUNNING 1
18 #define NAL_FLAG_STOPPING 2
19 #define NAL_FLAG_STOPPED 4
21 typedef struct procbridge {
22 /* sync between user threads and nal thread */
25 pthread_mutex_t mutex;
27 /* socket pair used to notify nal thread */
34 typedef struct nal_init_args {
35 lnet_pid_t nia_requested_pid;
39 extern void *nal_thread(void *);
41 extern void procbridge_wakeup_nal(procbridge p);
43 extern int procbridge_startup (lnet_ni_t *);
44 extern void procbridge_shutdown (lnet_ni_t *);
46 extern void tcpnal_notify(lnet_ni_t *ni, lnet_nid_t nid, int alive);
48 extern int tcpnal_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg);
49 int tcpnal_recv(lnet_ni_t *ni, void *private, lnet_msg_t *cookie,
50 int delayed, unsigned int niov,
51 struct iovec *iov, lnet_kiov_t *kiov,
52 unsigned int offset, unsigned int mlen, unsigned int rlen);
53 extern int tcpnal_set_global_params();