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

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
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@ obj-$(CONFIG_CSR_WIFI) := csr_oska.o

csr_oska-y := \
       list.o \
       refcount.o \
       event.o \
       oska_module.o \
       print.o  \
+0 −8
Original line number Diff line number Diff line
@@ -8,14 +8,6 @@
 */
#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_AUTHOR("Cambridge Silicon Radio Ltd.");
MODULE_LICENSE("GPL and additional rights");
+0 −47
Original line number Diff line number Diff line
/*
 * 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);
    }
}
+0 −86
Original line number Diff line number Diff line
/*
 * 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 */