summaryrefslogtreecommitdiff
path: root/semaphore.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2014-09-12 14:16:22 +0000
committer <>2014-10-24 11:04:40 +0000
commita77e3a63f004e6ee789fa05e4a5bbc333b1529f1 (patch)
treeefe8a68996c19b7b0765ebc689937721d1d99cf7 /semaphore.h
downloadsysv-ipc-tarball-master.tar.gz
Imported from /home/lorry/working-area/delta_python-packages_sysv-ipc-tarball/sysv_ipc-0.6.8.tar.gz.HEADsysv_ipc-0.6.8master
Diffstat (limited to 'semaphore.h')
-rw-r--r--semaphore.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/semaphore.h b/semaphore.h
new file mode 100644
index 0000000..b4ee63d
--- /dev/null
+++ b/semaphore.h
@@ -0,0 +1,53 @@
+typedef struct {
+ PyObject_HEAD
+ key_t key;
+ int id;
+ short op_flags;
+} Semaphore;
+
+
+/* Object methods */
+PyObject *Semaphore_new(PyTypeObject *type, PyObject *, PyObject *);
+int Semaphore_init(Semaphore *, PyObject *, PyObject *);
+void Semaphore_dealloc(Semaphore *);
+PyObject *Semaphore_enter(Semaphore *);
+PyObject *Semaphore_exit(Semaphore *, PyObject *);
+PyObject *Semaphore_P(Semaphore *, PyObject *, PyObject *);
+PyObject *Semaphore_acquire(Semaphore *, PyObject *, PyObject *);
+PyObject *Semaphore_V(Semaphore *, PyObject *, PyObject *);
+PyObject *Semaphore_release(Semaphore *, PyObject *, PyObject *);
+PyObject *Semaphore_Z(Semaphore *, PyObject *, PyObject *);
+PyObject *Semaphore_remove(Semaphore *);
+
+/* Object attributes (read-write & read-only) */
+PyObject *sem_get_value(Semaphore *);
+int sem_set_value(Semaphore *self, PyObject *py_value);
+
+PyObject *sem_get_block(Semaphore *);
+int sem_set_block(Semaphore *self, PyObject *py_value);
+
+PyObject *sem_get_mode(Semaphore *);
+int sem_set_mode(Semaphore *, PyObject *);
+
+PyObject *sem_get_undo(Semaphore *);
+int sem_set_undo(Semaphore *self, PyObject *py_value);
+
+PyObject *sem_get_uid(Semaphore *);
+int sem_set_uid(Semaphore *, PyObject *);
+
+PyObject *sem_get_gid(Semaphore *);
+int sem_set_gid(Semaphore *, PyObject *);
+
+PyObject *sem_get_key(Semaphore *);
+PyObject *sem_get_c_uid(Semaphore *);
+PyObject *sem_get_c_gid(Semaphore *);
+PyObject *sem_get_last_pid(Semaphore *);
+PyObject *sem_get_waiting_for_nonzero(Semaphore *);
+PyObject *sem_get_waiting_for_zero(Semaphore *);
+PyObject *sem_get_o_time(Semaphore *);
+
+PyObject *sem_str(Semaphore *);
+PyObject *sem_repr(Semaphore *);
+
+/* Utility functions */
+PyObject *sem_remove(int);