[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