Home | History | Annotate | Download | only in include
      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