OLD | NEW |
1 //------------------------------------------------------------------------------ | 1 //------------------------------------------------------------------------------ |
2 // <copyright file="dl_list.h" company="Atheros"> | 2 // <copyright file="dl_list.h" company="Atheros"> |
3 // Copyright (c) 2004-2008 Atheros Corporation. All rights reserved. | 3 // Copyright (c) 2004-2010 Atheros Corporation. All rights reserved. |
4 // | 4 // |
5 // This program is free software; you can redistribute it and/or modify | |
6 // it under the terms of the GNU General Public License version 2 as | |
7 // published by the Free Software Foundation; | |
8 // | 5 // |
9 // Software distributed under the License is distributed on an "AS | 6 // Permission to use, copy, modify, and/or distribute this software for any |
10 // IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or | 7 // purpose with or without fee is hereby granted, provided that the above |
11 // implied. See the License for the specific language governing | 8 // copyright notice and this permission notice appear in all copies. |
12 // rights and limitations under the License. | 9 // |
| 10 // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| 11 // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| 12 // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
| 13 // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| 14 // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| 15 // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| 16 // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
13 // | 17 // |
14 // | 18 // |
15 //------------------------------------------------------------------------------ | 19 //------------------------------------------------------------------------------ |
16 //============================================================================== | 20 //============================================================================== |
17 // Double-link list definitions (adapted from Atheros SDIO stack) | 21 // Double-link list definitions (adapted from Atheros SDIO stack) |
18 // | 22 // |
19 // Author(s): ="Atheros" | 23 // Author(s): ="Atheros" |
20 //============================================================================== | 24 //============================================================================== |
21 #ifndef __DL_LIST_H___ | 25 #ifndef __DL_LIST_H___ |
22 #define __DL_LIST_H___ | 26 #define __DL_LIST_H___ |
23 | 27 |
24 #include "a_osapi.h" | 28 #include "a_osapi.h" |
25 | 29 |
26 #define A_CONTAINING_STRUCT(address, struct_type, field_name)\ | 30 #define A_CONTAINING_STRUCT(address, struct_type, field_name)\ |
27 ((struct_type *)((A_UINT32)(address) - (A_UINT32)(&((struct_type *)0
)->field_name))) | 31 ((struct_type *)((unsigned long)(address) - (unsigned long)(&((struc
t_type *)0)->field_name))) |
28 | 32 |
29 /* list functions */ | 33 /* list functions */ |
30 /* pointers for the list */ | 34 /* pointers for the list */ |
31 typedef struct _DL_LIST { | 35 typedef struct _DL_LIST { |
32 struct _DL_LIST *pPrev; | 36 struct _DL_LIST *pPrev; |
33 struct _DL_LIST *pNext; | 37 struct _DL_LIST *pNext; |
34 }DL_LIST, *PDL_LIST; | 38 }DL_LIST, *PDL_LIST; |
35 /* | 39 /* |
36 * DL_LIST_INIT , initialize doubly linked list | 40 * DL_LIST_INIT , initialize doubly linked list |
37 */ | 41 */ |
38 #define DL_LIST_INIT(pList)\ | 42 #define DL_LIST_INIT(pList)\ |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 pSrc->pNext->pPrev = pDest->pPrev; | 144 pSrc->pNext->pPrev = pDest->pPrev; |
141 pDest->pPrev->pNext = pSrc->pNext; | 145 pDest->pPrev->pNext = pSrc->pNext; |
142 pDest->pPrev = pSrc->pPrev; | 146 pDest->pPrev = pSrc->pPrev; |
143 /* terminate src list, it is now empty */ | 147 /* terminate src list, it is now empty */ |
144 pSrc->pPrev = pSrc; | 148 pSrc->pPrev = pSrc; |
145 pSrc->pNext = pSrc; | 149 pSrc->pNext = pSrc; |
146 } | 150 } |
147 } | 151 } |
148 | 152 |
149 #endif /* __DL_LIST_H___ */ | 153 #endif /* __DL_LIST_H___ */ |
OLD | NEW |