⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buf.h

📁 SEED的VPM642测试程序-板级支持库
💻 H
字号:
/*
 *  Copyright 2003 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/* "@(#) DSP/BIOS 4.90.270 12-18-03 (barracuda-o04)" */
/*
 *  ======== buf.h ========
 *  
 */

#ifndef BUF_
#define BUF_

#include <mem.h>

#ifdef __cplusplus
extern "C" {
#endif


typedef struct BUF_Obj {
    Ptr startaddr;           /* Starting address of buffer pool */
    MEM_sizep size;          /* Original size of buffer before alignment */
    MEM_sizep postalignsize; /* Size of buffer after alignment  */
    Ptr nextfree;            /*  Pointer to next free buffer    */
    Uns totalbuffers;        /*  Total number of buffers in pool*/ 
    Uns freebuffers;         /*  Number of free buffers in pool */
    Int segid;               /*  Memory Segment for buffer pool */
} BUF_Obj, *BUF_Handle;

typedef struct BUF_Attrs {
    Int		segid;       /* segment for element allocation*/
} BUF_Attrs;

typedef struct BUF_Header {
    struct BUF_Header *next; /* Pointer to next buffer header */
    Uns watermk;             /* Water mark field to indicate if 
                                the buffer has been used */ 
} BUF_Header;

typedef struct BUF_Stat {
    MEM_sizep postalignsize; /* Size of buffer after alignment*/ 
    MEM_sizep size;          /* Original size of buffer       */
    Uns totalbuffers;        /* Total buffers in pool         */    
    Uns freebuffers;         /* Number of free buffers in pool*/ 
} BUF_Stat;

#define BUF_ALLOCSTAMP 0xcafe/* Stamp indicates that buffer is allocated 
                                atleast once*/ 

#define BUF_FREESTAMP 0xbeef /* Stamp indicates that buffer is not
                                allocated yet */


extern BUF_Attrs BUF_ATTRS;  /* Default attributes */

extern BUF_Handle BUF_create(Uns numbuff, MEM_sizep size, Uns align, BUF_Attrs *attrs);
extern Uns BUF_delete(BUF_Handle buf);
extern Ptr BUF_alloc(BUF_Handle buf);
extern Bool BUF_free(BUF_Handle buf, Ptr bufaddr);
extern Void BUF_stat(BUF_Handle buf, BUF_Stat *statbuf);
extern Uns BUF_maxbuff(BUF_Handle buf);


#ifdef __cplusplus
}
#endif /* extern "C" */

#endif /* BUF_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -