Change PyBuffer to Py_buffer to be consistent with other non-object structures like Py_complex.  Add some more functionality to the memoryview object.
diff --git a/Python/marshal.c b/Python/marshal.c
index 1ec33bd..c488f27 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -367,7 +367,7 @@
 		/* Write unknown buffer-style objects as a string */
 		char *s;
 		PyBufferProcs *pb = v->ob_type->tp_as_buffer;
-                PyBuffer view;
+                Py_buffer view;
 		if ((*pb->bf_getbuffer)(v, &view, PyBUF_SIMPLE) != 0) {
                         w_byte(TYPE_UNKNOWN, p);
                         p->error = 1;