[Checkins] SVN: zc.FileStorage/dev/src/zc/FileStorage/_zc_FileStorage_posix_fadvise.c Filled out full api

Jim Fulton jim at zope.com
Tue Dec 4 18:12:02 EST 2007


Log message for revision 82135:
  Filled out full api
  

Changed:
  U   zc.FileStorage/dev/src/zc/FileStorage/_zc_FileStorage_posix_fadvise.c

-=-
Modified: zc.FileStorage/dev/src/zc/FileStorage/_zc_FileStorage_posix_fadvise.c
===================================================================
--- zc.FileStorage/dev/src/zc/FileStorage/_zc_FileStorage_posix_fadvise.c	2007-12-04 22:37:48 UTC (rev 82134)
+++ zc.FileStorage/dev/src/zc/FileStorage/_zc_FileStorage_posix_fadvise.c	2007-12-04 23:12:02 UTC (rev 82135)
@@ -15,16 +15,19 @@
 #include <fcntl.h>
 #include "Python.h"
 
+#ifdef POSIX_FADV_DONTNEED
+
 #define OBJECT(O) ((PyObject*)(O))
 
 static PyObject *
 py_posix_fadvise(PyObject *self, PyObject *args)
 {  
   int fd, advice;
+  long long offset, len;
   
-  if (! PyArg_ParseTuple(args, "ii", &fd, &advice))
+  if (! PyArg_ParseTuple(args, "iLLi", &fd, &offset, &len, &advice))
     return NULL; 
-  return PyInt_FromLong(posix_fadvise(fd, 0, 0, advice));
+  return PyInt_FromLong(posix_fadvise(fd, offset, len, advice));
 }
 
 static struct PyMethodDef m_methods[] = {
@@ -46,14 +49,35 @@
   m = Py_InitModule3("_zc_FileStorage_posix_fadvise", m_methods, "");
   if (m == NULL)
     return;
-  if (PyModule_AddObject(m, 
-                         "POSIX_FADV_SEQUENTIAL",
+
+  if (PyModule_AddObject(m, "POSIX_FADV_NORMAL",
+                         OBJECT(PyInt_FromLong(POSIX_FADV_NORMAL))
+                         ) < 0)
+    return;
+  if (PyModule_AddObject(m, "POSIX_FADV_SEQUENTIAL",
                          OBJECT(PyInt_FromLong(POSIX_FADV_SEQUENTIAL))
                          ) < 0)
     return;
-  if (PyModule_AddObject(m, 
-                         "POSIX_FADV_NOREUSE",
+
+  if (PyModule_AddObject(m, "POSIX_FADV_RANDOM",
+                         OBJECT(PyInt_FromLong(POSIX_FADV_RANDOM))
+                         ) < 0)
+    return;
+
+  if (PyModule_AddObject(m, "POSIX_FADV_WILLNEED",
+                         OBJECT(PyInt_FromLong(POSIX_FADV_WILLNEED))
+                         ) < 0)
+    return;
+
+  if (PyModule_AddObject(m, "POSIX_FADV_DONTNEED",
+                         OBJECT(PyInt_FromLong(POSIX_FADV_DONTNEED))
+                         ) < 0)
+    return;
+
+  if (PyModule_AddObject(m, "POSIX_FADV_NOREUSE",
                          OBJECT(PyInt_FromLong(POSIX_FADV_NOREUSE))
                          ) < 0)
     return;
 }
+
+#endif



More information about the Checkins mailing list