#define RXBUF_SIZE 512
struct serial_dev*
-serial_create()
+serial_create(struct devclass* class)
{
struct serial_dev* sdev = valloc(sizeof(struct serial_dev));
- struct device* dev = device_addseq(NULL, sdev, "ttyS%d", serial_idx++);
+ struct device* dev =
+ device_addseq(NULL, class, sdev, "ttyS%d", serial_idx++);
dev->ops.read = __serial_read;
dev->ops.read_page = __serial_read_page;
dev->ops.write = __serial_write;
sdev->dev = dev;
dev->underlay = sdev;
+ waitq_init(&sdev->wq_rxdone);
+ waitq_init(&sdev->wq_txdone);
fifo_init(&sdev->rxbuf, valloc(RXBUF_SIZE), RXBUF_SIZE, 0);
llist_append(&serial_devs, &sdev->sdev_list);
// llist_init_head(&sdev->cmds);