SuperH 接口指南

作者:

Paul Mundt

内存管理

SH-4

存储队列 API

void sq_flush_range(unsigned long start, unsigned int len)

刷新(预取)特定 SQ 范围

参数

unsigned long start

开始刷新的存储队列地址

unsigned int len

要刷新的长度

描述

以线性方式将存储队列缓存从 **start** 刷新到 **start** + **len**。

unsigned long sq_remap(unsigned long phys, unsigned int size, const char *name, pgprot_t prot)

通过存储队列映射物理地址

参数

unsigned long phys

映射的物理地址。

unsigned int size

映射的长度。

const char *name

调用映射的用户。

pgprot_t prot

保护位。

描述

通过下一个可用存储队列地址(长度为 **size**)重新映射物理地址 **phys**。**name** 会在引导时以及通过 sysfs 接口记录下来。

void sq_unmap(unsigned long vaddr)

取消映射存储队列分配

参数

unsigned long vaddr

预分配的存储队列映射。

描述

取消映射先前由 sq_remap() 创建的存储队列分配 **map**。同时释放之前插入内核页表的 pte 并丢弃 UTLB 转换。

机器特定接口

mach-dreamcast

int aica_rtc_gettimeofday(struct device *dev, struct rtc_time *tm)

从 AICA RTC 获取时间

参数

struct device *dev

RTC 设备(已忽略)

struct rtc_time *tm

指向结果 RTC 时间结构的指针

描述

获取当前 RTC 秒计数器并将其调整为 Unix Epoch。

int aica_rtc_settimeofday(struct device *dev, struct rtc_time *tm)

将 AICA RTC 设置为当前时间

参数

struct device *dev

RTC 设备(已忽略)

struct rtc_time *tm

指向新 RTC 时间结构的指针

描述

将给定的 **tv** 调整为 AICA Epoch 并设置 RTC 秒计数器。

mach-x3proto

int ilsel_enable(ilsel_source_t set)

启用 ILSEL 集。

参数

ilsel_source_t set

ILSEL 源(参见 include/asm-sh/ilsel.h 中的 ilsel_source_t 枚举)。

描述

在最高的可用中断级别启用给定的非别名 ILSEL 源(<= ILSEL_KEY)。调用者应注意按中断级别降序排列调用站点。别名 FPGA 和外部板 IRQ 需要使用 ilsel_enable_fixed()

返回值是一个 IRQ 号,之后可以通过 ilsel_disable() 禁用。

int ilsel_enable_fixed(ilsel_source_t set, unsigned int level)

在固定中断级别启用 ILSEL 集

参数

ilsel_source_t set

ILSEL 源(参见 include/asm-sh/ilsel.h 中的 ilsel_source_t 枚举)。

unsigned int level

中断级别 (1 - 15)

描述

在固定中断级别启用给定的 ILSEL 源。这对于级别保留以及仅存在于特殊 ILSEL# 上的别名源都是必需的。

返回一个 IRQ 号(与 ilsel_enable() 相同)。

void ilsel_disable(unsigned int irq)

禁用 ILSEL 集

参数

unsigned int irq

ILSEL 设置值的位位置(来自启用例程的返回值)

描述

禁用先前已启用的 ILSEL 集。

总线

Maple

int maple_driver_register(struct maple_driver *drv)

注册一个 maple 驱动程序

参数

struct maple_driver *drv

要注册的 maple 驱动程序。

描述

注册传入的 **drv**,同时更新总线类型。具有匹配功能 ID 的设备将自动被探测。

void maple_driver_unregister(struct maple_driver *drv)

注销一个 maple 驱动程序。

参数

struct maple_driver *drv

要注销的 maple 驱动程序。

描述

maple_driver_register() 之后进行清理。应在任何模块驱动程序的退出路径中调用。

void maple_getcond_callback(struct maple_device *dev, void (*callback)(struct mapleq *mq), unsigned long interval, unsigned long function)

设置处理 MAPLE_COMMAND_GETCOND

参数

struct maple_device *dev

响应设备

void (*callback) (struct mapleq *mq)

处理程序回调

unsigned long interval

回调之间的 jiffies 间隔

unsigned long function

设备的函数代码

int maple_add_packet(struct maple_device *mdev, u32 function, u32 command, size_t length, void *data)

向 maple 总线队列添加单个指令

参数

struct maple_device *mdev

maple 设备

u32 function

正在查询设备上的功能

u32 command

要添加的 maple 命令

size_t length

命令字符串的长度(以 32 位字为单位)

void *data

命令字符串的其余部分