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/