| aiengine Vitis Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List

xaietile_lock.c File Reference

## Overview

This file contains routine for lock acquire and release functions.

    MODIFICATION HISTORY:

    Ver   Who     Date     Changes

    1.0  Naresh  03/14/2018  Initial creation
    1.1  Naresh  04/19/2018  Updated code to fix CR#1000292
    1.2  Naresh  07/11/2018  Updated copyright info
    1.3  Nishad  12/05/2018  Renamed ME attributes to AIE
    1.4  Hyun    01/08/2019  Use the poll function
    1.5  Nishad  03/20/2019  Fix usage of uninitialized variable in
                               XAieTile_LockAcquire and XAieTile_LockRelease

u8 | XAieTile_LockAcquire (XAieGbl_Tile *TileInstPtr, u8 LockId, u8 LockVal, u32 TimeOut)
| This API is used to acquire the specified lock with or without value. More...
u8 | XAieTile_LockRelease (XAieGbl_Tile *TileInstPtr, u8 LockId, u8 LockVal, u32 TimeOut)
| This API is used to release the specified lock with or without value. More...

## Function Documentation

u8 XAieTile_LockAcquire | ( | XAieGbl_Tile * | TileInstPtr,
|  | u8 | LockId,
|  | u8 | LockVal,
|  | u32 | TimeOut
| ) |  |

This API is used to acquire the specified lock with or without value.

Lock acquired without value if LockVal==0xFF. This API can be blocking or non- blocking based on the TimeOut value. If TimeOut==0, then API behaves in a non-blocking fashion and returns immediately after the first read request. If TimeOut>0, then API becomes blocking and will issue the read request until the acquire is successful or time out happens, whichever occurs first.

Parameters

  TileInstPtr | - Pointer to the Tile instance.
  LockId | - Lock value index, ranging from 0-15.
  LockVal | - Lock value used for acquire. If set to 0xFF, lock acquired with no value.
  TimeOut | - Time-out value for which the read request needs to be repeated. Value to be specified in usecs.

Returns
  1 if acquire successful, else 0.

Note
  None.

References XAieGbl_RegLocks::AcqNv, XAieGbl_RegLocks::AcqNvOff, XAieGbl_RegLocks::AcqV0, XAieGbl_RegLocks::AcqV0Off, XAieGbl_RegLocks::AcqV1, XAieGbl_RegLocks::AcqV1Off, XAieGbl_RegFldAttr::Lsb, XAieGbl_RegFldAttr::Mask, XAieGbl_Tile::TileAddr, and XAieGbl_Tile::TileType.

Referenced by main().

u8 XAieTile_LockRelease | ( | XAieGbl_Tile * | TileInstPtr,
|  | u8 | LockId,
|  | u8 | LockVal,
|  | u32 | TimeOut
| ) |  |

This API is used to release the specified lock with or without value.

Lock released without value if LockVal==0xFF. This API can be blocking or non- blocking based on the TimeOut value. If TimeOut==0, then API behaves in a non-blocking fashion and returns immediately after the first read request. If TimeOut>0, then API becomes blocking and will issue the read request until the release is successful or time out happens, whichever occurs first.

Parameters

  TileInstPtr | - Pointer to the Tile instance.
  LockId | - Lock value index, ranging from 0-15.
  LockVal | - Lock value used for release. If set to 0xFF, lock released with no value.
  TimeOut | - Time-out value for which the read request needs to be repeated. Value to be specified in usecs.

Returns
  1 if release successful, else 0.

Note
  None.

References XAieGbl_RegFldAttr::Lsb, XAieGbl_RegFldAttr::Mask, XAieGbl_RegLocks::RelNv, XAieGbl_RegLocks::RelNvOff, XAieGbl_RegLocks::RelV0, XAieGbl_RegLocks::RelV0Off, XAieGbl_RegLocks::RelV1, XAieGbl_RegLocks::RelV1Off, XAieGbl_Tile::TileAddr, and XAieGbl_Tile::TileType.

Referenced by main().