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 *  BD address services.
22 *
23 ******************************************************************************/
24
25#include "data_types.h"
26#include "bd.h"
27
28/*****************************************************************************
29**  Constants
30*****************************************************************************/
31
32/* global constant for "any" bd addr */
33const BD_ADDR bd_addr_any = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
34const BD_ADDR bd_addr_null= {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
35
36/*****************************************************************************
37**  Functions
38*****************************************************************************/
39
40/*******************************************************************************
41**
42** Function         bdcpy
43**
44** Description      Copy bd addr b to a.
45**
46**
47** Returns          void
48**
49*******************************************************************************/
50void bdcpy(BD_ADDR a, const BD_ADDR b)
51{
52    int i;
53
54    for (i = BD_ADDR_LEN; i != 0; i--)
55    {
56        *a++ = *b++;
57    }
58}
59
60/*******************************************************************************
61**
62** Function         bdcmp
63**
64** Description      Compare bd addr b to a.
65**
66**
67** Returns          Zero if b==a, nonzero otherwise (like memcmp).
68**
69*******************************************************************************/
70int bdcmp(const BD_ADDR a, const BD_ADDR b)
71{
72    int i;
73
74    for (i = BD_ADDR_LEN; i != 0; i--)
75    {
76        if (*a++ != *b++)
77        {
78            return -1;
79        }
80    }
81    return 0;
82}
83
84/*******************************************************************************
85**
86** Function         bdcmpany
87**
88** Description      Compare bd addr to "any" bd addr.
89**
90**
91** Returns          Zero if a equals bd_addr_any.
92**
93*******************************************************************************/
94int bdcmpany(const BD_ADDR a)
95{
96    return bdcmp(a, bd_addr_any);
97}
98
99/*******************************************************************************
100**
101** Function         bdsetany
102**
103** Description      Set bd addr to "any" bd addr.
104**
105**
106** Returns          void
107**
108*******************************************************************************/
109void bdsetany(BD_ADDR a)
110{
111    bdcpy(a, bd_addr_any);
112}
113