nmpp
rpc-host.h
1#ifdef RPC
2#include <aura/aura.h>
3#include <ion/ion.h>
4#include <memory.h>
5
6
7extern struct aura_node *n;
8/*
9#define RPC_HOST_P(func) \
10 int ret; \
11 struct aura_buffer *iobuf_src = aura_buffer_request(n, size); \
12 memcpy(iobuf_src->data,src,size); \
13 struct aura_buffer *retbuf; \
14 ret = aura_call(n, func, &retbuf, iobuf_src, iobuf_dst, size); \
15 if (ret != 0) \
16 BUG(n, "Call func failed!"); \
17 memcpy(dst,iobuf_dst->data,size); \
18 aura_buffer_release( iobuf_src); \
19 aura_buffer_release( retbuf); \
20 slog(3, SLOG_INFO, "ARM: Call func ok");
21
22
23#define RPC_HOST_PI(func,ptr) \
24 int ret; \
25 struct aura_buffer *iobuf_src = aura_buffer_request(n, size); \
26 struct aura_buffer *iobuf_dst = aura_buffer_request(n, size); \
27 memcpy(iobuf_src->data,src,size); \
28 struct aura_buffer *retbuf; \
29 ret = aura_call(n, func, &retbuf, iobuf_src, iobuf_dst, size); \
30 if (ret != 0) \
31 BUG(n, "Call func failed!"); \
32 memcpy(dst,iobuf_dst->data,size*k); \
33 aura_buffer_release( iobuf_dst); \
34 aura_buffer_release( iobuf_src); \
35 aura_buffer_release( retbuf); \
36 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
37*/
38#define RPC_HOST_I(func, val) \
39 int ret; \
40 struct aura_buffer *retbuf; \
41 ret = aura_call(n, func, &retbuf, val); \
42 if (ret != 0) \
43 BUG(n, "Call" #func "failed!"); \
44 aura_buffer_release( retbuf); \
45 slog(3, SLOG_INFO, "ARM: Call func ok");
46
47#define RPC_HOST_PPI(func,src,dst,size,k) \
48 int ret; \
49 struct aura_buffer *iobuf_src = aura_buffer_request(n, size*k); \
50 struct aura_buffer *iobuf_dst = aura_buffer_request(n, size*k); \
51 memcpy(iobuf_src->data,src,size*k); \
52 struct aura_buffer *retbuf; \
53 ret = aura_call(n, func, &retbuf, iobuf_src, iobuf_dst, size); \
54 if (ret != 0) {\
55 printf ("bug = %d\r\n",ret);\
56 BUG(n, "Call " #func " failed!"); }\
57 memcpy(dst,iobuf_dst->data,size*k); \
58 aura_buffer_release( iobuf_dst); \
59 aura_buffer_release( iobuf_src); \
60 aura_buffer_release( retbuf); \
61 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
62
63#define RPC_HOST_PPI_R64_k0k1(func,src0,src1,size,ret,k0,k1) \
64 int ret; \
65 struct aura_buffer *iobuf_src0 = aura_buffer_request(n, size*k0); \
66 struct aura_buffer *iobuf_src1 = aura_buffer_request(n, size*k1); \
67 memcpy(iobuf_src0->data,src0,size*k0); \
68 memcpy(iobuf_src1->data,src1,size*k1); \
69 struct aura_buffer *retbuf; \
70 ret = aura_call(n, func, &retbuf, iobuf_src0,iobuf_src1, size); \
71 if (ret != 0) {\
72 printf ("bug = %d\r\n",ret);\
73 BUG(n, "Call " #func " failed!"); }\
74 *res = aura_buffer_get_u32(retbuf);\
75 aura_buffer_release( iobuf_src0); \
76 aura_buffer_release( iobuf_src1); \
77 aura_buffer_release( retbuf); \
78 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
79
80
81
82#define RPC_HOST_PPPI(func,src0,src1,dst,size,k) \
83 int ret; \
84 struct aura_buffer *iobuf_src0 = aura_buffer_request(n, size*k); \
85 struct aura_buffer *iobuf_src1 = aura_buffer_request(n, size*k); \
86 struct aura_buffer *iobuf_dst = aura_buffer_request(n, size*k); \
87 memcpy(iobuf_src0->data,src0,size*k); \
88 memcpy(iobuf_src1->data,src1,size*k); \
89 struct aura_buffer *retbuf; \
90 ret = aura_call(n, func, &retbuf, iobuf_src0, iobuf_src1, iobuf_dst, size); \
91 if (ret != 0) \
92 BUG(n, "Call " #func " failed!"); \
93 memcpy(dst,iobuf_dst->data,size*k); \
94 aura_buffer_release( iobuf_dst); \
95 aura_buffer_release( iobuf_src1); \
96 aura_buffer_release( iobuf_src0); \
97 aura_buffer_release( retbuf); \
98 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
99
100
101#define RPC_HOST_PIPI(func,src,val,dst,size,k) \
102 int ret; \
103 struct aura_buffer *iobuf_src = aura_buffer_request(n, size*k); \
104 struct aura_buffer *iobuf_dst = aura_buffer_request(n, size*k); \
105 memcpy(iobuf_src->data,src,size*k); \
106 struct aura_buffer *retbuf; \
107 ret = aura_call(n, func, &retbuf, iobuf_src, val, iobuf_dst, size); \
108 if (ret != 0) {\
109 printf ("bug = %d\r\n",ret);\
110 BUG(n, "Call " #func " failed!"); }\
111 memcpy(dst,iobuf_dst->data,size*k); \
112 aura_buffer_release( iobuf_dst); \
113 aura_buffer_release( iobuf_src); \
114 aura_buffer_release( retbuf); \
115 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
116
117#define RPC_HOST_PIPI2(func,src,val,dst,size,k1,k2) \
118 int ret; \
119 struct aura_buffer *iobuf_src = aura_buffer_request(n, size*k1); \
120 struct aura_buffer *iobuf_dst = aura_buffer_request(n, size*k2); \
121 memcpy(iobuf_src->data,src,size*k1); \
122 struct aura_buffer *retbuf; \
123 ret = aura_call(n, func, &retbuf, iobuf_src, val, iobuf_dst, size); \
124 if (ret != 0) {\
125 printf ("bug = %d\r\n",ret);\
126 BUG(n, "Call " #func " failed!"); }\
127 memcpy(dst,iobuf_dst->data,size*k2); \
128 aura_buffer_release( iobuf_dst); \
129 aura_buffer_release( iobuf_src); \
130 aura_buffer_release( retbuf); \
131 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
132
133#define RPC_HOST_PLPI(func,src,val,dst,size,k1,k2) \
134 int ret; \
135 struct aura_buffer *iobuf_src = aura_buffer_request(n, size*k1); \
136 struct aura_buffer *iobuf_dst = aura_buffer_request(n, size*k2); \
137 memcpy(iobuf_src->data,src,size*k1); \
138 struct aura_buffer *retbuf; \
139 ret = aura_call(n, func, &retbuf, iobuf_src, val, iobuf_dst, size); \
140 if (ret != 0) {\
141 printf ("bug = %d\r\n",ret);\
142 BUG(n, "Call " #func " failed!"); }\
143 memcpy(dst,iobuf_dst->data,size*k2); \
144 aura_buffer_release( iobuf_dst); \
145 aura_buffer_release( iobuf_src); \
146 aura_buffer_release( retbuf); \
147 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
148
149#define RPC_HOST_PPLI(func,src,val,dst,size,k) \
150 int ret; \
151 struct aura_buffer *iobuf_src = aura_buffer_request(n, size*k); \
152 struct aura_buffer *iobuf_dst = aura_buffer_request(n, size*k); \
153 memcpy(iobuf_src->data,src,size*k); \
154 struct aura_buffer *retbuf; \
155 ret = aura_call(n, func, &retbuf, iobuf_src, iobuf_dst, val, size); \
156 if (ret != 0) {\
157 printf ("bug = %d\r\n",ret);\
158 BUG(n, "Call " #func " failed!"); }\
159 memcpy(dst,iobuf_dst->data,size*k); \
160 aura_buffer_release( iobuf_dst); \
161 aura_buffer_release( iobuf_src); \
162 aura_buffer_release( retbuf); \
163 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
164
165
166#define RPC_HOST_PIR(func,src,size,res,k) \
167 int ret; \
168 struct aura_buffer *iobuf_src = aura_buffer_request(n, size*k); \
169 memcpy(iobuf_src->data,src,size*k); \
170 struct aura_buffer *retbuf; \
171 ret = aura_call(n, func, &retbuf, iobuf_src, size); \
172 if (ret != 0) \
173 BUG(n, "Call " #func " failed!"); \
174 *res = aura_buffer_get_u32(retbuf);\
175 aura_buffer_release( iobuf_src); \
176 aura_buffer_release( retbuf); \
177 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
178
179#define RPC_HOST_PPI_I(func,src,dst,handle,ret,k) \
180 int ret; \
181 struct aura_buffer *iobuf_src = aura_buffer_request(n, size*k); \
182 struct aura_buffer *iobuf_dst = aura_buffer_request(n, size*k); \
183 memcpy(iobuf_src->data,src,size*k); \
184 memcpy(iobuf_dst->data,dst,size*k); \
185 struct aura_buffer *retbuf; \
186 ret = aura_call(n, func, &retbuf, iobuf_src, iobuf_dst, handle); \
187 if (ret != 0) \
188 BUG(n, "Call " #func " failed!"); \
189 *res = aura_buffer_get_u32(retbuf);\
190 aura_buffer_release( iobuf_src); \
191 aura_buffer_release( iobuf_dst); \
192 aura_buffer_release( retbuf); \
193 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
194
195
196#define RPC_HOST_PIR64(func,src,size,res,k) \
197 int ret; \
198 struct aura_buffer *iobuf_src = aura_buffer_request(n, size*k); \
199 memcpy(iobuf_src->data,src,size*k); \
200 struct aura_buffer *retbuf; \
201 ret = aura_call(n, func, &retbuf, iobuf_src, size); \
202 if (ret != 0) \
203 BUG(n, "Call " #func " failed!"); \
204 *res = aura_buffer_get_u64(retbuf);\
205 aura_buffer_release( iobuf_src); \
206 aura_buffer_release( retbuf); \
207 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
208
209 //memcpy(iobuf_src1->data,pSrcMtr,nHeight*nWidth*k1);
210
211 //memcpy(iobuf_src1->data,pSrcMtr1,nHeight1*nWidth1*k1); \
212 //memcpy(iobuf_src2->data,pSrcMtr2,nWidth1*nWidth2*k2 );
213 // memcpy(pDstMtr, iobuf_dst->data, nHeight1*nWidth2*k2);
214
215
216
217
218#define RPC_HOST_PPIR64(func,srcVec0,srcVec1, size, dst,k1,k2) \
219 int ret; \
220 struct aura_buffer *iobuf_src1 = aura_buffer_request(n, size*k1); \
221 struct aura_buffer *iobuf_src2 = aura_buffer_request(n, size*k2 ); \
222 memcpy(iobuf_src1->data,srcVec0,size*k1); \
223 memcpy(iobuf_src2->data,srcVec1,size*k2); \
224 struct aura_buffer *retbuf; \
225 ret = aura_call(n, func, &retbuf, iobuf_src1, iobuf_src2, size); \
226 if (ret != 0) {\
227 slog(3, SLOG_ERROR, "bug = %d", ret);\
228 BUG(n, "Call " #func " failed!"); } \
229 *dst = aura_buffer_get_u64(retbuf); \
230 aura_buffer_release( iobuf_src1); \
231 aura_buffer_release( iobuf_src2); \
232 aura_buffer_release( retbuf); \
233 slog(3, SLOG_INFO, "ARM: Call " #func " -ok");
234
235
236#endif