เชฒเซเชเชจเซ เชธเชพเชฎเชเซเชฐเซ เชฎเชพเชฐเชพ เชชเชฐเชฅเซ เชฒเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ
เชกเซเชเชพ เชฎเซเชตเชฎเซเชจเซเช เชฎเชฟเชเซเชจเชฟเชเชฎ
- เชกเซเชเชพ เชฌเซเชฒเซเช dblk_t
- เชธเชเชฆเซเชถ mblk_t
- เชธเชเชฆเซเชถเชพเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชเชพเชฐเซเชฏเซ mblk_t
- เชเชคเชพเชฐ เชเชคเชพเชฐ_เชเซ
- queues 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, เชเชฎ 1_1, เชเชฎ 1_2.
เชฎเซเชธเซเชเชฟเชเช เชเชพเชฐเซเชฏเซ mblk_t
เชเช เชจเชตเซ เชธเชเชฆเซเชถ mblk_t เชเชพเชฐเซเชฏ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเซเชฒ:
mblk_t *allocb(int size, int pri);
เชคเซเชฃเซ เชฎเซเชฎเชฐเซเชฎเชพเช เชเช เชจเชตเซ เชธเชเชฆเซเชถ เชฎเซเชเซ เชเซ mblk_t เชเชฒเซเชฒเซเชเชฟเชค เชเชฆเชจเชพ เชกเซเชเชพ เชฌเซเชฒเซเช เชธเชพเชฅเซ เชเชฆ, เชฌเซเชเซ เชฆเชฒเซเชฒ - เชชเซเชฐเชฟ เชชเซเชธเซเชคเชเชพเชฒเชฏเชจเชพ เช เชธเชเชธเซเชเชฐเชฃเชฎเชพเช เชตเชชเชฐเชพเชฏเซเชฒ เชจเชฅเซ. เชคเซ เชถเซเชจเซเชฏ เชฐเชนเซเชตเซเช เชเซเชเช. เชซเชเชเซเชถเชจเชจเชพ เชเชชเชฐเซเชถเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชจเชตเชพ เชฎเซเชธเซเชเชจเซ เชฐเชเชจเชพ เชฎเชพเชเซ เชฎเซเชฎเชฐเซ เชซเชพเชณเชตเชตเชพเชฎเชพเช เชเชตเชถเซ เช เชจเซ เชซเชเชเซเชถเชจเชจเซ เชฌเซเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ 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*));
เชซเชเชเซเชถเชจ, เชฎเซเชธเซเช เช เชจเซ เชกเซเชเชพ เชฌเซเชฒเซเชเชจเซเช เชฎเชพเชณเชเซเช เชฌเชจเชพเชตเซเชฏเชพ เชชเชเซ, เชธเชฐเชจเชพเชฎเชพเช เชชเชฐเชจเชพ เชกเซเชเชพ เชชเชฐ เชคเซเชจเชพ เชชเซเชเชจเซเชเชฐเชจเซ เชเซเช เชตเชถเซ. เชฌเชซ. เชคเซ. เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เชกเซเชเชพ เชฌเซเชฒเซเชเชจเชพ เชนเซเชกเชฐ เชซเซเชฒเซเชกเซเชธ เชชเชเซ เชกเซเชเชพ เชฌเชซเชฐ เชธเซเชฅเชฟเชค เชจเชฅเซ, เชเซเชฎ เชเซ เชซเชเชเซเชถเชจ เชธเชพเชฅเซ เชกเซเชเชพ เชฌเซเชฒเซเช เชฌเชจเชพเชตเชคเซ เชตเชเชคเซ เชนเชคเซ. 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);
เชคเซเชฃเซ เชเชชเชฒ เชเซเชกเซ เชเซ newm เชเชชเชฒเชจเซ เชชเซเชเชเชกเซ เชธเซเชงเซ mp เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชเซเชฏเซเชชเชฒเชจเชพ เชเซเชฒเซเชฒเชพ เชธเชเชฆเซเชถ เชชเชฐ เชเช เชจเชฟเชฐเซเชฆเซเชถเช เชชเชฐเชค เชเชฐเซ เชเซ.
เชเซ เชเชฐเซเชฐเซ เชนเซเชฏ เชคเซ, เชเซเชฏเซเชชเชฒเชจเซ เชกเซเชเชพเชจเชพ เชเช เชฌเซเชฒเซเช เชธเชพเชฅเซ เชเช เชธเชเชฆเซเชถเชฎเชพเช เชซเซเชฐเชตเซ เชถเชเชพเชฏ เชเซ; เช เชเชพเชฐเซเชฏ เชฆเซเชตเชพเชฐเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
void msgpullup(mblk_t *mp,int len);
เชเซ เชฆเชฒเซเชฒ เชฒเซเชจ -1 เชเซ, เชคเซ เชซเชพเชณเชตเซเชฒ เชฌเชซเชฐเชจเซเช เชเชฆ เชเชชเชฎเซเชณเซ เชจเชเซเชเซ เชฅเชพเชฏ เชเซ. เชเซ เชฒเซเชจ เชงเชจ เชธเชเชเซเชฏเชพ เชเซ, เช เชเชฆเชจเซเช เชฌเชซเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ เช เชจเซ เชคเซเชฎเชพเช เชเชชเชฒ เชฎเซเชธเซเช เชกเซเชเชพ เชเซเชชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เชเซ เชฌเชซเชฐ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ, เชคเซ เชจเชเชฒ เชเชฐเชตเชพเชจเซเช เชฌเชเชง เชฅเช เชเชถเซ. เชเซเชฏเซเชชเชฒเชจเซ เชชเชนเซเชฒเซ เชธเชเชฆเซเชถ เชเซเชชเซ เชเชฐเซเชฒเชพ เชกเซเชเชพ เชธเชพเชฅเซ เชจเชตเชพ เชเชฆเชจเซเช เชฌเชซเชฐ เชชเซเชฐเชพเชชเซเชค เชเชฐเชถเซ. เชฌเชพเชเซเชจเชพ เชธเชเชฆเซเชถเชพเช เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชเชตเชถเซ เช เชจเซ เชฎเซเชฎเชฐเซ เชขเชเชฒเชพ เชชเชฐ เชชเชพเชเซ เชเชตเชถเซ.
เชฐเชเชจเชพ เชเชพเชขเซ เชจเชพเชเชคเซ เชตเชเชคเซ mblk_t เชกเซเชเชพ เชฌเซเชฒเซเชเชจเซ เชธเชเชฆเชฐเซเชญ เชเชฃเชคเชฐเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ, เชเซเชฒ เชเชฐเชคเซ เชตเชเชคเซ เชฎเชซเชค() เชคเซ เชถเซเชจเซเชฏ เชนเซเชตเชพเชจเซเช เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ, เชชเชเซ เชกเซเชเชพ เชฌเชซเชฐ เชฆเชพเชเชฒเชพเชจเซ เชธเชพเชฅเซ เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ 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);
เชซเชเชเซเชถเชจ เชเชชเซเชจเซเชกเชฌเซ() เชจเซ เชฒเซเชชเชฎเชพเช เชเซเชฒ เชเชฐเซ เชเซ.
เชฌเซ เชเซเชฏเซเชชเชฒเชจเซ เชเชเชฎเชพเช เชเซเชกเซเชจเซ:
mblk_t *concatb(mblk_t *mp, mblk_t *newm);
เชธเชเชฆเซเชถ newm เชธเชพเชฅเซ เชเซเชกเชตเชพเชฎเชพเช เชเชตเชถเซ mp.
เชเช เชธเชเชฆเซเชถเชจเซ เชจเชเชฒ เชฌเชจเชพเชตเชตเซ:
mblk_t *copyb(const mblk_t *mp);
เชฌเชงเชพ เชกเซเชเชพ เชฌเซเชฒเซเชเซเชธ เชธเชพเชฅเซ เชเซเชฏเซเชชเชฒเชจเซ เชธเชเชชเซเชฐเซเชฃ เชจเชเชฒ:
mblk_t *copymsg(const mblk_t *mp);
เชเซเชฏเซเชชเชฒเชจเชพ เชคเชคเซเชตเซ เชซเชเชเซเชถเชจ เชฆเซเชตเชพเชฐเชพ เชเซเชชเชฟ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซเชชเซเชฌเซ().
เชธเชเชฆเซเชถเชจเซ เชธเชฐเชณ เชจเชเชฒ เชฌเชจเชพเชตเซ 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 เชเชพเชเชช เชเชฐเซ, เชคเซ เชเชคเชพเชฐเชฎเชพเช เชชเซเชฐเชฅเชฎ เชคเชคเซเชต (เชธเชเชฆเซเชถ) เชคเชฐเชซ เชจเชฟเชฐเซเชฆเซเชถ เชเชฐเซ เชเซ. เชฌเชเชงเชพเชฐเชฃเชจเซเช เชฌเซเชเซเช เชเซเชทเซเชคเซเชฐ เช เชเชคเชพเชฐเชฎเชพเช เชธเชเชฆเซเชถเชพเชเชจเซเช เชเชพเชเชจเซเชเชฐ เชเซ.
เชจเซเชเซเชจเซ เชเชเซเชคเชฟ q1 เชจเชพเชฎเชจเซ เชเชคเชพเชฐ เชฌเชคเชพเชตเซ เชเซ เชเซเชฎเชพเช 4 เชธเชเชฆเซเชถเชพ m1, m2, m3, m4 เชเซ.
เชจเซเชเซเชจเซ เชเชเชเชกเซ q1 เชจเชพเชฎเชจเซ เชเชคเชพเชฐ เชฌเชคเชพเชตเซ เชเซ เชเซเชฎเชพเช 4 เชธเชเชฆเซเชถเชพ m1,m2,m3,m4 เชเซ. เชธเชเชฆเซเชถ m2 เช เชเชชเชฒเชจเซเช เชนเซเชก เชเซ เชเซเชฎเชพเช เชตเชงเซ เชฌเซ เชธเชเชฆเซเชถเชพ m2_1 เช
เชจเซ m2_2 เชเซ.
queues 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).
เชเชจเซเชเซเชเชฟเชเช เชซเชฟเชฒเซเชเชฐเซเชธ
เชเชชเชฐ เชตเชฐเซเชฃเชตเซเชฒ เชเชคเชพเชฐเชจเซ เชเชชเชฏเซเช เชเช เชซเชฟเชฒเซเชเชฐเชฎเชพเชเชฅเซ เชฌเซเชเชพ เชซเชฟเชฒเซเชเชฐเชฎเชพเช เช เชฅเชตเชพ เชเชเชฅเซ เช เชจเซเช เชซเชฟเชฒเซเชเชฐเซเชธเชฎเชพเช เชธเชเชฆเซเชถเชพ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เชซเชฟเชฒเซเชเชฐเซเชธ เช เชจเซ เชคเซเชฎเชจเชพ เชเซเชกเชพเชฃเซ เชจเชฟเชฐเซเชฆเซเชถเชฟเชค เชเซเชฐเชพเชซ เชฌเชจเชพเชตเซ เชเซ. เชซเชฟเชฒเซเชเชฐเชจเชพ เชเชจเชชเซเช เช เชฅเชตเชพ เชเชเชเชชเซเชเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชถเชฌเซเชฆ "เชชเชฟเชจ" เชเชนเซเชตเชพเชฎเชพเช เชเชตเชถเซ. เชซเชฟเชฒเซเชเชฐเซเชธ เชเชเชฌเซเชเชพ เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒเชพ เชเซ เชคเซ เชเซเชฐเชฎเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชตเชพ เชฎเชพเชเซ, เชฎเซเชกเชฟเชฏเชพ เชธเซเชเซเชฐเซเชฎเชฐ "เชธเชฟเชเซเชจเชฒ เชชเซเชเชจเซเช" เชจเชพ เชเซเชฏเชพเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. เชธเชฟเชเซเชจเชฒ เชชเซเชเชจเซเช เชฎเชพเชณเชเซเช เชเซ _MSCPpoint, เชเซเชฎเชพเช เชซเชฟเชฒเซเชเชฐ เชฎเชพเชเซ เชเช เชจเชฟเชฐเซเชฆเซเชถเช เช เชจเซ เชคเซเชจเซ เชเช เชชเชฟเชจเชจเซ เชธเชเชเซเชฏเชพ เชนเซเชฏ เชเซ; เชคเซ เชฎเซเชเชฌ, เชคเซ เชซเชฟเชฒเซเชเชฐเชจเชพ เชเชจเชชเซเช เช เชฅเชตเชพ เชเชเชเชชเซเชเชฎเชพเชเชฅเซ เชเชเชจเชพ เชเซเชกเชพเชฃเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซ เชเซ.
เชกเซเชเชพ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชเซเชฐเชพเชซเชจเซ เชธเชฟเชเซเชจเชฒ เชชเซเชเชจเซเช
typedef struct _MSCPoint{
struct _MSFilter *filter; // ะฃะบะฐะทะฐัะตะปั ะฝะฐ ัะธะปััั ะผะตะดะธะฐัััะธะผะตัะฐ.
int pin; // ะะพะผะตั ะพะดะฝะพะณะพ ะธะท ะฒั
ะพะดะพะฒ ะธะปะธ ะฒัั
ะพะดะพะฒ ัะธะปัััะฐ, ั.ะต. ะฟะธะฝ.
} MSCPoint;
เชซเชฟเชฒเซเชเชฐ เชชเชฟเชจ เชถเซเชจเซเชฏเชฅเซ เชถเชฐเซ เชเชฐเซเชจเซ เชเซเชฐเชฎเชพเชเชเชฟเชค เชเซ.
เชธเชเชฆเซเชถ เชเชคเชพเชฐ เชฆเซเชตเชพเชฐเชพ เชฌเซ เชชเชฟเชจเชจเซเช เชเซเชกเชพเชฃ เชฌเชเชงเชพเชฐเชฃ เชฆเซเชตเชพเชฐเชพ เชตเชฐเซเชฃเชตเซเชฒ เชเซ _MSเชเชคเชพเชฐ, เชเซเชฎเชพเช เชเช เชธเชเชฆเซเชถ เชเชคเชพเชฐ เชเซ เช เชจเซ เชคเซ เชเซ เชฌเซ เชธเชฟเชเซเชจเชฒ เชชเซเชเชจเซเชเชจเซ เชเซเชกเซ เชเซ เชคเซเชจเชพ เชฎเชพเชเซ เชจเชฟเชฐเซเชฆเซเชถเชเซ เชงเชฐเชพเชตเซ เชเซ:
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.
เชเชฟเชเชฐเชจเซ เชชเชกเชฆเชพ เชชเชพเชเชณเชจเซ เชชเซเชฐเชตเซเชคเซเชคเชฟเช
เชเซเชฏเชพเชฐเซ เชฎเซเช เชคเชฎเชจเซ เชเชนเซเชฏเซเช เชเซ เชเซเชเชฐ เช เชเชฟเชเชจเชพ เชธเซเชคเซเชฐเซเชค เชฎเชพเชเซเชจเซเช เชซเชฟเชฒเซเชเชฐ เชเซ, เชคเซ เชคเซเชจเชพ เชตเชฟเชถเซ เชธเชเชชเซเชฐเซเชฃ เชธเชคเซเชฏ เชจ เชนเชคเซเช. เชเซเชเชฐ เช เชเช เชชเชฆเชพเชฐเซเชฅ เชเซ เชเซ เชเชกเชฟเชฏเชพเชณ เชชเชฐ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ() เชธเชฐเซเชเชฟเชเชจเชพ เชคเชฎเชพเชฎ เชซเชฟเชฒเซเชเชฐเซเชธ (เชเซเชฐเชพเชซ) เชเซเชจเซ เชธเชพเชฅเซ เชคเซ เชเซเชกเชพเชฏเซเชฒ เชเซ. เชเซเชฏเชพเชฐเซ เชเชชเชฃเซ เชธเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฎเชพเช เชเซเชฐเชพเชซ เชซเชฟเชฒเซเชเชฐ เชธเชพเชฅเซ เชเชฟเชเชฐเชจเซ เชเชจเซเชเซเช เชเชฐเซเช เชเซเช, เชคเซเชฏเชพเชฐเซ เช เชฎเซ เชเชฟเชเชฐเชจเซ เชคเซ เชเซเชฐเชพเชซ เชฌเชคเชพเชตเซเช เชเซเช เชเซ เชคเซ เชนเชตเซเชฅเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชถเซ เชเซเชฏเชพเช เชธเซเชงเซ เชเชชเชฃเซ เชคเซเชจเซ เชฌเชเชง เชจ เชเชฐเซเช. เชเชจเซเชเซเช เชเชฐเซเชฏเชพ เชชเชเซ, เชเซเชเชฐ เชคเซเชจเซ เชธเชเชญเชพเชณเชจเซ เชธเซเชเชชเชตเชพเชฎเชพเช เชเชตเซเชฒ เชเซเชฐเชพเชซเชจเซ เชคเชชเชพเชธ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ, เชคเซเชฎเชพเช เชถเชพเชฎเซเชฒ เชนเซเชฏ เชคเซเชตเชพ เชซเชฟเชฒเซเชเชฐเซเชธเชจเซ เชธเซเชเชฟเชจเซเช เชธเชเชเชฒเชจ เชเชฐเซ เชเซ. เชเช เช เชซเชฟเชฒเซเชเชฐเชจเซ เชฌเซ เชตเชพเชฐ "เชเชฃเชคเชฐเซ" เชจ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเซ เชถเซเชงเชพเชฏเซเชฒ เชซเชฟเชฒเซเชเชฐเซเชธเชจเซ เชคเซเชฎเชพเช เชเซเชเชฌเซเชเซเชธ เชฎเซเชเซเชจเซ เชเชฟเชนเซเชจเชฟเชค เชเชฐเซ เชเซ. เชเซเช. เชฆเชฐเซเช เชซเชฟเชฒเซเชเชฐเชฎเชพเช เชนเซเชฏ เชคเซเชตเชพ เชฒเชฟเชเช เชเซเชทเซเชเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชถเซเชง เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชเซเชฐเชพเชซเชจเชพ เชคเซเชจเชพ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชชเซเชฐเชตเชพเชธ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชเซเชเชฐ เชคเชชเชพเชธ เชเชฐเซ เชเซ เชเซ เชซเชฟเชฒเซเชเชฐเซเชธเชฎเชพเช เชเชเชพเชฎเชพเช เชเชเซเช เชเช เชเซ เชเซ เชเซ เชกเซเชเชพ เชฌเซเชฒเซเชเซเชธเชจเชพ เชธเซเชคเซเชฐเซเชค เชคเชฐเซเชเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ. เชเซ เชคเซเชฏเชพเช เชเซเช เชจ เชนเซเชฏ, เชคเซ เชเซเชฐเชพเชซ เชเซเชเซ เชฎเชพเชจเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชเซเชเชฐ เชเซเชฐเซเชถ เชฅเชพเชฏ เชเซ.
เชเซ เชเซเชฐเชพเชซ "เชธเชพเชเซ" เชนเซเชตเชพเชจเซเช เชฌเชนเชพเชฐ เชเชตเซ เชเซ, เชคเซ เชฆเชฐเซเช เชฎเชณเซเชฒเชพ เชซเชฟเชฒเซเชเชฐ เชฎเชพเชเซ, เชซเชเชเซเชถเชจเชจเซ เชชเซเชฐเชพเชฐเชเชญ เชฎเชพเชเซ เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชชเซเชฐเซเชต เชชเซเชฐเชเซเชฐเชฟเชฏเชพ(). เชเชฒเชฆเซ เช เชเชเชณเชจเชพ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชเชเซเชฐ (เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเซ เชฆเชฐ 10 เชฎเชฟเชฒเซเชธเซเชเชจเซเชกเซ) เชฎเชพเชเซ เชเซเชทเชฃ เชเชตเซ เชเซ, เชเชฟเชเชฐ เชซเชเชเซเชถเชจเชจเซ เชเซเชฒ เชเชฐเซ เชเซ. เชชเซเชฐเชเซเชฐเชฟเชฏเชพ() เช เชเชพเช เชฎเชณเซเชฒเชพ เชคเชฎเชพเชฎ เชธเซเชคเซเชฐเซเชค เชซเชฟเชฒเซเชเชฐเซเชธ เชฎเชพเชเซ เช เชจเซ เชชเชเซ เชฏเชพเชฆเซเชฎเชพเชเชจเชพ เชฌเชพเชเซเชจเชพ เชซเชฟเชฒเซเชเชฐเซเชธ เชฎเชพเชเซ. เชเซ เชซเชฟเชฒเซเชเชฐเชฎเชพเช เชเชจเชชเซเช เชฒเชฟเชเชเซเชธ เชนเซเชฏ, เชคเซ เชซเชเชเซเชถเชจ เชเชฒเชพเชตเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ() เชเซเชฏเชพเช เชธเซเชงเซ เชเชจเชชเซเช เชฒเชฟเชเช เชเชคเชพเชฐ เชเชพเชฒเซ เชจ เชฅเชพเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เชฅเชพเชฏ เชเซ. เช เชชเชเซ, เชคเซ เชธเซเชเชฟเชฎเชพเชเชจเชพ เชเชเชฒเชพ เชซเชฟเชฒเซเชเชฐ เชชเชฐ เชเชพเชฏ เชเซ เช เชจเซ เชเซเชฏเชพเช เชธเซเชงเซ เชเชจเชชเซเช เชฒเชฟเชเชเซเชธ เชธเชเชฆเซเชถเชพเชเชฅเซ เชฎเซเชเซเชค เชจ เชฅเชพเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เชคเซเชจเซ "เชธเซเชเซเชฐเซเชฒ" เชเชฐเซ เชเซ. เชธเซเชเชฟ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เชเซเชเชฐ เชซเชฟเชฒเซเชเชฐเชฅเซ เชซเชฟเชฒเซเชเชฐ เชคเชฐเชซ เชเชเชณ เชตเชงเซ เชเซ. เช เชเชเซเชฐเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชชเซเชฐเซเชฃ เชเชฐเซ เชเซ.
เชนเชตเซ เช เชฎเซ เชเซเชฏเซเชชเชฒเซเชธ เชชเชฐ เชชเชพเชเชพ เชเชตเซเชถเซเช เช เชจเซ เชฎเซเชกเชฟเชฏเชพ เชธเซเชเซเชฐเซเชฎเชฐเชฎเชพเช เชเชตเซ เชเชจเซเชเชฟเชเซ เชเซเชฎ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชคเซ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเชถเซเช. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชซเชฟเชฒเซเชเชฐเชจเซ เช เชเชฆเชฐ เชเชพเชฐเซเชฏเชฐเชค เช เชฒเซเชเซเชฐเชฟเชงเชฎ เชฆเซเชตเชพเชฐเชพ เชเชฐเซเชฐเซ เชกเซเชเชพเชจเซ เชฎเชพเชคเซเชฐเชพ เชเชเชฐเซเชช เชฅเชคเซ เชจเชฅเซ เช เชจเซ เชคเซ เชเชจเชชเซเช เชชเชฐ เชชเซเชฐเชพเชชเซเชค เชกเซเชเชพ เชฌเชซเชฐเชจเชพ เชเชฆเชจเชพ เชเซเชฃเชพเชเชเชฎเชพเช เชจเชฅเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช เชฎเซ เชเช เชซเชฟเชฒเซเชเชฐ เชฒเชเซ เชฐเชนเซเชฏเชพ เชเซเช เชเซ เชเชกเชชเซ เชซเซเชฐเชฟเชฏเชฐ เชเซเชฐเชพเชจเซเชธเชซเซเชฐเซเชฎ เชเชฐเซ เชเซ, เชเซ เชตเซเชฏเชพเชเซเชฏเชพ เชฎเซเชเชฌ เชซเชเซเชค เชกเซเชเชพ เชฌเซเชฒเซเชเซเชธ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชถเชเซ เชเซ เชเซเชจเซ เชธเชพเชเช เชฌเซเชจเซ เชถเชเซเชคเชฟ เชเซ. เชคเซเชจเซ 512 เชเชฃเชตเชพ เชฆเซ. เชเซ เชกเซเชเชพ เชเซเชฒเชฟเชซเซเชจ เชเซเชจเชฒ เชฆเซเชตเชพเชฐเชพ เชเชจเชฐเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซ เชเชจเชชเซเช เชชเชฐเชจเชพ เชฆเชฐเซเช เชธเชเชฆเซเชถเชจเซ เชกเซเชเชพ เชฌเชซเชฐ เช เชฎเชจเซ 160 เชธเชฟเชเซเชจเชฒ เชจเชฎเซเชจเชพเช เชฒเชพเชตเชถเซ. เชเซเชฏเชพเช เชธเซเชงเซ เชเชฐเซเชฐเซ เชฎเชพเชคเซเชฐเชพเชฎเชพเช เชกเซเชเชพ เชจ เชนเซเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เชเชจเชชเซเชเชฎเชพเชเชฅเซ เชกเซเชเชพ เชเชเชคเซเชฐเชฟเชค เชจ เชเชฐเชตเชพเชจเซเช เชเชเชฐเซเชทเชฟเชค เชเชฐเซ เชเซ. เชชเชฐเชเชคเซ เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เชเซเชเชฐ เชธเชพเชฅเซ เช เชฅเชกเชพเชฎเชฃ เชฅเชถเซ, เชเซ เชเชจเชชเซเช เชฒเชฟเชเช เชเชพเชฒเซ เชจ เชฅเชพเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เชซเชฟเชฒเซเชเชฐเชจเซ เชธเซเชเซเชฐเซเชฒ เชเชฐเชตเชพเชจเซ เช เชธเชซเชณ เชชเซเชฐเชฏเชพเชธ เชเชฐเชถเซ. เช เชเชพเช, เช เชฎเซ เช เชจเชฟเชฏเชฎเชจเซ เชซเชฟเชฒเซเชเชฐเชจเชพ เชคเซเชฐเซเชเชพ เชธเชฟเชฆเซเชงเชพเชเชค เชคเชฐเซเชเซ เชจเชฟเชฏเซเชเซเชค เชเชฐเซเชฏเซ เชนเชคเซ. เช เชธเชฟเชฆเซเชงเชพเชเชค เช เชจเซเชธเชพเชฐ, เชซเชฟเชฒเซเชเชฐเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ() เชซเชเชเซเชถเชจเซ เชเชจเชชเซเช เชเชคเชพเชฐเชฎเชพเชเชฅเซ เชคเชฎเชพเชฎ เชกเซเชเชพ เชฒเซเชตเซ เชเซเชเช.
เชตเชงเซเชฎเชพเช, เชเชจเชชเซเชเชฎเชพเชเชฅเซ เชซเชเซเชค 512 เชจเชฎเซเชจเชพ เชฒเซเชตเชพเชจเซเช เชถเชเซเชฏ เชฌเชจเชถเซ เชจเชนเซเช, เชเชพเชฐเชฃ เชเซ เชคเชฎเซ เชซเชเซเชค เชธเชเชชเซเชฐเซเชฃ เชฌเซเชฒเซเชเซเชธ เชฒเช เชถเชเซ เชเซ, เชเชเชฒเซ เชเซ. เชซเชฟเชฒเซเชเชฐเซ 640 เชจเชฎเซเชจเชพเช เชฒเซเชตเชพ เชชเชกเชถเซ เช เชจเซ เชคเซเชฎเชพเชเชฅเซ 512เชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชชเชกเชถเซ, เชฌเชพเชเซเชจเซ เชกเซเชเชพเชจเซ เชจเชตเซ เชญเชพเช เชเชเชคเซเชฐเชฟเชค เชเชฐเชคเชพ เชชเชนเซเชฒเชพ. เชเชฎ, เช เชฎเชพเชฐเชพ เชซเชฟเชฒเซเชเชฐเซ, เชคเซเชจเชพ เชฎเซเชเซเชฏ เชเชพเชฐเซเชฏ เชเชชเชฐเชพเชเชค, เชเชจเชชเซเช เชกเซเชเชพเชจเชพ เชฎเชงเซเชฏเชตเชฐเซเชคเซ เชธเชเชเซเชฐเชน เชฎเชพเชเซ เชธเชนเชพเชฏเช เชเซเชฐเชฟเชฏเชพเช เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเซ เชเชตเชถเซเชฏเช เชเซ. เชฎเซเชกเชฟเชฏเชพ เชธเซเชเซเชฐเซเชฎเชฐเชจเชพ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเช เช เชจเซ เช เชธเชพเชฎเชพเชจเซเชฏ เชธเชฎเชธเซเชฏเชพเชจเชพ เชเชเซเชฒ เชฎเชพเชเซ เชเช เชตเชฟเชถเชฟเชทเซเช เชเชฌเซเชเซเชเซเช เชตเชฟเชเชธเชพเชตเซ เชเซ - MSBufferizer (เชฌเชซเชฐเชฐ), เชเซ เชเซเชฏเซเชชเชฒเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชธเชฎเชธเซเชฏเชพเชจเซ เชนเชฒ เชเชฐเซ เชเซ.
เชฌเชซเชฐเชพเชเชเชฐ (MSBufferizer)
เช เชเช เชเชฌเซเชเซเชเซเช เชเซ เชเซ เชซเชฟเชฒเซเชเชฐเชจเซ เช
เชเชฆเชฐ เชเชจเชชเซเช เชกเซเชเชพ เชเชเช เชพ เชเชฐเชถเซ เช
เชจเซ เชซเชฟเชฒเซเชเชฐ เช
เชฒเซเชเซเชฐเชฟเชงเชฎ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชคเซ เชฎเชพเชนเชฟเชคเซเชจเซ เชฎเชพเชคเซเชฐเชพ เชนเซเชฏ เชคเซเชเชฒเซ เชเชฒเซเชฆเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชฎเชพเชเซ เชคเซเชจเซ เชธเชฌเชฎเชฟเช เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเชถเซ. เชเซเชฏเชพเชฐเซ เชฌเชซเชฐ เชกเซเชเชพ เชเชเช เซเช เชเชฐเซ เชฐเชนเซเชฏเซเช เชนเซเชฏ, เชคเซเชฏเชพเชฐเซ เชซเชฟเชฒเซเชเชฐ เชชเซเชฐเซเชธเซเชธเชฐเชจเซ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชชเชพเชตเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ, เชจเชฟเชทเซเชเซเชฐเชฟเชฏ เชฎเซเชกเชฎเชพเช เชเชพเชฐเซเชฏ เชเชฐเชถเซ. เชชเชฐเชเชคเซ เชเชฒเชฆเซ เช เชฌเชซเชฐเชฐเชฎเชพเชเชฅเซ เชฐเซเชกเชฟเชเช เชซเชเชเซเชถเชจ เชถเซเชจเซเชฏ เชธเชฟเชตเชพเชฏเชจเซเช เชฎเซเชฒเซเชฏ เชชเชฐเชค เชเชฐเซ เชเซ, เชซเชฟเชฒเซเชเชฐเชจเซเช เชชเซเชฐเซเชธเซเชธ() เชซเชเชเซเชถเชจ เชฌเชซเชฐเชฐ เชชเชพเชธเซเชฅเซ เชเชฐเซเชฐเซ เชเชฆเชจเชพ เชญเชพเชเซเชฎเชพเช เชกเซเชเชพ เชฒเซเชตเชพเชจเซเช เช
เชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ, เชเซเชฏเชพเช เชธเซเชงเซ เชคเซ เชธเชฎเชพเชชเซเชค เชจ เชฅเชพเชฏ.
เชกเซเชเชพ เชเซ เชเซ เชนเชเซ เชธเซเชงเซ เชเชฐเซเชฐเซ เชจเชฅเซ เชคเซ เชเซเชฏเซเชชเชฒเชจเชพ เชชเซเชฐเชฅเชฎ เชคเชคเซเชต เชคเชฐเซเชเซ เชฌเชซเชฐเชฎเชพเช เชฐเชนเซ เชเซ, เชเซเชจเซ เชธเชพเชฅเซ เชเชจเชชเซเช เชกเซเชเชพเชจเชพ เช
เชจเซเชเชพเชฎเซ เชฌเซเชฒเซเชเซเชธ เชเซเชกเชพเชฏเซเชฒเชพ เชเซ.
เชฎเชพเชณเชเซเช เชเซ เชฌเชซเชฐเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซ เชเซ:
struct _MSBufferizer{
queue_t q; /* ะัะตัะตะดั ัะพะพะฑัะตะฝะธะน. */
int size; /* ะกัะผะผะฐัะฝัะน ัะฐะทะผะตั ะดะฐะฝะฝัั
ะฝะฐั
ะพะดััะธั
ัั ะฒ ะฑััะตัะธะทะฐัะพัะต ะฒ ะดะฐะฝะฝัะน ะผะพะผะตะฝั. */
};
typedef struct _MSBufferizer MSBufferizer;
MSBufferizer เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชเชพเชฐเซเชฏเซ
เชจเชตเซ เชฌเชซเชฐ เชฆเชพเชเชฒเซ เชฌเชจเชพเชตเซ เชฐเชนเซเชฏเชพ เชเซ:
MSBufferizer * ms_bufferizer_new(void);
เชฎเซเชฎเชฐเซ เชซเชพเชณเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชฎเชพเช เชชเซเชฐเชพเชฐเชเชญ เชฅเชพเชฏ เชเซ ms_buferizer_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_buferizer_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