diff --git a/Doc/c-api/buffer.rst b/Doc/c-api/buffer.rst
index af8a3a0..4d30897 100644
--- a/Doc/c-api/buffer.rst
+++ b/Doc/c-api/buffer.rst
@@ -303,18 +303,40 @@
 MemoryView objects
 ==================
 
-A memoryview object exposes the C level buffer interface to Python.
+A :class:`memoryview` object exposes the C level buffer interface as a
+Python object which can then be passed around like any other object.
 
 
-.. cfunction:: PyObject* PyMemoryView_FromObject(PyObject *obj)
+.. cfunction:: PyObject *PyMemoryView_FromObject(PyObject *obj)
 
-   Return a memoryview object from an object that defines the buffer interface.
+   Create a memoryview object from an object that defines the buffer interface.
 
 
-.. cfunction:: PyObject * PyMemoryView_GetContiguous(PyObject *obj,  int buffertype, char order)
+.. cfunction:: PyObject *PyMemoryView_FromBuffer(Py_buffer *view)
 
-   Return a memoryview object to a contiguous chunk of memory (in either
-   'C' or 'F'ortran order) from an object that defines the buffer
+   Create a memoryview object wrapping the given buffer-info structure *view*.
+   The memoryview object then owns the buffer, which means you shouldn't
+   try to release it yourself: it will be released on deallocation of the
+   memoryview object.
+
+
+.. cfunction:: PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
+
+   Create a memoryview object to a contiguous chunk of memory (in either
+   'C' or 'F'ortran *order*) from an object that defines the buffer
    interface. If memory is contiguous, the memoryview object points to the
    original memory. Otherwise copy is made and the memoryview points to a
    new bytes object.
+
+
+.. cfunction:: int PyMemoryView_Check(PyObject *obj)
+
+   Return true if the object *obj* is a memoryview object.  It is not
+   currently allowed to create subclasses of :class:`memoryview`.
+
+
+.. cfunction:: Py_buffer *PyMemoryView_GET_BUFFER(PyObject *obj)
+
+   Return a pointer to the buffer-info structure wrapped by the given
+   object.  The object **must** be a memoryview instance; this macro doesn't
+   check its type, you must do it yourself or you will risk crashes.
