some questions...

Marty Leisner (leisner@sdsp.mc.xerox.com)
Fri, 16 Feb 1996 15:57:05 PST


Some things I'd like to have explained:

Its stuff in sched.h

1) we have __label_ in this function
(I thought __label was only useful inside macros)
Also, what does &&here do (instead of &here).

Here's the snipit:
* The wait-queues are circular lists, and you have to be *very* sure
* to keep them correct. Use only these two functions to add/remove
* entries in the queues.
*/
extern inline void add_wait_queue(struct wait_queue ** p, struct wait_queue * wa
it)
{
unsigned long flags;

#ifdef DEBUG
if (wait->next) {
__label__ here;
unsigned long pc;
pc = (unsigned long) &&here;
here:
printk("add_wait_queue (%08lx): wait->next = %08lx\n",pc,(unsign
ed long) wait->next);
}
#endif

2) should task_struct.personality be a typedef?

3) What's the purpose of count in files_struct? There's also a count on each
fp...

4) Is there a reason the task struct has pointers to other structs
(i.e. files_struct, mm_struct) instead of just coding them inline?

marty leisner@sdsp.mc.xerox.com
Member of the League for Programming Freedom (http://www.lpf.org)
Any sufficiently advanced technology is indistinguishable from magic
Arthur C. Clarke, The Lost Worlds of 2001