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 */
33 const BD_ADDR bd_addr_any = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
34 const 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 *******************************************************************************/
bdcpy(BD_ADDR a,const BD_ADDR b)50 void 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 *******************************************************************************/
bdcmp(const BD_ADDR a,const BD_ADDR b)70 int 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 *******************************************************************************/
bdcmpany(const BD_ADDR a)94 int 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 *******************************************************************************/
bdsetany(BD_ADDR a)109 void bdsetany(BD_ADDR a)
110 {
111 bdcpy(a, bd_addr_any);
112 }
113