int main (int argc, char **argv) { struct uio_info_t *info_list, *p; program_name = argv[0]; decode_switches (argc, argv); if (opt_help) usage(0); if (opt_version) version(0); info_list = uio_find_devices(uio_filter); if (!info_list) printf("No UIO devices found.\n"); p = info_list; while (p) { uio_get_all_info(p); if (opt_verbose) uio_get_device_attributes(p); if (opt_mmap) uio_mmap_test(p); show_uio_info(p); p = p->next; } uio_free_info(info_list); exit (0); }
int main (int argc, char **argv) { struct uio_info_t *info_list, *p; program_name = argv[0]; decode_switches (argc, argv); if (uio_offset < 0) { fprintf(stderr, "Negative offsets are not supported.\n"); usage (-EINVAL); } if (opt_help) usage(0); if (opt_version) version(0); info_list = uio_find_devices(uio_filter); if (!info_list) printf("No UIO devices found.\n"); p = info_list; while (p) { char dev_name[16]; int fd; uio_get_all_info(p); uio_get_device_attributes(p); snprintf(dev_name,sizeof(dev_name),"/dev/uio%d",p->uio_num); fd = open(dev_name,O_RDWR); if (fd<0) { close(fd); p = p->next; continue; } uio_single_mmap(p,uio_map,fd); if (opt_read) uio_read(p); if (opt_write) uio_write(p); close(fd); p = p->next; } uio_free_info(info_list); exit (0); }