osScGetTaskQ.3p
1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
.TH osGetTaskQ 3P local "Silicon Graphics, Inc."
.SH NAME
.upperok
osScGetTaskQ \- get the message queue used for communicating with the
scheduler thread.
.SH SYNOPSIS
.nf
\f3
.Op c
#include <ultra64.h>
.sp .8v
OSMesgQueue *osScGetCmdQ(OSSched *s);
.SH PARAMETERS
.TP 10
.I s
pointer to the scheduler structure.
.SH DESCRIPTION
In order to send tasks to the Scheduler on the task queue for
execution, you must first create and initialize an
.I OSScTask
structure. The structure fields are listed below.
.TP 15
.I next
Not used by client (used by the scheduler for list management).
.TP
.I state
Not used by client (used by the scheduler for state management).
.TP
.I framebuffer
Address of the frame buffer for this task (if it is a graphics task).
.TP
.I list
Structure containing task code and command list data (see the man page for
.I osSpTaskLoad).
.TP
.I msgQ
The message queue on which the client is to recieve the task done
message.
.TP
.I msg
The message that the client is to recieve when the task in done.
.PP
Once you have created and initialized an
.I OSScTask,
you can send it to the Scheduler thread via the Scheduler's task
queue. You can obtain a pointer to this queue by calling
osScGetTaskQ(). The Scheduler will read this task queue after the
next retrace message from the Vi Manager. Normally, you will send one
audio and one graphics task to the Scheduler each frame. After you
send the task to the Scheduler, you should not modify it until you
recieve the "done" message. The message that the client is to recieve
when the task in done.
.SH "SEE ALSO"
.IR osSpTaskLoad (3P),
.IR osCreateScheduler (3P),
.IR osScAddClient (3P)