void diag_stat_inc(enum diag_stat_enum nr);
 void diag_stat_inc_norecursion(enum diag_stat_enum nr);
 
+struct hypfs_diag0c_entry;
+
+/*
+ * Diagnose 0c: Pseudo Timer
+ */
+void diag0c(struct hypfs_diag0c_entry *data);
+
 /*
  * Diagnose 10: Release page range
  */
        int (*diag26c)(unsigned long rx, unsigned long rx1, enum diag26c_sc subcode);
        int (*diag14)(unsigned long rx, unsigned long ry1, unsigned long subcode);
        int (*diag8c)(struct diag8c *addr, struct ccw_dev_id *devno, size_t len);
-       void (*diag0c)(struct hypfs_diag0c_entry *entry);
+       void (*diag0c)(unsigned long rx);
        void (*diag308_reset)(void);
 };
 
 int _diag210_amode31(struct diag210 *addr);
 int _diag26c_amode31(unsigned long rx, unsigned long rx1, enum diag26c_sc subcode);
 int _diag14_amode31(unsigned long rx, unsigned long ry1, unsigned long subcode);
-void _diag0c_amode31(struct hypfs_diag0c_entry *entry);
+void _diag0c_amode31(unsigned long rx);
 void _diag308_reset_amode31(void);
 int _diag8c_amode31(struct diag8c *addr, struct ccw_dev_id *devno, size_t len);
 
 
 }
 EXPORT_SYMBOL(diag_stat_inc_norecursion);
 
+/*
+ * Diagnose 0c: Pseudo Timer
+ */
+void diag0c(struct hypfs_diag0c_entry *data)
+{
+       diag_stat_inc(DIAG_STAT_X00C);
+       diag_amode31_ops.diag0c(virt_to_phys(data));
+}
+
 /*
  * Diagnose 14: Input spool file manipulation
  */