Lines Matching refs:port
26 grub_usbserial_fini (struct grub_serial_port *port)
28 port->usbdev->config[port->configno].interf[port->interfno].detach_hook = 0;
29 port->usbdev->config[port->configno].interf[port->interfno].attached = 0;
35 static struct grub_serial_port *port;
36 port = usbdev->config[configno].interf[interfno].detach_data;
38 grub_serial_unregister (port);
47 struct grub_serial_port *port;
54 port = grub_malloc (sizeof (*port));
55 if (!port)
61 port->name = grub_xasprintf ("usb%d", usbnum++);
62 if (!port->name)
64 grub_free (port);
69 port->usbdev = usbdev;
70 port->driver = driver;
79 port->in_endp = endp;
84 port->out_endp = endp;
89 if (port->out_endp && port->in_endp)
92 if (!port->out_endp || !port->in_endp || err)
94 grub_free (port->name);
95 grub_free (port);
99 port->configno = configno;
100 port->interfno = interfno;
102 grub_serial_config_defaults (port);
103 grub_serial_register (port);
105 port->usbdev->config[port->configno].interf[port->interfno].detach_hook
107 port->usbdev->config[port->configno].interf[port->interfno].detach_data
108 = port;
114 grub_usbserial_fetch (struct grub_serial_port *port, grub_size_t header_size)
119 if (port->bufstart < port->bufend)
120 return port->buf[port->bufstart++];
122 err = grub_usb_bulk_read_extended (port->usbdev, port->in_endp->endp_addr,
123 sizeof (port->buf), port->buf, 10,
128 port->bufstart = header_size;
129 port->bufend = actual;
130 if (port->bufstart >= port->bufend)
133 return port->buf[port->bufstart++];