prochadd 内核服务

用途

添加系统范围的进程状态-更改 通知例程

语法

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/proc.h>
void prochadd ( term)
struct proch *term;

参数

描述
期限 指向 普罗赫 结构,该结构包含要从系统范围通知例程链中添加的通知例程。

描述

Prochadd 内核服务允许内核扩展注册主要进程状态转换的通知。 Prochadd 服务允许在流程发生以下情况时通知调用者:

  • 刚刚已创建。
  • 将被终止。
  • 正在执行新程序。

完整的标注列表如下所示:

呼出 (callout) 描述
proch_initialize 进程 (pid) 已创建 (初始化克福克斯)
proch_terminate 进程 (pid) 已终止 (凯西特克斯)
PROCH_EXEC 正在执行进程 (pid) (外显)
线程初始化 已创建线程 (tid) (克福克斯thread_create)
线程终止 已创建线程 (tid) (凯西特克斯thread_terminate)

Prochadd 服务通常用于允许在进程进行主要状态更改时恢复或重新分配资源。

调用者应该分配一个 普罗赫 结构并更新proch.handler字段中包含调用者提供的通知例程的入口点,然后调用 Prochadd 内核服务。 对于正在进行主要状态更改的系统中的每个进程,将调用此 通知例程 一次。

普罗赫 结构的格式如下所示:

struct proch
{
        struct proch *next
        void                  *handler ();
}

执行环境

仅可从 流程环境 调用 Prochadd 内核服务。