เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดฎเตเดฑเตเดฑเตเดฐเดฟเดฏเตฝ เดเดจเตเดฑเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดคเตเดคเดคเดพเดฃเต
เดกเดพเดฑเตเดฑ เดเดฒเดจ เดธเดเดตเดฟเดงเดพเดจเด
- เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต dblk_t
- เดธเดจเตเดฆเตเดถเด mblk_t
- mblk_t เดธเดจเตเดฆเตเดถเดเตเดเดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
- เดเตเดฏเต เดเตเดฏเต_t
- เดเตเดฏเตเดเตพ queue_t เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
- เดซเดฟเตฝเดเตเดเดฑเตเดเตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต
- เดกเดพเดฑเตเดฑ เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดเตเดฐเดพเดซเดฟเดจเตเดฑเต เดธเดฟเดเตเดจเตฝ เดชเตเดฏเดฟเดจเตเดฑเต
- เดเดฟเดเตเดเดฑเดฟเดจเตเดฑเต เดคเดฟเดฐเดถเตเดถเตเดฒเดฏเตเดเตเดเต เดชเดฟเดจเตเดจเดฟเดฒเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
- เดฌเดซเดฑเตเดธเตผ (MSBufferizer)
- MSBufferizer-เดจเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
เด
เดตเดธเดพเดจเดคเตเดคเดฟเตฝ
เดกเดพเดฑเตเดฑ เดเดฒเดจ เดธเดเดตเดฟเดงเดพเดจเด
เดเดเดจ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดฏเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเดฑเดฟเดฒเต เดกเดพเดฑเตเดฑเดพ เดเดฒเดจเด เดจเดเดคเตเดคเตเดจเตเดจเดคเต เดเตเดฏเต_เดเดฟ. เดคเตเดเดเตเดเดฟเดฏ เดธเดจเตเดฆเตเดถเดเตเดเดณเตเดเต เดตเดฐเดฟเดเตพ mblk_t, เด เดตเดฏเดฟเตฝ เดคเดจเตเดจเต เดธเดฟเดเตเดจเตฝ เดกเดพเดฑเตเดฑ เด เดเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ, เดเดจเตเดจเดพเตฝ เดฎเตเดฎเตเดชเดคเตเดคเต, เด เดเตเดคเตเดค เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเตเด เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเตเด เดฒเดฟเดเตเดเตเดเตพ เดฎเดพเดคเตเดฐเด. เดเตเดเดพเดคเต, เดเดฐเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเตเดณเตเดณ เดฒเดฟเดเตเดเดฟเดจเดพเดฏเดฟ เดเดฐเต เดซเตเตฝเดกเตเด เดเดฃเตเดเตเดจเตเดจเต เดเดพเตป เดชเตเดฐเดคเตเดฏเตเดเด เดเดจเตเดจเดฟเดชเตเดชเดฑเดฏเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต, เด เดคเต เดเดฑเตเดฑ เดฒเดฟเดเตเดเต เดเตเดฏเตเดค เดธเดจเตเดฆเตเดถเดเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดธเดเดเดเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เด เดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเดฟเดจเดพเตฝ เดเดเตเดเดฐเดฟเดเตเดเดชเตเดชเตเดเตเด เดเดฐเต เดเตเดเตเดเด เดธเดจเตเดฆเตเดถเดเตเดเดณเต เดเดเตเดเตพ เดเตเดฏเตเดชเตเดชเดฟเตพ เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเตเด. เด เดเตเดเดจเต, เดเตเดฏเตเดตเดฟเดจเตเดฑเต เดเดคเต เดเดเดเดตเตเด เดเดฐเตเดฑเตเดฑ เดธเดจเตเดฆเตเดถเดฎเดพเดเดพเด mblk_t, เดเดฐเตเดชเดเตเดทเต เดเดฐเต เดธเดจเตเดฆเตเดถ เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดจเตเดฑเต เดคเดฒเดตเตป mblk_t. เดเดฐเต เดเตเดฏเตเดชเตเดชเดฟเตพ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเด เด เดคเดฟเดจเตเดฑเตเดคเดพเดฏ เดตเดพเตผเดกเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเตเด. เดเดจเตเดคเตเดเตเดฃเตเดเดพเดฃเต เดเตเดฏเตเดชเตเดชเดฟเตพเดธเต เดเดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเดจเตเดจเดคเต เดเดจเตเดจเต เดเดเตเดเตพ เดเตเดฑเดเตเดเต เดเดดเดฟเดเตเดเต เดเตผเดเตเด เดเตเดฏเตเดฏเตเด.
เดฎเตเดเดณเดฟเตฝ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดคเตเดชเตเดฒเต, เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเตฝ เดคเดจเตเดจเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดฐเต เดฌเตเดฒเตเดเตเดเต เด เดเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ; เดชเดเดฐเด, เดฌเตเดฒเตเดเตเดเต เดธเดเดญเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดฎเตเดฎเตเดฎเดฑเดฟ เดเดฐเดฟเดฏเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ เดฎเดพเดคเตเดฐเดฎเต เด เดคเดฟเตฝ เด เดเดเตเดเดฟเดฏเดฟเดเตเดเตเดณเตเดณเต. เด เดญเดพเดเดคเตเดคเต, เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเดฑเดฟเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต เดฎเตเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดฟเดคเตเดฐเด "เดฎเตเตบเดธเตเดฑเตเดฑเตเดดเตเดธเต, เดเตปเดเต" เดเดจเตเดจ เดเดพเตผเดเตเดเตเดฃเดฟเดฒเต เดกเตเตผ เดตเตเดฏเตผเดนเตเดธเดฟเดจเต เด เดจเตเดธเตเดฎเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต, เด เดตเดฟเดเต เดตเดพเดคเดฟเดฒเตเดเตพ (เดกเดพเดฑเตเดฑ - เดฑเตเดฎเตเดเดณเดฟเดฒเตเดเตเดเตเดณเตเดณ เดฒเดฟเดเตเดเตเดเตพ) เดเดตเตผเดนเตเดกเต เดเตบเดตเตเดฏเดฑเดฟเดฒเตเดเต เดญเตเดฐเดพเดจเตเดคเดฎเดพเดฏ เดตเตเดเดคเดฏเดฟเตฝ เดจเตเดเตเดเตเดจเตเดจเต, เด เดคเตเดธเดฎเดฏเด เดฎเตเดฑเดฟเดเตพ เดคเดจเตเดจเต. เด เดจเดเตเดเดพเดคเต เดเดฐเดฟเดเตเดเตเด.
เดเดชเตเดชเตเตพ, เดคเดพเดดเต เดจเดฟเดจเตเดจเต เดฎเตเดเดณเดฟเดฒเตเดเตเดเต เดถเตเดฐเตเดฃเดฟเดฏเดฟเดฒเตเดเต เดจเตเดเตเดเตเดฎเตเดชเตเตพ, เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเดฑเดฟเดฒเต เดกเดพเดฑเตเดฑเดพ เดเตเดฐเดพเตปเดธเตเดฎเดฟเดทเตป เดฎเตเดเตเดเดพเดจเดฟเดธเดคเตเดคเดฟเดจเตเดฑเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเดฏเตเดค เดเดจเตเดฑเดฟเดฑเตเดฑเดฟเดเตพ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดชเดฐเดฟเดเดฃเดฟเดเตเดเดพเด.
เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต dblk_t
เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเตฝ เดเดฐเต เดนเตเดกเดฑเตเด เดกเดพเดฑเตเดฑ เดฌเดซเดฑเตเด เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดคเดฒเดเตเดเตเดเตเดเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดเดจเดฏเดพเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
typedef struct datab
{
unsigned char *db_base; // ะฃะบะฐะทะฐัะตะปั ะฝะฐ ะฝะฐัะฐะปะพ ะฑััะตั ะดะฐะฝะฝัั
.
unsigned char *db_lim; // ะฃะบะฐะทะฐัะตะปั ะฝะฐ ะบะพะฝะตั ะฑััะตั ะดะฐะฝะฝัั
.
void (*db_freefn)(void*); // ะคัะฝะบัะธั ะพัะฒะพะฑะพะถะดะตะฝะธั ะฟะฐะผััะธ ะฟัะธ ัะดะฐะปะตะฝะธะธ ะฑะปะพะบะฐ.
int db_ref; // ะกัะตััะธะบ ัััะปะพะบ.
} dblk_t;
เดเดเดจเดฏเตเดเต เดซเตเตฝเดกเตเดเดณเดฟเตฝ เดฌเดซเดฑเดฟเดจเตเดฑเต เดเดฐเดเดญเด, เดฌเดซเดฑเดฟเดจเตเดฑเต เด เดตเดธเดพเดจเด, เดกเดพเดฑเตเดฑ เดฌเดซเตผ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดเดจเตเดจเดฟเดตเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเตเดฏเดฟเดจเตเดฑเดฑเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดคเดฒเดเตเดเตเดเตเดเดฟเดฒเต เด เดตเดธเดพเดจ เดเดเดเด db_ref โ เดฑเดซเดฑเตปเดธเต เดเตเดฃเตเดเตผ, เด เดคเต เดชเตเดเตเดฏเดคเตเดคเดฟเตฝ เดเดคเตเดคเดฟเดฏเดพเตฝ, เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด เดฌเตเดฒเตเดเตเดเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดธเดฟเดเตเดจเดฒเดพเดฏเดฟ เดเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดธเตเดทเตเดเดฟเดเตเดเดคเตเดเตเดเดฟเตฝ datab_alloc() , เดคเตเดเตผเดจเตเดจเต เดนเตเดกเดฑเดฟเดจเต เดคเตเดเตเดเตเดชเดฟเดจเตเดจเดพเดฒเต เดกเดพเดฑเตเดฑ เดฌเดซเตผ เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดเตเดเตเด. เดฎเดฑเตเดฑเตเดฒเตเดฒเดพ เดธเดพเดนเดเดฐเตเดฏเดเตเดเดณเดฟเดฒเตเด, เดฌเดซเตผ เดตเตเดตเตเดตเตเดฑเต เดเดตเดฟเดเตเดฏเตเดเตเดเดฟเดฒเตเด เดธเตเดฅเดพเดชเดฟเดเตเดเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดซเดฟเตฝเดเตเดเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจ เดธเดฟเดเตเดจเตฝ เดธเดพเดฎเตเดชเดฟเดณเตเดเดณเต เดฎเดฑเตเดฑเต เดกเดพเดฑเตเดฑเดฏเต เดกเดพเดฑเตเดฑ เดฌเดซเดฑเดฟเตฝ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเด.
เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดจเตเดฑเต เดเดฐเต เดชเตเดคเดฟเดฏ เดเดฆเดพเดนเดฐเดฃเด เดธเตเดทเตเดเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต:
dblk_t *datab_alloc(int size);
เดเดฐเต เดเตปเดชเตเดเตเดเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ เดเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, เดฌเตเดฒเตเดเตเดเต เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจ เดกเดพเดฑเตเดฑเดฏเตเดเต เดตเดฒเตเดชเตเดชเด เดเดคเดฟเดจเต เดจเตฝเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เด เดจเตเดตเดฆเดฟเดเตเด เดฎเตเดฎเตเดฎเดฑเดฟเดฏเตเดเต เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ เดเดฐเต เดคเดฒเดเตเดเตเดเตเดเต - เดเดเดจ - เดธเตเดฅเดพเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดเตเดเตเดคเตฝ เดฎเตเดฎเตเดฎเดฑเดฟ เด เดจเตเดตเดฆเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต เดกเดพเดฑเตเดฑเดพเดฌเต. เดเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เดซเดเดเตโเดทเดจเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเดคเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ; เดเดฟเดฒ เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเตฝ, เดกเดพเดฑเตเดฑ เดฌเดซเตผ เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดนเตเดกเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดคเตเดฏเตเดเด เดธเตเดฅเดฟเดคเดฟเดเตเดฏเตเดฏเดพเด. เดเดฐเต เดเดเดจ เดธเตเดทเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดซเตเตฝเดกเตเดเตพ เด เดคเดฟเดจเตเดฑเต เดซเตเตฝเดกเต เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต db_base เดกเดพเดฑเตเดฑ เดเดฐเดฟเดฏเดฏเตเดเต เดคเตเดเดเตเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดเตเดฃเตเดเดฟเดเตเดเดพเดฃเดฟเดเตเดเต, เดเดชเตเดชเด db_lim เด เดคเดฟเดจเตเดฑเต เด เดตเดธเดพเดจเด เดตเดฐเต. เดฒเดฟเดเตเดเต เดเดฃเตเดฃเด db_ref เดเดจเตเดจเดพเดฏเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดกเดพเดฑเตเดฑ เดเตเดฒเดฟเดฏเตผ เดซเดเดเตเดทเตป เดชเตเดฏเดฟเดจเตเดฑเตผ เดชเตเดเตเดฏเดฎเดพเดฏเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดธเดจเตเดฆเตเดถเด mblk_t
เดชเดฑเดเตเดเดคเตเดชเตเดฒเต, เดเตเดฏเต เดเดเดเดเตเดเตพ เดคเดฐเดคเตเดคเดฟเดฒเดพเดฃเต mblk_t, เด เดคเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเตเดคเดฟเดฏเดฟเตฝ เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
typedef struct msgb
{
struct msgb *b_prev; // ะฃะบะฐะทะฐัะตะปั ะฝะฐ ะฟัะตะดัะดััะธะน ัะปะตะผะตะฝั ัะฟะธัะบะฐ.
struct msgb *b_next; // ะฃะบะฐะทะฐัะตะปั ะฝะฐ ัะปะตะดัััะธะน ัะปะตะผะตะฝั ัะฟะธัะบะฐ.
struct msgb *b_cont; // ะฃะบะฐะทะฐัะตะปั ะดะปั ะฟะพะดะบะปะตะนะบะธ ะบ ัะพะพะฑัะตะฝะธั ะดััะณะธั
ัะพะพะฑัะตะฝะธะน, ะดะปั ัะพะทะดะฐะฝะธั ะบะพััะตะถะฐ ัะพะพะฑัะตะฝะธะน.
struct datab *b_datap; // ะฃะบะฐะทะฐัะตะปั ะฝะฐ ััััะบัััั ะฑะปะพะบะฐ ะดะฐะฝะฝัั
.
unsigned char *b_rptr; // ะฃะบะฐะทะฐัะตะปั ะฝะฐ ะฝะฐัะฐะปะพ ะพะฑะปะฐััะธ ะดะฐะฝะฝัั
ะดะปั ััะตะฝะธั ะดะฐะฝะฝัั
ะฑััะตัะฐ b_datap.
unsigned char *b_wptr; // ะฃะบะฐะทะฐัะตะปั ะฝะฐ ะฝะฐัะฐะปะพ ะพะฑะปะฐััะธ ะดะฐะฝะฝัั
ะดะปั ะทะฐะฟะธัะธ ะดะฐะฝะฝัั
ะฑััะตัะฐ b_datap.
uint32_t reserved1; // ะะฐัะตะทะตัะฒะธัะพะฒะฐะฝะฝะพะต ะฟะพะปะต1, ะผะตะดะธะฐัััะธะผะตั ะฟะพะผะตัะฐะตั ััะดะฐ ัะปัะถะตะฑะฝัั ะธะฝัะพัะผะฐัะธั.
uint32_t reserved2; // ะะฐัะตะทะตัะฒะธัะพะฒะฐะฝะฝะพะต ะฟะพะปะต2, ะผะตะดะธะฐัััะธะผะตั ะฟะพะผะตัะฐะตั ััะดะฐ ัะปัะถะตะฑะฝัั ะธะฝัะพัะผะฐัะธั.
#if defined(ORTP_TIMESTAMP)
struct timeval timestamp;
#endif
ortp_recv_addr_t recv_addr;
} mblk_t;
เดเดเดจ mblk_t เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ เดชเตเดฏเดฟเดจเตเดฑเดฑเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต b_prev, b_เด เดเตเดคเตเดคเดคเต, เดเดฐเดเตเดเดฟ เดฒเดฟเดเตเดเต เดเตเดฏเตโเดค เดฒเดฟเดธเตโเดฑเตเดฑเต เดเตผเดเดจเตเดธเตเดเตเดฏเตเดฏเดพเตป เดเดตเดถเตเดฏเดฎเดพเดฏเดต (เด เดคเตเดฐเต เดเตเดฏเต เดเดฃเต เดเตเดฏเต_เดเดฟ).
เด เดชเตเดชเตเตพ เดชเตเดฏเดฟเดจเตเดฑเตผ เดตเดฐเตเดจเตเดจเต b_cont, เดธเดจเตเดฆเตเดถเด เดเดฐเต เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดจเตเดฑเต เดญเดพเดเดฎเดพเดเตเดฎเตเดชเตเตพ เดฎเดพเดคเตเดฐเดฎเต เดเดชเดฏเตเดเดฟเดเตเดเต. เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดฒเต เด เดตเดธเดพเดจ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเต, เด เดชเตเดฏเดฟเดจเตเดฑเตผ เด เดธเดพเดงเตเดตเดพเดฏเดฟ เดคเตเดเดฐเตเดจเตเดจเต.
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ เดจเดฎเตเดฎเตพ เดเดฐเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ เดเดพเดฃเตเดจเตเดจเต b_datap, เด เดคเดฟเดจเดพเดฏเดฟ เดธเดจเตเดฆเตเดถเด เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดเต. เดฌเตเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เดฌเดซเดฑเดฟเดจเตเดณเตเดณเดฟเดฒเต เดเดฐเดฟเดฏเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเตเดฏเดฟเดจเตเดฑเดฑเตเดเตพ เด เดคเดฟเดจเต เดชเดฟเดจเตเดคเตเดเดฐเตเดจเตเดจเต. เดซเตเตฝเดกเต b_rptr เดฌเดซเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดฑเตเดกเต เดเตเดฏเตเดฏเตเดฃเตเด เดธเตเดฅเดฒเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเต. เดซเตเตฝเดกเต b_wptr เดฌเดซเดฑเดฟเดฒเตเดเตเดเตเดณเตเดณ เดฑเตเดฑเตเดฑเตเดเตพ เดจเดฟเตผเดตเดนเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจ เดธเตเดฅเดฒเด เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต.
เดถเตเดทเดฟเดเตเดเตเดจเตเดจ เดซเตเตฝเดกเตเดเตพ เดเดฐเต เดธเตเดตเดจ เดธเตเดตเดญเดพเดตเดฎเตเดณเตเดณเดตเดฏเดพเดฃเต, เด เดต เดกเดพเดฑเตเดฑเดพ เดเตเดฐเดพเตปเดธเตเดซเตผ เดฎเตเดเตเดเดพเดจเดฟเดธเดคเตเดคเดฟเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดตเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเดเดคเดฒเตเดฒ.
เดชเตเดฐเดฟเดจเตเดชเตเดชเด เดเดฐเตเดฑเตเดฑ เดธเดจเตเดฆเตเดถเด เดเตเดตเดเตเดฏเตเดฃเตเดเต m1 เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเตเด d1.
เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดฟเดคเตเดฐเด เดฎเตเดจเตเดจเต เดธเดจเตเดฆเตเดถเดเตเดเดณเตเดเต เดเดฐเต เดเตเดเตเดเด เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต m1, m1_1, m1_2.
เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ mblk_t
เดเดฐเต เดชเตเดคเดฟเดฏ เดธเดจเตเดฆเตเดถเด mblk_t เดซเดเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเดคเต:
mblk_t *allocb(int size, int pri);
เด เดตเตพ เดเดฐเต เดชเตเดคเดฟเดฏ เดธเดจเตเดฆเตเดถเด เดเตผเดฎเตเดฎเดฏเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดเตเดเตเดจเตเดจเต mblk_t เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดฐเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดจเตเดชเตเดชเด เดตเดฒเตเดชเตเดชเด, เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดตเดพเดฆเด - pri เดฒเตเดฌเตเดฐเดฑเดฟเดฏเตเดเต เด เดชเดคเดฟเดชเตเดชเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒ. เดเดคเต เดชเตเดเตเดฏเดฎเดพเดฏเดฟ เดคเตเดเดฐเดฃเด. เดซเดเดเตโเดทเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเดฎเดฏเดคเตเดคเต, เดชเตเดคเดฟเดฏ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดเดเดจเดฏเตโเดเตเดเดพเดฏเดฟ เดฎเตเดฎเตเดฎเดฑเดฟ เด เดจเตเดตเดฆเดฟเดเตเดเตเดเดฏเตเด เดซเดเดเตโเดทเดจเต เดตเดฟเดณเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด mblk_init(), เดเดคเต เดเดเดจเดฏเตเดเต เดธเตเดทเตโเดเดฟเดเตเด เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต เดเดฒเตเดฒเดพ เดซเตเตฝเดกเตเดเดณเตเด เดชเตเดจเดเดธเดเตเดเดฎเดพเดเตเดเตเด, เดคเตเดเตผเดจเตเดจเต เดฎเตเดเดณเดฟเตฝ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดต เดเดชเดฏเตเดเดฟเดเตเดเต datab_alloc(), เดเดฐเต เดกเดพเดฑเตเดฑ เดฌเดซเตผ เดธเตเดทเตเดเดฟเดเตเดเตเด. เด เดคเดฟเดจเตเดถเตเดทเด เดเดเดจเดฏเดฟเดฒเต เดซเตเตฝเดกเตเดเตพ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเด:
mp->b_datap=datab;
mp->b_rptr=mp->b_wptr=datab->db_base;
mp->b_next=mp->b_prev=mp->b_cont=NULL;
เดเดเตเดเตเดชเตเดเตเดเดฟเตฝ เดจเดฎเตเดเตเดเต เดเดจเตเดทเตเดฏเดฒเตเดธเต เดเตเดฏเตเดค เดซเตเตฝเดกเตเดเดณเตเด เดเดฐเต เดถเตเดจเตเดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เดฌเดซเดฑเตเด เดเดณเตเดณ เดเดฐเต เดชเตเดคเดฟเดฏ เดธเดจเตเดฆเตเดถเด เดฒเดญเดฟเดเตเดเตเด. เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เด เดคเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดฌเดซเดฑเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเตเดฃเตเดเดคเตเดฃเตเดเต:
memcpy(msg->b_rptr, data, size);
เดเดตเดฟเดเต เดกเดพเดฑเตเดฑ เดกเดพเดฑเตเดฑ เดเดฑเดตเดฟเดเดคเตเดคเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเดฑเดพเดฃเต, เดเตเดเดพเดคเต เดตเดฒเตเดชเตเดชเด - เด
เดตเดฐเตเดเต เดตเดฒเดฟเดชเตเดชเด.
เดคเตเดเตผเดจเตเดจเต เดจเดฟเดเตเดเตพ เดชเตเดฏเดฟเดจเตเดฑเตผ เดฑเตเดฑเตเดฑเต เดชเตเดฏเดฟเดจเตเดฑเดฟเดฒเตเดเตเดเต เด
เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต, เด
เดเตเดเดจเต เด
เดคเต เดฌเดซเดฑเดฟเดฒเต เดซเตเดฐเต เดเดฐเดฟเดฏเดฏเตเดเต เดคเตเดเดเตเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดตเตเดฃเตเดเตเด เดเตเดฃเตเดเดฟเดเตเดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต:
msg->b_wptr = msg->b_wptr + size
เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดเดฐเต เดฌเดซเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดธเดจเตเดฆเตเดถเด เดธเตเดทเตเดเดฟเดเตเดเดฃเดฎเตเดเตเดเดฟเตฝ, เดชเดเตผเดคเตเดคเดพเดคเต, เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเด:
mblk_t *esballoc(uint8_t *buf, int size, int pri, void (*freefn)(void*));
เดซเดเดเตเดทเตป, เดธเดจเตเดฆเตเดถเดตเตเด เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดจเตเดฑเต เดเดเดจเดฏเตเด เดธเตเดทเตเดเดฟเดเตเด เดถเตเดทเด, เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต เดกเดพเดฑเตเดฑเดฏเดฟเดฒเตเดเตเดเต เด เดคเดฟเดจเตเดฑเต เดชเตเดฏเดฟเดจเตเดฑเดฑเตเดเตพ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเด. buf. เด. เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดซเดเดเตโเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดธเตเดทเตโเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดธเดเดญเดตเดฟเดเตเดเดคเตเดชเตเดฒเต, เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดจเตเดฑเต เดนเตเดกเตผ เดซเตเตฝเดกเตเดเตพเดเตเดเต เดถเตเดทเด เดกเดพเดฑเตเดฑ เดฌเดซเตผ เดธเตเดฅเดฟเดคเดฟเดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. datab_alloc(). เดซเดเดเตโเดทเดจเดฟเดฒเตเดเตเดเต เดเตเดฎเดพเดฑเดฟเดฏ เดกเดพเดฑเตเดฑเดฏเตเดณเตเดณ เดฌเดซเตผ เด เดคเต เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดเดคเตเดคเต เดคเดจเตเดจเต เดคเตเดเดฐเตเด, เดชเดเตเดทเต เดชเตเดฏเดฟเดจเตเดฑเดฑเตเดเดณเตเดเต เดธเดนเดพเดฏเดคเตเดคเตเดเต เด เดคเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดจเตเดฑเต เดชเตเดคเตเดคเดพเดฏเดฟ เดธเตเดทเตโเดเดฟเดเตเด เดนเตเดกเดฑเดฟเดฒเตเด เด เดคเดจเตเดธเดฐเดฟเดเตเดเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเด เด เดฑเตเดฑเดพเดเตเดเตเดเตเดฏเตเดฏเตเด.
เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเต mblk_t เดจเดฟเดฐเดตเดงเดฟ เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเตเดเตพ เดคเตเดเตผเดเตเดเดฏเดพเดฏเดฟ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด. เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต:
mblk_t * appendb(mblk_t *mp, const char *data, int size, bool_t pad);
mp - เดฎเดฑเตเดฑเตเดฐเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดเตเตผเดเตเดเตเดจเตเดจ เดเดฐเต เดธเดจเตเดฆเตเดถเด;
เดกเดพเดฑเตเดฑ - เดฌเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเตเดฏเดฟเดจเตเดฑเตผ, เด
เดคเดฟเดจเตเดฑเต เดเดฐเต เดชเดเตผเดชเตเดชเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเตเด;
เดตเดฒเตเดชเตเดชเด - เดกเดพเดฑเตเดฑ เดตเดฒเตเดชเตเดชเด;
เดชเดพเดกเต - เด
เดจเตเดตเดฆเดฟเดเตเด เดฎเตเดฎเตเดฎเดฑเดฟเดฏเตเดเต เดตเดฒเตเดชเตเดชเด 4-เดฌเตเดฑเตเดฑเต เด
เดคเดฟเตผเดคเตเดคเดฟเดฏเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดฃเตเด เดเดฐเต เดซเตเดฒเดพเดเต (เดชเตเดเตเดฏเด เดเดชเดฏเตเดเดฟเดเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเตเด เดชเดพเดกเดฟเดเดเต เดจเดเดคเตเดคเตเด).
เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดธเดจเตเดฆเตเดถ เดกเดพเดฑเตเดฑ เดฌเดซเดฑเดฟเตฝ เดฎเดคเดฟเดฏเดพเดฏ เดเดเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดชเตเดคเดฟเดฏ เดกเดพเดฑเตเดฑ เดเดคเดฟเดจเดเด เด เดตเดฟเดเตเดฏเตเดณเตเดณ เดกเดพเดฑเตเดฑเดฏเตเดเตเดเต เดชเดฟเดจเตเดจเดฟเตฝ เดเดเตเดเดฟเดเตเดเตเด. เดธเดจเตเดฆเตเดถ เดกเดพเดฑเตเดฑ เดฌเดซเดฑเดฟเตฝ เดถเตเดจเตเดฏเดฎเดพเดฏ เดเดเด เดเตเดฑเดตเดพเดฃเตเดเตเดเดฟเตฝ เดตเดฒเตเดชเตเดชเด, เดคเตเดเตผเดจเตเดจเต เดฎเดคเดฟเดฏเดพเดฏ เดฌเดซเตผ เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเตฝ เดเดฐเต เดชเตเดคเดฟเดฏ เดธเดจเตเดฆเตเดถเด เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดกเดพเดฑเตเดฑ เด เดคเดฟเดจเตเดฑเต เดฌเดซเดฑเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดคเตเดฐเต เดชเตเดคเดฟเดฏ เดธเดจเตเดฆเตเดถเดฎเดพเดฃเต, เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเต เดฏเดฅเดพเตผเดคเตเดฅ เดธเดจเตเดฆเตเดถเดตเตเดฎเดพเดฏเดฟ เดฒเดฟเดเตเดเต เดเตเดฏเตโเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต b_cont. เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดธเดจเตเดฆเตเดถเด เดเดฐเต เดเตเดฏเตเดชเตเดชเดฟเตพ เดเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต.
เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดฒเตเดเตเดเต เดฎเดฑเตเดฑเตเดฐเต เดฌเตเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เดเตเตผเดเตเดเดฃเดฎเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพ เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
void msgappend(mblk_t *mp, const char *data, int size, bool_t pad);
เด เดตเตพ เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเตฝ เด เดตเดธเดพเดจ เดธเดจเตเดฆเตเดถเด เดเดฃเตเดเตเดคเตเดคเตเด (เด เดตเดจเตเดฃเตเดเต b_cont เด เดธเดพเดงเตเดตเดพเดฏเดฟเดฐเดฟเดเตเดเตเด) เดเตเดเดพเดคเต เด เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเดพเดฏเดฟ เดซเดเดเตโเดทเดจเต เดตเดฟเดณเดฟเดเตเดเตเด appendb().
เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเต เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดฒเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดตเดฒเตเดชเตเดชเด เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเด:
int msgdsize(const mblk_t *mp);
เดเดคเต เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดฒเต เดเดฒเตเดฒเดพ เดธเดจเตเดฆเตเดถเดเตเดเดณเดฟเดฒเตเดเตเดฏเตเด เดฒเตเดชเตเดชเต เดเตเดฏเตเดฏเตเดเดฏเตเด เด เดธเดจเตเดฆเตเดถเดเตเดเดณเตเดเต เดกเดพเดฑเตเดฑ เดฌเดซเดฑเตเดเดณเดฟเดฒเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดเต เดคเตเด เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเด, เดกเดพเดฑเตเดฑเดฏเตเดเต เด เดณเดตเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเตเดคเดฟเดฏเดฟเตฝ เดเดฃเดเตเดเดพเดเตเดเตเดจเตเดจเต:
mp->b_wptr - mp->b_rptr
เดฐเดฃเตเดเต เดเตเดฏเตเดชเตเดชเดฟเดณเตเดเตพ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเตป, เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเด:
mblk_t *concatb(mblk_t *mp, mblk_t *newm);
เด เดตเตพ เดเตเดฏเตเดชเตเดชเดฟเตพ เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเตเดจเตเดจเต เดชเตเดคเดฟเดฏ เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดจเตเดฑเต เดตเดพเตฝ เดตเดฐเต mp เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดจเตเดฑเต เด เดตเดธเดพเดจ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดจเตเดจเต.
เดเดตเดถเตเดฏเดฎเตเดเตเดเดฟเตฝ, เดเดฐเตเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดเตเดฏเตเดชเตเดชเดฟเตพ เดเดฐเต เดธเดจเตเดฆเตเดถเดฎเดพเดเตเดเดฟ เดฎเดพเดฑเตเดฑเดพเด; เดเดคเต เดซเดเดเตเดทเตป เดตเดดเดฟเดฏเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต:
void msgpullup(mblk_t *mp,int len);
เดเดเตเดเดฟเตฝ เดตเดพเดฆเด เดฒเตเตป -1 เดเดฃเต, เด เดชเตเดชเตเตพ เด เดจเตเดตเดฆเดฟเดเตเด เดฌเดซเดฑเดฟเดจเตเดฑเต เดตเดฒเตเดชเตเดชเด เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต. เดเดเตเดเดฟเตฝ เดฒเตเตป เดเดฐเต เดชเตเดธเดฟเดฑเตเดฑเตเดตเต เดธเดเดเตเดฏเดฏเดพเดฃเต, เด เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดฐเต เดฌเดซเตผ เดธเตเดทเตโเดเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดชเตเดชเดฟเตพ เดธเดจเตเดฆเตเดถ เดกเดพเดฑเตเดฑ เด เดคเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เดฌเดซเตผ เดคเตเตผเดจเตเดจเดพเตฝ, เดชเดเตผเดคเตเดคเตฝ เด เดตเดฟเดเต เดจเดฟเตผเดคเตเดคเตเด. Tuple-เดจเตเดฑเต เดเดฆเตเดฏ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเต เดชเดเตผเดคเตเดคเดฟเดฏ เดกเดพเดฑเตเดฑเดฏเตโเดเตเดเตเดชเตเดชเด เดเดฐเต เดชเตเดคเดฟเดฏ เดตเดฒเตเดชเตเดช เดฌเดซเตผ เดฒเดญเดฟเดเตเดเตเด. เดถเตเดทเดฟเดเตเดเตเดจเตเดจ เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเตเด เดฎเตเดฎเตเดฎเดฑเดฟ เดนเตเดชเตเดชเดฟเดฒเตเดเตเดเต เดฎเดเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เดเดฐเต เดเดเดจ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดฎเตเดชเตเตพ mblk_t เดตเดฟเดณเดฟเดเตเดเตเดฎเตเดชเตเตพ เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดจเตเดฑเต เดฑเดซเดฑเตปเดธเต เดเดฃเตเดฃเด เดเดฃเดเตเดเดฟเดฒเตเดเตเดเตเดเตเดจเตเดจเต freeb() เดเดคเต เดชเตเดเตเดฏเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เดกเดพเดฑเตเดฑ เดฌเดซเตผ เดเดฆเดพเดนเดฐเดฃเดคเตเดคเตเดเตเดชเตเดชเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดชเตเดชเตเดเตเด mblk_t, เด เดคเต เดเตเดฃเตเดเดฟเดเตเดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดชเตเดคเดฟเดฏ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดซเตเตฝเดกเตเดเตพ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต:
void mblk_init(mblk_t *mp);
เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเต เดฎเดฑเตเดฑเตเดฐเต เดกเดพเดฑเตเดฑ เดเตเตผเดเตเดเตเดจเตเดจเต:
mblk_t * appendb(mblk_t *mp, const char *data, size_t size, bool_t pad);
เดชเตเดคเดฟเดฏ เดกเดพเดฑเตเดฑ เดธเดจเตเดฆเตเดถ เดกเดพเดฑเตเดฑ เดฌเดซเดฑเดฟเดจเตเดฑเต เดถเตเดจเตเดฏเดฎเดพเดฏ เดเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดฏเตเดเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดฐเต เดฌเดซเตผ เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเดคเตเดฏเตเดเด เดธเตเดทเตโเดเดฟเดเตเด เดธเดจเตเดฆเตเดถเด เดธเดจเตเดฆเตเดถเดตเตเดฎเดพเดฏเดฟ เด เดฑเตเดฑเดพเดเตเดเตเดเตเดฏเตเดฏเตเดจเตเดจเต (เดเตเตผเดคเตเดค เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ เดเดฆเตเดฏ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเตฝ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต) เดเตเดเดพเดคเต เดธเดจเตเดฆเตเดถเด เดเดฐเต เดเตเดฏเตเดชเตเดชเดฟเตพ เดเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต.
เดเดฐเต เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดทเดฃเด เดกเดพเดฑเตเดฑ เดเตเตผเดเตเดเตเดจเตเดจเต:
void msgappend(mblk_t *mp, const char *data, size_t size, bool_t pad);
เดซเดเดเตโเดทเตป เดเดฐเต เดฒเตเดชเตเดชเดฟเตฝ appendb() เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต.
เดฐเดฃเตเดเต เดเตเดฏเตเดชเตเดชเดฟเดณเตเดเตพ เดเดจเตเดจเดพเดฏเดฟ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเตเด:
mblk_t *concatb(mblk_t *mp, mblk_t *newm);
เดธเดจเตเดฆเตเดถเด เดชเตเดคเดฟเดฏ เดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเด mp.
เดเดฐเตเดฑเตเดฑ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดชเดเตผเดชเตเดชเต เดเดฃเตเดเดพเดเตเดเตเดจเตเดจเต:
mblk_t *copyb(const mblk_t *mp);
เดเดฒเตเดฒเดพ เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเตเดเดณเตเดฎเตเดณเตเดณ เดเดฐเต เดเตเดฏเตเดชเตเดชเดฟเตพ เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดชเดเตผเดคเตเดคเตเด:
mblk_t *copymsg(const mblk_t *mp);
เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดจเตเดฑเต เดเดเดเดเตเดเตพ เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดชเดเตผเดคเตเดคเตเดจเตเดจเต copyb().
เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเดเตผเดชเตเดชเต เดธเตเดทเตเดเดฟเดเตเดเตเด mblk_t. เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ, เดชเดเตเดทเต เด เดคเดฟเดจเตเดฑเต เดฑเดซเดฑเตปเดธเต เดเตเดฃเตเดเตผ เดตเตผเดฆเตเดงเดฟเดเตเดเต db_ref:
mblk_t *dupb(mblk_t *mp);
เดเดฐเต เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดจเตเดฑเต เดญเดพเดฐเด เดเตเดฑเดเตเด เดชเดเตผเดชเตเดชเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเต. เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเตเดเตพ เดชเดเตผเดคเตเดคเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ, เด เดตเดฏเตเดเต เดฑเดซเดฑเตปเดธเต เดเตเดฃเตเดเดฑเตเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเต db_ref:
mblk_t *dupmsg(mblk_t* m);
เดเดฐเต เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดจเตเดฑเต เดเดฒเตเดฒเดพ เดธเดจเตเดฆเตเดถเดเตเดเดณเตเด เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเตฝ เดเดเตเดเดฟเดเตเดเตเดจเตเดจเต:
void msgpullup(mblk_t *mp,size_t len);
เดตเดพเดฆเด เดเดเตเดเดฟเตฝ เดฒเตเตป -1 เดเดฃเต, เด เดชเตเดชเตเตพ เด เดจเตเดตเดฆเดฟเดเตเด เดฌเดซเดฑเดฟเดจเตเดฑเต เดตเดฒเตเดชเตเดชเด เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต.
เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต, เดเตเดฏเตเดชเตเดชเดฟเตพ:
void freemsg(mblk_t *mp);
เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดจเตเดฑเต เดฑเดซเดฑเตปเดธเต เดเดฃเตเดฃเด เดเดจเตเดจเดพเดฏเดฟ เดเตเดฑเดเตเดเต. เดเดคเต เดชเตเดเตเดฏเดคเตเดคเดฟเตฝ เดเดคเตเดคเดฟเดฏเดพเตฝ, เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดชเตเดชเตเดเตเด.
เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเต เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดฒเต เดเดณเตเดณ เดฎเตเดคเตเดคเด เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดฃเดเตเดเตเดเตเดเตเดเตฝ.
size_t msgdsize(const mblk_t *mp);
เดเตเดฏเตเดตเดฟเดจเตเดฑเต เดตเดพเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดธเดจเตเดฆเตเดถเด เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจเต:
mblk_t *ms_queue_peek_last (q);
เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดค เดซเตเตฝเดกเตเดเดณเตเดเต เดเดณเตเดณเดเดเตเดเดเตเดเตพ เดฎเดฑเตเดฑเตเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเตเดจเตเดจเต (เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เด เดซเตเตฝเดกเตเดเดณเดฟเตฝ เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเตผ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดซเตเดฒเดพเดเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต):
mblk_meta_copy(const mblk_t *source, mblk *dest);
เดเตเดฏเต เดเตเดฏเต_เดเดฟ
เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเดฑเดฟเดฒเต เดธเดจเตเดฆเตเดถ เดเตเดฏเต เดเดฐเต เดธเตผเดเตเดเตเดฒเตผ เดเดฐเดเตเดเดฟ เดฒเดฟเดเตเดเตเดกเต เดฒเดฟเดธเตเดฑเตเดฑเดพเดฏเดฟ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต. เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดฒเดฎเตเดจเตเดฑเดฟเดฒเตเด เดธเดฟเดเตเดจเตฝ เดธเดพเดฎเตเดชเดฟเดณเตเดเดณเตเดณเตเดณ เดเดฐเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเตเดฏเดฟเดจเตเดฑเดฑเตเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดฎเดพเดฑเตเดจเตเดจเตเดณเตเดณเต, เด
เดคเตเดธเดฎเดฏเด เดกเดพเดฑเตเดฑ เดคเดจเตเดจเต เดเดฒเดจเดฐเดนเดฟเดคเดฎเดพเดฏเดฟ เดคเตเดเดฐเตเดจเตเดจเต. เด. เด
เดตเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดฒเดฟเดเตเดเตเดเตพ เดฎเดพเดคเตเดฐเด เดจเตเดเตเดเดฟ.
เดเตเดฏเต เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจ เดเดเดจ เดเตเดฏเต_เดเดฟ, เดคเดพเดดเต เดเดพเดฃเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
typedef struct _queue
{
mblk_t _q_stopper; /* "ะฅะพะปะพััะพะน" ัะปะตะผะตะฝั ะพัะตัะตะดะธ, ะฝะต ัะบะฐะทัะฒะฐะตั ะฝะฐ ะดะฐะฝะฝัะต, ะธัะฟะพะปัะทัะตััั ัะพะปัะบะพ ะดะปั ัะฟัะฐะฒะปะตะฝะธั ะพัะตัะตะดัั. ะัะธ ะธะฝะธัะธะฐะปะธะทะฐัะธะธ ะพัะตัะตะดะธ (qinit()) ะตะณะพ ัะบะฐะทะฐัะตะปะธ ะฝะฐัััะฐะธะฒะฐัััั ัะฐะบ, ััะพะฑั ะพะฝะธ ัะบะฐะทัะฒะฐะปะธ ะฝะฐ ะฝะตะณะพ ัะฐะผะพะณะพ. */
int q_mcount; // ะะพะปะธัะตััะฒะพ ัะปะตะผะตะฝัะพะฒ ะฒ ะพัะตัะตะดะธ.
} queue_t;
เดเดเดจเดฏเดฟเตฝ เดเดฐเต เดซเตเตฝเดกเต เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต - เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ _q_เดธเตเดฑเตเดฑเตเดชเตเดชเตผ *mblk_t เดเดจเตเดจเต เดเตเดชเตเดชเต เดเตเดฏเตเดฏเตเด, เด
เดคเต เดเตเดฏเตเดตเดฟเดฒเต เดเดฆเตเดฏ เดเดเดเดคเตเดคเดฟเดฒเตเดเตเดเต (เดธเดจเตเดฆเตเดถเด) เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต. เดเดเดจเดฏเตเดเต เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดซเตเตฝเดกเต เดเตเดฏเตเดตเดฟเดฒเต เดธเดจเตเดฆเตเดถเดเตเดเดณเตเดเต เดเตเดฃเตเดเดฑเดพเดฃเต.
m1, m4, m1, m2 เดเดจเตเดจเต 3 เดธเดจเตเดฆเตเดถเดเตเดเตพ เด
เดเดเตเดเดฟเดฏ q4 เดเดจเตเดจเต เดชเตเดฐเตเดณเตเดณ เดเดฐเต เดเตเดฏเต เดคเดพเดดเตเดฏเตเดณเตเดณ เดเดฟเดคเตเดฐเด เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต.
m1,m4,m1,m2 เดเดจเตเดจเต 3 เดธเดจเตเดฆเตเดถเดเตเดเตพ เด
เดเดเตเดเดฟเดฏ q4 เดเดจเตเดจ เดชเตเดฐเดฟเดฒเตเดณเตเดณ เดเดฐเต เดเตเดฏเต เดคเดพเดดเตเดฏเตเดณเตเดณ เดเดฟเดคเตเดฐเด เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต. m2_2, m1_2 เดเดจเตเดจเต เดฐเดฃเตเดเต เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเตเดเดฟ เดเตพเดเตเดเตเดณเตเดณเตเดจเตเดจ เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดจเตเดฑเต เดคเดฒเดฏเดพเดฃเต เดธเดจเตเดฆเตเดถเด m2.
เดเตเดฏเตเดเตพ queue_t เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
เดเตเดฏเต เดเดฐเดเดญเดฟเดเตเดเตฝ:
void qinit(queue_t *q);
เดซเตเตฝเดกเต _q_เดธเตเดฑเตเดฑเตเดชเตเดชเตผ (เดเดจเดฟ เดฎเตเดคเตฝ เดเดเตเดเตพ เด เดคเดฟเดจเต "เดธเตเดฑเตเดฑเตเดชเตเดชเตผ" เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเตเด) เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต mblk_init(), เด เดคเดฟเดจเตเดฑเต เดฎเตเดฎเตเดชเดคเตเดคเต เดฎเตเดฒเดเดตเตเด เด เดเตเดคเตเดค เดฎเตเดฒเด เดชเตเดฏเดฟเดจเตเดฑเดฑเตเด เดคเดจเตเดจเดฟเดฒเตเดเตเดเต เดคเดจเตเดจเต เดชเตเดฏเดฟเดจเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเตเดฏเต เดเดฒเดฎเตเดจเตเดฑเต เดเตเดฃเตเดเตผ เดชเตเดเตเดฏเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดจเดเดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดชเตเดคเดฟเดฏ เดเดเดเด เดเตเตผเดเตเดเตเดจเตเดจเต (เดธเดจเตเดฆเตเดถเดเตเดเตพ):
void putq(queue_t *q, mblk_t *m);
เดชเตเดคเดฟเดฏ เดเดเดเด m เดฒเดฟเดธเตโเดฑเตเดฑเดฟเดจเตเดฑเต เด เดตเดธเดพเดจเด เดเตเตผเดคเตเดคเต, เดเดฒเดฎเตเดจเตเดฑเต เดชเตเดฏเดฟเดจเตเดฑเดฑเตเดเตพ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ เดธเตเดฑเตเดฑเตเดชเตเดชเตผ เด เดคเดฟเดจเตเดณเตเดณ เด เดเตเดคเตเดค เดเดเดเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต, เด เดคเต เดธเตเดฑเตเดฑเตเดชเตเดชเดฑเดฟเดจเตเดฑเต เดฎเตเตป เดเดเดเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต. เดเตเดฏเต เดเดฒเดฎเตเดจเตเดฑเต เดเตเดฃเตเดเตผ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเต.
เดเตเดฏเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเดเดเด เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจเต:
mblk_t * getq(queue_t *q);
เดธเตเดฑเตเดฑเตเดชเตเดชเดฑเดฟเดจเต เดถเตเดทเด เดตเดฐเตเดจเตเดจ เดธเดจเตเดฆเตเดถเด เดตเตเดฃเตเดเตเดเตเดเตเดเตเดเดฏเตเด เดเดฒเดฎเตเดจเตเดฑเต เดเตเดฃเตเดเตผ เดเตเดฑเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดธเตเดฑเตเดฑเตเดชเตเดชเตผ เดเดดเดฟเดเตเดฏเตเดณเตเดณ เดเดเดเดเตเดเดณเตเดจเตเดจเตเด เดเตเดฏเตเดตเดฟเตฝ เดเดฒเตเดฒเตเดเตเดเดฟเตฝ, 0 เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเด.
เดเดฐเต เดเตเดฏเตเดตเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเตเตผเดเตเดเตเดจเตเดจเต:
void insq(queue_t *q, mblk_t *emp, mblk_t *mp);
เดฎเตเดฒเดเด mp เดฎเตเดฒเดเดคเตเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดเตเตผเดคเตเดคเต เดเดเดชเต. เดเดเตเดเดฟเตฝ เดเดเดชเต=0, เดคเตเดเตผเดจเตเดจเต เดธเดจเตเดฆเตเดถเด เดเตเดฏเตเดตเดฟเดจเตเดฑเต เดตเดพเดฒเดฟเตฝ เดเตเตผเดเตเดเตเดจเตเดจเต.
เดเตเดฏเตเดตเดฟเดจเตเดฑเต เดคเดฒเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดธเดจเตเดฆเตเดถเด เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจเต:
void remq(queue_t *q, mblk_t *mp);
เดเดฒเดฎเตเดจเตเดฑเต เดเตเดฃเตเดเตผ เดเตเดฑเดเตเดเต.
เดเตเดฏเตเดตเดฟเดฒเต เดเดฆเตเดฏ เดเดเดเดคเตเดคเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเต:
mblk_t * peekq(queue_t *q);
เดเดเดเดเตเดเตพ เดธเตเดตเดฏเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดฎเตเดชเตเตพ เดเตเดฏเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฒเตเดฒเดพ เดเดเดเดเตเดเดณเตเด เดจเตเดเตเดเดเดเตเดฏเตเดฏเตเดจเตเดจเต:
void flushq(queue_t *q, int how);
เดตเดพเดฆเด เดเดเตเดเดจเต เดเดชเดฏเตเดพเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒ. เดเตเดฏเต เดเดฒเดฎเตเดจเตเดฑเต เดเตเดฃเตเดเตผ เดชเตเดเตเดฏเดฎเดพเดฏเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดฏเตเดตเดฟเดจเตเดฑเต เด เดตเดธเดพเดจ เดเดเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดพเดเตเดฐเต:
mblk_t * qlast(queue_t *q);
เดธเดจเตเดฆเตเดถ เดเตเดฏเตเดเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดจเดฟเดเตเดเตพ เดตเดฟเดณเดฟเดเตเดเตเดฎเตเดชเตเตพ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด ms_queue_put(q, m) เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดจเตพ เดชเตเดฏเดฟเดจเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเต, เดซเดเดเตเดทเตป เดฒเตเดชเตเดชเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเตเดเตเดฐเดพเด เดฎเดฐเดตเดฟเดชเตเดชเดฟเดเตเดเตเด. เดธเดฎเดพเดจเดฎเดพเดฏเดฟ เดชเตเดฐเตเดฎเดพเดฑเตเดจเตเดจเต ms_queue_next(q, m).
เดซเดฟเตฝเดเตเดเดฑเตเดเตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต
เดฎเตเดเดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเด เดเตเดฏเต เดเดฐเต เดซเดฟเตฝเดเตเดเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดฑเตเดฑเตเดจเตเดจเดฟเดฒเตเดเตเดเต เดเดจเตเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดฐเดตเดงเดฟ เดซเดฟเตฝเดเตเดเดฑเตเดเดณเดฟเดฒเตเดเตเดเต เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเตเดฎเดพเดฑเดพเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดซเดฟเตฝเดเตเดเดฑเตเดเดณเตเด เด เดตเดฏเตเดเต เดเดฃเดเตเดทเดจเตเดเดณเตเด เดเดฐเต เดกเดฏเดฑเดเตเดเต เดเตเดฐเดพเดซเต เดฐเตเดชเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต. เดซเดฟเตฝเดเตเดเดฑเดฟเดจเตเดฑเต เดเตปเดชเตเดเตเดเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดเตเดเตเดชเตเดเตเดเต เดชเตเดคเตเดตเดพเดฏ เดตเดพเดเตเดเต "เดชเดฟเตป" เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเด. เดซเดฟเตฝเดเตเดเดฑเตเดเตพ เดชเดฐเดธเตเดชเดฐเด เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดฐเดฎเด เดตเดฟเดตเดฐเดฟเดเตเดเดพเตป, เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเตผ เดเดฐเต "เดธเดฟเดเตเดจเตฝ เดชเตเดฏเดฟเดจเตเดฑเต" เดเดจเตเดจ เดเดถเดฏเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดธเดฟเดเตเดจเตฝ เดชเตเดฏเดฟเดจเตเดฑเต เดเดเดจเดฏเดพเดฃเต _MSCPเดชเตเดฏเดฟเดจเตเดฑเต, เด เดคเดฟเตฝ เดซเดฟเตฝเดเตเดเดฑเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเดฑเตเด เด เดคเดฟเดจเตเดฑเต เดชเดฟเดจเตเดจเตเดเดณเดฟเตฝ เดเดจเตเดจเดฟเดจเตเดฑเต เดเดฃเตเดฃเดตเตเด เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต; เด เดคเดจเตเดธเดฐเดฟเดเตเดเต, เดซเดฟเตฝเดเตเดเดฑเดฟเดจเตเดฑเต เดเตปเดชเตเดเตเดเตเดเดณเดฟเดฒเต เดเดเตเดเตเดชเตเดเตเดเตเดเดณเดฟเดฒเต เดเดจเตเดจเดฟเดจเตเดฑเต เดเดฃเดเตเดทเตป เดเดคเต เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดกเดพเดฑเตเดฑ เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดเตเดฐเดพเดซเดฟเดจเตเดฑเต เดธเดฟเดเตเดจเตฝ เดชเตเดฏเดฟเดจเตเดฑเต
typedef struct _MSCPoint{
struct _MSFilter *filter; // ะฃะบะฐะทะฐัะตะปั ะฝะฐ ัะธะปััั ะผะตะดะธะฐัััะธะผะตัะฐ.
int pin; // ะะพะผะตั ะพะดะฝะพะณะพ ะธะท ะฒั
ะพะดะพะฒ ะธะปะธ ะฒัั
ะพะดะพะฒ ัะธะปัััะฐ, ั.ะต. ะฟะธะฝ.
} MSCPoint;
เดซเดฟเตฝเดเตเดเตผ เดชเดฟเดจเตเดจเตเดเตพ เดชเตเดเตเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดธเดจเตเดฆเตเดถ เดเตเดฏเต เดตเดดเดฟ เดฐเดฃเตเดเต เดชเดฟเดจเตเดจเตเดเดณเตเดเต เดเดฃเดเตเดทเตป เดเดเดจเดฏเดพเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต _เดเดเดเดธเตเดเตเดฏเต, เด เดคเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถ เดเตเดฏเตเดตเตเด เด เดคเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจ เดฐเดฃเตเดเต เดธเดฟเดเตเดจเตฝ เดชเตเดฏเดฟเดจเตเดฑเตเดเดณเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเตเดฏเดฟเดจเตเดฑเดฑเตเดเดณเตเด เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
typedef struct _MSQueue
{
queue_t q;
MSCPoint prev;
MSCPoint next;
}MSQueue;
เด เดเดเดจเดฏเต เดเดเตเดเตพ เดธเดฟเดเตเดจเตฝ เดฒเดฟเดเตเดเต เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเตเด. เดเดฐเต เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเตผ เดซเดฟเตฝเดเตเดเดฑเดฟเดฒเตเด เดเตปเดชเตเดเตเดเต เดฒเดฟเดเตเดเตเดเดณเตเดเต เดเดฐเต เดชเดเตเดเดฟเดเดฏเตเด เดเดเตเดเตเดชเตเดเตเดเต เดฒเดฟเดเตเดเตเดเดณเตเดเต เดเดฐเต เดชเดเตเดเดฟเดเดฏเตเด เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต (MSQueue). เดเดฐเต เดซเดฟเตฝเดเตเดเตผ เดธเตเดทเตโเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดชเดเตเดเดฟเดเดเดณเตเดเต เดตเดฒเตเดชเตเดชเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต; เดเดฏเดฑเตเดฑเตเดฎเดคเดฟ เดเตเดฏเตโเดค เดเดฐเต เดคเดฐเด เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เดเดคเต เดเดคเดฟเดจเดเด เดเตเดฏเตเดคเดฟเดเตเดเตเดฃเตเดเต MSFilterDesc, เดเดเตเดเตพ เดธเตเดตเดจเตเดคเด เดซเดฟเตฝเดเตเดเตผ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเดชเตเดชเตเตพ. เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเดฑเดฟเดฒเต เดเดคเต เดซเดฟเตฝเดเตเดเดฑเตเด เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดเดจ เดเตเดตเดเตเดฏเตเดฃเตเดเต, MSFilter:
struct _MSFilter{
MSFilterDesc *desc; /* ะฃะบะฐะทะฐัะตะปั ะฝะฐ ะดะตัะบัะธะฟัะพั ัะธะปัััะฐ. */
/* ะะฐัะธัะตะฝะฝัะต ะฐััะธะฑััั, ะธั
ะฝะตะปัะทั ัะดะฒะธะณะฐัั ะธะปะธ ัะฑะธัะฐัั ะธะฝะฐัะต ะฑัะดะตั ะฝะฐัััะตะฝะฐ ัะฐะฑะพัะฐ ั ะฟะปะฐะณะธะฝะฐะผะธ. */
ms_mutex_t lock; /* ะกะตะผะฐัะพั. */
MSQueue **inputs; /* ะขะฐะฑะปะธัะฐ ะฒั
ะพะดะฝัั
ะปะธะฝะบะพะฒ. */
MSQueue **outputs; /* ะขะฐะฑะปะธัะฐ ะฒัั
ะพะดะฝัั
ะปะธะฝะบะพะฒ. */
struct _MSFactory *factory; /* ะฃะบะฐะทะฐัะตะปั ะฝะฐ ัะฐะฑัะธะบั, ะบะพัะพัะฐั ัะพะทะดะฐะปะฐ ะดะฐะฝะฝัะน ัะบะทะตะผะฟะปัั ัะธะปัััะฐ. */
void *padding; /* ะะต ะธัะฟะพะปัะทัะตััั, ะฑัะดะตั ะทะฐะดะตะนััะฒะพะฒะฐะฝ ะตัะปะธ ะดะพะฑะฐะฒัััั ะทะฐัะธัะตะฝะฝัะต ะฟะพะปั. */
void *data; /* ะฃะบะฐะทะฐัะตะปั ะฝะฐ ะฟัะพะธะทะฒะพะปัะฝัั ััััะบัััั ะดะปั ั
ัะฐะฝะตะฝะธั ะดะฐะฝะฝัั
ะฒะฝัััะตะฝะฝะตะณะพ ัะพััะพัะฝะธั ัะธะปัััะฐ ะธ ะฟัะพะผะตะถััะพัะฝัั
ะฒััะธัะปะตะฝะธะน. */
struct _MSTicker *ticker; /* ะฃะบะฐะทะฐัะตะปั ะฝะฐ ะพะฑัะตะบั ัะธะบะตัะฐ, ะบะพัะพััะน ะฝะต ะดะพะปะถะตะฝ ะฑััั ะฝัะปะตะฒัะผ ะบะพะณะดะฐ ะฒัะทัะฒะฐะตััั ััะฝะบัะธั process(). */
/*private attributes, they can be moved and changed at any time*/
MSList *notify_callbacks; /* ะกะฟะธัะพะบ ะพะฑัะฐัะฝัั
ะฒัะทะพะฒะพะฒ, ะธัะฟะพะปัะทัะตะผัั
ะดะปั ะพะฑัะฐะฑะพัะบะธ ัะพะฑััะธะน ัะธะปัััะฐ. */
uint32_t last_tick; /* ะะพะผะตั ะฟะพัะปะตะดะฝะตะณะพ ัะฐะบัะฐ, ะบะพะณะดะฐ ะฒัะฟะพะปะฝัะปัั ะฒัะทะพะฒ process(). */
MSFilterStats *stats; /* ะกัะฐัะธััะธะบะฐ ัะฐะฑะพัั ัะธะปัััะฐ.*/
int postponed_task; /*ะะพะปะธัะตััะฒะพ ะพัะปะพะถะตะฝะฝัั
ะทะฐะดะฐั. ะะตะบะพัะพััะต ัะธะปัััั ะผะพะณัั ะพัะบะปะฐะดัะฒะฐัั ะพะฑัะฐะฑะพัะบั ะดะฐะฝะฝัั
(ะฒัะทะพะฒ process()) ะฝะฐ ะฝะตัะบะพะปัะบะพ ัะฐะบัะพะฒ.*/
bool_t seen; /* ะคะปะฐะณ, ะบะพัะพััะน ะธัะฟะพะปัะทัะตั ัะธะบะตั, ััะพะฑั ะฟะพะผะตัะฐัั ััะพ ััะพั ัะบะทะตะผะฟะปัั ัะธะปัััะฐ ะพะฝ ัะถะต ะพะฑัะปัะถะธะป ะฝะฐ ะดะฐะฝะฝะพะผ ัะฐะบัะต.*/
};
typedef struct _MSFilter MSFilter;
เดเดเตเดเดณเตเดเต เดชเตเดฒเดพเดจเดฟเดจเต เด เดจเตเดธเตเดคเดฎเดพเดฏเดฟ เดธเดฟ เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดฒเต เดซเดฟเตฝเดเตเดเดฑเตเดเตพ เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตโเดค เดถเตเดทเด (เดเดจเตเดจเดพเตฝ เดเดฟเดเตเดเตผ เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตโเดคเดฟเดเตเดเดฟเดฒเตเดฒ), เด เดคเตเดตเดดเดฟ เดเดเตเดเตพ เดเดฐเต เดกเดฏเดฑเดเตโเดฑเตเดฑเต เดเตเดฐเดพเดซเต เดธเตเดทเตโเดเดฟเดเตเดเต, เด เดคเดฟเดจเตเดฑเต เดจเตเดกเตเดเตพ เดเดเดจเดฏเตเดเต เดเดฆเดพเดนเดฐเดฃเดเตเดเดณเดพเดฃเต MSFilter, เดเดชเตเดชเด เด เดฐเดฟเดเตเดเตพ เดฒเดฟเดเตเดเตเดเดณเตเดเต เดเดฆเดพเดนเดฐเดฃเดเตเดเดณเดพเดฃเต MSQueue.
เดเดฟเดเตเดเดฑเดฟเดจเตเดฑเต เดคเดฟเดฐเดถเตเดถเตเดฒเดฏเตเดเตเดเต เดชเดฟเดจเตเดจเดฟเดฒเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
เดเดฟเดเตเดเตผ เดเดฟเดเตเดเตเดเดณเตเดเต เดเดฑเดตเดฟเดเดคเตเดคเดฟเดจเตเดณเตเดณ เดซเดฟเตฝเดเตเดเดฑเดพเดฃเตเดจเตเดจเต เดเดพเตป เดจเดฟเดเตเดเดณเตเดเต เดชเดฑเดเตเดเดชเตเดชเตเตพ, เด เดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดฎเตเดดเตเดตเตป เดธเดคเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ. เดเตเดฒเตเดเตเดเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดจเดเดคเตเดคเตเดจเตเดจ เดเดฐเต เดตเดธเตเดคเตเดตเดพเดฃเต เดเดฟเดเตเดเตผ เดชเตเดฐเดเตเดฐเดฟเดฏ() เด เดคเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดธเตผเดเตเดฏเตเดเตเดเดฟเดจเตเดฑเต (เดเตเดฐเดพเดซเต) เดเดฒเตเดฒเดพ เดซเดฟเตฝเดเตเดเดฑเตเดเดณเตเด. เดเดฐเต เดธเดฟ เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดฒเต เดเตเดฐเดพเดซเต เดซเดฟเตฝเดเตเดเดฑเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดฟเดเตเดเดฑเดฟเดจเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเตพ, เด เดคเต เดเดซเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดตเดฐเต เดเดฟเดเตเดเตผ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดฐเดพเดซเต เดเดเตเดเตพ เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต. เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตโเดคเดคเดฟเดจเตเดถเตเดทเด, เดเดฟเดเตเดเตผ เด เดคเดฟเดจเตเดฑเต เดชเดฐเดฟเดเดฐเดฃเดคเตเดคเดฟเตฝ เดเตฝเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดฐเดพเดซเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเตเดจเตเดจเต, เด เดคเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดจเตเดจ เดซเดฟเตฝเดเตเดเดฑเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดเดชเตเตฝ เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดฐเต เดซเดฟเตฝเดเตเดเตผ เดฐเดฃเตเดเตเดคเดตเดฃ "เดเดฃเตเดฃเด" เดเตเดฏเตเดฏเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป, เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดซเดฟเตฝเดเตเดเดฑเตเดเดณเดฟเตฝ เดเดฐเต เดเตเดเตเดเตเดฌเตเดเตเดธเต เดธเตเดฅเดพเดชเดฟเดเตเดเต เด เดคเต เด เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต. seen. เดเดฐเต เดซเดฟเตฝเดเตเดเดฑเตเด เดเดณเตเดณ เดฒเดฟเดเตเดเต เดเตเดฌเดฟเดณเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดคเดฟเดฐเดฏเตฝ เดจเดเดคเตเดคเตเดจเตเดจเดคเต.
เดเตเดฐเดพเดซเดฟเดจเตเดฑเต เดเดฎเตเด เดเตเตผ เดธเดฎเดฏเดคเตเดคเต, เดซเดฟเตฝเดเตเดเดฑเตเดเตพเดเตเดเดฟเดเดฏเดฟเตฝ เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเตเดเดณเตเดเต เดเดฑเดตเดฟเดเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดฐเตเดฃเตเดฃเดฎเตเดเตเดเดฟเดฒเตเด เดเดฃเตเดเต เดเดจเตเดจเต เดเดฟเดเตเดเตผ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเตเดฎเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเตเดฐเดพเดซเต เดคเตเดฑเตเดฑเดพเดฏเดฟ เดเดฃเดเตเดเดพเดเตเดเตเดเดฏเตเด เดเดฟเดเตเดเตผ เดคเดเดฐเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เดเตเดฐเดพเดซเต "เดถเดฐเดฟเดฏเดพเดฃเต" เดเดจเตเดจเต เดฎเดพเดฑเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดเดฐเต เดซเดฟเตฝเดเตเดเดฑเดฟเดจเตเด, เดซเดเดเตเดทเตป เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต เดชเตเดฐเตเดชเตเดฐเตเดธเดธเต(). เด เดเตเดคเตเดค เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดธเตเดเตเดเดฟเดณเดฟเดจเตเดณเตเดณ เดจเดฟเดฎเดฟเดทเด เดตเดจเตเดจเดพเดฒเตเดเตป (เดเดฐเต 10 เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเดฟเดฒเตเด เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ), เดเดฟเดเตเดเตผ เดซเดเดเตโเดทเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต เดชเตเดฐเดเตเดฐเดฟเดฏ() เดฎเตเดฎเตเดชเต เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดเดฒเตเดฒเดพ เดเดฑเดตเดฟเด เดซเดฟเตฝเดเตเดเดฑเตเดเตพเดเตเดเตเด เดคเตเดเตผเดจเตเดจเต เดฒเดฟเดธเตเดฑเตเดฑเดฟเดฒเต เดถเตเดทเดฟเดเตเดเตเดจเตเดจ เดซเดฟเตฝเดเตเดเดฑเตเดเตพเดเตเดเตเด. เดซเดฟเตฝเดเตเดเดฑเดฟเดจเต เดเตปเดชเตเดเตเดเต เดฒเดฟเดเตเดเตเดเตพ เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดซเดเดเตเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด เดชเตเดฐเดเตเดฐเดฟเดฏ() เดเตปเดชเตเดเตเดเต เดฒเดฟเดเตเดเต เดเตเดฏเตเดเตพ เดถเตเดจเตเดฏเดฎเดพเดเตเดจเตเดจเดคเตเดตเดฐเต เดเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. เดเดคเดฟเดจเตเดถเตเดทเด, เดเดคเต เดฒเดฟเดธเตเดฑเตเดฑเดฟเดฒเต เด เดเตเดคเตเดค เดซเดฟเตฝเดเตเดเดฑเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเดเดฏเตเด เดเตปเดชเตเดเตเดเต เดฒเดฟเดเตเดเตเดเตพ เดธเดจเตเดฆเตเดถเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเตเดเตเดคเดฎเดพเดเตเดจเตเดจเดคเตเดตเดฐเต เด เดคเต "เดธเตเดเตเดฐเตเตพ" เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดฒเดฟเดธเตเดฑเตเดฑเต เด เดตเดธเดพเดจเดฟเดเตเดเตเดจเตเดจเดคเต เดตเดฐเต เดเดฟเดเตเดเตผ เดซเดฟเตฝเดเตเดเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดซเดฟเตฝเดเตเดเดฑเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเดจเตเดจเต. เดเดคเต เดธเตเดเตเดเดฟเดณเดฟเดจเตเดฑเต เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเตเดจเตเดจเต.
เดเดชเตเดชเตเตพ เดเดเตเดเตพ เดเตเดฏเตเดชเตเดชเดฟเดฒเดฟเดฒเตเดเตเดเต เดฎเดเดเตเดเตเดเดฏเตเด เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเดฑเดฟเดฒเตเดเตเดเต เดเดจเตเดคเตเดเตเดฃเตเดเดพเดฃเต เด เดคเตเดคเดฐเดฎเตเดฐเต เดเดจเตเดฑเดฟเดฑเตเดฑเดฟ เดเตเตผเดคเตเดคเดคเต เดเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เดชเตเดคเตเดตเต, เดซเดฟเตฝเดเตเดเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เด เตฝเดเตเดฐเดฟเดคเดคเตเดคเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเตเดเต เด เดณเดตเต เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเดฟเดฒเตเดฒ, เดเตปเดชเตเดเตเดเดฟเตฝ เดฒเดญเดฟเดเตเด เดกเดพเดฑเตเดฑ เดฌเดซเดฑเตเดเดณเตเดเต เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเดจเตเดฑเต เดเตเดฃเดฟเดคเดฎเดฒเตเดฒ. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดเตเดเตพ เดเดฐเต เดซเดพเดธเตเดฑเตเดฑเต เดซเตเดฏเตเดฑเดฟเดฏเตผ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดจเดเดคเตเดคเตเดจเตเดจ เดเดฐเต เดซเดฟเตฝเดเตเดเตผ เดเดดเตเดคเตเดเดฏเดพเดฃเต, เดจเดฟเตผเดตเดเดจเด เด เดจเตเดธเดฐเดฟเดเตเดเต เดฐเดฃเตเดเต เดถเดเตเดคเดฟเดฏเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเตเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเต. เด เดคเต 512 เดเดฃเตเดฃเดฎเดพเดเดเตเดเต. เดเดฐเต เดเตเดฒเดฟเดซเตเตบ เดเดพเดจเดฒเดพเดฃเต เดกเดพเดฑเตเดฑ เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเดคเตเดเตเดเดฟเตฝ, เดเตปเดชเตเดเตเดเดฟเดฒเต เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเตเดฏเตเด เดกเดพเดฑเตเดฑ เดฌเดซเตผ เดเดเตเดเตพเดเตเดเต 160 เดธเดฟเดเตเดจเตฝ เดธเดพเดฎเตเดชเดฟเดณเตเดเตพ เดเตเดฃเตเดเตเดตเดฐเตเด. เดเดตเดถเตเดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เดฒเดญเตเดฏเดฎเดพเดเตเดจเตเดจเดคเตเดตเดฐเต เดเตปเดชเตเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดถเตเดเดฐเดฟเดเตเดเดพเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดชเตเดฐเดฒเตเดญเดจเดฎเดพเดฃเต. เดเดจเตเดจเดพเตฝ เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดฟเดเตเดเดฑเตเดฎเดพเดฏเดฟ เดเดฐเต เดเตเดเตเดเดฟเดฏเดฟเดเดฟ เดธเดเดญเดตเดฟเดเตเดเตเด, เด เดคเต เดเตปเดชเตเดเตเดเต เดฒเดฟเดเตเดเต เดถเตเดจเตเดฏเดฎเดพเดเตเดจเตเดจเดคเตเดตเดฐเต เดซเดฟเตฝเดเตเดเตผ เดธเตเดเตเดฐเตเตพ เดเตเดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดชเดฐเดพเดเดฏเดชเตเดชเตเดเตเดเต. เดฎเตเดฎเตเดชเต, เดเดเตเดเตพ เด เดจเดฟเดฏเดฎเด เดซเดฟเตฝเดเตเดเดฑเดฟเดจเตเดฑเต เดฎเตเดจเตเดจเดพเดฎเดคเตเดคเต เดคเดคเตเดตเดฎเดพเดฏเดฟ เดจเดฟเดถเตเดเดฏเดฟเดเตเดเต. เด เดคเดคเตเดตเดฎเดจเตเดธเดฐเดฟเดเตเดเต, เดซเดฟเตฝเดเตเดเดฑเดฟเดจเตเดฑเต เดชเตเดฐเตเดธเดธเตเดธเต() เดซเดเดเตเดทเตป เดเตปเดชเตเดเตเดเต เดเตเดฏเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฒเตเดฒเดพ เดกเดพเดฑเตเดฑเดฏเตเด เดเดเตเดเตเดเดฃเด.
เดเตเดเดพเดคเต, เดเตปเดชเตเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต 512 เดธเดพเดฎเตเดชเดฟเดณเตเดเตพ เดฎเดพเดคเตเดฐเด เดเดเตเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ, เดเดพเดฐเดฃเด เดจเดฟเดเตเดเตพเดเตเดเต เดฎเตเดดเตเดตเตป เดฌเตเดฒเตเดเตเดเตเดเดณเตเด เดฎเดพเดคเตเดฐเดฎเต เดเดเตเดเตเดเดพเตป เดเดดเดฟเดฏเต, เด เดคเดพเดฏเดคเต. เดซเดฟเตฝเดเตเดเดฑเดฟเดจเต 640 เดธเดพเดฎเตเดชเดฟเดณเตเดเตพ เดเดเตเดเตเดเตเดเดฏเตเด เด เดตเดฏเดฟเตฝ 512 เดเดฃเตเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเตเด เดตเตเดฃเด, เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณเดต เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดฐเต เดชเตเดคเดฟเดฏ เดญเดพเดเด เดถเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต. เด เดคเดฟเดจเดพเตฝ, เดเดเตเดเดณเตเดเต เดซเดฟเตฝเดเตเดเตผ, เด เดคเดฟเดจเตเดฑเต เดชเตเดฐเดงเดพเดจ เดเตเดฒเดฟเดเตเดเต เดชเตเดฑเดฎเต, เดเตปเดชเตเดเตเดเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดจเตเดฑเตผเดฎเตเดกเดฟเดฏเดฑเตเดฑเต เดธเดเดญเดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดธเดนเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดจเตฝเดเดฃเด. เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเดฑเดฟเดจเตเดฑเต เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเด เด เดชเตเดคเต เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเดตเตเด เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดฌเตเดเดเตเดฑเตเดฑเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดคเตเดคเดฟเดเตเดเตเดฃเตเดเต - MSBufferizer (bufferer), เดเดคเต tuples เดเดชเดฏเตเดเดฟเดเตเดเต เด เดชเตเดฐเดถเตเดจเด เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดฌเดซเดฑเตเดธเตผ (MSBufferizer)
เดซเดฟเตฝเดเตเดเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดเตปเดชเตเดเตเดเต เดกเดพเดฑเตเดฑ เดถเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดซเดฟเตฝเดเตเดเตผ เด
เตฝเดเตเดฐเดฟเดคเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดตเดฟเดตเดฐเดเตเดเตพ เดฎเดคเดฟเดฏเดพเดเตเดฎเตเดชเตเตพ เด
เดคเต เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเดฟเดจเดพเดฏเดฟ เดธเดฎเตผเดชเตเดชเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฐเต เดตเดธเตเดคเตเดตเดพเดฃเดฟเดคเต. เดฌเดซเตผ เดกเดพเดฑเตเดฑ เดถเตเดเดฐเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดชเตเดฐเตเดธเดธเตเดธเดฑเดฟเดจเตเดฑเต เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดชเดตเตผ เดเดชเดฏเตเดเดฟเดเตเดเดพเดคเต เดซเดฟเตฝเดเตเดเตผ เดจเดฟเดทเตโเดเตเดฐเดฟเดฏ เดฎเตเดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเด. เดเดจเตเดจเดพเตฝ เดฌเดซเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฑเตเดกเดฟเดเดเต เดซเดเดเตโเดทเตป เดชเตเดเตเดฏเด เด
เดฒเตเดฒเดพเดคเต เดฎเดฑเตเดฑเตเดฐเต เดฎเตเดฒเตเดฏเด เดจเตฝเดเตเดฎเตเดชเตเตพ, เดซเดฟเตฝเดเตเดเดฑเดฟเดจเตเดฑเต เดชเตเดฐเตเดธเดธเตเดธเต() เดซเดเดเตโเดทเตป เดฌเดซเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเดฒเตเดณเตเดณ เดญเดพเดเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดเดเตเดเตเดเดพเดจเตเด เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเดจเตเด เดคเตเดเดเตเดเตเดจเตเดจเต, เด
เดคเต เดคเตเดฐเตเดจเตเดจเดคเตเดตเดฐเต.
เดเดคเตเดตเดฐเต เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดกเดพเดฑเตเดฑ เดเตเดฏเตเดชเตเดชเดฟเดณเดฟเดจเตเดฑเต เดเดฆเตเดฏ เดเดเดเดฎเดพเดฏเดฟ เดฌเดซเดฑเดฟเตฝ เด
เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเต, เด
เดคเดฟเตฝ เดเตปเดชเตเดเตเดเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดคเตเดเตผเดจเตเดจเตเดณเตเดณ เดฌเตเดฒเตเดเตเดเตเดเตพ เดเดเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดฌเดซเดฑเดฟเดจเต เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจ เดเดเดจ:
struct _MSBufferizer{
queue_t q; /* ะัะตัะตะดั ัะพะพะฑัะตะฝะธะน. */
int size; /* ะกัะผะผะฐัะฝัะน ัะฐะทะผะตั ะดะฐะฝะฝัั
ะฝะฐั
ะพะดััะธั
ัั ะฒ ะฑััะตัะธะทะฐัะพัะต ะฒ ะดะฐะฝะฝัะน ะผะพะผะตะฝั. */
};
typedef struct _MSBufferizer MSBufferizer;
MSBufferizer-เดจเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
เดเดฐเต เดชเตเดคเดฟเดฏ เดฌเดซเตผ เดเดฆเดพเดนเดฐเดฃเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต:
MSBufferizer * ms_bufferizer_new(void);
เดฎเตเดฎเตเดฎเดฑเดฟ เด เดจเตเดตเดฆเดฟเดเตเดเต, เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต ms_bufferizer_init() เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเตผ เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดชเตเดฐเดพเดฐเดเดญ เดชเตเดฐเดตเตผเดคเตเดคเดจเด:
void ms_bufferizer_init(MSBufferizer *obj);
เดเตเดฏเต เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต q, เดตเดฏเตฝ เดตเดฒเตเดชเตเดชเด เดชเตเดเตเดฏเดฎเดพเดฏเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเตเตผเดเตเดเตเดจเตเดจเต:
void ms_bufferizer_put(MSBufferizer *obj, mblk_t *m);
เดเตเดฏเตเดตเดฟเตฝ m เดเดจเตเดจ เดธเดจเตเดฆเตเดถเด เดเตเตผเดคเตเดคเต. เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเตเดเดณเตเดเต เดเดฃเดเตเดเดพเดเตเดเดฟเดฏ เดตเดฒเตเดชเตเดชเด เดเตเตผเดคเตเดคเต เดตเดฒเตเดชเตเดชเด.
เดฒเดฟเดเตเดเต เดกเดพเดฑเตเดฑ เดเตเดฏเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฒเตเดฒเดพ เดธเดจเตเดฆเตเดถเดเตเดเดณเตเด เดฌเดซเดฑเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต q:
void ms_bufferizer_put_from_queue(MSBufferizer *obj, MSQueue *q);
เดเดฐเต เดฒเดฟเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเตเดฎเดพเดฑเตเดจเตเดจเต q เดฌเดซเดฑเดฟเตฝ เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดจเดเดคเตเดคเตเดจเตเดจเดคเต ms_bufferizer_put().
เดฌเดซเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเต:
int ms_bufferizer_read(MSBufferizer *obj, uint8_t *data, int datalen);
เดฌเดซเดฑเดฟเตฝ เดถเตเดเดฐเดฟเดเตเดเดชเตเดชเตเดเตเด เดกเดพเดฑเตเดฑเดฏเตเดเต เดตเดฒเตเดชเตเดชเด เดเดตเดถเตเดฏเดชเตเดชเตเดเตเดเดคเดฟเดจเตเดเตเดเดพเตพ เดเตเดฑเดตเดพเดฃเตเดเตเดเดฟเตฝ (เดกเดพเดฑเตเดฑเดฒเตเตป), เดคเตเดเตผเดจเตเดจเต เดซเดเดเตเดทเตป เดชเตเดเตเดฏเด เดจเตฝเดเตเดจเตเดจเต, เดกเดพเดฑเตเดฑ เดกเดพเดฑเตเดฑเดฏเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเดฟเดฒเตเดฒ. เด เดฒเตเดฒเตเดเตเดเดฟเตฝ, เดฌเดซเดฑเดฟเตฝ เดธเตเดฅเดฟเดคเดฟเดเตเดฏเตเดฏเตเดจเตเดจ เดเตเดฏเตเดชเตเดชเดฟเดณเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑเดฏเตเดเต เดคเตเดเตผเดเตเดเดฏเดพเดฏ เดชเดเตผเดชเตเดชเต เดจเดเดคเตเดคเตเดจเตเดจเต. เดชเดเตผเดคเตเดคเดฟเดฏ เดถเตเดทเด, เดเตเดฏเตเดชเตเดชเดฟเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเตเด เดฎเตเดฎเตเดฎเดฑเดฟ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดกเดพเดฑเตเดฑเดฒเตเตป เดฌเตเดฑเตเดฑเตเดเตพ เดชเดเตผเดคเตเดคเตเดจเตเดจ เดจเดฟเดฎเดฟเดทเดคเตเดคเดฟเตฝ เดชเดเตผเดคเตเดคเตฝ เด เดตเดธเดพเดจเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเดจเตเดฑเต เดฎเดงเตเดฏเดญเดพเดเดคเตเดคเต เดเดเด เดคเตเตผเดจเตเดจเดพเตฝ, เด เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเตฝ, เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดชเดเตผเดคเตเดคเดพเดคเตเดค เดญเดพเดเดคเตเดคเตเดเตเดเต เดเตเดฑเดฏเตเดเตเดเตเด. เด เดเตเดคเตเดค เดคเดตเดฃ เดจเดฟเดเตเดเตพ เดตเดฟเดณเดฟเดเตเดเตเดฎเตเดชเตเตพ, เด เดชเตเดฏเดฟเดจเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดเตผเดคเตเดคเตฝ เดคเตเดเดฐเตเด.
เดฌเดซเดฑเดฟเตฝ เดจเดฟเดฒเดตเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเตเดเต เด เดณเดตเต เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเต:
int ms_bufferizer_get_avail(MSBufferizer *obj);
เดซเตเตฝเดกเต เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดจเตเดจเต เดตเดฒเตเดชเตเดชเด เดฌเดซเดฑเตผ.
เดฌเดซเดฑเดฟเดฒเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดฐเต เดญเดพเดเด เดจเดฟเดฐเดธเดฟเดเตเดเตเดจเตเดจเต:
void ms_bufferizer_skip_bytes(MSBufferizer *obj, int bytes);
เดกเดพเดฑเตเดฑเดฏเตเดเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโเด เดเดฃเตเดฃเด เดฌเตเดฑเตเดฑเตเดเตพ เดตเตเดฃเตเดเตเดเตเดเตเดเตเดเดฏเตเด เดจเดฟเดฐเดธเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดฑเตเดฑเดตเตเด เดชเดดเดฏ เดกเดพเดฑเตเดฑ เดจเดฟเดฐเดธเดฟเดเตเดเต.
เดฌเดซเดฑเดฟเดฒเต เดเดฒเตเดฒเดพ เดธเดจเตเดฆเตเดถเดเตเดเดณเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต:
void ms_bufferizer_flush(MSBufferizer *obj);
เดกเดพเดฑเตเดฑ เดเตเดฃเตเดเตผ เดชเตเดเตเดฏเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดจเดเดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดฌเดซเดฑเดฟเดฒเต เดเดฒเตเดฒเดพ เดธเดจเตเดฆเตเดถเดเตเดเดณเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต:
void ms_bufferizer_uninit(MSBufferizer *obj);
เดเตเดฃเตเดเตผ เดชเตเดจเดเดธเดเตเดเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ.
เดฌเดซเตผ เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเดเดฏเตเด เดฎเตเดฎเตเดฎเดฑเดฟ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต:
void ms_bufferizer_destroy(MSBufferizer *obj);
เดฌเดซเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ เดจเดฟเดฐเดตเดงเดฟ เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเตผ เดซเดฟเตฝเดเตเดเดฑเตเดเดณเตเดเต เดธเตเดดเตเดธเต เดเตเดกเดฟเตฝ เดเดพเดฃเดพเด. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, MS_L16_ENC เดซเดฟเตฝเดเตเดเดฑเดฟเตฝ, เดธเดพเดฎเตเดชเดฟเดณเตเดเดณเดฟเดฒเต เดฌเตเดฑเตเดฑเตเดเตพ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดเตผเดกเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดนเตเดธเตเดฑเตเดฑเต เดเตผเดกเดฑเดฟเดฒเตเดเตเดเต เดชเตเดจเดเดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต:
เด เดเตเดคเตเดค เดฒเตเดเดจเดคเตเดคเดฟเตฝ, เดเดฟเดเตเดเตผ เดฒเตเดกเต เดเดธเตเดฑเตเดฑเดฟเดฎเตเดทเดจเตเดฑเต เดชเตเดฐเดถเตเดจเดตเตเด เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเดฑเดฟเดฒเต เด เดฎเดฟเดคเดฎเดพเดฏ เดเดฎเตเดชเตเดฏเตเดเตเดเดฟเดเดเต เดฒเตเดกเต เดเดเตเดเดจเต เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดพเดฎเตเดจเตเดจเตเด เดเดเตเดเตพ เดจเตเดเตเดเตเด.
เด เดตเดฒเดเดฌเด: www.habr.com