Lines Matching defs:uargs
155 sev_publish_args_t uargs;
163 if (copyin(arg, &uargs, sizeof (sev_publish_args_t)) != 0)
169 if (uargs.ev.len > MAX_EV_SIZE_LEN)
173 * Check for valid uargs.flags
175 if (uargs.flags & ~(EVCH_NOSLEEP | EVCH_SLEEP | EVCH_QWAIT))
182 km_flags = uargs.flags & (EVCH_NOSLEEP | EVCH_SLEEP);
186 ev = evch_usrallocev(uargs.ev.len, uargs.flags);
188 if (copyin((void *)(uintptr_t)uargs.ev.name, ev, uargs.ev.len) != 0) {
193 return (evch_usrpostevent(ctl->chp, ev, uargs.flags));
206 sev_bind_args_t uargs;
216 if (copyin(arg, &uargs, sizeof (sev_bind_args_t)) != 0)
219 if (uargs.chan_name.len > MAX_CHNAME_LEN)
222 chan_name = kmem_alloc(uargs.chan_name.len, KM_SLEEP);
224 if (copyin((void *)(uintptr_t)uargs.chan_name.name, chan_name,
225 uargs.chan_name.len) != 0) {
226 kmem_free(chan_name, uargs.chan_name.len);
230 if (!sysevent_isstrend(chan_name, uargs.chan_name.len)) {
231 kmem_free(chan_name, uargs.chan_name.len);
236 * Check of uargs.flags and uargs.perms just to avoid DoS attacks.
240 uargs.flags & EVCH_B_FLAGS, &ec);
242 kmem_free(chan_name, uargs.chan_name.len);
255 sev_control_args_t uargs;
263 if (copyin(arg, &uargs, sizeof (sev_control_args_t)) != 0)
266 switch (uargs.cmd) {
269 rc = evch_usrcontrol_get(ctl->chp, uargs.cmd, &uargs.value);
271 if (copyout((void *)&uargs, arg,
278 rc = evch_usrcontrol_set(ctl->chp, uargs.cmd, uargs.value);
290 sev_subscribe_args_t uargs;
300 if (copyin(arg, &uargs, sizeof (sev_subscribe_args_t)) != 0)
303 if (uargs.sid.len > MAX_SUBID_LEN ||
304 uargs.class_info.len > MAX_CLASS_LEN)
307 sid = kmem_alloc(uargs.sid.len, KM_SLEEP);
308 if (copyin((void *)(uintptr_t)uargs.sid.name,
309 sid, uargs.sid.len) != 0) {
310 kmem_free(sid, uargs.sid.len);
313 if (!sysevent_isstrend(sid, uargs.sid.len)) {
314 kmem_free(sid, uargs.sid.len);
319 if (uargs.class_info.len != 0) {
320 class_info = kmem_alloc(uargs.class_info.len, KM_SLEEP);
321 if (copyin((void *)(uintptr_t)uargs.class_info.name, class_info,
322 uargs.class_info.len) != 0) {
323 kmem_free(class_info, uargs.class_info.len);
324 kmem_free(sid, uargs.sid.len);
327 if (!sysevent_isstrend(class_info, uargs.class_info.len)) {
328 kmem_free(class_info, uargs.class_info.len);
329 kmem_free(sid, uargs.sid.len);
335 * Check of uargs.flags just to avoid DoS attacks
339 (int)uargs.door_desc, uargs.flags);
341 kmem_free(class_info, uargs.class_info.len);
342 kmem_free(sid, uargs.sid.len);
351 sev_unsubscribe_args_t uargs;
355 if (copyin(arg, &uargs, sizeof (sev_unsubscribe_args_t)) != 0)
362 if (uargs.sid.len > MAX_SUBID_LEN)
366 if (uargs.sid.len == 0) {
371 sid = kmem_alloc(uargs.sid.len, KM_SLEEP);
373 if (copyin((void *)(uintptr_t)uargs.sid.name,
374 sid, uargs.sid.len) != 0) {
375 kmem_free(sid, uargs.sid.len);
381 kmem_free(sid, uargs.sid.len);
390 sev_chandata_args_t uargs;
395 if (copyin(arg, &uargs, sizeof (sev_chandata_args_t)) != 0)
398 if (uargs.out_data.len == 0 || uargs.out_data.len > EVCH_MAX_DATA_SIZE)
401 buf = kmem_alloc(uargs.out_data.len, KM_SLEEP);
403 if ((len = evch_usrgetchnames(buf, uargs.out_data.len)) == -1) {
408 ASSERT(len <= uargs.out_data.len);
410 (void *)(uintptr_t)uargs.out_data.name, len) != 0) {
415 kmem_free(buf, uargs.out_data.len);
424 sev_chandata_args_t uargs;
430 if (copyin(arg, &uargs, sizeof (sev_chandata_args_t)) != 0)
433 if (uargs.in_data.len > MAX_CHNAME_LEN ||
434 uargs.out_data.len > EVCH_MAX_DATA_SIZE)
437 channel = kmem_alloc(uargs.in_data.len, KM_SLEEP);
439 if (copyin((void *)(uintptr_t)uargs.in_data.name, channel,
440 uargs.in_data.len) != 0) {
441 kmem_free(channel, uargs.in_data.len);
445 if (!sysevent_isstrend(channel, uargs.in_data.len)) {
446 kmem_free(channel, uargs.in_data.len);
450 buf = kmem_alloc(uargs.out_data.len, KM_SLEEP);
452 len = evch_usrgetchdata(channel, buf, uargs.out_data.len);
460 ASSERT(len <= uargs.out_data.len);
462 (void *)(uintptr_t)uargs.out_data.name, len) != 0) {
467 kmem_free(buf, uargs.out_data.len);
468 kmem_free(channel, uargs.in_data.len);
477 sev_propnvl_args_t uargs;
487 if (copyin(arg, &uargs, sizeof (uargs)) != 0)
490 if (uargs.packednvl.name != 0) {
491 bufsz = uargs.packednvl.len;
501 if (copyin((void *)(uintptr_t)uargs.packednvl.name, buf,
522 sev_propnvl_args_t uargs;
534 if (copyin(arg, &uargs, sizeof (uargs)) != 0)
541 avlsz = uargs.packednvl.len;
558 (void *)(uintptr_t)uargs.packednvl.name,
569 uargs.packednvl.len = (uint32_t)reqsz;
572 uargs.packednvl.len = 0;
576 uargs.generation = gen;
577 if (copyout((void *)&uargs, arg, sizeof (uargs)) != 0)