Matrix653 钩子函数

更新时间:
2023-12-14
下载文档

Matrix653 钩子函数

本节将介绍 Matrix653 钩子函数的使用。本节详细定义在 mx_hook.h 头文件中。

钩子函数介绍

钩子函数是 Matrix653 为 BSP 提供的一种在内核的某些时间点实现特定功能的机制。这些钩子函数如果 BSP 未实现,则在对应的时间点使用内核提供的空函数。

钩子函数相关 API

下表展示了钩子函数相关的 API:

API描述
_mx_hook_cpu_initCPU初始化后调用的钩子函数
_mx_hook_arch_initARCH初始化后调用的钩子函数
_mx_hook_heap_init内核堆初始化后调用的钩子函数
_mx_hook_phys_memory_init物理内存初始化后调用的钩子函数
_mx_hook_vmm_initVMM初始化后调用的钩子函数
_mx_hook_io_system_initIO系统初始化后调用的钩子函数
_mx_hook_romfs_initROMFS初始化后调用的钩子函数
_mx_hook_health_monitor_init运行健康监控器初始化后调用的钩子函数
_mx_hook_time_init时钟初始化后调用的钩子函数
_mx_hook_message_init消息初始化后调用的钩子函数
_mx_hook_memory_block_init内存块初始化后调用的钩子函数
_mx_hook_interrupt_init中断初始化后调用的钩子函数
_mx_hook_queuing_channels_create队列通道创建后调用的钩子函数
_mx_hook_sampling_channels_create采样通道创建后调用的钩子函数
_mx_hook_communication_links_create通信链接创建后调用的钩子函数
_mx_hook_pseudo_partition_create创建伪分区后调用的钩子函数
_mx_hook_application_partitions_create应用程序分区创建后调用的钩子函数
_mx_hook_module_schedules_create多模块调度创建后调用的钩子函数
_mx_hook_scheduler_init调度器创建后调用的钩子函数
_mx_hook_partition_switch分区转换之间调用的钩子函数
_mx_hook_process_switch进程转换之间调用的钩子函数
_mx_hook_partition_restart分区重启之前调用的钩子函数
_mx_hook_major_frame_switch主时间帧切换之前调用的钩子函数
_mx_hook_partition_mode_change分区运行模式转换之前调用的钩子函数

_mx_hook_cpu_init()

  • 描述 CPU初始化后调用的钩子函数

  • 函数原型

void _mx_hook_cpu_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_arch_init()

  • 描述 ARCH初始化后调用的钩子函数

  • 函数原型

void _mx_hook_arch_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_heap_init()

  • 描述 内核堆初始化后调用的钩子函数

  • 函数原型

void _mx_hook_heap_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_phys_memory_init()

  • 描述 物理内存初始化后调用的钩子函数

  • 函数原型

void _mx_hook_phys_memory_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_vmm_init()

  • 描述 VMM初始化后调用的钩子函数

  • 函数原型

void _mx_hook_vmm_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_io_system_init()

  • 描述 IO系统初始化后调用的钩子函数

  • 函数原型

void _mx_hook_io_system_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_romfs_init()

  • 描述 ROMFS初始化后调用的钩子函数

  • 函数原型

void _mx_hook_romfs_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_health_monitor_init()

  • 描述 运行健康监控器初始化后调用的钩子函数

  • 函数原型

void _mx_hook_health_monitor_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_time_init()

  • 描述 时钟初始化后调用的钩子函数

  • 函数原型

void _mx_hook_time_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_message_init()

  • 描述 消息初始化后调用的钩子函数

  • 函数原型

void _mx_hook_message_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_memory_block_init()

  • 描述 内存块初始化后调用的钩子函数

  • 函数原型

void _mx_hook_memory_block_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_interrupt_init()

  • 描述 中断初始化后调用的钩子函数

  • 函数原型

void _mx_hook_interrupt_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_queuing_channels_create()

  • 描述 队列通道创建后调用的钩子函数

  • 函数原型

void _mx_hook_queuing_channels_create(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_sampling_channels_create()

  • 描述 采样通道创建后调用的钩子函数

  • 函数原型

void _mx_hook_sampling_channels_create(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

  • 描述 通信链接创建后调用的钩子函数

  • 函数原型

void _mx_hook_communication_links_create(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_pseudo_partition_create()

  • 描述 创建伪分区后调用的钩子函数

  • 函数原型

void _mx_hook_pseudo_partition_create(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_application_partitions_create()

  • 描述 应用程序分区创建后调用的钩子函数

  • 函数原型

void _mx_hook_application_partitions_create(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_module_schedules_create()

  • 描述 多模块调度创建后调用的钩子函数

  • 函数原型

void _mx_hook_module_schedules_create(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_scheduler_init()

  • 描述 调度器创建后调用的钩子函数

  • 函数原型

void _mx_hook_scheduler_init(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

_mx_hook_partition_switch_hook()

  • 描述 分区转换之间调用的钩子函数

  • 函数原型

void _mx_hook_partition_switch (
        /*in */ MX_PARTITION_TYPE  *previous_partition,
        /*in */ MX_PARTITION_TYPE  *current_partition);
  • 参数
输入/输出参数描述
[in]current_partition指向当前分区的指针
[in]next_partition指向下一个分区的指针
  • 返回值

  • 注意事项

  • 示例

_mx_hook_process_switch()

  • 描述 进程转换之间调用的钩子函数

  • 函数原型

void _mx_hook_process_switch (
        /*in */ MX_PROCESS_TYPE     *current_process,
        /*in */ MX_PROCESS_TYPE     *next_process);
  • 参数
输入/输出参数描述
[in]current_process指向当前进程的指针
[in]next_process指向下一个进程的指针
  • 返回值

  • 注意事项

  • 示例

_mx_hook_partition_restart()

  • 描述 分区重启之前调用的钩子函数

  • 函数原型

void _mx_hook_partition_restart (
        /*in */ MX_PARTITION_TYPE       *current_partition,
        /*in */ OPERATING_MODE_TYPE     operating_mode);
  • 参数
输入/输出参数描述
[in]current_partition指向当前分区的指针
[in]operating_mode热启动或冷启动
  • 返回值

  • 注意事项 内核分区启动分为两个阶段,首先释放当前使用的内核资源,然后再重新初始化分区,本钩子函数在释放本分区内核资源前被调用。

  • 示例

_mx_hook_major_frame_switch()

  • 描述 主时间帧切换之前调用的钩子函数

  • 函数原型

void _mx_hook_major_frame_switch (
        /*in */ MX_SCHEDULE_TYPE        *current_schedule);
  • 参数
输入/输出参数描述
[in]current_schedule指向当前调度计划表的指针
  • 返回值

  • 注意事项 在中断上下文中被调用。

  • 示例

_mx_hook_partition_mode_change()

  • 描述 分区运行模式转换之前调用的钩子函数

  • 函数原型

void _mx_hook_partition_mode_change (
        /*in */ MX_PARTITION_TYPE       *partition,
        /*in */ OPERATING_MODE_TYPE     current_mode,
        /*in */ OPERATING_MODE_TYPE     next_mode);
  • 参数
输入/输出参数描述
[in]partition指向将要改变运行模式的分区的指针
[in]current_mode当前运行模式
[in]next_mode接下来进入的运行模式
  • 返回值

  • 注意事项 第一个参数有可能指向的不是当前分区,在系统初始化阶段创建所有分区时,也会调用此钩子函数。

  • 示例

文档内容是否对您有所帮助?
有帮助
没帮助