[DAPL2] DAPL Counters & 2.0.3 extensions to support counter retrieval.
[mirror/winof/.git] / ulp / dapl2 / dapl / common / dapl_ep_post_rdma_write.c
1 /*\r
2  * Copyright (c) 2002-2003, Network Appliance, Inc. All rights reserved.\r
3  *\r
4  * This Software is licensed under one of the following licenses:\r
5  *\r
6  * 1) under the terms of the "Common Public License 1.0" a copy of which is\r
7  *    available from the Open Source Initiative, see\r
8  *    http://www.opensource.org/licenses/cpl.php.\r
9  *\r
10  * 2) under the terms of the "The BSD License" a copy of which is\r
11  *    available from the Open Source Initiative, see\r
12  *    http://www.opensource.org/licenses/bsd-license.php.\r
13  *\r
14  * 3) under the terms of the "GNU General Public License (GPL) Version 2" a\r
15  *    copy of which is available from the Open Source Initiative, see\r
16  *    http://www.opensource.org/licenses/gpl-license.php.\r
17  *\r
18  * Licensee has the right to choose one of the above licenses.\r
19  *\r
20  * Redistributions of source code must retain the above copyright\r
21  * notice and one of the license notices.\r
22  *\r
23  * Redistributions in binary form must reproduce both the above copyright\r
24  * notice, one of the license notices in the documentation\r
25  * and/or other materials provided with the distribution.\r
26  */\r
27 \r
28 /**********************************************************************\r
29  * \r
30  * MODULE: dapl_ep_post_rdma_write.c\r
31  *\r
32  * PURPOSE: Endpoint management\r
33  * Description: Interfaces in this file are completely described in\r
34  *              the DAPL 1.1 API, Chapter 6, section 5\r
35  *\r
36  * $Id:$\r
37  **********************************************************************/\r
38 \r
39 #include "dapl_ep_util.h"\r
40 \r
41 /*\r
42  * dapl_ep_post_rdma_write\r
43  *\r
44  * DAPL Requirements Version xxx, 6.5.13\r
45  *\r
46  * Request the xfer of all data specified by the local_iov over the\r
47  * connection of ep handle Endpint into the remote_iov\r
48  *\r
49  * Input:\r
50  *      ep_handle\r
51  *      num_segments\r
52  *      local_iov\r
53  *      user_cookie\r
54  *      remote_iov\r
55  *      compltion_flags\r
56  *\r
57  * Output:\r
58  *      None.\r
59  *\r
60  * Returns:\r
61  *      DAT_SUCCESS\r
62  *      DAT_INSUFFICIENT_RESOURCES\r
63  *      DAT_INVALID_PARAMETER\r
64  *      DAT_INVALID_STATE\r
65  *      DAT_LENGTH_ERROR\r
66  *      DAT_PROTECTION_VIOLATION\r
67  *      DAT_PRIVILEGES_VIOLATION\r
68  */\r
69 DAT_RETURN DAT_API\r
70 dapl_ep_post_rdma_write (\r
71         IN      DAT_EP_HANDLE           ep_handle,\r
72         IN      DAT_COUNT               num_segments,\r
73         IN      DAT_LMR_TRIPLET         *local_iov,\r
74         IN      DAT_DTO_COOKIE          user_cookie,\r
75         IN      const DAT_RMR_TRIPLET   *remote_iov,\r
76         IN      DAT_COMPLETION_FLAGS    completion_flags )\r
77 {\r
78     DAT_RETURN          dat_status;\r
79 \r
80     dapl_dbg_log (DAPL_DBG_TYPE_API,\r
81                   "dapl_ep_post_rdma_write (%p, %d, %p, %p, %p, %x)\n",\r
82                   ep_handle, \r
83                   num_segments, \r
84                   local_iov, \r
85                   user_cookie.as_64,\r
86                   remote_iov, \r
87                   completion_flags);\r
88 \r
89     dat_status = dapl_ep_post_send_req(ep_handle, \r
90                                  num_segments, \r
91                                  local_iov, \r
92                                  user_cookie, \r
93                                  remote_iov, \r
94                                  completion_flags, \r
95                                  DAPL_DTO_TYPE_RDMA_WRITE,\r
96                                  OP_RDMA_WRITE);\r
97 \r
98     dapl_dbg_log (DAPL_DBG_TYPE_RTN,\r
99                  "dapl_ep_post_rdma_write () returns 0x%x",\r
100                  dat_status);\r
101 \r
102 \r
103     return dat_status;\r
104 }\r