Index: generic/include/ddi/ddi.h
===================================================================
--- generic/include/ddi/ddi.h	(revision f58af46f91b507488f711011ceb5691c4a7358d3)
+++ generic/include/ddi/ddi.h	(revision f6a0f065313f80577feb532b149596c25b7b3866)
@@ -36,4 +36,5 @@
 extern __native sys_physmem_map(ddi_memarg_t *uspace_mem_arg);
 extern __native sys_iospace_enable(ddi_ioarg_t *uspace_io_arg);
+extern __native sys_preempt_control(int enable);
 
 /*
Index: generic/include/security/cap.h
===================================================================
--- generic/include/security/cap.h	(revision f58af46f91b507488f711011ceb5691c4a7358d3)
+++ generic/include/security/cap.h	(revision f6a0f065313f80577feb532b149596c25b7b3866)
@@ -42,4 +42,5 @@
 #define __CAP_H__
 
+#include <syscall/sysarg64.h>
 #include <arch/types.h>
 #include <typedefs.h>
@@ -64,7 +65,12 @@
 
 /**
- * CAP_PREEMPT_CONTROL allows its holder to disable interrupts
+ * CAP_PREEMPT_CONTROL allows its holder to disable/enable preemption.
  */
-#define CAP_PREEMPT_CONTROL         (1<<3)
+#define CAP_PREEMPT_CONTROL	(1<<3)
+
+/**
+ * CAP_IRQ_REG entitles its holder to register IRQ handlers.
+ */
+#define CAP_IRQ_REG		(1<<4) 
 
 typedef __u32 cap_t;
@@ -73,3 +79,6 @@
 extern cap_t cap_get(task_t *t);
 
+extern __native sys_cap_grant(sysarg64_t *uspace_taskid_arg, cap_t caps);
+extern __native sys_cap_revoke(sysarg64_t *uspace_taskid_arg, cap_t caps);
+
 #endif
Index: generic/include/syscall/sysarg64.h
===================================================================
--- generic/include/syscall/sysarg64.h	(revision f6a0f065313f80577feb532b149596c25b7b3866)
+++ generic/include/syscall/sysarg64.h	(revision f6a0f065313f80577feb532b149596c25b7b3866)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @file	sysarg64.h
+ * @brief	Wrapper for explicit 64-bit arguments passed to syscalls.
+ */
+
+#ifndef __SYSARG64_H__
+#define __SYSARG64_H__
+
+typedef struct {
+	unsigned long long value;
+} sysarg64_t;
+
+#endif
Index: generic/include/syscall/syscall.h
===================================================================
--- generic/include/syscall/syscall.h	(revision f58af46f91b507488f711011ceb5691c4a7358d3)
+++ generic/include/syscall/syscall.h	(revision f6a0f065313f80577feb532b149596c25b7b3866)
@@ -33,5 +33,4 @@
 	SYS_IO = 0,
 	SYS_TLS_SET = 1, /* Hardcoded in AMD64,IA32 uspace - psthread.S */
-	SYS_PREEMPT_CONTROL,
 	SYS_THREAD_CREATE,
 	SYS_THREAD_EXIT,
@@ -54,6 +53,9 @@
 	SYS_IPC_REGISTER_IRQ,
 	SYS_IPC_UNREGISTER_IRQ,
+	SYS_CAP_GRANT,
+	SYS_CAP_REVOKE,
 	SYS_MAP_PHYSMEM,
 	SYS_IOSPACE_ENABLE,
+	SYS_PREEMPT_CONTROL,
 	SYSCALL_END
 } syscall_t;
