Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/runtime/include/vproc-state.h
ViewVC logotype

Annotation of /sml/trunk/src/runtime/include/vproc-state.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 249 - (view) (download) (as text)
Original Path: sml/branches/SMLNJ/src/runtime/include/vproc-state.h

1 : monnier 249 /* vproc-state.h
2 :     *
3 :     * COPYRIGHT (c) 1992 by AT&T Bell Laboratories.
4 :     *
5 :     * This is the state of a virtual processor.
6 :     */
7 :    
8 :     #ifndef _VPROC_STATE_
9 :     #define _VPROC_STATE_
10 :    
11 :     #ifndef _ML_BASE_
12 :     #include "ml-base.h"
13 :     #endif
14 :    
15 :     #ifndef _ML_SIGNALS_
16 :     #include "ml-signals.h"
17 :     #endif
18 :    
19 :     #ifndef _SYSTEM_SIGNALS_
20 :     #include "system-signals.h"
21 :     #endif
22 :    
23 :     #ifndef _ML_TIMER_
24 :     #include "ml-timer.h"
25 :     #endif
26 :    
27 :     #if defined(MP_SUPPORT) && (! defined(_ML_MP_))
28 :     #include "ml-mp.h"
29 :     #endif
30 :    
31 :    
32 :     /** The Virtual processor state vector **/
33 :     struct vproc_state {
34 :     heap_t *vp_heap; /* The heap for this ML task */
35 :     ml_state_t *vp_state; /* The state of the ML task that is */
36 :     /* running on this VProc. Eventually */
37 :     /* we will support multiple ML tasks */
38 :     /* per VProc. */
39 :     /* Signal related fields: */
40 :     bool_t vp_inMLFlag; /* True while executing ML code */
41 :     bool_t vp_handlerPending; /* Is there a signal handler pending? */
42 :     bool_t vp_inSigHandler; /* Is an ML signal handler active? */
43 :     int vp_numPendingSysSigs; /* number of pending system signals */
44 :     int vp_numPendingSigs; /* number of pending runtime system */
45 :     /* signals */
46 :     int vp_sigCode; /* the code and count of the next */
47 :     int vp_sigCount; /* signal to handle. */
48 :     pending_sig_t vp_pendingSigQ[NUM_SIGS]; /* the queue of pending signals. */
49 :     int vp_nextPendingSig; /* the index in the queue of the next */
50 :     /* signal to handle. */
51 :     int vp_numInQ; /* the number of pending signals in */
52 :     /* the queue. */
53 :     int vp_gcSigState; /* The state of the GC signal handler */
54 :     Time_t *vp_gcTime0; /* The cumulative CPU time at the start of */
55 :     /* the last GC (see kernel/timers.c). */
56 :     Time_t *vp_gcTime; /* The cumulative GC time. */
57 :     #ifdef MP_SUPPORT
58 :     mp_pid_t vp_mpSelf; /* the owning process's ID */
59 :     vproc_status_t vp_mpState; /* proc state (see ml-mp.h) */
60 :     #endif
61 :     };
62 :    
63 :     #endif /* !_VPROC_STATE_ */
64 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0