| Server IP : 216.107.138.43 / Your IP : 216.73.217.127 Web Server : LiteSpeed System : Linux srv514655384.host.ultaserver.net 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 User : ojolc3829 ( 1151) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/src/linux-headers-5.15.0-136/include/linux/ |
Upload File : |
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _DELAYED_CALL_H
#define _DELAYED_CALL_H
/*
* Poor man's closures; I wish we could've done them sanely polymorphic,
* but...
*/
struct delayed_call {
void (*fn)(void *);
void *arg;
};
#define DEFINE_DELAYED_CALL(name) struct delayed_call name = {NULL, NULL}
/* I really wish we had closures with sane typechecking... */
static inline void set_delayed_call(struct delayed_call *call,
void (*fn)(void *), void *arg)
{
call->fn = fn;
call->arg = arg;
}
static inline void do_delayed_call(struct delayed_call *call)
{
if (call->fn)
call->fn(call->arg);
}
static inline void clear_delayed_call(struct delayed_call *call)
{
call->fn = NULL;
}
#endif