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/Modules/arraymodule.c b/Modules/arraymodule.c
index afe4587..27f0365 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1784,7 +1784,7 @@
 
 
 static int
-array_buffer_getbuf(arrayobject *self, PyBuffer *view, int flags)
+array_buffer_getbuf(arrayobject *self, Py_buffer *view, int flags)
 {
         if ((flags & PyBUF_CHARACTER)) {
                 PyErr_SetString(PyExc_TypeError,
@@ -1825,7 +1825,7 @@
 }
 
 static void
-array_buffer_relbuf(arrayobject *self, PyBuffer *view)
+array_buffer_relbuf(arrayobject *self, Py_buffer *view)
 {
         self->ob_exports--;
 }