]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netat/adsp_Control.c
xnu-1228.15.4.tar.gz
[apple/xnu.git] / bsd / netat / adsp_Control.c
index c802c837d8be61569a57b7dfb179c634d6860fac..040683e0b5891bebb05b913bab3c53aaed3aa695 100644 (file)
@@ -65,6 +65,8 @@
 
 int adsp_window = 1;
 
+int attachData(CCBPtr, gbuf_t *mp);
+
 /*
  * CalcRecvWdw
  *
@@ -81,7 +83,7 @@ int CalcRecvWdw(sp)           /* (CCBPtr sp) */
     bytes = calcRecvQ(sp);
     bytes = sp->rbuflen - bytes; /* get what is left */
 
-    if (bytes <= 16) {         /* %%% this should be zero */
+    if ((bytes <= 16)) {               /* %%% this should be zero */
        sp->rbufFull = 1;       /* Save flag that our recv buf is full */
        return 0;
     }
@@ -89,6 +91,7 @@ int CalcRecvWdw(sp)           /* (CCBPtr sp) */
        return ((bytes+bytes+bytes) >> 2) + 1; /* %%% */
 }
 
+int
 calcRecvQ(sp)
     CCBPtr sp;
 {
@@ -104,13 +107,13 @@ calcRecvQ(sp)
     register gbuf_t *mb;
 
     if (sp->rData) {           /* There is data in buffer */
-       if (mb = sp->rbuf_mb) {
+       if ((mb = sp->rbuf_mb)) {
            do {
                bytes += gbuf_msgsize(mb);
                mb = gbuf_next(mb);
            } while (mb);
        }
-       if (mb = sp->crbuf_mb)
+       if ((mb = sp->crbuf_mb))
            bytes += gbuf_msgsize(mb);
     }
 #endif
@@ -135,7 +138,6 @@ void CheckSend(sp)          /* (CCBPtr sp) */
 {
     int i;
     int        attnMsg;                /* True if attention message */
-    int        s;
     register gbuf_t *mp;       /* send message block */
 #ifdef notdef
     register gbuf_t *tmp;
@@ -145,7 +147,7 @@ void CheckSend(sp)          /* (CCBPtr sp) */
     int use_attention_code;
     int len;                   /* length used in allocd mblk */
     int datalen;               /* amount of data attached to mblk */
-    gbuf_t *mprev, *mlist = 0;
+    gbuf_t *mprev = 0, *mlist = 0;
 
 top:
 
@@ -161,7 +163,6 @@ top:
                gbuf_freel(mlist);
        return;         /* can't get buffers... do nothing! */
     }
-    ATDISABLE(s, sp->lock);
     sp->callSend = 0;          /* Clear flag */
     use_attention_code = 0;
     len = 0;
@@ -182,24 +183,24 @@ top:
 
            /* point past ADSP header (no attention) */
            dp = ((char *) gbuf_wptr(mp)) + ADSP_FRAME_LEN; 
-           UAL_ASSIGN(sp->f.pktFirstByteSeq, netdw(sp->firstRtmtSeq));
+           UAL_ASSIGN_HTON(sp->f.pktFirstByteSeq, sp->firstRtmtSeq);
            
-           UAS_ASSIGN(sp->of.version, netw(0x0100)); /* Fill in open connection parms */
-           UAS_ASSIGN(sp->of.dstCID, sp->remCID);      /* Destination CID */
-           UAL_ASSIGN(sp->of.pktAttnRecvSeq, netdw(sp->attnRecvSeq));
+           UAS_ASSIGN_HTON(sp->of.version, netw(0x0100)); /* Fill in open connection parms */
+           UAS_ASSIGN_HTON(sp->of.dstCID, sp->remCID); /* Destination CID */
+           UAL_ASSIGN_HTON(sp->of.pktAttnRecvSeq, sp->attnRecvSeq);
            bcopy((caddr_t) &sp->of, (caddr_t) dp, ADSP_OPEN_FRAME_LEN);
            len += ADSP_OPEN_FRAME_LEN;
 
            if (i & B_CTL_OREQ) {
-               UAS_ASSIGN(sp->f.CID, sp->locCID);
+               UAS_ASSIGN_HTON(sp->f.CID, sp->locCID);
                mask = B_CTL_OREQ;
                sp->f.descriptor = ADSP_CONTROL_BIT | ADSP_CTL_OREQ;
            } else if (i & B_CTL_OACK) {
-               UAS_ASSIGN(sp->f.CID, sp->locCID);
+               UAS_ASSIGN_HTON(sp->f.CID, sp->locCID);
                mask = B_CTL_OACK;
                sp->f.descriptor = ADSP_CONTROL_BIT | ADSP_CTL_OACK;
            } else if (i & B_CTL_OREQACK) {
-               UAS_ASSIGN(sp->f.CID, sp->locCID);
+               UAS_ASSIGN_HTON(sp->f.CID, sp->locCID);
                mask = B_CTL_OREQACK;
                sp->f.descriptor = ADSP_CONTROL_BIT | ADSP_CTL_OREQACK;
            } else              /* Deny */
@@ -225,7 +226,7 @@ top:
            }
        } else {
            /* seq # of next byte to send */
-           UAL_ASSIGN(sp->f.pktFirstByteSeq, netdw(sp->sendSeq));      
+           UAL_ASSIGN_HTON(sp->f.pktFirstByteSeq, sp->sendSeq);        
                        
            if (i & B_CTL_CLOSE) {
                sp->state = sClosed; /* Now we're closed */
@@ -299,12 +300,12 @@ top:
                                            * in a row. */
     {
        attnMsg = 0;
-       if (datalen = attachData(sp, mp)) /* attach data to mp */
+       if ((datalen = attachData(sp, mp))) /* attach data to mp */
            goto sendit;        /* if successful, sendit */
     }
 
     if (sp->sendDataAck) {
-       UAL_ASSIGN(sp->f.pktFirstByteSeq, netdw(sp->sendSeq)); /* seq # of next byte */
+       UAL_ASSIGN_HTON(sp->f.pktFirstByteSeq, sp->sendSeq); /* seq # of next byte */
        attnMsg = 0;
        sp->f.descriptor = ADSP_CONTROL_BIT;
        goto sendit;
@@ -315,7 +316,6 @@ top:
      */
     if (mp)
        gbuf_freem(mp);
-    ATENABLE(s, sp->lock);
     if (mlist)
        adsp_sendddp(sp, mlist, 0, &sp->remoteAddress, DDP_ADSP);
     return;
@@ -323,13 +323,13 @@ top:
 sendit:
 
     if (attnMsg) {
-       UAL_ASSIGN(sp->f.pktFirstByteSeq, netdw(sp->attnSendSeq));
-       UAL_ASSIGN(sp->f.pktNextRecvSeq, netdw(sp->attnRecvSeq));
+       UAL_ASSIGN_HTON(sp->f.pktFirstByteSeq, sp->attnSendSeq);
+       UAL_ASSIGN_HTON(sp->f.pktNextRecvSeq, sp->attnRecvSeq);
        UAS_ASSIGN(sp->f.pktRecvWdw, 0);        /* Always zero in attn pkt */
     } else {
        sp->sendDataAck = 0;
-       UAL_ASSIGN(sp->f.pktNextRecvSeq, netdw(sp->recvSeq));
-       UAS_ASSIGN(sp->f.pktRecvWdw, netw(CalcRecvWdw(sp)));
+       UAL_ASSIGN_HTON(sp->f.pktNextRecvSeq, sp->recvSeq);
+       UAS_ASSIGN_HTON(sp->f.pktRecvWdw, CalcRecvWdw(sp));
     }
     if (use_attention_code) {
        bcopy((caddr_t) &sp->f, (caddr_t) gbuf_wptr(mp), ADSP_FRAME_LEN + 2);
@@ -347,12 +347,10 @@ sendit:
 
     if (sp->state == sClosed) {        /* must have sent a close advice */
                                /* send header + data */
-       ATENABLE(s, sp->lock);
        adsp_sendddp(sp, mlist, 0, &sp->remoteAddress, DDP_ADSP);
        DoClose(sp, 0, -1);     /* complete close! */
        return;
     }
-    ATENABLE(s, sp->lock);
     if (sp->state == sClosing) /* See if we were waiting on this write */
        CheckOkToClose(sp);
     goto top;
@@ -380,6 +378,8 @@ void completepb(sp, pb)
        gbuf_freem(pb->mp);
 }
 
+
+int
 attachData(sp, mp)
     register CCBPtr sp;
     register gbuf_t *mp;
@@ -407,11 +407,11 @@ attachData(sp, mp)
      * The easiest fix to this timing dilemma seems to be to reset 
      * sendSeq to first Rtmt Seq if we're sending the first packet.
      */
-    UAL_ASSIGN(sp->f.pktFirstByteSeq, netdw(sp->sendSeq));
+    UAL_ASSIGN_HTON(sp->f.pktFirstByteSeq, sp->sendSeq);
                
-    if (smp = sp->sbuf_mb) /* Get oldest header */
+    if ((smp = sp->sbuf_mb)) /* Get oldest header */
        eom = 1;
-    else if (smp = sp->csbuf_mb)
+    else if ((smp = sp->csbuf_mb))
        eom = 0;
 
     if (smp == 0) {            /* this shouldn't happen... */