1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu *  Copyright (C) 2010-2014 Broadcom Corporation
4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  you may not use this file except in compliance with the License.
7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  You may obtain a copy of the License at:
8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  See the License for the specific language governing permissions and
15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  limitations under the License.
16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  This file contains the call-in functions for NFA HCI
22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include <string.h>
25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_hci_api.h"
26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_hci_int.h"
27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_nv_co.h"
286fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#include "nfa_sys.h"
29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         nfa_nv_ci_read
33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      call-in function for non volatile memory read acess
35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          none
37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_nv_ci_read(uint16_t num_bytes_read, tNFA_NV_CO_STATUS status,
406fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi                    uint8_t block) {
416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_HCI_EVENT_DATA* p_msg;
42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
430c515ae1d2edf9202878a7ac7bcbf195333643e5Ruchi Kandoi  p_msg = (tNFA_HCI_EVENT_DATA*)GKI_getbuf(sizeof(tNFA_HCI_EVENT_DATA));
440c515ae1d2edf9202878a7ac7bcbf195333643e5Ruchi Kandoi  if (p_msg != NULL) {
456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    p_msg->nv_read.hdr.event = NFA_HCI_RSP_NV_READ_EVT;
46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    if ((status == NFA_STATUS_OK) && (num_bytes_read != 0))
486fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      p_msg->nv_read.status = NFA_STATUS_OK;
496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    else
506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      p_msg->nv_read.status = NFA_STATUS_FAILED;
51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    p_msg->nv_read.size = num_bytes_read;
536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    p_msg->nv_read.block = block;
546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    nfa_sys_sendmsg(p_msg);
556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}
57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         nfa_nv_ci_write
61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      call-in function for non volatile memory write acess
63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          none
65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
676fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_nv_ci_write(tNFA_NV_CO_STATUS status) {
686fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_HCI_EVENT_DATA* p_msg;
69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
700c515ae1d2edf9202878a7ac7bcbf195333643e5Ruchi Kandoi  p_msg = (tNFA_HCI_EVENT_DATA*)GKI_getbuf(sizeof(tNFA_HCI_EVENT_DATA));
710c515ae1d2edf9202878a7ac7bcbf195333643e5Ruchi Kandoi  if (p_msg != NULL) {
726fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    p_msg->nv_write.hdr.event = NFA_HCI_RSP_NV_WRITE_EVT;
736fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    p_msg->nv_write.status = 0;
746fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    nfa_sys_sendmsg(p_msg);
756fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}
77