lineage_kernel_xcoverpro/drivers/misc/samsung/scsc/functor.h

43 lines
891 B
C
Executable File

/****************************************************************************
*
* Copyright (c) 2014 - 2016 Samsung Electronics Co., Ltd. All rights reserved
*
****************************************************************************/
#ifndef __FUNCTOR_H
#define __FUNCTOR_H
/**
* Minimal Functor (no returns, no args other than self).
*/
struct functor {
/**
* The callback invoked by functor_call().
*
* A pointer to the functor itself is passed to the call.
*
* Typically the implementation wil upcast this (container_of)
* to access a container context.
*/
void (*call)(struct functor *f);
};
/**
* Initialise this functor.
*/
static inline void functor_init(struct functor *f, void (*call)(struct functor *f))
{
f->call = call;
}
/**
* Invoke this functor.
*/
static inline void functor_call(struct functor *f)
{
f->call(f);
}
#endif /* __FUNCTOR_H */