Submitted by: Hans Petter Selasky <hselasky@c2i.net>

Remove double 0x7e flags between hdlc-frames.
This commit is contained in:
Hellmuth Michaelis 2000-10-20 11:20:58 +00:00
parent 8de38d83a3
commit 1c2715d95d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=67371
2 changed files with 33 additions and 17 deletions

View file

@ -33,6 +33,11 @@
*
* last edit-date: [Wed Jul 19 09:41:13 2000]
*
* NOTE:
* - October 19th: made minor changes to HDLC_ENCODE macro
* Please conform "ihfc/i4b_ihfc_drv.c" (ihfc_hdlc_Bwrite)
* for correct usage! (-hp)
*
*---------------------------------------------------------------------------*/
#ifndef _I4B_HDLC_H_
@ -309,24 +314,27 @@ const u_short HDLC_BIT_TAB[256] = { 0x0100,
tmp2 = 0x7e; \
goto j3##d; \
case 3: /* get new frame */ \
flag--; \
gfrcmd; \
flag++; \
crc = -1; \
ib = 0; \
if (!len--) { len++; flag++; goto j0##d; } \
goto j1##d; /* first byte */ \
if (!len--) \
{ \
len++; \
flag--; /* don't proceed */ \
tmp2 = 0x7e; \
goto j3##d; /* final FS */ \
} \
else \
{ \
crc = -1; \
ib = 0; \
goto j1##d; /* first byte */ \
} \
case 4: /* CRC (lsb's) */ \
j0##d: \
crc ^= -1; \
case 5: /* CRC (msb's) */ \
tmp2 = (u_char)crc; \
crc >>= 8; \
flag = 1; \
goto j2##d; /* CRC stuff */ \
case 6: /* frame done */ \
tmp2 = 0x7e; /* end FS */ \
flag = 1; \
goto j3##d; \
} \
} \
else \

View file

@ -233,8 +233,9 @@ ihfc_control(ihfc_sc_t *sc, int flag)
else
{
S_SCTRL &= ~0x04; /* TE mode */
S_STDEL &= 0x7f; /* use mask! */
S_CLKDEL &= ~0x7f; /* clear delay */
S_CLKDEL |= S_STDEL; /* set delay */
S_CLKDEL |= S_STDEL; /* set delay */
}
if (S_DLP) /* configure D-priority */
{
@ -1419,10 +1420,18 @@ ihfc_hdlc_Bwrite (ihfc_sc_t *sc, u_char chan)
i4b_Bfreembuf(S_MBUF);
S_MBUF = ihfc_getmbuf(sc, chan);
if (!S_MBUF) goto d0;
src = S_MBUFDATA;
len = S_MBUFLEN;
if (S_MBUF)
{
src = S_MBUFDATA;
len = S_MBUFLEN;
}
else
{
sendlen = 0; /* Exit after final FS, *
* else the buffer will *
* only be filled with *
* "0x7e"-bytes! */
}
},
{/* wrd */
@ -1437,7 +1446,6 @@ ihfc_hdlc_Bwrite (ihfc_sc_t *sc, u_char chan)
S_MBUFLEN = len;
}
d0:
S_HDLC_IB = ib;
S_HDLC_BLEVEL = blevel;
S_HDLC_TMP = tmp;