> Are you suggesting passing the mblk_t as an argument to free_func? The > reason that the driver needs to use db_mblk at the moment is that the > context argument to free_func is free_arg. In my driver code free_arg > points to my own structure. In that structure I store the dblk_t pointer > and then I use db_mblk to find the mblk_t pointer. Passing the mblk_t in > as an argument is therefore unnecessary for the driver code as it stands. > Would it not be reasonable for this case to simply establish the > stability of db_mblk at the same level as xesballoc() (or higher) so > that drivers using xesballoc() can use db_mblk?
I'm mildly uncomfortable with promoting it since db_mblk is quite hard to use correctly and moreover is intended as an implementation artifact (indeed, it didn't exist in SVR4's datab). But I don't get a vote on this case, and I guess all abstractions are eventually violated in the name of performance :-/ -- meem