Deleted Added
full compact
fwdev.c (111615) fwdev.c (111748)
1/*
2 * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
29 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 *
1/*
2 * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
29 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 *
33 * $FreeBSD: head/sys/dev/firewire/fwdev.c 111615 2003-02-27 12:51:24Z simokawa $
33 * $FreeBSD: head/sys/dev/firewire/fwdev.c 111748 2003-03-02 16:54:40Z des $
34 *
35 */
36
37#include <sys/param.h>
38#include <sys/systm.h>
39#include <sys/types.h>
40#include <sys/mbuf.h>
41

--- 206 unchanged lines hidden (view full) ---

248 slept = 1;
249 if ((ir->flag & FWXFERQ_RUNNING) == 0
250 && (ir->flag & FWXFERQ_PACKET)) {
251 err = sc->fc->irx_enable(sc->fc, sub);
252 if (err)
253 return err;
254 }
255 ir->flag |= FWXFERQ_WAKEUP;
34 *
35 */
36
37#include <sys/param.h>
38#include <sys/systm.h>
39#include <sys/types.h>
40#include <sys/mbuf.h>
41

--- 206 unchanged lines hidden (view full) ---

248 slept = 1;
249 if ((ir->flag & FWXFERQ_RUNNING) == 0
250 && (ir->flag & FWXFERQ_PACKET)) {
251 err = sc->fc->irx_enable(sc->fc, sub);
252 if (err)
253 return err;
254 }
255 ir->flag |= FWXFERQ_WAKEUP;
256 err = tsleep((caddr_t)ir, FWPRI, "fw_read", hz);
256 err = tsleep(ir, FWPRI, "fw_read", hz);
257 ir->flag &= ~FWXFERQ_WAKEUP;
258 if (err == 0)
259 goto readloop;
260 } else if (slept == 1)
261 err = EIO;
262 return err;
263 } else if(xfer != NULL) {
264 /* per packet mode */

--- 105 unchanged lines hidden (view full) ---

370 STAILQ_REMOVE_HEAD(&it->stfree, link);
371 splx(s);
372 it->queued = 0;
373 } else if (slept == 0) {
374 slept = 1;
375 err = sc->fc->itx_enable(sc->fc, sub);
376 if (err)
377 return err;
257 ir->flag &= ~FWXFERQ_WAKEUP;
258 if (err == 0)
259 goto readloop;
260 } else if (slept == 1)
261 err = EIO;
262 return err;
263 } else if(xfer != NULL) {
264 /* per packet mode */

--- 105 unchanged lines hidden (view full) ---

370 STAILQ_REMOVE_HEAD(&it->stfree, link);
371 splx(s);
372 it->queued = 0;
373 } else if (slept == 0) {
374 slept = 1;
375 err = sc->fc->itx_enable(sc->fc, sub);
376 if (err)
377 return err;
378 err = tsleep((caddr_t)it, FWPRI,
378 err = tsleep(it, FWPRI,
379 "fw_write", hz);
380 if (err)
381 return err;
382 goto isoloop;
383 } else {
384 err = EIO;
385 return err;
386 }

--- 28 unchanged lines hidden (view full) ---

415 splx(s);
416 it->dvptr = 0;
417 }else if(slept == 0){
418 slept = 1;
419 err = sc->fc->itx_enable(sc->fc, sub);
420 if(err){
421 return err;
422 }
379 "fw_write", hz);
380 if (err)
381 return err;
382 goto isoloop;
383 } else {
384 err = EIO;
385 return err;
386 }

--- 28 unchanged lines hidden (view full) ---

415 splx(s);
416 it->dvptr = 0;
417 }else if(slept == 0){
418 slept = 1;
419 err = sc->fc->itx_enable(sc->fc, sub);
420 if(err){
421 return err;
422 }
423 err = tsleep((caddr_t)it, FWPRI, "fw_write", hz);
423 err = tsleep(it, FWPRI, "fw_write", hz);
424 if(err){
425 return err;
426 }
427 goto dvloop;
428 }else{
429 err = EIO;
430 return err;
431 }

--- 66 unchanged lines hidden (view full) ---

498 fw_xfer_free( xfer);
499 return err;
500 }
501#if 0
502 fw_asystart(xfer);
503#else
504 fw_asyreq(fc, -1, xfer);
505#endif
424 if(err){
425 return err;
426 }
427 goto dvloop;
428 }else{
429 err = EIO;
430 return err;
431 }

--- 66 unchanged lines hidden (view full) ---

498 fw_xfer_free( xfer);
499 return err;
500 }
501#if 0
502 fw_asystart(xfer);
503#else
504 fw_asyreq(fc, -1, xfer);
505#endif
506 err = tsleep((caddr_t)xfer, FWPRI, "fw_write", hz);
506 err = tsleep(xfer, FWPRI, "fw_write", hz);
507 if(xfer->resp == EBUSY)
508 return EBUSY;
509 fw_xfer_free( xfer);
510 return err;
511 }
512 return EINVAL;
513}
514

--- 257 unchanged lines hidden (view full) ---

772 xfer->send.off = 0;
773 bcopy(fp, xfer->send.buf, xfer->send.len);
774 xfer->act.hand = fw_asy_callback;
775 err = fw_asyreq(sc->fc, sub, xfer);
776 if(err){
777 fw_xfer_free( xfer);
778 return err;
779 }
507 if(xfer->resp == EBUSY)
508 return EBUSY;
509 fw_xfer_free( xfer);
510 return err;
511 }
512 return EINVAL;
513}
514

--- 257 unchanged lines hidden (view full) ---

772 xfer->send.off = 0;
773 bcopy(fp, xfer->send.buf, xfer->send.len);
774 xfer->act.hand = fw_asy_callback;
775 err = fw_asyreq(sc->fc, sub, xfer);
776 if(err){
777 fw_xfer_free( xfer);
778 return err;
779 }
780 err = tsleep((caddr_t)xfer, FWPRI, "asyreq", hz);
780 err = tsleep(xfer, FWPRI, "asyreq", hz);
781 if(err == 0){
782 if(asyreq->req.len >= xfer->recv.len){
783 asyreq->req.len = xfer->recv.len;
784 }else{
785 err = EINVAL;
786 }
787 bcopy(xfer->recv.buf + xfer->recv.off, fp, asyreq->req.len);
788 }

--- 155 unchanged lines hidden ---
781 if(err == 0){
782 if(asyreq->req.len >= xfer->recv.len){
783 asyreq->req.len = xfer->recv.len;
784 }else{
785 err = EINVAL;
786 }
787 bcopy(xfer->recv.buf + xfer->recv.off, fp, asyreq->req.len);
788 }

--- 155 unchanged lines hidden ---