0
typedef void (*work_func_t)(struct work_struct *work);

I found above typedef in Linux kernel source code, but I don't understand it. Can anyone give me some explaination? Thanks!

Complement:

struct work_struct {
    atomic_long_t data;
#define WORK_STRUCT_PENDING 0       /* T if work item pending execution */
#define WORK_STRUCT_STATIC  1       /* static initializer (debugobjects) */
#define WORK_STRUCT_FLAG_MASK (3UL)
#define WORK_STRUCT_WQ_DATA_MASK (~WORK_STRUCT_FLAG_MASK)
    struct list_head entry;
    work_func_t func;
#ifdef CONFIG_LOCKDEP
    struct lockdep_map lockdep_map;
#endif
};

From the above code which follows the "typedef", I could understand it now. @piokuc is right, thanks!

4

1 回答 1

2

work_func_t is a type alias of a pointer to a function which accepts pointer to struct work_struct as it's only parameter and returns nothing (void).

于 2012-11-16T15:40:46.247 回答