Whamcloud - gitweb
Branch b1_6
[fs/lustre-release.git] / lnet / include / lnet / api.h
1 #ifndef __LNET_API_H__
2 #define __LNET_API_H__
3
4 #include <lnet/types.h>
5
6 int LNetInit(void);
7 void LNetFini(void);
8
9 int LNetNIInit(lnet_pid_t requested_pid);
10 int LNetNIFini(void);
11
12 int LNetGetId(unsigned int index, lnet_process_id_t *id);
13 int LNetDist(lnet_nid_t nid, lnet_nid_t *srcnid, __u32 *order);
14 int LNetCtl(unsigned int cmd, void *arg);
15 void LNetSnprintHandle (char *str, int str_len, lnet_handle_any_t handle);
16
17 /*
18  * Portals
19  */
20 int LNetSetLazyPortal(int portal);
21 int LNetClearLazyPortal(int portal);
22
23 /*
24  * Match entries
25  */
26 int LNetMEAttach(unsigned int      portal,
27                  lnet_process_id_t match_id_in, 
28                  __u64             match_bits_in,
29                  __u64             ignore_bits_in, 
30                  lnet_unlink_t     unlink_in,
31                  lnet_ins_pos_t    pos_in, 
32                  lnet_handle_me_t *handle_out);
33
34 int LNetMEInsert(lnet_handle_me_t  current_in, 
35                  lnet_process_id_t match_id_in,
36                  __u64             match_bits_in, 
37                  __u64             ignore_bits_in,
38                  lnet_unlink_t     unlink_in, 
39                  lnet_ins_pos_t    position_in,
40                  lnet_handle_me_t *handle_out);
41
42 int LNetMEUnlink(lnet_handle_me_t current_in);
43
44 /*
45  * Memory descriptors
46  */
47 int LNetMDAttach(lnet_handle_me_t  current_in, 
48                  lnet_md_t         md_in,
49                  lnet_unlink_t     unlink_in, 
50                  lnet_handle_md_t *handle_out);
51
52 int LNetMDBind(lnet_md_t         md_in,
53                lnet_unlink_t     unlink_in, 
54                lnet_handle_md_t *handle_out);
55
56 int LNetMDUnlink(lnet_handle_md_t md_in);
57
58 /*
59  * Event queues
60  */
61 int LNetEQAlloc(unsigned int       count_in,
62                 lnet_eq_handler_t  handler,
63                 lnet_handle_eq_t  *handle_out);
64
65 int LNetEQFree(lnet_handle_eq_t eventq_in);
66
67 int LNetEQGet(lnet_handle_eq_t  eventq_in, 
68               lnet_event_t     *event_out);
69
70
71 int LNetEQWait(lnet_handle_eq_t  eventq_in, 
72                lnet_event_t     *event_out);
73
74 int LNetEQPoll(lnet_handle_eq_t *eventqs_in, 
75                int               neq_in, 
76                int               timeout_ms,
77                lnet_event_t     *event_out, 
78                int              *which_eq_out);
79
80 /*
81  * Data movement
82  */
83 int LNetPut(lnet_nid_t        self,
84             lnet_handle_md_t  md_in, 
85             lnet_ack_req_t    ack_req_in,
86             lnet_process_id_t target_in, 
87             unsigned int      portal_in,
88             __u64             match_bits_in,
89             unsigned int      offset_in, 
90             __u64             hdr_data_in);
91
92 int LNetGet(lnet_nid_t        self,
93             lnet_handle_md_t  md_in, 
94             lnet_process_id_t target_in,
95             unsigned int      portal_in, 
96             __u64             match_bits_in, 
97             unsigned int      offset_in);
98
99
100 int LNetSetAsync(lnet_process_id_t id, int nasync);
101
102 #ifndef __KERNEL__
103 /* Temporary workaround to allow uOSS and test programs force server
104  * mode in userspace. See comments near ln_server_mode_flag in
105  * lnet/lib-types.h */
106
107 void lnet_server_mode();
108 #endif        
109
110 #endif