*/
#define VC_CAT_VERSION 0
-
+#define VC_CAT_VHOST 2
+
#define VC_CAT_PROCTRL 12
+#define VC_CAT_SCHED 14
+#define VC_CAT_INODE 38
+
+#define VC_CAT_VINFO 46
+
#define VC_CAT_RLIMIT 60
#define VC_CAT_SYSTEST 61
#define CRLIM_KEEP (~1ULL)
+
+#define VC_CAT_SCHED 14
+
+/* scheduler vserver commands */
+
+#define VCMD_get_sched VC_CMD(SCHED, 1, 1)
+#define VCMD_set_sched VC_CMD(SCHED, 2, 1)
+
+
+/* Structure for context's TBF scheduling priorities */
+
+struct vcmd_tbf_sched_v1 {
+ uint32_t fill_level;
+ uint32_t fill_rate;
+ uint32_t period;
+ uint32_t bucket_size;
+};
+
+#define TBFS_PERIOD_AUTO (0ULL)
+#define TBFS_KEEP_VALUE (~0ULL)
+
+
+/* inode vserver commands */
+
+#define VCMD_get_iattr_v0 VC_CMD(INODE, 1, 0)
+#define VCMD_set_iattr_v0 VC_CMD(INODE, 2, 0)
+#define VCMD_get_iattr VC_CMD(INODE, 1, 1)
+#define VCMD_set_iattr VC_CMD(INODE, 2, 1)
+
+struct vcmd_ctx_iattr_v1 {
+ const char *file_name;
+ uint32_t xid;
+ uint32_t flags;
+ uint32_t mask;
+};
+
+#define IATTR_XID 0x01000000
+
+#define IATTR_ADMIN 0x00000001
+#define IATTR_WATCH 0x00000002
+#define IATTR_HIDE 0x00000004
+
+#define IATTR_BARRIER 0x00010000
+#define IATTR_IUNLINK 0x00020000
+
+
+
+/* vinfo commands */
+
+#define VCMD_task_xid VC_CMD(VINFO, 1, 0)
+#define VCMD_task_nid VC_CMD(VINFO, 2, 0)
+
+#define VCMD_vx_info VC_CMD(VINFO, 5, 0)
+#define VCMD_nx_info VC_CMD(VINFO, 6, 0)
+
+struct vcmd_vx_info_v0 {
+ uint32_t xid;
+ uint32_t initpid;
+ /* more to come */
+};
+
+
+#define VCMD_vx_set_vhi_name VC_CMD(VHOST, 1, 0)
+#define VCMD_vx_get_vhi_name VC_CMD(VHOST, 2, 0)
+
+struct vcmd_vx_vhi_name_v0 {
+ uint32_t field;
+ char name[65];
+};
+
+enum vx_vhi_name_field {
+ VHIN_CONTEXT=0,
+ VHIN_SYSNAME,
+ VHIN_NODENAME,
+ VHIN_RELEASE,
+ VHIN_VERSION,
+ VHIN_MACHINE,
+ VHIN_DOMAINNAME,
+};
+
#endif /* _LINUX_VIRTUAL_H */