[Devel] Re: [ckrm-tech] [RFC][PATCH] UBC: user resource beancounters

Kyle Moffett mrmacman_g4 at mac.com
Thu Aug 24 16:55:11 PDT 2006


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






More information about the Devel mailing list