be applied on restricted fds.
}
break;
+ case IOCTL_PRIVCMD_SHUTDOWN: {
+ sched_remote_shutdown_t srs;
+
+ if (copy_from_user(&srs, udata, sizeof(srs)))
+ return -EFAULT;
+ if (fdata->restrict_domid != UNRESTRICTED_DOMID &&
+ fdata->restrict_domid != srs.domain_id)
+ return -EACCES;
+ ret = HYPERVISOR_sched_op(SCHEDOP_remote_shutdown, &srs);
+ }
+ break;
+
default:
ret = -EINVAL;
break;
_IOC(_IOC_NONE, 'P', 5, sizeof(xen_domctl_t))
#define IOCTL_PRIVCMD_HVMOP \
_IOC(_IOC_NONE, 'P', 6, sizeof(privcmd_hvmop_t))
+#define IOCTL_PRIVCMD_SHUTDOWN \
+ _IOC(_IOC_NONE, 'P', 7, sizeof(sched_remote_shutdown_t))
#endif /* __LINUX_PUBLIC_PRIVCMD_H__ */