Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 May 2005 15:48:48 -0600
From:      Scott Long <scottl@samsco.org>
To:        Halil Demirezen <halil@enderunix.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: A bit confused with the sched_4bsd.c code
Message-ID:  <427A94C0.1020205@samsco.org>
In-Reply-To: <200505060010.26184.halil@enderunix.org>
References:  <200505060010.26184.halil@enderunix.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Halil Demirezen wrote:
> Hello,
> 
> First of all, I am not sure if this is the correct mail list with posting this 
> mail. I apologize for that.. Second, I may seem to have little 
> C knowledge, though I am using C for about 5 years and plus.
> 
> Let's start with the question. I am digging the FreeBSD-5.3 kernel codes.
> Watson's Cross Reference is really helpful. In the schedcpu(void) function
> there is an assignment like "ke = td->td_kse;" on line 438  (see: 
> http://fxr.watson.org/fxr/source/kern/sched_4bsd.c?v=RELENG53#L438").
> When I look at the thread structure at sys/proc.h, I could not see such an
> entry td_kse in the "thread" structure. How has this structure been extended 
> or this entry added to the thread structure?
> 
> Although the kernel codes seem to be simply understandable, there still lies
> some difficulties to understand for an average C programmer: magic stuff done
> by professionals. :)
> 
> Anyway, any help really will be appreciated...
> 
> Thanks.

Look near the top of the file for:

#define td_kse td_sched

That makes td->td_kse resolve to td->td_sched.  Now, there is
other magic associated with td_sched in each scheduler source
file, but that's different matter =-)

Scitt



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?427A94C0.1020205>