linux/sound/pci/cs46xx/cs46xx_dsp_task_types.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 *  The driver for the Cirrus Logic's Sound Fusion CS46XX based soundcards
 *  Copyright (c) by Jaroslav Kysela <[email protected]>
 *
 * NOTE: comments are copy/paste from cwcemb80.lst 
 * provided by Tom Woller at Cirrus (my only
 * documentation about the SP OS running inside
 * the DSP) 
 */

#ifndef __CS46XX_DSP_TASK_TYPES_H__
#define __CS46XX_DSP_TASK_TYPES_H__

#include "cs46xx_dsp_scb_types.h"

/*********************************************************************************************
Example hierarchy of stream control blocks in the SP

hfgTree
Ptr____Call (c)
       \
 -------+------         -------------      -------------      -------------      -----
| SBlaster IF  |______\| Foreground  |___\| Middlegr'nd |___\| Background  |___\| Nul |
|              |Goto  /| tree header |g  /| tree header |g  /| tree header |g  /| SCB |r
 -------------- (g)     -------------      -------------      -------------      -----
       |c                     |c                 |c                 |c
       |                      |                  |                  |
      \/                  -------------      -------------      -------------   
                       | Foreground  |_\  | Middlegr'nd |_\  | Background  |_\
                       |     tree    |g/  |    tree     |g/  |     tree    |g/
                        -------------      -------------      -------------   
                              |c                 |c                 |c
                              |                  |                  | 
                             \/                 \/                 \/ 

*********************************************************************************************/

#define HFG_FIRST_EXECUTE_MODE
#define HFG_FIRST_EXECUTE_MODE_BIT
#define HFG_CONTEXT_SWITCH_MODE
#define HFG_CONTEXT_SWITCH_MODE_BIT

#define MAX_FG_STACK_SIZE
#define MAX_MG_STACK_SIZE
#define MAX_BG_STACK_SIZE
#define MAX_HFG_STACK_SIZE

#define SLEEP_ACTIVE_INCREMENT
#define STANDARD_ACTIVE_INCREMENT
#define SUSPEND_ACTIVE_INCREMENT

#define HOSTFLAGS_DISABLE_BG_SLEEP

/* Minimal context save area for Hyper Forground */
struct dsp_hf_save_area {};


/* Task link data structure */
struct dsp_tree_link {};


struct dsp_task_tree_data {};


struct dsp_interval_timer_data
{};


/* This structure contains extra storage for the task tree
   Currently, this additional data is related only to a full context save */
struct dsp_task_tree_context_block {};
                

struct dsp_task_tree_control_block {};


#endif /* __DSP_TASK_TYPES_H__ */