change licese for atheros files
[open-ath9k-htc-firmware.git] / target_firmware / magpie_fw_dev / target / inc / magpie / vdesc_api.h
1 /*
2  * Copyright (c) 2013 Qualcomm Atheros, Inc.
3  *
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted (subject to the limitations in the
8  * disclaimer below) provided that the following conditions are met:
9  *
10  *  * Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  *
13  *  * Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the
16  *    distribution.
17  *
18  *  * Neither the name of Qualcomm Atheros nor the names of its
19  *    contributors may be used to endorse or promote products derived
20  *    from this software without specific prior written permission.
21  *
22  * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
23  * GRANTED BY THIS LICENSE.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
24  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
25  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
26  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
31  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
32  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
33  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
34  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35  */
36
37 #ifndef _VDESC_API_H
38 #define _VDESC_API_H
39
40 //#define VDESC_CONTROL_BUF_HDR          (1 << 6)  /* the buffer was manipulated and a header added */
41
42 #define MAX_HW_DESC_SIZE 20
43
44 typedef struct _VDESC
45 {
46     struct _VDESC   *next_desc;
47     A_UINT8         *buf_addr;
48     A_UINT16        buf_size;
49     A_UINT16        data_offset;
50     A_UINT16        data_size;
51     A_UINT16        control;
52     A_UINT8         hw_desc_buf[MAX_HW_DESC_SIZE]; 
53 } VDESC;
54
55 //#define VDESC_HW_TO_VDESC(hwdesc)   ((VDESC *)(((A_UINT32 *)hwdesc - 4)))
56 #define VDESC_HW_TO_VDESC(hwdesc)   ((VDESC *)(((A_UINT32 *)hwdesc - 4)))
57
58 struct vdesc_api {
59     void        (*_init)(int nDesc);
60     VDESC*      (*_alloc_vdesc)();
61     A_UINT8*    (*_get_hw_desc)(VDESC *desc);
62     void        (*_swap_vdesc)(VDESC *dest, VDESC *src);
63     //void (*_free_vdesc)(void);
64         /* room to expand this table by another table */
65     void *pReserved;    
66 };
67
68 extern void vdesc_module_install(struct vdesc_api *apis);
69
70 #endif