1 /*******************************************************************************
2 * Copyright (C) 2018 Cadence Design Systems, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to use this Software with Cadence processor cores only and
7 * not with any other processors and platforms, subject to
8 * the following conditions:
9 *
10 * The above copyright notice and this permission notice shall be included
11 * in all copies or substantial portions of the Software.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
17 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
18 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
19 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 
21 ******************************************************************************/
22 
23 /* ...size of auxiliary pool for communication with HiFi */
24 #define XAF_AUX_POOL_SIZE                   32
25 
26 /* ...length of auxiliary pool messages */
27 #define XAF_AUX_POOL_MSG_LENGTH             128
28 #define XAF_MAX_CONFIG_PARAMS               (XAF_AUX_POOL_MSG_LENGTH >> 3)
29 
30 typedef struct xaf_comp xaf_comp_t;
31 
32 struct xaf_comp {
33     xf_handle_t     handle;
34 
35     u32             inp_routed;
36     u32             out_routed;
37     u32             inp_ports;
38     u32             out_ports;
39     u32             init_done;
40     u32             pending_resp;
41     u32             expect_out_cmd;
42     u32             input_over;
43 
44     xaf_comp_type   comp_type;
45     xaf_comp_status comp_status;
46     u32             start_cmd_issued;
47     u32             exec_cmd_issued;
48     void            *start_buf;
49 
50     xaf_format_t    inp_format;
51     xaf_format_t    out_format;
52 
53     xf_pool_t       *inpool;
54     xf_pool_t       *outpool;
55     u32             noutbuf;
56 
57     xaf_comp_t      *next;
58 
59     u32             ninbuf;
60     void            *p_adev;
61     //xaf_comp_state  comp_state;
62     void           *comp_ptr;
63 };
64 
65 typedef struct xaf_adev_s {
66     xf_proxy_t      proxy;
67     xaf_comp_t      *comp_chain;
68 
69     u32   n_comp;
70     void *adev_ptr;
71     void *p_dspMem;
72     void *p_apMem;
73     void *p_dspLocalBuff;
74     void *p_apSharedMem;
75 
76     xaf_ap_utils_t  *p_ap_utils; //host-side utility structure handle
77     void  *(*pxf_mem_malloc_fxn)(s32, s32);
78     void  (*pxf_mem_free_fxn)(void *,s32);
79     //xaf_adev_state  adev_state;
80 
81 } xaf_adev_t;
82 
83