1/****************************************************************************** 2 * 3 * Copyright (C) 2003-2012 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19/****************************************************************************** 20 * 21 * Basic utility functions. 22 * 23 ******************************************************************************/ 24#ifndef UTL_H 25#define UTL_H 26 27#include "bt_types.h" 28#include "bt_utils.h" 29 30/***************************************************************************** 31** Constants 32*****************************************************************************/ 33/*** class of device settings ***/ 34#define BTA_UTL_SET_COD_MAJOR_MINOR 0x01 35#define BTA_UTL_SET_COD_SERVICE_CLASS 0x02 /* only set the bits in the input */ 36#define BTA_UTL_CLR_COD_SERVICE_CLASS 0x04 37#define BTA_UTL_SET_COD_ALL 0x08 /* take service class as the input (may clear some set bits!!) */ 38#define BTA_UTL_INIT_COD 0x0a 39 40/***************************************************************************** 41** Type Definitions 42*****************************************************************************/ 43 44/** for utl_set_device_class() **/ 45typedef struct 46{ 47 UINT8 minor; 48 UINT8 major; 49 UINT16 service; 50} tBTA_UTL_COD; 51 52 53#ifdef __cplusplus 54extern "C" 55{ 56#endif 57 58/***************************************************************************** 59** External Function Declarations 60*****************************************************************************/ 61 62/******************************************************************************* 63** 64** Function utl_str2int 65** 66** Description This utility function converts a character string to an 67** integer. Acceptable values in string are 0-9. If invalid 68** string or string value too large, -1 is returned. 69** 70** 71** Returns Integer value or -1 on error. 72** 73*******************************************************************************/ 74extern INT16 utl_str2int(const char *p_s); 75 76/******************************************************************************* 77** 78** Function utl_strucmp 79** 80** Description This utility function compares two strings in uppercase. 81** String p_s must be uppercase. String p_t is converted to 82** uppercase if lowercase. If p_s ends first, the substring 83** match is counted as a match. 84** 85** 86** Returns 0 if strings match, nonzero otherwise. 87** 88*******************************************************************************/ 89extern int utl_strucmp(const char *p_s, const char *p_t); 90 91/******************************************************************************* 92** 93** Function utl_itoa 94** 95** Description This utility function converts a UINT16 to a string. The 96** string is NULL-terminated. The length of the string is 97** returned. 98** 99** 100** Returns Length of string. 101** 102*******************************************************************************/ 103extern UINT8 utl_itoa(UINT16 i, char *p_s); 104 105/******************************************************************************* 106** 107** Function utl_freebuf 108** 109** Description This function calls GKI_freebuf to free the buffer passed 110** in, if buffer pointer is not NULL, and also initializes 111** buffer pointer to NULL. 112** 113** 114** Returns Nothing. 115** 116*******************************************************************************/ 117extern void utl_freebuf(void **p); 118 119/******************************************************************************* 120** 121** Function utl_set_device_class 122** 123** Description This function updates the local Device Class. 124** 125** Parameters: 126** p_cod - Pointer to the device class to set to 127** 128** cmd - the fields of the device class to update. 129** BTA_UTL_SET_COD_MAJOR_MINOR, - overwrite major, minor class 130** BTA_UTL_SET_COD_SERVICE_CLASS - set the bits in the input 131** BTA_UTL_CLR_COD_SERVICE_CLASS - clear the bits in the input 132** BTA_UTL_SET_COD_ALL - overwrite major, minor, set the bits in service class 133** BTA_UTL_INIT_COD - overwrite major, minor, and service class 134** 135** Returns TRUE if successful, Otherwise FALSE 136** 137*******************************************************************************/ 138extern BOOLEAN utl_set_device_class(tBTA_UTL_COD *p_cod, UINT8 cmd); 139 140/******************************************************************************* 141** 142** Function utl_isintstr 143** 144** Description This utility function checks if the given string is an 145** integer string or not 146** 147** 148** Returns TRUE if successful, Otherwise FALSE 149** 150*******************************************************************************/ 151extern BOOLEAN utl_isintstr(const char *p_s); 152 153/******************************************************************************* 154** 155** Function utl_isdialstr 156** 157** Description This utility function checks if the given string contains 158** only dial digits or not 159** 160** 161** Returns TRUE if successful, Otherwise FALSE 162** 163*******************************************************************************/ 164extern BOOLEAN utl_isdialstr(const char *p_s); 165 166#ifdef __cplusplus 167} 168#endif 169 170#endif /* UTL_H */ 171