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