#include <iris/os.h>BOOL OS_SaveContext( OSContext* context );| context | コンテキスト |
0の場合、コンテキストを保存して戻ってきたという意味です。
1の場合、コンテキストが切り替わり、この関数に戻ってきたという意味です。
現在のコンテキストを指定のコンテキスト構造体内に保存します。
これはスレッドシステムの、コンテキスト切り替えで使用されます。
カレントスレッドが、以前に保存していたコンテキストに切り替わったときは、実行場所はコンテキストを保存した次からとなります。これでは、再開されてこの関数から戻ってきたのか、保存だけを行って戻ってきたのかが明確ではありません。
そのために関数からの戻り値に工夫をしています。関数からは 0で戻るのですが、R0 として 1を保存するようにしています。これでコンテキストが切り替わったときに戻り値(R0) が1となり、保存のみを行った関数呼び出しとは区別をつけることが出来ます。
コンテキストの内容については OS_InitContext() を参照してください。
OS_InitContext, OS_LoadContext, OS_DumpContext
2003/12/01 初版