Beispiel #1
0
_i16 sl_FsGetInfo( const _u8 *pFileName, const _u32 Token,
                   SlFsFileInfo_t *pFsFileInfo )
{
    _SlFsGetInfoMsg_u    Msg;
    _SlCmdExt_t          CmdExt;

    CmdExt.TxPayloadLen = ( _sl_Strlen( pFileName ) + 4 ) &
                          ( ~3 ); /* add 4: 1 for NULL and the 3 for align  */
    CmdExt.RxPayloadLen = 0;
    CmdExt.pTxPayload   = ( _u8 * )pFileName;
    CmdExt.pRxPayload   = NULL;
    Msg.Cmd.Token       = Token;

    VERIFY_RET_OK( _SlDrvCmdOp( ( _SlCmdCtrl_t * )&_SlFsGetInfoCmdCtrl, &Msg,
                                &CmdExt ) );

    pFsFileInfo->flags        = Msg.Rsp.flags;
    pFsFileInfo->FileLen      = Msg.Rsp.FileLen;
    pFsFileInfo->AllocatedLen = Msg.Rsp.AllocatedLen;
    pFsFileInfo->Token[0]     = Msg.Rsp.Token[0];
    pFsFileInfo->Token[1]     = Msg.Rsp.Token[1];
    pFsFileInfo->Token[2]     = Msg.Rsp.Token[2];
    pFsFileInfo->Token[3]     = Msg.Rsp.Token[3];
    return  ( _i16 )( ( _i16 )Msg.Rsp.Status );
}
Beispiel #2
0
_i16 sl_FsClose(_i32 FileHdl, _u8*  pCeritificateFileName,_u8*  pSignature ,_u32 SignatureLen)
{
    _SlFsCloseMsg_u Msg = {0};
    _SlCmdExt_t         ExtCtrl;

    Msg.Cmd.FileHandle             = FileHdl;
    if( pCeritificateFileName != NULL )
    {
        Msg.Cmd.CertificFileNameLength = (_sl_Strlen(pCeritificateFileName)+4) & (~3); /* add 4: 1 for NULL and the 3 for align */
    }
    Msg.Cmd.SignatureLen           = SignatureLen;

    ExtCtrl.TxPayloadLen = ((SignatureLen+3) & (~3)); /* align */
    ExtCtrl.pTxPayload   = pSignature;
    ExtCtrl.RxPayloadLen = (_u16)Msg.Cmd.CertificFileNameLength;
    ExtCtrl.pRxPayload   = pCeritificateFileName; /* Add signature */

    if(ExtCtrl.pRxPayload != NULL &&  ExtCtrl.RxPayloadLen != 0)
    {
        g_pCB->RelayFlagsViaRxPayload = TRUE;
    }

    VERIFY_RET_OK(_SlDrvCmdOp((_SlCmdCtrl_t *)&_SlFsCloseCmdCtrl, &Msg, &ExtCtrl));

    return (_i16)((_i16)Msg.Rsp.status);
}
Beispiel #3
0
_i32 sl_FsOpen( const _u8 *pFileName, const _u32 AccessModeAndMaxSize,
                _u32 *pToken, _i32 *pFileHandle )
{
    _SlReturnVal_t        RetVal;
    _SlFsOpenMsg_u        Msg;
    _SlCmdExt_t           CmdExt;

    CmdExt.TxPayloadLen = ( _sl_Strlen( pFileName ) + 4 ) &
                          ( ~3 ); /* add 4: 1 for NULL and the 3 for align */
    CmdExt.RxPayloadLen = 0;
    CmdExt.pTxPayload = ( _u8 * )pFileName;
    CmdExt.pRxPayload = NULL;

    Msg.Cmd.Mode          =  AccessModeAndMaxSize;

    if( pToken != NULL )
        Msg.Cmd.Token         = *pToken;
    else
        Msg.Cmd.Token         = 0;

    RetVal = _SlDrvCmdOp( ( _SlCmdCtrl_t * )&_SlFsOpenCmdCtrl, &Msg, &CmdExt );
    *pFileHandle = Msg.Rsp.FileHandle;
    if ( pToken != NULL )
        *pToken =      Msg.Rsp.Token;

    /* in case of an error, return the erros file handler as an error code */
    if( *pFileHandle < 0 )
        return *pFileHandle;
    return ( _i32 )RetVal;
}
Beispiel #4
0
_i16 sl_FsDel(_u8 *pFileName,_u32 Token)
{
    _SlFsDeleteMsg_u Msg;
    _SlCmdExt_t          CmdExt;

    CmdExt.TxPayloadLen = (_sl_Strlen(pFileName)+4) & (~3); /* add 4: 1 for NULL and the 3 for align */
    CmdExt.RxPayloadLen = 0;
    CmdExt.pTxPayload   = pFileName;
    CmdExt.pRxPayload   = NULL;
    Msg.Cmd.Token       = Token;


    VERIFY_RET_OK(_SlDrvCmdOp((_SlCmdCtrl_t *)&_SlFsDeleteCmdCtrl, &Msg, &CmdExt));

    return  (_i16)((_i16)Msg.Rsp.status);
}