Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ukyopon(4) [netbsd man page]

UKYOPON(4)						   BSD Kernel Interfaces Manual 						UKYOPON(4)

NAME
ukyopon -- Kyocera AIR-EDGE PHONE support SYNOPSIS
ukyopon* at uhub? ucom* at ukyopon? portno ? #include <dev/usb/ukyopon.h> DESCRIPTION
The ukyopon driver provides support for Kyocera AIR-EDGE PHONE AH-K3001V. Two units of this driver attach to an AIR-EDGE PHONE: the modem port and the data transfer port. The modem port is compatible to umodem(4), and can be used for dialup connections. The data transfer port is for reading and writing internal storage of AIR-EDGE PHONE. Both devices are accessed through the ucom(4) driver which makes them behave like a tty(4). The manipulation of the internal storage is through external programs, for example, the pkgsrc/comms/kyopon package. IOCTLS
The following ioctl(2) calls apply to the ukyopon device: UKYOPON_IDENTIFY struct ukyopon_identify Read, from the kernel, the identification information of the device, useful to assure that the opened device node is a modem or a data transfer port of ukyopon device. struct ukyopon_identify { char ui_name[16]; /* driver name */ int ui_busno; /* usb bus number */ uint8_t ui_address; /* device address */ enum ukyopon_model { UKYOPON_MODEL_UNKNOWN } ui_model; /* possibly future use */ enum ukyopon_port { UKYOPON_PORT_UNKNOWN, UKYOPON_PORT_MODEM, /* modem port */ UKYOPON_PORT_DATA /* data transfer port */ } ui_porttype; /* port type */ int ui_rsvd1, ui_rsvd2; }; #define UKYOPON_NAME "ukyopon" The ui_name field contains the driver signature, and has the string UKYOPON_NAME. The ui_busno field contains the usb(4) bus number to which the device is connected; the ui_address field contains the address of the device in the bus. These fields are useful to identify the physical device from the file descriptor. The ui_porttype field contains the type of device: UKYOPON_PORT_MODEM means the device is associated to the modem port, and UKYOPON_PORT_DATA means the device is associated to the data transfer port. Other fields are reserved for future extension and cleared to zeros. In addition, ukyopon devices accept all ioctl(2) calls that umodem(4) accepts. SEE ALSO
tty(4), ucom(4), umodem(4), usb(4), pkgsrc/comms/kyopon HISTORY
The ukyopon driver appeared in NetBSD 3.0. NOTES
``Kyopon'' is a widely-used nickname of Kyocera AIR-EDGE PHONE. BSD
May 18, 2005 BSD

Check Out this Related Man Page

UCOM(9) 						   BSD Kernel Developer's Manual						   UCOM(9)

NAME
ucom -- interface for USB tty like devices DESCRIPTION
The ucom driver is a (relatively) easy way to make a USB device look like a tty(4). It basically takes two bulk pipes, input and output, and makes a tty out of them. This is useful for a number of device types, e.g., serial ports (see uftdi(4)), modems (see umodem(4)), and devices that traditionally look like a tty (see uvisor(4)). Communication between the real driver and the ucom driver is via the attachment arguments (when attached) and via the ucom_methods struct ATTACHMENT
struct ucom_attach_args { int portno; int bulkin; int bulkout; u_int ibufsize; u_int ibufsizepad; u_int obufsize; u_int obufsizepad; usbd_device_handle device; usbd_interface_handle iface; struct ucom_methods *methods; void *arg; }; int portno identifies the port if the devices should have more than one ucom attached. Use the value UCOM_UNK_PORTNO if there is only one port. int bulkin the number of the bulk input pipe. int bulkout the number of the bulk output pipe. u_int ibufsize the size of the read requests on the bulk in pipe. u_int ibufsizepad the size of the input buffer. This is usually the same as ibufsize. u_int obufsize the size of the write requests on the bulk out pipe. u_int ibufsizepad the size of the output buffer. This is usually the same as obufsize. usbd_device_handle device a handle to the device. usbd_interface_handle iface a handle to the interface that should be used. struct ucom_methods *methods a pointer to the methods that the ucom driver should use for further communication with the driver. void *arg the value that should be passed as first argument to each method. METHODS
The ucom_methods struct contains a number of function pointers used by the ucom driver at various stages. If the device is not interested in being called at a particular point it should just use a NULL pointer and the ucom driver will use a sensible default. struct ucom_methods { void (*ucom_get_status)(void *sc, int portno, u_char *lsr, u_char *msr); void (*ucom_set)(void *sc, int portno, int reg, int onoff); #define UCOM_SET_DTR 1 #define UCOM_SET_RTS 2 #define UCOM_SET_BREAK 3 int (*ucom_param)(void *sc, int portno, struct termios *); int (*ucom_ioctl)(void *sc, int portno, u_long cmd, void *data, int flag, struct lwp *l); int (*ucom_open)(void *sc, int portno); void (*ucom_close)(void *sc, int portno); void (*ucom_read)(void *sc, int portno, u_char **ptr, uint32_t *count); void (*ucom_write)(void *sc, int portno, u_char *to, u_char *from, uint32_t *count); }; void (*ucom_get_status)(void *sc, int portno, u_char *lsr, u_char *msr) get the status of port portno. The status consists of the line status, lsr, and the modem status msr. The contents of these two bytes is exactly as for a 16550 UART. void (*ucom_set)(void *sc, int portno, int reg, int onoff) Set (or unset) a particular feature of a port. int (*ucom_param)(void *sc, int portno, struct termios *t) Set the speed, number of data bit, stop bits, and parity of a port according to the termios(4) struct. int (*ucom_ioctl)(void *sc, int portno, u_long cmd, void *data, int flag, struct lwp *l) implements any non-standard ioctl(2) that a device needs. int (*ucom_open)(void *sc, int portno) called just before the ucom driver opens the bulk pipes for the port. void (*ucom_close)(void *sc, int portno) called just after the ucom driver closes the bulk pipes for the port. void (*ucom_read)(void *sc, int portno, u_char **ptr, uint32_t *count) if the data delivered on the bulk pipe is not just the raw input characters this routine needs to adjust ptr and count so that they tell where to find the given number of raw characters. void (*ucom_write)(void *sc, int portno, u_char *dst, u_char *src, uint32_t *count) if the data written to the bulk pipe is not just the raw characters then this routine needs to copy count raw characters from src into the buffer at dst and do the appropriate padding. The count should be updated to the new size. The buffer at src is at most ibufsize bytes and the buffer at dst is ibufsizepad bytes. Apart from these methods there is a function void ucom_status_change(struct ucom_softc *) which should be called by the driver whenever it notices a status change. SEE ALSO
tty(4), uftdi(4), umodem(4), usb(4), uvisor(4) HISTORY
This ucom interface first appeared in NetBSD 1.5. BSD
December 20, 2005 BSD
Man Page