Lines Matching refs:xiocb
24 int cfe_iocb_dispatch(struct cfe_xiocb *xiocb);
35 static int (*cfe_dispfunc) (intptr_t handle, intptr_t xiocb);
45 int cfe_iocb_dispatch(struct cfe_xiocb * xiocb) in cfe_iocb_dispatch() argument
49 return (*cfe_dispfunc) ((intptr_t) cfe_handle, (intptr_t) xiocb); in cfe_iocb_dispatch()
54 struct cfe_xiocb xiocb; in cfe_close() local
56 xiocb.xiocb_fcode = CFE_CMD_DEV_CLOSE; in cfe_close()
57 xiocb.xiocb_status = 0; in cfe_close()
58 xiocb.xiocb_handle = handle; in cfe_close()
59 xiocb.xiocb_flags = 0; in cfe_close()
60 xiocb.xiocb_psize = 0; in cfe_close()
62 cfe_iocb_dispatch(&xiocb); in cfe_close()
64 return xiocb.xiocb_status; in cfe_close()
70 struct cfe_xiocb xiocb; in cfe_cpu_start() local
72 xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL; in cfe_cpu_start()
73 xiocb.xiocb_status = 0; in cfe_cpu_start()
74 xiocb.xiocb_handle = 0; in cfe_cpu_start()
75 xiocb.xiocb_flags = 0; in cfe_cpu_start()
76 xiocb.xiocb_psize = sizeof(struct xiocb_cpuctl); in cfe_cpu_start()
77 xiocb.plist.xiocb_cpuctl.cpu_number = cpu; in cfe_cpu_start()
78 xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_START; in cfe_cpu_start()
79 xiocb.plist.xiocb_cpuctl.gp_val = gp; in cfe_cpu_start()
80 xiocb.plist.xiocb_cpuctl.sp_val = sp; in cfe_cpu_start()
81 xiocb.plist.xiocb_cpuctl.a1_val = a1; in cfe_cpu_start()
82 xiocb.plist.xiocb_cpuctl.start_addr = (long) fn; in cfe_cpu_start()
84 cfe_iocb_dispatch(&xiocb); in cfe_cpu_start()
86 return xiocb.xiocb_status; in cfe_cpu_start()
91 struct cfe_xiocb xiocb; in cfe_cpu_stop() local
93 xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL; in cfe_cpu_stop()
94 xiocb.xiocb_status = 0; in cfe_cpu_stop()
95 xiocb.xiocb_handle = 0; in cfe_cpu_stop()
96 xiocb.xiocb_flags = 0; in cfe_cpu_stop()
97 xiocb.xiocb_psize = sizeof(struct xiocb_cpuctl); in cfe_cpu_stop()
98 xiocb.plist.xiocb_cpuctl.cpu_number = cpu; in cfe_cpu_stop()
99 xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_STOP; in cfe_cpu_stop()
101 cfe_iocb_dispatch(&xiocb); in cfe_cpu_stop()
103 return xiocb.xiocb_status; in cfe_cpu_stop()
108 struct cfe_xiocb xiocb; in cfe_enumenv() local
110 xiocb.xiocb_fcode = CFE_CMD_ENV_SET; in cfe_enumenv()
111 xiocb.xiocb_status = 0; in cfe_enumenv()
112 xiocb.xiocb_handle = 0; in cfe_enumenv()
113 xiocb.xiocb_flags = 0; in cfe_enumenv()
114 xiocb.xiocb_psize = sizeof(struct xiocb_envbuf); in cfe_enumenv()
115 xiocb.plist.xiocb_envbuf.enum_idx = idx; in cfe_enumenv()
116 xiocb.plist.xiocb_envbuf.name_ptr = XPTR_FROM_NATIVE(name); in cfe_enumenv()
117 xiocb.plist.xiocb_envbuf.name_length = namelen; in cfe_enumenv()
118 xiocb.plist.xiocb_envbuf.val_ptr = XPTR_FROM_NATIVE(val); in cfe_enumenv()
119 xiocb.plist.xiocb_envbuf.val_length = vallen; in cfe_enumenv()
121 cfe_iocb_dispatch(&xiocb); in cfe_enumenv()
123 return xiocb.xiocb_status; in cfe_enumenv()
129 struct cfe_xiocb xiocb; in cfe_enummem() local
131 xiocb.xiocb_fcode = CFE_CMD_FW_MEMENUM; in cfe_enummem()
132 xiocb.xiocb_status = 0; in cfe_enummem()
133 xiocb.xiocb_handle = 0; in cfe_enummem()
134 xiocb.xiocb_flags = flags; in cfe_enummem()
135 xiocb.xiocb_psize = sizeof(struct xiocb_meminfo); in cfe_enummem()
136 xiocb.plist.xiocb_meminfo.mi_idx = idx; in cfe_enummem()
138 cfe_iocb_dispatch(&xiocb); in cfe_enummem()
140 if (xiocb.xiocb_status < 0) in cfe_enummem()
141 return xiocb.xiocb_status; in cfe_enummem()
143 *start = xiocb.plist.xiocb_meminfo.mi_addr; in cfe_enummem()
144 *length = xiocb.plist.xiocb_meminfo.mi_size; in cfe_enummem()
145 *type = xiocb.plist.xiocb_meminfo.mi_type; in cfe_enummem()
152 struct cfe_xiocb xiocb; in cfe_exit() local
154 xiocb.xiocb_fcode = CFE_CMD_FW_RESTART; in cfe_exit()
155 xiocb.xiocb_status = 0; in cfe_exit()
156 xiocb.xiocb_handle = 0; in cfe_exit()
157 xiocb.xiocb_flags = warm ? CFE_FLG_WARMSTART : 0; in cfe_exit()
158 xiocb.xiocb_psize = sizeof(struct xiocb_exitstat); in cfe_exit()
159 xiocb.plist.xiocb_exitstat.status = status; in cfe_exit()
161 cfe_iocb_dispatch(&xiocb); in cfe_exit()
163 return xiocb.xiocb_status; in cfe_exit()
168 struct cfe_xiocb xiocb; in cfe_flushcache() local
170 xiocb.xiocb_fcode = CFE_CMD_FW_FLUSHCACHE; in cfe_flushcache()
171 xiocb.xiocb_status = 0; in cfe_flushcache()
172 xiocb.xiocb_handle = 0; in cfe_flushcache()
173 xiocb.xiocb_flags = flg; in cfe_flushcache()
174 xiocb.xiocb_psize = 0; in cfe_flushcache()
176 cfe_iocb_dispatch(&xiocb); in cfe_flushcache()
178 return xiocb.xiocb_status; in cfe_flushcache()
183 struct cfe_xiocb xiocb; in cfe_getdevinfo() local
185 xiocb.xiocb_fcode = CFE_CMD_DEV_GETINFO; in cfe_getdevinfo()
186 xiocb.xiocb_status = 0; in cfe_getdevinfo()
187 xiocb.xiocb_handle = 0; in cfe_getdevinfo()
188 xiocb.xiocb_flags = 0; in cfe_getdevinfo()
189 xiocb.xiocb_psize = sizeof(struct xiocb_buffer); in cfe_getdevinfo()
190 xiocb.plist.xiocb_buffer.buf_offset = 0; in cfe_getdevinfo()
191 xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(name); in cfe_getdevinfo()
192 xiocb.plist.xiocb_buffer.buf_length = strlen(name); in cfe_getdevinfo()
194 cfe_iocb_dispatch(&xiocb); in cfe_getdevinfo()
196 if (xiocb.xiocb_status < 0) in cfe_getdevinfo()
197 return xiocb.xiocb_status; in cfe_getdevinfo()
198 return xiocb.plist.xiocb_buffer.buf_ioctlcmd; in cfe_getdevinfo()
203 struct cfe_xiocb xiocb; in cfe_getenv() local
207 xiocb.xiocb_fcode = CFE_CMD_ENV_GET; in cfe_getenv()
208 xiocb.xiocb_status = 0; in cfe_getenv()
209 xiocb.xiocb_handle = 0; in cfe_getenv()
210 xiocb.xiocb_flags = 0; in cfe_getenv()
211 xiocb.xiocb_psize = sizeof(struct xiocb_envbuf); in cfe_getenv()
212 xiocb.plist.xiocb_envbuf.enum_idx = 0; in cfe_getenv()
213 xiocb.plist.xiocb_envbuf.name_ptr = XPTR_FROM_NATIVE(name); in cfe_getenv()
214 xiocb.plist.xiocb_envbuf.name_length = strlen(name); in cfe_getenv()
215 xiocb.plist.xiocb_envbuf.val_ptr = XPTR_FROM_NATIVE(dest); in cfe_getenv()
216 xiocb.plist.xiocb_envbuf.val_length = destlen; in cfe_getenv()
218 cfe_iocb_dispatch(&xiocb); in cfe_getenv()
220 return xiocb.xiocb_status; in cfe_getenv()
225 struct cfe_xiocb xiocb; in cfe_getfwinfo() local
227 xiocb.xiocb_fcode = CFE_CMD_FW_GETINFO; in cfe_getfwinfo()
228 xiocb.xiocb_status = 0; in cfe_getfwinfo()
229 xiocb.xiocb_handle = 0; in cfe_getfwinfo()
230 xiocb.xiocb_flags = 0; in cfe_getfwinfo()
231 xiocb.xiocb_psize = sizeof(struct xiocb_fwinfo); in cfe_getfwinfo()
233 cfe_iocb_dispatch(&xiocb); in cfe_getfwinfo()
235 if (xiocb.xiocb_status < 0) in cfe_getfwinfo()
236 return xiocb.xiocb_status; in cfe_getfwinfo()
238 info->fwi_version = xiocb.plist.xiocb_fwinfo.fwi_version; in cfe_getfwinfo()
239 info->fwi_totalmem = xiocb.plist.xiocb_fwinfo.fwi_totalmem; in cfe_getfwinfo()
240 info->fwi_flags = xiocb.plist.xiocb_fwinfo.fwi_flags; in cfe_getfwinfo()
241 info->fwi_boardid = xiocb.plist.xiocb_fwinfo.fwi_boardid; in cfe_getfwinfo()
242 info->fwi_bootarea_va = xiocb.plist.xiocb_fwinfo.fwi_bootarea_va; in cfe_getfwinfo()
243 info->fwi_bootarea_pa = xiocb.plist.xiocb_fwinfo.fwi_bootarea_pa; in cfe_getfwinfo()
245 xiocb.plist.xiocb_fwinfo.fwi_bootarea_size; in cfe_getfwinfo()
252 struct cfe_xiocb xiocb; in cfe_getstdhandle() local
254 xiocb.xiocb_fcode = CFE_CMD_DEV_GETHANDLE; in cfe_getstdhandle()
255 xiocb.xiocb_status = 0; in cfe_getstdhandle()
256 xiocb.xiocb_handle = 0; in cfe_getstdhandle()
257 xiocb.xiocb_flags = flg; in cfe_getstdhandle()
258 xiocb.xiocb_psize = 0; in cfe_getstdhandle()
260 cfe_iocb_dispatch(&xiocb); in cfe_getstdhandle()
262 if (xiocb.xiocb_status < 0) in cfe_getstdhandle()
263 return xiocb.xiocb_status; in cfe_getstdhandle()
264 return xiocb.xiocb_handle; in cfe_getstdhandle()
270 struct cfe_xiocb xiocb; in cfe_getticks() local
272 xiocb.xiocb_fcode = CFE_CMD_FW_GETTIME; in cfe_getticks()
273 xiocb.xiocb_status = 0; in cfe_getticks()
274 xiocb.xiocb_handle = 0; in cfe_getticks()
275 xiocb.xiocb_flags = 0; in cfe_getticks()
276 xiocb.xiocb_psize = sizeof(struct xiocb_time); in cfe_getticks()
277 xiocb.plist.xiocb_time.ticks = 0; in cfe_getticks()
279 cfe_iocb_dispatch(&xiocb); in cfe_getticks()
281 return xiocb.plist.xiocb_time.ticks; in cfe_getticks()
287 struct cfe_xiocb xiocb; in cfe_inpstat() local
289 xiocb.xiocb_fcode = CFE_CMD_DEV_INPSTAT; in cfe_inpstat()
290 xiocb.xiocb_status = 0; in cfe_inpstat()
291 xiocb.xiocb_handle = handle; in cfe_inpstat()
292 xiocb.xiocb_flags = 0; in cfe_inpstat()
293 xiocb.xiocb_psize = sizeof(struct xiocb_inpstat); in cfe_inpstat()
294 xiocb.plist.xiocb_inpstat.inp_status = 0; in cfe_inpstat()
296 cfe_iocb_dispatch(&xiocb); in cfe_inpstat()
298 if (xiocb.xiocb_status < 0) in cfe_inpstat()
299 return xiocb.xiocb_status; in cfe_inpstat()
300 return xiocb.plist.xiocb_inpstat.inp_status; in cfe_inpstat()
307 struct cfe_xiocb xiocb; in cfe_ioctl() local
309 xiocb.xiocb_fcode = CFE_CMD_DEV_IOCTL; in cfe_ioctl()
310 xiocb.xiocb_status = 0; in cfe_ioctl()
311 xiocb.xiocb_handle = handle; in cfe_ioctl()
312 xiocb.xiocb_flags = 0; in cfe_ioctl()
313 xiocb.xiocb_psize = sizeof(struct xiocb_buffer); in cfe_ioctl()
314 xiocb.plist.xiocb_buffer.buf_offset = offset; in cfe_ioctl()
315 xiocb.plist.xiocb_buffer.buf_ioctlcmd = ioctlnum; in cfe_ioctl()
316 xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(buffer); in cfe_ioctl()
317 xiocb.plist.xiocb_buffer.buf_length = length; in cfe_ioctl()
319 cfe_iocb_dispatch(&xiocb); in cfe_ioctl()
322 *retlen = xiocb.plist.xiocb_buffer.buf_retlen; in cfe_ioctl()
323 return xiocb.xiocb_status; in cfe_ioctl()
328 struct cfe_xiocb xiocb; in cfe_open() local
330 xiocb.xiocb_fcode = CFE_CMD_DEV_OPEN; in cfe_open()
331 xiocb.xiocb_status = 0; in cfe_open()
332 xiocb.xiocb_handle = 0; in cfe_open()
333 xiocb.xiocb_flags = 0; in cfe_open()
334 xiocb.xiocb_psize = sizeof(struct xiocb_buffer); in cfe_open()
335 xiocb.plist.xiocb_buffer.buf_offset = 0; in cfe_open()
336 xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(name); in cfe_open()
337 xiocb.plist.xiocb_buffer.buf_length = strlen(name); in cfe_open()
339 cfe_iocb_dispatch(&xiocb); in cfe_open()
341 if (xiocb.xiocb_status < 0) in cfe_open()
342 return xiocb.xiocb_status; in cfe_open()
343 return xiocb.xiocb_handle; in cfe_open()
353 struct cfe_xiocb xiocb; in cfe_readblk() local
355 xiocb.xiocb_fcode = CFE_CMD_DEV_READ; in cfe_readblk()
356 xiocb.xiocb_status = 0; in cfe_readblk()
357 xiocb.xiocb_handle = handle; in cfe_readblk()
358 xiocb.xiocb_flags = 0; in cfe_readblk()
359 xiocb.xiocb_psize = sizeof(struct xiocb_buffer); in cfe_readblk()
360 xiocb.plist.xiocb_buffer.buf_offset = offset; in cfe_readblk()
361 xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(buffer); in cfe_readblk()
362 xiocb.plist.xiocb_buffer.buf_length = length; in cfe_readblk()
364 cfe_iocb_dispatch(&xiocb); in cfe_readblk()
366 if (xiocb.xiocb_status < 0) in cfe_readblk()
367 return xiocb.xiocb_status; in cfe_readblk()
368 return xiocb.plist.xiocb_buffer.buf_retlen; in cfe_readblk()
373 struct cfe_xiocb xiocb; in cfe_setenv() local
375 xiocb.xiocb_fcode = CFE_CMD_ENV_SET; in cfe_setenv()
376 xiocb.xiocb_status = 0; in cfe_setenv()
377 xiocb.xiocb_handle = 0; in cfe_setenv()
378 xiocb.xiocb_flags = 0; in cfe_setenv()
379 xiocb.xiocb_psize = sizeof(struct xiocb_envbuf); in cfe_setenv()
380 xiocb.plist.xiocb_envbuf.enum_idx = 0; in cfe_setenv()
381 xiocb.plist.xiocb_envbuf.name_ptr = XPTR_FROM_NATIVE(name); in cfe_setenv()
382 xiocb.plist.xiocb_envbuf.name_length = strlen(name); in cfe_setenv()
383 xiocb.plist.xiocb_envbuf.val_ptr = XPTR_FROM_NATIVE(val); in cfe_setenv()
384 xiocb.plist.xiocb_envbuf.val_length = strlen(val); in cfe_setenv()
386 cfe_iocb_dispatch(&xiocb); in cfe_setenv()
388 return xiocb.xiocb_status; in cfe_setenv()
398 struct cfe_xiocb xiocb; in cfe_writeblk() local
400 xiocb.xiocb_fcode = CFE_CMD_DEV_WRITE; in cfe_writeblk()
401 xiocb.xiocb_status = 0; in cfe_writeblk()
402 xiocb.xiocb_handle = handle; in cfe_writeblk()
403 xiocb.xiocb_flags = 0; in cfe_writeblk()
404 xiocb.xiocb_psize = sizeof(struct xiocb_buffer); in cfe_writeblk()
405 xiocb.plist.xiocb_buffer.buf_offset = offset; in cfe_writeblk()
406 xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(buffer); in cfe_writeblk()
407 xiocb.plist.xiocb_buffer.buf_length = length; in cfe_writeblk()
409 cfe_iocb_dispatch(&xiocb); in cfe_writeblk()
411 if (xiocb.xiocb_status < 0) in cfe_writeblk()
412 return xiocb.xiocb_status; in cfe_writeblk()
413 return xiocb.plist.xiocb_buffer.buf_retlen; in cfe_writeblk()