summaryrefslogtreecommitdiffstats
path: root/drivers/staging/meilhaus/meslock.c
diff options
context:
space:
mode:
authorFrederic Weisbecker2009-10-18 01:09:09 +0200
committerFrederic Weisbecker2009-10-18 01:12:33 +0200
commit0f8f86c7bdd1c954fbe153af437a0d91a6c5721a (patch)
tree94a8d419a470a4f9852ca397bb9bbe48db92ff5c /drivers/staging/meilhaus/meslock.c
parentMerge branch 'linus' into tracing/hw-breakpoints (diff)
parentperf tools: Move dereference after NULL test (diff)
downloadkernel-qcow2-linux-0f8f86c7bdd1c954fbe153af437a0d91a6c5721a.tar.gz
kernel-qcow2-linux-0f8f86c7bdd1c954fbe153af437a0d91a6c5721a.tar.xz
kernel-qcow2-linux-0f8f86c7bdd1c954fbe153af437a0d91a6c5721a.zip
Merge commit 'perf/core' into perf/hw-breakpoint
Conflicts: kernel/Makefile kernel/trace/Makefile kernel/trace/trace.h samples/Makefile Merge reason: We need to be uptodate with the perf events development branch because we plan to rewrite the breakpoints API on top of perf events.
Diffstat (limited to 'drivers/staging/meilhaus/meslock.c')
-rw-r--r--drivers/staging/meilhaus/meslock.c136
1 files changed, 0 insertions, 136 deletions
diff --git a/drivers/staging/meilhaus/meslock.c b/drivers/staging/meilhaus/meslock.c
deleted file mode 100644
index abcdb4a2eba6..000000000000
--- a/drivers/staging/meilhaus/meslock.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * @file meslock.c
- *
- * @brief Implements the subdevice lock class.
- * @note Copyright (C) 2006 Meilhaus Electronic GmbH (support@meilhaus.de)
- * @author Guenter Gebhardt
- */
-
-/*
- * Copyright (C) 2006 Meilhaus Electronic GmbH (support@meilhaus.de)
- *
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <linux/spinlock.h>
-
-#include "medefines.h"
-#include "meerror.h"
-
-#include "medebug.h"
-#include "meslock.h"
-
-int me_slock_enter(struct me_slock *slock, struct file *filep)
-{
- PDEBUG_LOCKS("executed.\n");
-
- spin_lock(&slock->spin_lock);
-
- if ((slock->filep) != NULL && (slock->filep != filep)) {
- PERROR("Subdevice is locked by another process.\n");
- spin_unlock(&slock->spin_lock);
- return ME_ERRNO_LOCKED;
- }
-
- slock->count++;
-
- spin_unlock(&slock->spin_lock);
-
- return ME_ERRNO_SUCCESS;
-}
-
-int me_slock_exit(struct me_slock *slock, struct file *filep)
-{
- PDEBUG_LOCKS("executed.\n");
-
- spin_lock(&slock->spin_lock);
- slock->count--;
- spin_unlock(&slock->spin_lock);
-
- return ME_ERRNO_SUCCESS;
-}
-
-int me_slock_lock(struct me_slock *slock, struct file *filep, int lock)
-{
- PDEBUG_LOCKS("executed.\n");
-
- switch (lock) {
-
- case ME_LOCK_RELEASE:
- spin_lock(&slock->spin_lock);
-
- if (slock->filep == filep)
- slock->filep = NULL;
-
- spin_unlock(&slock->spin_lock);
-
- break;
-
- case ME_LOCK_SET:
- spin_lock(&slock->spin_lock);
-
- if (slock->count) {
- spin_unlock(&slock->spin_lock);
- PERROR("Subdevice is used by another process.\n");
- return ME_ERRNO_USED;
- } else if (slock->filep == NULL)
- slock->filep = filep;
- else if (slock->filep != filep) {
- spin_unlock(&slock->spin_lock);
- PERROR("Subdevice is locked by another process.\n");
- return ME_ERRNO_LOCKED;
- }
-
- spin_unlock(&slock->spin_lock);
-
- break;
-
- case ME_LOCK_CHECK:
- spin_lock(&slock->spin_lock);
-
- if (slock->count) {
- spin_unlock(&slock->spin_lock);
- return ME_ERRNO_USED;
- } else if ((slock->filep != NULL) && (slock->filep != filep)) {
- spin_unlock(&slock->spin_lock);
- return ME_ERRNO_LOCKED;
- }
-
- spin_unlock(&slock->spin_lock);
-
- break;
-
- default:
- break;
- }
-
- return ME_ERRNO_SUCCESS;
-}
-
-void me_slock_deinit(struct me_slock *slock)
-{
- PDEBUG_LOCKS("executed.\n");
-}
-
-int me_slock_init(me_slock_t *slock)
-{
- PDEBUG_LOCKS("executed.\n");
-
- slock->filep = NULL;
- slock->count = 0;
- spin_lock_init(&slock->spin_lock);
-
- return 0;
-}