#include #include #include #include #include #include #include #include #define log_ioctl(fd,op,arg) do_ioctl(fd,#op,op,arg) int do_ioctl (int fd, char *sop, int op, void *arg) { int ret; errno = 0; ret = ioctl (fd, op, arg); printf ("ioctl(%d,%s(0x%x),%p)=%d (errno=%d(%s))\n", fd, sop, op, arg, ret, errno, strerror (errno)); return ret; } int main (int argc, char *argv[]) { struct cp210x_port_config config; int fd = open (argv[1], O_RDWR); memset (&config, 0, sizeof (config)); log_ioctl (fd, CPIOC_PORTCONFGET, &config); printf ("reset=(%x,%x,%x), suspend=(%x,%x,%x), enhanced_fxn=%x\n", config.reset.mode, config.reset.low_power, config.reset.latch, config.suspend.mode, config.suspend.low_power, config.suspend.latch, config.enhanced_fxn); }