+
+
+
+
+void fillPage(ppnum_t pa, unsigned int fill)
+{
+ unsigned int *addr = (unsigned int *)phystokv(i386_ptob(pa));
+ int i;
+ int cnt = NBPG/sizeof(unsigned int);
+
+ for (i = 0; i < cnt ; i++ )
+ *addr++ = fill;
+}
+
+#define cppvPHYS (cppvPsnk|cppvPsrc)
+
+kern_return_t copypv(addr64_t source, addr64_t sink, unsigned int size, int which)
+{
+ char *src32, *dst32;
+
+ if (value_64bit(source) | value_64bit(sink)) panic("copypv: 64 bit value");
+
+ src32 = (char *)low32(source);
+ dst32 = (char *)low32(sink);
+
+ if (which & cppvFsrc) flush_dcache(source, size, 1); /* If requested, flush source before move */
+ if (which & cppvFsnk) flush_dcache(sink, size, 1); /* If requested, flush sink before move */
+
+ switch (which & cppvPHYS) {
+
+ case cppvPHYS:
+ /*
+ * both destination and source are physical
+ */
+ bcopy_phys(source, sink, (vm_size_t)size);
+ break;
+
+ case cppvPsnk:
+ /*
+ * destination is physical, source is virtual
+ */
+ if (which & cppvKmap)
+ /*
+ * source is kernel virtual
+ */
+ bcopy(src32, (char *)phystokv(dst32), size);
+ else
+ /*
+ * source is user virtual
+ */
+ copyin(src32, (char *)phystokv(dst32), size);
+ break;
+
+ case cppvPsrc:
+ /*
+ * source is physical, destination is virtual
+ */
+ if (which & cppvKmap)
+ /*
+ * destination is kernel virtual
+ */
+ bcopy((char *)phystokv(src32), dst32, size);
+ else
+ /*
+ * destination is user virtual
+ */
+ copyout((char *)phystokv(src32), dst32, size);
+ break;
+
+ default:
+ panic("copypv: both virtual");
+ }
+
+ if (which & cppvFsrc) flush_dcache(source, size, 1); /* If requested, flush source before move */
+ if (which & cppvFsnk) flush_dcache(sink, size, 1); /* If requested, flush sink before move */
+
+ return KERN_SUCCESS;
+}
+
+
+void flush_dcache64(addr64_t addr, unsigned count, int phys)
+{
+}
+
+void invalidate_icache64(addr64_t addr, unsigned cnt, int phys)
+{
+}
+
+
+void switch_to_serial_console(void)
+{
+}
+
+addr64_t vm_last_addr;
+
+void
+mapping_set_mod(ppnum_t pn)
+{
+ pmap_set_modify(pn);
+}
+
+boolean_t
+mutex_preblock(
+ mutex_t *mutex,
+ thread_t thread)
+{
+ return (FALSE);
+}