NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <exec/chExec.h>int threadStat(KnCap *actorcap, unsigned int options, KnThreadStat *stat, unsigned int buffsize);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
CORE
The threadStat() system call obtains the descriptions of threads running in the actor whose capability is actorcap. If actorcap is K_MYACTOR, threads of the current actor are used.
Only threads belonging to the actor or having entered it through a safe LAP invocation are returned. The system does not record information about threads entering actors through non-safe LAPs.
The options argument is reserved for future use and must be set to 0.
The stat argument points to a buffer in which the thread descriptions will be returned. The buffer is considered part of the caller (current user or supervisor) address space.
The buffsize argument corresponds to the size of the stat buffer in bytes. It should be a multiple of the size of the KnThreadStat struct.
On successful return, the buffer contains an array of descriptors, each one describing a single thread. For one thread, it is possible to retrieve several entries, each one describing a particular LAP frame of the same thread executing in the actor (see svLapCreate(2K)).
Each descriptor is a KnThreadStat structure with the following fields:
KnThreadLid tsLid ; KnThreadStatus tsStatus ; int tsFrame ; VmAddr tsSvStack ; VmSize tsSvStackSize ; |
The tsLid field is the thread local identifier.
The tsStatus field is the thread status (K_INACTIVE or K_ACTIVE, see threadCreate(2K) for details).
tsFrame is the LAP frame level that appears in this actor for the thread in question (see svLapCreate(2K)). Level 0 means that the thread is owned by the actor.
The tsSvStack field is the address of the space in which the supervisor stack has been allocated. It is usually the lowest boundary of the stack area.
tsSvStackSize is the number of bytes allocated by the microkernel for the thread's supervisor stack.
If successful, threadStat() returns the number of threads running in the actor, otherwise a negative error code is returned.
As mentioned above, if several LAP frames appear in the specified actor for one particular thread, all the LAP frames are taken into account in the returned value.
actorcap is an inconsistent actor capability, or options specifies invalid options.
actorcap does not specify a reachable actor.
The stat argument is outside the caller's address space.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO