[Forensics-changes] [yara] 199/415: Add missing files

Hilko Bengen bengen at moszumanska.debian.org
Thu Apr 3 05:43:05 UTC 2014


This is an automated email from the git hooks/post-receive script.

bengen pushed a commit to branch debian
in repository yara.

commit 67534c5fb5e7a5ea97857f8d9a0a9c875c506747
Author: Victor M. Alvarez <plusvic at gmail.com>
Date:   Thu Sep 26 14:18:41 2013 +0000

    Add missing files
---
 threading.c | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 threading.h |  72 +++++++++++++++++++++++++++++++
 2 files changed, 213 insertions(+)

diff --git a/threading.c b/threading.c
new file mode 100644
index 0000000..74da59a
--- /dev/null
+++ b/threading.c
@@ -0,0 +1,141 @@
+/*
+Copyright (c) 2013. Victor M. Alvarez [plusvic at gmail.com].
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+#include "threading.h"
+
+
+int mutex_init(
+    MUTEX* mutex)
+{
+  #ifdef WIN32
+  *mutex = CreateMutex(NULL, FALSE, NULL);
+  #else
+  pthread_mutex_init(mutex, NULL);
+  #endif
+}
+
+void mutex_destroy(
+    MUTEX* mutex)
+{
+  #ifdef WIN32
+  CloseHandle(*mutex);
+  #else
+  pthread_mutex_destroy(mutex);
+  #endif
+}
+
+
+void mutex_lock(
+    MUTEX* mutex)
+{
+  #ifdef WIN32
+  WaitForSingleObject(*mutex, INFINITE);
+  #else
+  pthread_mutex_lock(mutex);
+  #endif
+}
+
+
+void mutex_unlock(
+    MUTEX* mutex)
+{
+  #ifdef WIN32
+  ReleaseMutex(*mutex);
+  #else
+  pthread_mutex_unlock(mutex);
+  #endif
+}
+
+
+void semaphore_init(
+    SEMAPHORE* semaphore, 
+    int value)
+{
+  #ifdef WIN32
+  *semaphore = CreateSemaphore(NULL, value, 65535, NULL);
+  #else
+  // Mac OS X doesn't support unnamed semaphores via sem_init, that's why
+  // we use sem_open instead sem_init and immediately unlink the semaphore
+  // from the name. More info at:
+  // 
+  // http://stackoverflow.com/questions/1413785/sem-init-on-os-x
+  *semaphore = sem_open("/semaphore", O_CREAT, S_IRUSR, value);
+  sem_unlink("/semaphore");
+  #endif
+}
+
+
+void semaphore_destroy(
+    SEMAPHORE* semaphore)
+{
+  #ifdef WIN32
+  CloseHandle(*semaphore);
+  #else
+  sem_close(*semaphore);
+  #endif
+}
+
+
+void semaphore_wait(
+    SEMAPHORE* semaphore)
+{
+  #ifdef WIN32
+  WaitForSingleObject(*semaphore, INFINITE);
+  #else
+  sem_wait(*semaphore);
+  #endif
+}
+
+
+void semaphore_release(
+    SEMAPHORE* semaphore)
+{
+  #ifdef WIN32
+  ReleaseSemaphore(*semaphore, 1, NULL);
+  #else
+  sem_post(*semaphore);
+  #endif
+}
+
+
+int create_thread(
+    THREAD* thread, 
+    THREAD_START_ROUTINE start_routine,
+    void* param)
+{
+  #ifdef WIN32
+  *thread = CreateThread(NULL, 0, start_routine, param, 0, NULL);
+  #else
+  pthread_create(thread, NULL, start_routine, param);
+  #endif
+
+  return 0;
+}
+
+
+void thread_join(
+    THREAD* thread)
+{
+  #ifdef WIN32
+  WaitForSingleObject(*thread, INFINITE);
+  #else
+  pthread_join(*thread, NULL);
+  #endif
+}
+
+
+
+
diff --git a/threading.h b/threading.h
new file mode 100644
index 0000000..a9a6f5d
--- /dev/null
+++ b/threading.h
@@ -0,0 +1,72 @@
+/*
+Copyright (c) 2013. Victor M. Alvarez [plusvic at gmail.com].
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+
+#ifndef _THREADING_H
+#define _THREADING_H
+
+#ifdef WIN32
+#include <windows.h>
+#else
+#include <pthread.h>
+#include <semaphore.h>
+#endif
+
+#ifdef WIN32
+
+typedef HANDLE SEMAPHORE;
+typedef HANDLE MUTEX;
+typedef HANDLE THREAD;
+
+typedef THREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
+
+#else
+
+typedef sem_t* SEMAPHORE;
+typedef pthread_mutex_t MUTEX;
+typedef pthread_t THREAD;
+typedef void *(*THREAD_START_ROUTINE) (void *);
+
+#endif
+
+int mutex_init(
+    MUTEX* mutex);
+
+void mutex_lock(
+    MUTEX* mutex);
+
+void mutex_unlock(
+    MUTEX* mutex);
+
+void semaphore_init(
+    SEMAPHORE* semaphore, 
+    int value);
+
+void semaphore_wait(
+    SEMAPHORE* semaphore);
+
+void semaphore_release(
+    SEMAPHORE* semaphore);
+
+int create_thread(
+    THREAD* thread, 
+    THREAD_START_ROUTINE start_routine,
+    void* param);
+
+void thread_join(
+    THREAD* thread);
+
+#endif
\ No newline at end of file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/forensics/yara.git



More information about the forensics-changes mailing list