7extern struct aura_node *n;
38#define RPC_HOST_I(func, val) \
40 struct aura_buffer *retbuf; \
41 ret = aura_call(n, func, &retbuf, val); \
43 BUG(n, "Call" #func "failed!"); \
44 aura_buffer_release( retbuf); \
45 slog(3, SLOG_INFO, "ARM: Call func ok");
47#define RPC_HOST_PPI(func,src,dst,size,k) \
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); \
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");
63#define RPC_HOST_PPI_R64_k0k1(func,src0,src1,size,ret,k0,k1) \
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); \
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");
82#define RPC_HOST_PPPI(func,src0,src1,dst,size,k) \
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); \
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");
101#define RPC_HOST_PIPI(func,src,val,dst,size,k) \
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); \
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");
117#define RPC_HOST_PIPI2(func,src,val,dst,size,k1,k2) \
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); \
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");
133#define RPC_HOST_PLPI(func,src,val,dst,size,k1,k2) \
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); \
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");
149#define RPC_HOST_PPLI(func,src,val,dst,size,k) \
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); \
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");
166#define RPC_HOST_PIR(func,src,size,res,k) \
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); \
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");
179#define RPC_HOST_PPI_I(func,src,dst,handle,ret,k) \
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); \
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");
196#define RPC_HOST_PIR64(func,src,size,res,k) \
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); \
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");
218#define RPC_HOST_PPIR64(func,srcVec0,srcVec1, size, dst,k1,k2) \
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); \
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");