summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordoko@ubuntu.com <doko@ubuntu.com>2013-12-08 14:23:07 (GMT)
committerdoko@ubuntu.com <doko@ubuntu.com>2013-12-08 14:23:07 (GMT)
commitca616a2709951f2ef8534aaa5933af4cc9d1594d (patch)
tree522dc560036ee914484e600ede95ddd17d4b32aa
parentb02bcae56632d2744ec24db2a1fd3a35ab363fba (diff)
downloadcpython-ca616a2709951f2ef8534aaa5933af4cc9d1594d.zip
cpython-ca616a2709951f2ef8534aaa5933af4cc9d1594d.tar.gz
cpython-ca616a2709951f2ef8534aaa5933af4cc9d1594d.tar.bz2
- Issue #19736: Add module-level statvfs constants defined for GNU/glibc
based systems.
-rw-r--r--Doc/library/os.rst15
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/posixmodule.c29
3 files changed, 47 insertions, 0 deletions
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index f5f2e16..32c1563 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -1980,11 +1980,26 @@ features:
read-only, and if :const:`ST_NOSUID` is set, the semantics of
setuid/setgid bits are disabled or not supported.
+ Additional module-level constants are defined for GNU/glibc based systems.
+ These are :const:`ST_NODEV` (disallow access to device special files),
+ :const:`ST_NOEXEC` (disallow program execution), :const:`ST_SYNCHRONOUS`
+ (writes are synced at once), :const:`ST_MANDLOCK` (allow mandatory locks on an FS),
+ :const:`ST_WRITE` (write on file/directory/symlink), :const:`ST_APPEND`
+ (append-only file), :const:`ST_IMMUTABLE` (immutable file), :const:`ST_NOATIME`
+ (do not update access times), :const:`ST_NODIRATIME` (do not update directory access
+ times), :const:`ST_RELATIME` (update atime relative to mtime/ctime).
+
This function can support :ref:`specifying a file descriptor <path_fd>`.
.. versionchanged:: 3.2
The :const:`ST_RDONLY` and :const:`ST_NOSUID` constants were added.
+ .. versionchanged:: 3.4
+ The :const:`ST_NODEV`, :const:`ST_NOEXEC`, :const:`ST_SYNCHRONOUS`,
+ :const:`ST_MANDLOCK`, :const:`ST_WRITE`, :const:`ST_APPEND`,
+ :const:`ST_IMMUTABLE`, :const:`ST_NOATIME`, :const:`ST_NODIRATIME`,
+ and :const:`ST_RELATIME` constants were added.
+
Availability: Unix.
.. versionadded:: 3.3
diff --git a/Misc/NEWS b/Misc/NEWS
index 5c10e1a..8e758cb 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ Release date: 2014-01-05
Core and Builtins
-----------------
+- Issue #19736: Add module-level statvfs constants defined for GNU/glibc
+ based systems.
+
- Issue #19729: In str.format(), fix recursive expansion in format spec.
- Issue #19638: Fix possible crash / undefined behaviour from huge (more than 2
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 2f21ceb..d0fbf5a 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -11858,6 +11858,35 @@ all_ins(PyObject *m)
if (PyModule_AddIntMacro(m, ST_NOSUID)) return -1;
#endif /* ST_NOSUID */
+ /* GNU extensions */
+#ifdef ST_NODEV
+ if (PyModule_AddIntMacro(m, ST_NODEV)) return -1;
+#endif /* ST_NODEV */
+#ifdef ST_NOEXEC
+ if (PyModule_AddIntMacro(m, ST_NOEXEC)) return -1;
+#endif /* ST_NOEXEC */
+#ifdef ST_SYNCHRONOUS
+ if (PyModule_AddIntMacro(m, ST_SYNCHRONOUS)) return -1;
+#endif /* ST_SYNCHRONOUS */
+#ifdef ST_MANDLOCK
+ if (PyModule_AddIntMacro(m, ST_MANDLOCK)) return -1;
+#endif /* ST_MANDLOCK */
+#ifdef ST_WRITE
+ if (PyModule_AddIntMacro(m, ST_WRITE)) return -1;
+#endif /* ST_WRITE */
+#ifdef ST_APPEND
+ if (PyModule_AddIntMacro(m, ST_APPEND)) return -1;
+#endif /* ST_APPEND */
+#ifdef ST_NOATIME
+ if (PyModule_AddIntMacro(m, ST_NOATIME)) return -1;
+#endif /* ST_NOATIME */
+#ifdef ST_NODIRATIME
+ if (PyModule_AddIntMacro(m, ST_NODIRATIME)) return -1;
+#endif /* ST_NODIRATIME */
+#ifdef ST_RELATIME
+ if (PyModule_AddIntMacro(m, ST_RELATIME)) return -1;
+#endif /* ST_RELATIME */
+
/* FreeBSD sendfile() constants */
#ifdef SF_NODISKIO
if (PyModule_AddIntMacro(m, SF_NODISKIO)) return -1;