# OS_GetProtectionRegion*

## Syntax

  `#include <nitro/os.h>`
  (`Get address`)
  `#define OS_GetProtectionRegionAddress( regionNo );`
  (`Get size`)
  `#define OS_GetProtectionRegionSize( regionNo );`
  (`Specify parameters`)
  `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 );`

## Arguments

regionNo | Protection Region number. Specify a value between 0 and 7.

## Return Values

All return values are type `u32`. The values provide information about the specified Protection Region.

## Description

Gets the settings relating to the Protection Region's base address and size.

The Protection Region's settings are closely related to system behavior. When making these settings, be sure you understand the design of the Protection Region and how each area is used.

### `OS_GetProtectionRegionAddress`

The `OS_GetProtectionRegionAddress` function returns the base address of the Protection Region specified by regionNo.

### `OS_GetProtectionRegionSize`

The `OS_GetProtectionRegionSize` function returns the size of the Protection Region specified by regionNo. The values will be of the form `OS_PR_SIZE_xxx`, where "xxx" will be one of the following.

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

### `OS_GetProtectionRegionParam`

The `OS_GetProtectionRegionParam` function returns the raw values obtained from CP15, which provide information about the base address and region size parameters of the Protection Region specified by regionNo.

### `OS_GetProtectionRegion0 - OS_GetProtectionRegion7`

The functions `OS_GetProtectionRegion0` through `OS_GetProtectionRegion7` are used for specifying the region numbers of `OS_GetProtectionRegionParam` using the function names.

## Internal Operation

Modifies register 6 of the system control co-processor CP15.

## See Also

`OS_EnableProtectionUnit`
`OS_DisableProtectionUnit`
`OS_SetProtectionRegion*`

## Revision History

2007/10/25 Slightly changed the specifications of the function.
2004/05/28 Initial version.

CONFIDENTIAL