# OS_GetProtectionRegion*

## 構文

  `#include <nitro/os.h>`
  (`アドレス取得`)
  `#define OS_GetProtectionRegionAddress( regionNo );`
  (`サイズ取得`)
  `#define OS_GetProtectionRegionSize( regionNo );`
  (`パラメータ指定`)
  `u32 OS_GetProtectionRegionParam( int regionNo );`
  `u32 OS_GetProtectionRegion0( void );`;
  `u32 OS_GetProtectionRegion1( void );`
  `u32 OS_GetProtectionRegion2( void );`
  `u32 OS_GetProtectionRegion3( void );`
  `u32 OS_GetProtectionRegion4( void );`
  `u32 OS_GetProtectionRegion5( void );`
  `u32 OS_GetProtectionRegion6( void );`
  `u32 OS_GetProtectionRegion7( void );`

## 引数

regionNo | プロテクションリージョン番号です。0〜7の値で指定してください。

## 返り値

すべてu32型の値を返します。指定プロテクションリージョンの情報です。

## 説明

プロテクションリージョンのベースアドレスとサイズに関する設定を取得します。

プロテクションリージョンの設定はシステムの挙動に大きく関わってきます。プロテクションリージョンの仕組みと各領域の使用用途などを理解した上で設定を行なってください。

### `・OS_GetProtectionRegionAddress()`

`OS_GetProtectionRegionAddress()` は regionNo で指定したプロテクションリージョンのベースアドレスを返します。

### `・OS_GetProtectionRegionSize()`

`OS_GetProtectionRegionSize()` は regionNo で指定したプロテクションリージョンの大きさを返します。値は OS_PR_SIZE_xxx で、xxx は

> 4KB 8KB 16KB 32KB 64KB 128KB 256KB 512KB
> 1MB 2MB 4MB 8MB 16MB 32MB 64MB 128MB 256MB 512MB
> 1GB 2GB 4GB

のいずれかです。

### `・OS_GetProtectionRegionParam()`

`OS_GetProtectionRegionParam()` はregionNoで指定したプロテクションリージョンのベースアドレスと領域サイズ情報のパラメータをCP15から得たままの値で返します。

### `・OS_GetProtectionRegion0() 〜 OS_GetProtectionRegion7()`

`OS_GetProtectionRegion0()` 〜 `OS_GetProtectionRegion7()` は `OS_GetProtectionRegionParam()` のリージョン番号を関数名で指定するものです。

## 内部動作

システム制御コプロセッサ CP15 のレジスタ6を操作します。

## 参照

`OS_EnableProtectionUnit, OS_DisableProtectionUnit
OS_SetProtectionRegion*`

## 履歴

2007/10/25 関数の仕様を若干変更
2004/05/28 初版