• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>oscl_uuid.h Source File</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5</head><body>
6<!-- Generated by Doxygen 1.2.18 -->
7<center>
8<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
9<hr><h1>oscl_uuid.h</h1><a href="oscl__uuid_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
1000007 <span class="preprocessor">#ifndef OSCL_UUID_H_INCLUDED</span>
1100008 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_UUID_H_INCLUDED</span>
1200009 <span class="preprocessor"></span>
1300010 <span class="preprocessor">#ifndef OSCL_BASE_H_INCLUDED</span>
1400011 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span>
1500012 <span class="preprocessor">#endif</span>
1600013 <span class="preprocessor"></span>
1700014 <span class="preprocessor">#ifndef OSCL_MEM_BASIC_FUNCTIONS_H</span>
1800015 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__mem__basic__functions_8h.html">oscl_mem_basic_functions.h</a>"</span>
1900016 <span class="preprocessor">#endif</span>
2000017 <span class="preprocessor"></span>
2100018 <span class="preprocessor">#ifndef OSCL_STRING_UTILS_H</span>
2200019 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__string__utils_8h.html">oscl_string_utils.h</a>"</span>
2300020 <span class="preprocessor">#endif</span>
2400021 <span class="preprocessor"></span>
2500022 <span class="preprocessor">#ifndef OSCL_STDSTRING_H_INCLUDED</span>
2600023 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__stdstring_8h.html">oscl_stdstring.h</a>"</span>
2700024 <span class="preprocessor">#endif</span>
2800025 <span class="preprocessor"></span><span class="comment">// __cplusplus</span>
2900026
30<a name="l00027"></a><a class="code" href="oscl__uuid_8h.html#a1">00027</a> <span class="keyword">typedef</span> uint32 <a class="code" href="oscl__uuid_8h.html#a1">OsclUid32</a>;
31<a name="l00028"></a><a class="code" href="oscl__uuid_8h.html#a2">00028</a> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="oscl__uuid_8h.html#a2">PV_CHAR_CLOSE_BRACKET</a> = <span class="charliteral">')'</span>;
32<a name="l00029"></a><a class="code" href="oscl__uuid_8h.html#a3">00029</a> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="oscl__uuid_8h.html#a3">PV_CHAR_COMMA</a> = <span class="charliteral">','</span>;
33<a name="l00033"></a><a class="code" href="structOsclUuid.html">00033</a> <span class="keyword">struct </span><a class="code" href="structOsclUuid.html">OsclUuid</a>
3400034 {
35<a name="l00035"></a><a class="code" href="oscl__uuid_8h.html#a0">00035</a> <span class="preprocessor">#define BYTES_IN_UUID_ARRAY 8</span>
3600036 <span class="preprocessor"></span>
37<a name="l00037"></a><a class="code" href="structOsclUuid.html#a0">00037</a>     <a class="code" href="structOsclUuid.html#a0">OsclUuid</a>()
3800038     {
3900039         <a class="code" href="group__osclmemory.html#a14">oscl_memset</a>(<span class="keyword">this</span>, 0, <span class="keyword">sizeof</span>(<a class="code" href="structOsclUuid.html">OsclUuid</a>));
4000040     }
4100041
42<a name="l00042"></a><a class="code" href="structOsclUuid.html#a1">00042</a>     <a class="code" href="structOsclUuid.html#a0">OsclUuid</a>(uint32 l, uint16 w1, uint16 w2, uint8 b1, uint8 b2, uint8 b3,
4300043              uint8 b4, uint8 b5, uint8 b6, uint8 b7, uint8 b8)
4400044     {
4500045         <a class="code" href="structOsclUuid.html#m0">data1</a> = l;
4600046         <a class="code" href="structOsclUuid.html#m1">data2</a> = w1;
4700047         <a class="code" href="structOsclUuid.html#m2">data3</a> = w2;
4800048         <a class="code" href="structOsclUuid.html#m3">data4</a>[0] = b1;
4900049         <a class="code" href="structOsclUuid.html#m3">data4</a>[1] = b2;
5000050         <a class="code" href="structOsclUuid.html#m3">data4</a>[2] = b3;
5100051         <a class="code" href="structOsclUuid.html#m3">data4</a>[3] = b4;
5200052         <a class="code" href="structOsclUuid.html#m3">data4</a>[4] = b5;
5300053         <a class="code" href="structOsclUuid.html#m3">data4</a>[5] = b6;
5400054         <a class="code" href="structOsclUuid.html#m3">data4</a>[6] = b7;
5500055         <a class="code" href="structOsclUuid.html#m3">data4</a>[7] = b8;
5600056     }
5700057
5800058     <span class="comment">//The OSCL UUID structure takes in a string parameter</span>
5900059     <span class="comment">//Expected string input for the OsclString should be like:</span>
6000060     <span class="comment">//(0xa054569c,0x24c5,0x452e,0x99,0x77,0x87,0x4b,0xca,0x79,0xd3,0xaf)</span>
6100061
62<a name="l00062"></a><a class="code" href="structOsclUuid.html#a2">00062</a>     <a class="code" href="structOsclUuid.html#a0">OsclUuid</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* aUuidString)
6300063     {
6400064         <span class="comment">//Initialize all data members to 0 to begin with</span>
6500065         <a class="code" href="structOsclUuid.html#m0">data1</a> = <a class="code" href="structOsclUuid.html#m1">data2</a> = <a class="code" href="structOsclUuid.html#m2">data3</a> = 0;
6600066
6700067         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> ii = 0; ii &lt; 8; ++ii)
6800068         {
6900069             <a class="code" href="structOsclUuid.html#m3">data4</a>[ii] = 0;
7000070         }
7100071
7200072         <span class="keywordtype">int</span> uuidStrLen = <a class="code" href="group__osclbase.html#a43">oscl_strlen</a>(aUuidString);
7300073
7400074         <span class="keywordflow">if</span> (uuidStrLen != 0)
7500075         {
7600076             <span class="keyword">const</span> <span class="keywordtype">char</span>* sptr = <a class="code" href="group__osclbase.html#a81">NULL</a>, *eptr = <a class="code" href="group__osclbase.html#a81">NULL</a>;
7700077             <span class="keywordtype">int</span> commaval = 0;
7800078             sptr = aUuidString;
7900079             ++sptr; <span class="comment">//Increment over the starting parantheses '('</span>
8000080             eptr = sptr;
8100081             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0;i &lt; uuidStrLen - 1 ; ++i)
8200082             {
8300083                 <span class="keywordflow">if</span> ((*eptr != <a class="code" href="oscl__uuid_8h.html#a3">PV_CHAR_COMMA</a>) &amp;&amp; (*eptr != <a class="code" href="oscl__uuid_8h.html#a2">PV_CHAR_CLOSE_BRACKET</a>)) <span class="comment">//Increment the pointer unless you get to the ","</span>
8400084                 {                                                               <span class="comment">//The comma signifies the beginning of the new OsclUuid parameter</span>
8500085                     ++eptr;
8600086                 }
8700087                 <span class="keywordflow">else</span>
8800088                 {
8900089                     sptr = sptr + 2;<span class="comment">//Move over the 0x characters in the beginning of the hex value;</span>
9000090                     ++commaval;
9100091                     <span class="keywordflow">switch</span> (commaval)
9200092                     {
9300093                         <span class="keywordflow">case</span> 1:
9400094                         {
9500095                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, eptr - sptr, <a class="code" href="structOsclUuid.html#m0">data1</a>);
9600096                             <span class="keywordflow">break</span>;
9700097                         }
9800098                         <span class="keywordflow">case</span> 2:
9900099                         {
10000100                             uint32 tempdata2 = 0;
10100101                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata2);
10200102                             <a class="code" href="structOsclUuid.html#m1">data2</a> = (uint16)tempdata2;
10300103                             <span class="keywordflow">break</span>;
10400104                         }
10500105                         <span class="keywordflow">case</span> 3:
10600106                         {
10700107                             uint32 tempdata3 = 0;
10800108                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata3);
10900109                             <a class="code" href="structOsclUuid.html#m2">data3</a> = (uint16)tempdata3;
11000110                             <span class="keywordflow">break</span>;
11100111                         }
11200112                         <span class="keywordflow">case</span> 4:
11300113                         {
11400114                             uint32 tempdata4_0 = 0;
11500115                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_0);
11600116                             <a class="code" href="structOsclUuid.html#m3">data4</a>[0] = (uint8)tempdata4_0;
11700117                             <span class="keywordflow">break</span>;
11800118                         }
11900119                         <span class="keywordflow">case</span> 5:
12000120                         {
12100121                             uint32 tempdata4_1 = 0;
12200122                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_1);
12300123                             <a class="code" href="structOsclUuid.html#m3">data4</a>[1] = (uint8)tempdata4_1;
12400124                             <span class="keywordflow">break</span>;
12500125                         }
12600126                         <span class="keywordflow">case</span> 6:
12700127                         {
12800128                             uint32 tempdata4_2 = 0;
12900129                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_2);
13000130                             <a class="code" href="structOsclUuid.html#m3">data4</a>[2] = (uint8)tempdata4_2;
13100131                             <span class="keywordflow">break</span>;
13200132                         }
13300133                         <span class="keywordflow">case</span> 7:
13400134                         {
13500135                             uint32 tempdata4_3 = 0;
13600136                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_3);
13700137                             <a class="code" href="structOsclUuid.html#m3">data4</a>[3] = (uint8)tempdata4_3;
13800138                             <span class="keywordflow">break</span>;
13900139                         }
14000140                         <span class="keywordflow">case</span> 8:
14100141                         {
14200142                             uint32 tempdata4_4 = 0;
14300143                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_4);
14400144                             <a class="code" href="structOsclUuid.html#m3">data4</a>[4] = (uint8)tempdata4_4;
14500145                             <span class="keywordflow">break</span>;
14600146                         }
14700147                         <span class="keywordflow">case</span> 9:
14800148                         {
14900149                             uint32 tempdata4_5 = 0;
15000150                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_5);
15100151                             <a class="code" href="structOsclUuid.html#m3">data4</a>[5] = (uint8)tempdata4_5;
15200152                             <span class="keywordflow">break</span>;
15300153                         }
15400154                         <span class="keywordflow">case</span> 10:
15500155                         {
15600156                             uint32 tempdata4_6 = 0;
15700157                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_6);
15800158                             <a class="code" href="structOsclUuid.html#m3">data4</a>[6] = (uint8)tempdata4_6;
15900159                             <span class="keywordflow">break</span>;
16000160                         }
16100161                         <span class="keywordflow">case</span> 11:
16200162                         {
16300163                             uint32 tempdata4_7 = 0;
16400164                             <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr, <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_7);
16500165                             <a class="code" href="structOsclUuid.html#m3">data4</a>[7] = (uint8)tempdata4_7;
16600166                             <span class="keywordflow">break</span>;
16700167                         }
16800168                     }
16900169                     <span class="keywordflow">if</span> (*eptr == <a class="code" href="oscl__uuid_8h.html#a2">PV_CHAR_CLOSE_BRACKET</a>) <span class="comment">//Break from the loop on finding</span>
17000170                     {
17100171                         <span class="keywordflow">break</span>;
17200172                     }
17300173                     ++eptr;
17400174                     sptr = eptr;
17500175                 }
17600176             }
17700177         }
17800178     }
17900179
180<a name="l00180"></a><a class="code" href="structOsclUuid.html#a3">00180</a>     <a class="code" href="structOsclUuid.html#a0">OsclUuid</a>(<span class="keyword">const</span> <a class="code" href="structOsclUuid.html">OsclUuid</a> &amp;uuid)
18100181     {
18200182         <a class="code" href="group__osclmemory.html#a11">oscl_memcpy</a>(<span class="keyword">this</span>, &amp;uuid, <span class="keyword">sizeof</span>(<a class="code" href="structOsclUuid.html">OsclUuid</a>));
18300183     }
18400184
185<a name="l00185"></a><a class="code" href="structOsclUuid.html#a4">00185</a>     <a class="code" href="structOsclUuid.html">OsclUuid</a> &amp;<a class="code" href="structOsclUuid.html#a4">operator=</a>(<span class="keyword">const</span> <a class="code" href="structOsclUuid.html">OsclUuid</a>&amp; src)
18600186     {
18700187         <a class="code" href="group__osclmemory.html#a11">oscl_memcpy</a>(<span class="keyword">this</span>, &amp;src, <span class="keyword">sizeof</span>(<a class="code" href="structOsclUuid.html">OsclUuid</a>));
18800188         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
18900189     }
19000190
191<a name="l00191"></a><a class="code" href="structOsclUuid.html#a5">00191</a>     <span class="keywordtype">bool</span> <a class="code" href="structOsclUuid.html#a5">operator==</a>(<span class="keyword">const</span> <a class="code" href="structOsclUuid.html">OsclUuid</a>&amp; src)<span class="keyword"> const</span>
19200192 <span class="keyword">    </span>{
19300193         <span class="keywordflow">if</span> (<a class="code" href="structOsclUuid.html#m0">data1</a> != src.<a class="code" href="structOsclUuid.html#m0">data1</a> || <a class="code" href="structOsclUuid.html#m1">data2</a> != src.<a class="code" href="structOsclUuid.html#m1">data2</a> || <a class="code" href="structOsclUuid.html#m2">data3</a> != src.<a class="code" href="structOsclUuid.html#m2">data3</a>)
19400194         {
19500195             <span class="keywordflow">return</span> <span class="keyword">false</span>;
19600196         }
19700197
19800198         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> ii = 0; ii &lt; 8; ++ii)
19900199         {
20000200             <span class="keywordflow">if</span> (<a class="code" href="structOsclUuid.html#m3">data4</a>[ii] != src.<a class="code" href="structOsclUuid.html#m3">data4</a>[ii])
20100201             {
20200202                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
20300203             }
20400204         }
20500205
20600206         <span class="keywordflow">return</span> <span class="keyword">true</span>;
20700207     }
20800208
209<a name="l00209"></a><a class="code" href="structOsclUuid.html#a6">00209</a>     <span class="keywordtype">bool</span> <a class="code" href="structOsclUuid.html#a6">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structOsclUuid.html">OsclUuid</a> &amp;src)<span class="keyword"> const</span>
21000210 <span class="keyword">    </span>{
21100211         <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == src);
21200212     }
21300213
214<a name="l00214"></a><a class="code" href="structOsclUuid.html#m0">00214</a>     uint32  <a class="code" href="structOsclUuid.html#m0">data1</a>;
215<a name="l00215"></a><a class="code" href="structOsclUuid.html#m1">00215</a>     uint16  <a class="code" href="structOsclUuid.html#m1">data2</a>;
216<a name="l00216"></a><a class="code" href="structOsclUuid.html#m2">00216</a>     uint16  <a class="code" href="structOsclUuid.html#m2">data3</a>;
217<a name="l00217"></a><a class="code" href="structOsclUuid.html#m3">00217</a>     uint8   <a class="code" href="structOsclUuid.html#m3">data4</a>[<a class="code" href="oscl__uuid_8h.html#a0">BYTES_IN_UUID_ARRAY</a>];
21800218 };
21900219
22000220 <span class="preprocessor">#endif</span>
22100221 <span class="preprocessor"></span>
222</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
223<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
224</small></address>
225</body>
226</html>
227