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

命令字串的其餘部分