tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
USB output in ucom
Hello
I am still working on ucom console. My first cn_putc used ucomwrite(),
but it always hung after reaching multi-user. I suspect a locking problem.
Another approach is to use USB transfers directly, bypassing a lot of
code in ucom.c, tty.c and tty_subr.c. I try this:
error = usbd_create_xfer(sc->sc_bulkout_pipe,
sc->sc_obufsize, USBD_SYNCHRONOUS, 0,
&ucomcons_xfer_out);
u_char *data = usbd_get_buffer(ucomcons_xfer_out;
u_char *buf = __UNCONST("hello world!\nxxx\n");
int cnt = 13;;
if (sc->sc_methods->ucom_write != NULL)
sc->sc_methods->ucom_write(sc->sc_parent, sc->sc_portno,
data, buf, &cnt);
else
memcpy(data, buf, cnt);
usbd_setup_xfer(ucomcons_xfer_out, sc, data, cnt,
0, USBD_NO_TIMEOUT, NULL /* no cb */);
usbd_transfer(ucomcons_xfer_out);
This actually output "ollow world!" on the serial line. How does the
"he" turns into a "o"? Is there a header to add, or some control characters
to insert?
--
Emmanuel Dreyfus
manu%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index