Index: kernel/generic/include/cap/cap.h
===================================================================
--- kernel/generic/include/cap/cap.h	(revision 5a5269df4bb8693ab8e38af0622b7fa6365b9535)
+++ kernel/generic/include/cap/cap.h	(revision fc65b8760fae24da9071307235240d5c2290731b)
@@ -70,4 +70,8 @@
 } kobject_ops_t;
 
+extern kobject_ops_t *kobject_ops[];
+
+#define KOBJECT_OP(k)	kobject_ops[(k)->type]
+
 /*
  * Everything in kobject_t except for the atomic reference count, the capability
@@ -82,6 +86,4 @@
 	/** List of published capabilities associated with the kobject */
 	list_t caps_list;
-
-	kobject_ops_t *ops;
 
 	union {
@@ -139,6 +141,5 @@
 extern kobject_t *kobject_alloc(unsigned int);
 extern void kobject_free(kobject_t *);
-extern void kobject_initialize(kobject_t *, kobject_type_t, void *,
-    kobject_ops_t *);
+extern void kobject_initialize(kobject_t *, kobject_type_t, void *);
 extern kobject_t *kobject_get(struct task *, cap_handle_t, kobject_type_t);
 extern void kobject_add_ref(kobject_t *);
Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision 5a5269df4bb8693ab8e38af0622b7fa6365b9535)
+++ kernel/generic/include/ipc/ipc.h	(revision fc65b8760fae24da9071307235240d5c2290731b)
@@ -172,4 +172,6 @@
 extern answerbox_t *ipc_box_0;
 
+extern kobject_ops_t call_kobject_ops;
+
 extern void ipc_init(void);
 
Index: kernel/generic/include/ipc/ipcrsc.h
===================================================================
--- kernel/generic/include/ipc/ipcrsc.h	(revision 5a5269df4bb8693ab8e38af0622b7fa6365b9535)
+++ kernel/generic/include/ipc/ipcrsc.h	(revision fc65b8760fae24da9071307235240d5c2290731b)
@@ -40,4 +40,6 @@
 #include <cap/cap.h>
 
+extern kobject_ops_t phone_kobject_ops;
+
 extern errno_t phone_alloc(task_t *, bool, cap_phone_handle_t *, kobject_t **);
 extern void phone_dealloc(cap_phone_handle_t);
Index: kernel/generic/include/ipc/irq.h
===================================================================
--- kernel/generic/include/ipc/irq.h	(revision 5a5269df4bb8693ab8e38af0622b7fa6365b9535)
+++ kernel/generic/include/ipc/irq.h	(revision fc65b8760fae24da9071307235240d5c2290731b)
@@ -46,4 +46,7 @@
 #include <typedefs.h>
 #include <adt/list.h>
+#include <cap/cap.h>
+
+extern kobject_ops_t irq_kobject_ops;
 
 extern irq_ownership_t ipc_irq_top_half_claim(irq_t *);
Index: kernel/generic/include/synch/syswaitq.h
===================================================================
--- kernel/generic/include/synch/syswaitq.h	(revision 5a5269df4bb8693ab8e38af0622b7fa6365b9535)
+++ kernel/generic/include/synch/syswaitq.h	(revision fc65b8760fae24da9071307235240d5c2290731b)
@@ -38,4 +38,7 @@
 #include <typedefs.h>
 #include <abi/cap.h>
+#include <cap/cap.h>
+
+extern kobject_ops_t waitq_kobject_ops;
 
 extern void sys_waitq_init(void);
