📄 musiclib.h
字号:
/****************************************************************//* *//* Name: musiclib.h *//* *//* Project: NeuroBasic, simple simulator *//* *//* Survey: This header file is only for the simple simula- *//* tor version of NeuroBasic! It is a striped *//* single-file version of the musiclib.h file of *//* MUSIC development environment. See the *//* original file for detailed comments. *//* *//* Author: Urs Mueller *//* Electronics Laboratory, ETH Zuerich *//* Switzerland *//* *//* Created: July 31, 1994 *//* Modified: August 5, 1994 (um) *//* *//****************************************************************/#ifndef __MUSICLIB_H#define __MUSICLIB_H#include <stdlib.h>#define MINT long /* must be 32 bit */#define UMINT unsigned long /* must be 32 bit */#define MFLOAT float /* must be 32 bit */#define MINT_MIN LONG_MIN#define MINT_MAX LONG_MAX#ifndef TRUE#define TRUE 1#endif#ifndef FALSE#define FALSE 0#endif#ifndef MIN#define MIN(a, b) ((a < b) ? a : b)#endif#ifndef MAX#define MAX(a, b) ((a < b) ? b : a)#endiftypedef enum { MT_PROD, MT_CONS, MT_PROD_LOW, MT_CONS_LOW, MT_SLOW, MT_INIT, MT_FAST } mem_t;typedef enum{ MS_FIRST, MS_BEST}mems_t;typedef enum{ MP_PROD_FIRST, MP_CONS_FIRST}memp_t;void *dmalloc(size_t, mem_t);void *dcalloc(MINT , size_t, mem_t);void *drealloc(void *, size_t , mem_t);void dfree(void *);void dstrategy(mems_t);void dpriority(memp_t);MINT dmavail(mem_t);void dstatus(void);extern MINT NumDSPs; /* Number of DSPs available. */extern MINT MyDSPnum; /* 0..NumDSPs-1; Different for each DSP. */typedef struct {MINT x; MINT y; MINT z; } size3D_t;typedef struct { size3D_t offset; size3D_t part; MINT nelements;} window_t;typedef struct { size3D_t dim; size_t elem_size; window_t prod; window_t cons;} comm_def_t;typedef enum { NO_DISTR, ALL_DISTR, X_DISTR, Y_DISTR, Z_DISTR, HOST_ONLY, MAJOR_DSP_ONLY, XY_DISTR} distr_t;void Window_generator ( comm_def_t *Pcomm_def, window_t *Pss_def, MINT NumDSPs, MINT MyDSPnum, distr_t distr, MINT overlap_x, MINT overlap_y, MINT overlap_z );#define Complete_prod_window(Pcomm_def, prod_distr) \ Window_generator((Pcomm_def), &(Pcomm_def)->prod, \ NumDSPs, MyDSPnum, (prod_distr), 0, 0, 0 )#define Complete_cons_window(Pcomm_def, cons_distr, olap_x, olap_y, olap_z) \ Window_generator((Pcomm_def), &(Pcomm_def)->cons, \ NumDSPs, MyDSPnum, (cons_distr), \ olap_x, olap_y, olap_z )void Distr_one_dim ( MINT *Ppart, MINT *Poffset, MINT NumDSPs, MINT MyDSPnum, MINT dim, MINT overlap );typedef enum{ COMM_NORM = 0, COMM_CONS_DIRECT = 1, COMM_PROD_DIRECT = 2, COMM_OVERLAP0 = 16, COMM_OVERLAP_BACK = 32, COMM_OVERLAP_FRONT = 64, COMM_RGB_SWAP = 128} comm_mode_t;#define COMM_OVERLAP1 COMM_OVERLAP_BACK#define HOST_IO ((void*)-1)void Init_comm ( comm_def_t *Pcomm_def, void *Pprod, void *Pcons, comm_mode_t comm_mode );#define ALL_DATA -1void Data_ready ( MINT nelements );MINT Wait_data ( MINT nelements );typedef enum {RD_ALL, RD_PART, RD_DMA_TO_FIRST} RFH_t;void Rd_from_host(void *p, size_t size, RFH_t mode);typedef enum {WR_ALL, WR_ONE} WTH_t;void Wr_to_host(void *p, size_t size, WTH_t mode);void Delay ( long usec );#endif /* __MUSICLIB_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -