Whamcloud - gitweb
land v0.9.1 on HEAD, in preparation for a 1.0.x branch
[fs/lustre-release.git] / lnet / ulnds / socklnd / procbridge.h
1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=8:tabstop=8:
3  *
4  *  Copyright (c) 2002 Cray Inc.
5  *  Copyright (c) 2003 Cluster File Systems, Inc.
6  *
7  *   This file is part of Portals, http://www.sf.net/projects/sandiaportals/
8  */
9
10 #ifndef _PROCBRIDGE_H_
11 #define _PROCBRIDGE_H_
12
13 #include <pthread.h>
14 #include <bridge.h>
15 #include <ipmap.h>
16
17
18 #define NAL_FLAG_RUNNING        1
19 #define NAL_FLAG_STOPPING       2
20 #define NAL_FLAG_STOPPED        4
21
22 typedef struct procbridge {
23     /* sync between user threads and nal thread */
24     pthread_t t;
25     pthread_cond_t cond;
26     pthread_mutex_t mutex;
27
28     int nal_flags;
29
30     pthread_mutex_t nal_cb_lock;
31 } *procbridge;
32
33 typedef struct nal_init_args {
34     ptl_pid_t        nia_requested_pid;
35     ptl_ni_limits_t *nia_limits;
36     int              nia_nal_type;
37     bridge           nia_bridge;
38 } nal_init_args_t;
39
40 extern void *nal_thread(void *);
41
42
43 #define PTL_INIT        (LIB_MAX_DISPATCH+1)
44 #define PTL_FINI        (LIB_MAX_DISPATCH+2)
45
46 #define MAX_ACLS        1
47 #define MAX_PTLS        128
48
49 extern void set_address(bridge t,ptl_pid_t pidrequest);
50 extern nal_t *procbridge_interface(int num_interface,
51                                    ptl_pt_index_t ptl_size,
52                                    ptl_ac_index_t acl_size,
53                                    ptl_pid_t requested_pid);
54
55 #endif