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/getargs.c b/Python/getargs.c
index 8608684..dc1bae0 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -1211,7 +1211,7 @@
 		PyBufferProcs *pb = arg->ob_type->tp_as_buffer;
 		int count;
                 int temp=-1;
-                PyBuffer view;
+                Py_buffer view;
 			
 		if (pb == NULL || 
 		    pb->bf_getbuffer == NULL ||
@@ -1242,7 +1242,7 @@
 		char **p = va_arg(*p_va, char **);
 		PyBufferProcs *pb = arg->ob_type->tp_as_buffer;
 		int count;
-                PyBuffer view;
+                Py_buffer view;
 		
 		if (*format++ != '#')
 			return converterr(
@@ -1286,7 +1286,7 @@
 {
 	PyBufferProcs *pb = arg->ob_type->tp_as_buffer;
 	Py_ssize_t count;
-        PyBuffer view;
+        Py_buffer view;
 
         *errmsg = NULL;
         *p = NULL;