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_
18 #define NAL_FLAG_RUNNING 1
19 #define NAL_FLAG_STOPPING 2
20 #define NAL_FLAG_STOPPED 4
22 typedef struct procbridge {
23 /* sync between user threads and nal thread */
26 pthread_mutex_t mutex;
28 /* socket pair used to notify nal thread */
33 pthread_mutex_t nal_cb_lock;
36 typedef struct nal_init_args {
37 ptl_pid_t nia_requested_pid;
38 ptl_ni_limits_t *nia_limits;
43 extern void *nal_thread(void *);
46 #define PTL_INIT (LIB_MAX_DISPATCH+1)
47 #define PTL_FINI (LIB_MAX_DISPATCH+2)
52 extern void set_address(bridge t,ptl_pid_t pidrequest);
53 extern nal_t *procbridge_interface(int num_interface,
54 ptl_pt_index_t ptl_size,
55 ptl_ac_index_t acl_size,
56 ptl_pid_t requested_pid);
57 extern void procbridge_wakeup_nal(procbridge p);