Commit 44bb4ac4 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

staging: csr: oska: remove refcount.c

It's not called by anyone, so remove it and the .h file and don't export
the functions as they are not around anymore.

Cc: Mikko Virkkilä <mikko.virkkila@bluegiga.com>
Cc: Lauri Hintsala <Lauri.Hintsala@bluegiga.com>
Cc: Riku Mettälä <riku.mettala@bluegiga.com>
Cc: Veli-Pekka Peltola <veli-pekka.peltola@bluegiga.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e74927de
...@@ -2,7 +2,6 @@ obj-$(CONFIG_CSR_WIFI) := csr_oska.o ...@@ -2,7 +2,6 @@ obj-$(CONFIG_CSR_WIFI) := csr_oska.o
csr_oska-y := \ csr_oska-y := \
list.o \ list.o \
refcount.o \
event.o \ event.o \
oska_module.o \ oska_module.o \
print.o \ print.o \
......
...@@ -8,14 +8,6 @@ ...@@ -8,14 +8,6 @@
*/ */
#include <linux/module.h> #include <linux/module.h>
#include "all.h"
#include "refcount.h"
EXPORT_SYMBOL(os_refcount_init);
EXPORT_SYMBOL(os_refcount_destroy);
EXPORT_SYMBOL(os_refcount_get);
EXPORT_SYMBOL(os_refcount_put);
MODULE_DESCRIPTION("Operating System Kernel Abstraction"); MODULE_DESCRIPTION("Operating System Kernel Abstraction");
MODULE_AUTHOR("Cambridge Silicon Radio Ltd."); MODULE_AUTHOR("Cambridge Silicon Radio Ltd.");
MODULE_LICENSE("GPL and additional rights"); MODULE_LICENSE("GPL and additional rights");
/*
* OSKA generic implementation -- reference counting.
*
* Copyright (C) 2010 Cambridge Silicon Radio Ltd.
*
* Refer to LICENSE.txt included with this source code for details on
* the license terms.
*/
#include "refcount.h"
#include "types.h"
void os_refcount_init(os_refcount_t *refcount, os_refcount_callback_f func, void *arg)
{
os_spinlock_init(&refcount->lock);
refcount->count = 1;
refcount->func = func;
refcount->arg = arg;
}
void os_refcount_destroy(os_refcount_t *refcount)
{
os_spinlock_destroy(&refcount->lock);
}
void os_refcount_get(os_refcount_t *refcount)
{
os_int_status_t istate;
os_spinlock_lock_intsave(&refcount->lock, &istate);
refcount->count++;
os_spinlock_unlock_intrestore(&refcount->lock, &istate);
}
void os_refcount_put(os_refcount_t *refcount)
{
bool is_zero;
os_int_status_t istate;
os_spinlock_lock_intsave(&refcount->lock, &istate);
refcount->count--;
is_zero = refcount->count == 0;
os_spinlock_unlock_intrestore(&refcount->lock, &istate);
if (is_zero) {
refcount->func(refcount->arg);
}
}
/*
* Operating system kernel abstraction -- reference counting.
*
* Copyright (C) 2010 Cambridge Silicon Radio Ltd.
*
* Refer to LICENSE.txt included with this source code for details on
* the license terms.
*/
#ifndef __OSKA_REFCOUNT_H
#define __OSKA_REFCOUNT_H
#include "spinlock.h"
/**
* @defgroup refcount Reference Counting
*
* A reference count is an atomic counter. A callback function is
* called whenever the count reaches zero.
*
* A generic implementation is provided that is suitable for all
* platforms that support the spinlock API in <oska/spinlock.h> (see
* \ref spinlock).
*/
typedef void (*os_refcount_callback_f)(void *arg);
struct __os_refcount_impl {
unsigned count;
os_spinlock_t lock;
os_refcount_callback_f func;
void *arg;
};
/**
* A reference count object.
*
* @ingroup refcount
*/
typedef struct __os_refcount_impl os_refcount_t;
/**
* Initialize a reference count to 1.
*
* Initialized reference counts must be destroyed by calling
* os_refcount_destroy().
*
* @param refcount the reference count.
* @param func the function which will be called when the
* reference count reaches 0.
* @param arg an argument to pass to func.
*
* @ingroup refcount
*/
void os_refcount_init(os_refcount_t *refcount, os_refcount_callback_f func, void *arg);
/**
* Destroy a reference count object.
*
* @param refcount the reference count.
*
* @ingroup refcount
*/
void os_refcount_destroy(os_refcount_t *refcount);
/**
* Atomically increase the reference count by 1.
*
* @param refcount the reference count.
*
* @ingroup refcount
*/
void os_refcount_get(os_refcount_t *refcount);
/**
* Atomically decrease the reference count by 1.
*
* The callback function passed to the call to os_refcount_init() is
* called if the count was decreased to zero.
*
* @param refcount the reference count.
*
* @ingroup refcount
*/
void os_refcount_put(os_refcount_t *refcount);
#endif /* #ifndef __OSKA_REFCOUNT_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment