Re: [ckrm-tech] [RFC][PATCH] UBC: user resource beancounters
From: Kyle Moffett
Date: Thu Aug 24 2006 - 19:52:26 EST
On Aug 24, 2006, at 19:48:28, Chandra Seetharaman wrote:
On Thu, 2006-08-24 at 12:10 +0100, Alan Cox wrote:
All you need is
struct wombat_controller
{
struct user_beancounter counter;
void (*wombat_pest_control)(struct wombat *w);
atomic_t wombat_population;
int (*wombat_destructor)(struct wombat *w);
};
This may not solve the problem, as
- we won't be able get the controller data structure given the
beancounter data structure.
Of course you can! This is what we do for linked lists too. Here's
an example of how to get a pointer to your wombat_controller given
the user_beancounter pointer:
struct wombat_controller *wombat = containerof
(ptr_to_user_beancounter, struct wombat_controller, counter);
The containerof(PTR, TYPE, MEMBER) returns a pointer to the parent
object of type "TYPE" whose member "MEMBER" has address "PTR".
Cheers,
Kyle Moffett
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/