这篇教程C++ udev_new函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中udev_new函数的典型用法代码示例。如果您正苦于以下问题:C++ udev_new函数的具体用法?C++ udev_new怎么用?C++ udev_new使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了udev_new函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: pup_cd_drive_get_all//Search for all optical drivesvoid pup_cd_drive_get_all(PupVMMonitor *monitor){ GDir *block_dir; GError *error = NULL; g_debug("Init time scanning"); block_dir = g_dir_open("/sys/block", 0, &error); if (error) { g_critical("Couldn't open /sys/block: %s", error->message); g_clear_error(&error); } struct udev *udev_ctx = udev_new(); gchar *one_sysname; while ((one_sysname = (gchar *) g_dir_read_name(block_dir))) { struct udev_device *dev = udev_device_new_from_subsystem_sysname (udev_ctx, "block", one_sysname); if (dev) { g_debug("Testing %s", one_sysname); if (pup_drive_test_optical(dev)) { g_debug("Success, now adding to monitor"); pup_cd_drive_new_from_udev_device(monitor, dev); } udev_device_unref(dev); } } udev_unref(udev_ctx); g_dir_close(block_dir);}
开发者ID:Jubei-Mitsuyoshi,项目名称:aaa-pup-volume-monitor,代码行数:34,
示例2: linux_udev_start_event_monitorint linux_udev_start_event_monitor(void){ int r; assert(udev_ctx == NULL); udev_ctx = udev_new(); if (!udev_ctx) { usbi_err(NULL, "could not create udev context"); return LIBUSB_ERROR_OTHER; } udev_monitor = udev_monitor_new_from_netlink(udev_ctx, "udev"); if (!udev_monitor) { usbi_err(NULL, "could not initialize udev monitor"); goto err_free_ctx; } r = udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "usb", 0); if (r) { usbi_err(NULL, "could not initialize udev monitor filter for /"usb/" subsystem"); goto err_free_monitor; } if (udev_monitor_enable_receiving(udev_monitor)) { usbi_err(NULL, "failed to enable the udev monitor"); goto err_free_monitor; } udev_monitor_fd = udev_monitor_get_fd(udev_monitor); /* Some older versions of udev are not non-blocking by default, * so make sure this is set */ r = fcntl(udev_monitor_fd, F_GETFL); if (r == -1) { usbi_err(NULL, "getting udev monitor fd flags (%d)", errno); goto err_free_monitor; } r = fcntl(udev_monitor_fd, F_SETFL, r | O_NONBLOCK); if (r) { usbi_err(NULL, "setting udev monitor fd flags (%d)", errno); goto err_free_monitor; } r = pthread_create(&linux_event_thread, NULL, linux_udev_event_thread_main, NULL); if (r) { usbi_err(NULL, "creating hotplug event thread (%d)", r); goto err_free_monitor; } return LIBUSB_SUCCESS;err_free_monitor: udev_monitor_unref(udev_monitor); udev_monitor = NULL; udev_monitor_fd = -1;err_free_ctx: udev_unref(udev_ctx); udev_ctx = NULL; return LIBUSB_ERROR_OTHER;}
开发者ID:TaoheGit,项目名称:hmi_sdl_android,代码行数:60,
示例3: rw_udev_handle_initrw_udev_handle_t*rw_udev_handle_init(void *userdata, rw_udev_cb_t cb){ rw_udev_handle_t *handle; handle = RW_MALLOC0(sizeof(*handle)); RW_SKLIST_PARAMS_DECL(pci_list1_, rw_pci_device_t, pci, rw_pci_address_cmp, element); RW_SKLIST_INIT(&(handle->dev_list),&pci_list1_); handle->udev = udev_new(); if (!handle->udev) { goto free_and_ret; } if (cb){ rw_udev_register_cb(handle, userdata, cb); }ret: return handle; free_and_ret: if (handle->udev){ udev_unref(handle->udev); handle->udev = NULL; } RW_FREE(handle); handle = NULL; goto ret;}
开发者ID:RIFTIO,项目名称:RIFT.ware,代码行数:35,
示例4: QObjectUdevNotifier::UdevNotifier(QString const & subsystem, QObject * parent/* = nullptr*/) : QObject(parent) , d(new Impl){ d->udev = udev_new(); d->monitor = udev_monitor_new_from_netlink(d->udev, "udev"); if (nullptr == d->monitor) { qWarning() << QStringLiteral("UdevNotifier: unable to initialize udev_monitor, monitoring will be disabled"); return; } int ret = udev_monitor_filter_add_match_subsystem_devtype(d->monitor, subsystem.toUtf8().constData(), nullptr); if (0 != ret) qWarning() << QStringLiteral("UdevNotifier: unable to add match subsystem, monitor will receive all devices"); ret = udev_monitor_enable_receiving(d->monitor); if (0 != ret) { qWarning() << QStringLiteral("UdevNotifier: unable to enable receiving(%1), monitoring will be disabled").arg(ret); return; } d->notifier.reset(new QSocketNotifier(udev_monitor_get_fd(d->monitor), QSocketNotifier::Read)); connect(d->notifier.data(), &QSocketNotifier::activated, this, &UdevNotifier::eventReady); d->notifier->setEnabled(true);}
开发者ID:Ilya87,项目名称:lxqt-session,代码行数:27,
示例5: apply_acl_to_devices/* add or remove a ACL for a given uid from all matching devices */static void apply_acl_to_devices(uid_t uid, int add){ struct udev *udev; struct udev_enumerate *enumerate; struct udev_list_entry *list_entry; /* iterate over all devices tagged with ACL_SET */ udev = udev_new(); enumerate = udev_enumerate_new(udev); udev_enumerate_add_match_tag(enumerate, "udev-acl"); udev_enumerate_scan_devices(enumerate); udev_list_entry_foreach(list_entry, udev_enumerate_get_list_entry(enumerate)) { struct udev_device *device; const char *node; device = udev_device_new_from_syspath(udev_enumerate_get_udev(enumerate), udev_list_entry_get_name(list_entry)); if (device == NULL) continue; node = udev_device_get_devnode(device); if (node == NULL) { udev_device_unref(device); continue; } set_facl(node, uid, add); udev_device_unref(device); } udev_enumerate_unref(enumerate); udev_unref(udev);}
开发者ID:SaschaMester,项目名称:devuan-udev,代码行数:31,
示例6: vlc_sd_probe_Openstatic int vlc_sd_probe_Open (vlc_object_t *obj){ vlc_probe_t *probe = (vlc_probe_t *)obj; struct udev *udev = udev_new (); if (udev == NULL) return VLC_PROBE_CONTINUE; struct udev_monitor *mon = udev_monitor_new_from_netlink (udev, "udev"); if (mon != NULL) { vlc_sd_probe_Add (probe, "v4l{longname=/"Video capture/"}", N_("Video capture"), SD_CAT_DEVICES);#ifdef HAVE_ALSA if (!module_exists ("pulselist")) vlc_sd_probe_Add (probe, "alsa{longname=/"Audio capture/"}", N_("Audio capture"), SD_CAT_DEVICES);#endif vlc_sd_probe_Add (probe, "disc{longname=/"Discs/"}", N_("Discs"), SD_CAT_DEVICES); udev_monitor_unref (mon); } udev_unref (udev); return VLC_PROBE_CONTINUE;}
开发者ID:Aakash-729,项目名称:vlc,代码行数:25,
示例7: loader_get_device_name_for_fdchar *loader_get_device_name_for_fd(int fd){ char *device_name = NULL;#ifdef HAVE_LIBUDEV struct udev *udev; struct udev_device *device; const char *const_device_name; UDEV_SYMBOL(struct udev *, udev_new, (void)); UDEV_SYMBOL(const char *, udev_device_get_devnode, (struct udev_device *)); UDEV_SYMBOL(struct udev_device *, udev_device_unref, (struct udev_device *)); UDEV_SYMBOL(struct udev *, udev_unref, (struct udev *)); udev = udev_new(); device = udev_device_new_from_fd(udev, fd); if (device == NULL) return NULL; const_device_name = udev_device_get_devnode(device); if (!const_device_name) goto out; device_name = strdup(const_device_name);out: udev_device_unref(device); udev_unref(udev);#endif return device_name;}
开发者ID:Sonicadvance1,项目名称:mesa,代码行数:31,
示例8: START_TESTEND_TESTSTART_TEST(udev_create_empty_seat){ struct libinput *li; struct libinput_event *event; struct udev *udev; int fd; udev = udev_new(); ck_assert(udev != NULL); /* expect a libinput reference, but no events */ li = libinput_create_from_udev(&simple_interface, NULL, udev, "seatdoesntexist"); ck_assert(li != NULL); fd = libinput_get_fd(li); ck_assert_int_ge(fd, 0); libinput_dispatch(li); event = libinput_get_event(li); ck_assert(event == NULL); libinput_event_destroy(event); libinput_destroy(li); udev_unref(udev);}
开发者ID:jadahl,项目名称:libinput,代码行数:27,
示例9: drm_get_device_namestatic char *drm_get_device_name(int fd){ char *device_name = NULL;#ifdef HAVE_LIBUDEV struct udev *udev; struct udev_device *device; struct stat buf; const char *tmp; udev = udev_new(); if (fstat(fd, &buf) < 0) { _eglLog(_EGL_WARNING, "failed to stat fd %d", fd); goto out; } device = udev_device_new_from_devnum(udev, 'c', buf.st_rdev); if (device == NULL) { _eglLog(_EGL_WARNING, "could not create udev device for fd %d", fd); goto out; } tmp = udev_device_get_devnode(device); if (!tmp) goto out; device_name = strdup(tmp);out: udev_device_unref(device); udev_unref(udev);#endif return device_name;}
开发者ID:ChillyWillyGuru,项目名称:RSXGL,代码行数:35,
示例10: mainint main(void) { _cleanup_manager_free_ Manager *manager = NULL; struct udev *udev; struct udev_device *loopback; assert_se(manager_new(&manager) >= 0); test_load_config(manager); udev = udev_new(); assert_se(udev); loopback = udev_device_new_from_syspath(udev, "/sys/class/net/lo"); assert_se(loopback); assert_se(udev_device_get_ifindex(loopback) == 1); test_network_get(manager, loopback); test_link(manager, loopback); assert_se(manager_udev_listen(manager) >= 0); assert_se(manager_udev_enumerate_links(manager) >= 0); assert_se(manager_rtnl_listen(manager) >= 0); udev_device_unref(loopback); udev_unref(udev);}
开发者ID:MOBO-OSS,项目名称:systemd-relative,代码行数:27,
示例11: sprintfchar *batocomp(const bdaddr_t *ba){ struct udev *udev; struct udev_hwdb *hwdb; struct udev_list_entry *head, *entry; char modalias[11], *comp = NULL; sprintf(modalias, "OUI:%2.2X%2.2X%2.2X", ba->b[5], ba->b[4], ba->b[3]); udev = udev_new(); if (!udev) return NULL; hwdb = udev_hwdb_new(udev); if (!hwdb) goto done; head = udev_hwdb_get_properties_list_entry(hwdb, modalias, 0); udev_list_entry_foreach(entry, head) { const char *name = udev_list_entry_get_name(entry); if (name && !strcmp(name, "ID_OUI_FROM_DATABASE")) { comp = strdup(udev_list_entry_get_value(entry)); break; } } hwdb = udev_hwdb_unref(hwdb);done: udev = udev_unref(udev); return comp;}
开发者ID:AlanApter,项目名称:steamlink-sdk,代码行数:35,
示例12: loopback_list_getstatic int loopback_list_get(MountPoint **head) { _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; struct udev_list_entry *item = NULL, *first = NULL; _cleanup_udev_unref_ struct udev *udev = NULL; int r; assert(head); udev = udev_new(); if (!udev) return -ENOMEM; e = udev_enumerate_new(udev); if (!e) return -ENOMEM; r = udev_enumerate_add_match_subsystem(e, "block"); if (r < 0) return r; r = udev_enumerate_add_match_sysname(e, "loop*"); if (r < 0) return r; r = udev_enumerate_add_match_sysattr(e, "loop/backing_file", NULL); if (r < 0) return r; r = udev_enumerate_scan_devices(e); if (r < 0) return r; first = udev_enumerate_get_list_entry(e); udev_list_entry_foreach(item, first) { MountPoint *lb; _cleanup_udev_device_unref_ struct udev_device *d; char *loop; const char *dn; d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)); if (!d) return -ENOMEM; dn = udev_device_get_devnode(d); if (!dn) continue; loop = strdup(dn); if (!loop) return -ENOMEM; lb = new0(MountPoint, 1); if (!lb) { free(loop); return -ENOMEM; } lb->path = loop; LIST_PREPEND(mount_point, *head, lb); }
开发者ID:nazgul77,项目名称:systemd,代码行数:60,
示例13: sixaxis_initstatic int sixaxis_init(void){ GIOChannel *channel; DBG(""); ctx = udev_new(); if (!ctx) return -EIO; monitor = udev_monitor_new_from_netlink(ctx, "udev"); if (!monitor) { udev_unref(ctx); ctx = NULL; return -EIO; } /* Listen for newly connected hidraw interfaces */ udev_monitor_filter_add_match_subsystem_devtype(monitor, "hidraw", NULL); udev_monitor_enable_receiving(monitor); channel = g_io_channel_unix_new(udev_monitor_get_fd(monitor)); watch_id = g_io_add_watch(channel, G_IO_IN, monitor_watch, NULL); g_io_channel_unref(channel); return 0;}
开发者ID:anupdw,项目名称:android-bluez.bluez,代码行数:29,
示例14: udev_newudev_handler::udev_handler() { udev = udev_new(); if (udev == nullptr) throw - 11; monitor = nullptr; monitor_thread = nullptr;}
开发者ID:rockfireredmoon,项目名称:MoltenGamepad,代码行数:7,
示例15: udevInterfaceOpenstatic virDrvOpenStatusudevInterfaceOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, unsigned int flags){ struct udev_iface_driver *driverState = NULL; virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR); if (VIR_ALLOC(driverState) < 0) goto cleanup; driverState->udev = udev_new(); if (!driverState->udev) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to create udev context")); goto cleanup; } conn->interfacePrivateData = driverState; return VIR_DRV_OPEN_SUCCESS; cleanup: VIR_FREE(driverState); return VIR_DRV_OPEN_ERROR;}
开发者ID:Thingee,项目名称:libvirt,代码行数:28,
示例16: dhcp_identifier_set_iaidint dhcp_identifier_set_iaid(int ifindex, uint8_t *mac, size_t mac_len, void *_id) {#if 0 /* NM_IGNORED */ /* name is a pointer to memory in the udev_device struct, so must have the same scope */ _cleanup_udev_device_unref_ struct udev_device *device = NULL;#else /* NM_IGNORED */ char name_buf[IF_NAMESIZE];#endif /* NM_IGNORED */ const char *name = NULL; uint64_t id;#if 0 /* NM_IGNORED */ if (detect_container() <= 0) { /* not in a container, udev will be around */ _cleanup_udev_unref_ struct udev *udev; char ifindex_str[2 + DECIMAL_STR_MAX(int)]; udev = udev_new(); if (!udev) return -ENOMEM; sprintf(ifindex_str, "n%d", ifindex); device = udev_device_new_from_device_id(udev, ifindex_str); if (device) { if (udev_device_get_is_initialized(device) <= 0) /* not yet ready */ return -EBUSY; name = net_get_name(device); } }
开发者ID:gunchleoc,项目名称:NetworkManager,代码行数:31,
示例17: fs_on_read_onlyint fs_on_read_only(const char *p) { struct stat st; struct udev *udev = NULL; struct udev_device *udev_device = NULL; bool b = false; const char *read_only; assert(p); if (stat(p, &st) < 0) return -errno; if (major(st.st_dev) == 0) return false; if (!(udev = udev_new())) return -ENOMEM; if (!(udev_device = udev_device_new_from_devnum(udev, 'b', st.st_dev))) goto finish; if ((read_only = udev_device_get_sysattr_value(udev_device, "ro"))) if ((b = streq(read_only, "1"))) goto finish;finish: if (udev_device) udev_device_unref(udev_device); if (udev) udev_unref(udev); return b;}
开发者ID:felipec,项目名称:udev-fc,代码行数:34,
示例18: udev_newQTM_BEGIN_NAMESPACEQUdevService::QUdevService(){ // NOTE: udev_new can fail, if we get a NULL pointer back, can't create udev context = udev_new();}
开发者ID:KDE,项目名称:android-qt-mobility,代码行数:7,
示例19: QOfonoWrappervoid QNetworkInfoPrivate::connectNotify(const QMetaMethod &signal){#if !defined(QT_NO_OFONO) if (QOfonoWrapper::isOfonoAvailable()) { if (!ofonoWrapper) ofonoWrapper = new QOfonoWrapper(this); QMetaMethod sourceSignal = proxyToSourceSignal(signal, ofonoWrapper); connect(ofonoWrapper, sourceSignal, this, signal, Qt::UniqueConnection); }#endif static const QMetaMethod currentNetworkModeChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoPrivate::currentNetworkModeChanged); static const QMetaMethod networkNameChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoPrivate::networkNameChanged); static const QMetaMethod networkSignalStrengthChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoPrivate::networkSignalStrengthChanged); static const QMetaMethod networkStatusChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoPrivate::networkStatusChanged); // we always monitor "networkInterfaceCount" , as long as users connect any signals, // with update to date network interface counts, we can compute network mode, strength, // status, name properties in an efficient way if (!watchNetworkInterfaceCount) { QList<QNetworkInfo::NetworkMode> modes; modes << QNetworkInfo::WlanMode << QNetworkInfo::EthernetMode << QNetworkInfo::BluetoothMode; networkInterfaceCounts.clear(); foreach (QNetworkInfo::NetworkMode mode, modes) networkInterfaceCounts[mode] = getNetworkInterfaceCount(mode);#if !defined(QT_NO_UDEV) if (!udevHandle) { udevHandle = udev_new(); udevMonitor = udev_monitor_new_from_netlink(udevHandle, "udev"); udev_monitor_filter_add_match_subsystem_devtype(udevMonitor, "net", NULL); udev_monitor_enable_receiving(udevMonitor); udevNotifier = new QSocketNotifier(udev_monitor_get_fd(udevMonitor), QSocketNotifier::Read, this); connect(udevNotifier, SIGNAL(activated(int)), this, SLOT(onUdevChanged())); }
开发者ID:Danielweber7624,项目名称:actiona,代码行数:34,
示例20: udev_newbool Renderer::connectEmotiv(){ /* Opens Emotiv if Emotiv is only HID Device attached */ struct udev_device *dev; struct udev *udev; struct udev_list_entry *devices, *dev_list_entry; struct udev_enumerate *enumerate; udev = udev_new(); enumerate = udev_enumerate_new(udev); udev_enumerate_add_match_subsystem(enumerate, "hidraw"); udev_enumerate_scan_devices(enumerate); devices = udev_enumerate_get_list_entry(enumerate); udev_list_entry_foreach(dev_list_entry, devices) { const char * path = udev_list_entry_get_name(dev_list_entry); dev = udev_device_new_from_syspath(udev,path); } emotiv_fd = open(udev_device_get_devnode(dev), O_RDONLY); if (emotiv_fd > 0) { int res = read(emotiv_fd, emotivBuffer, 32); if(res < 0) {perror("read"); return false;} return true; } else { perror("Unable to open device"); return false; }}
开发者ID:jrjeojst,项目名称:WinlabEEG,代码行数:30,
示例21: linux_udev_start_event_monitorint linux_udev_start_event_monitor(void){ int r; if (NULL == udev_ctx) { udev_ctx = udev_new(); if (!udev_ctx) { return LIBUSB_ERROR_OTHER; } } udev_monitor = udev_monitor_new_from_netlink(udev_ctx, "udev"); if (!udev_monitor) { usbi_err(NULL, "could not initialize udev monitor"); return LIBUSB_ERROR_OTHER; } r = udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "usb", 0); if (r) { usbi_err(NULL, "could not initialize udev monitor filter for /"usb/" subsystem"); return LIBUSB_ERROR_OTHER; } if (udev_monitor_enable_receiving(udev_monitor)) { usbi_err(NULL, "failed to enable the udev monitor"); return LIBUSB_ERROR_OTHER; } udev_monitor_fd = udev_monitor_get_fd(udev_monitor); pthread_create(&linux_event_thread, NULL, linux_udev_event_thread_main, NULL); return LIBUSB_SUCCESS;}
开发者ID:LudovicRousseau,项目名称:libusb-darwin,代码行数:34,
示例22: get_device_countint get_device_count(){ struct udev *udev = udev_new(); if (!udev) { return -1; } struct udev_enumerate *enumerate; struct udev_list_entry *devices, *dev_list_entry; struct udev_device *dev; enumerate = udev_enumerate_new(udev); udev_enumerate_add_match_subsystem(enumerate, "usb"); udev_enumerate_scan_devices(enumerate); devices = udev_enumerate_get_list_entry(enumerate); const char *path; int count = 0; udev_list_entry_foreach(dev_list_entry, devices) { path = udev_list_entry_get_name(dev_list_entry); dev = udev_device_new_from_syspath(udev, path); if(!dev) return -1; const char * vid = udev_device_get_sysattr_value(dev,"idVendor"); const char * pid = udev_device_get_sysattr_value(dev,"idProduct"); if((vid && pid) && (!strcmp(vid, "04d8") && (!strcmp(pid, "e11c")))) count++; udev_device_unref(dev); }
开发者ID:seec,项目名称:TL866,代码行数:32,
示例23: GetAdapterBuseErrorCode GetAdapterBus(DeviceHandle& Handle, String SysDevicePath){ struct udev *udevObject; struct udev_device *udevDevice; udevObject = udev_new(); if (nullptr == udevObject) { return(eErrorCode::Memory); } udevDevice = udev_device_new_from_syspath(udevObject, SysDevicePath.c_str()); if (true == IsAtaDeviceBus(udevDevice)) { Handle.Bus = eBusType::Ata; } else if (true == IsScsiDeviceBus(udevDevice)) { Handle.Bus = eBusType::Scsi; } else { //! Adapter Property is not Ata or Scsi return(eErrorCode::FormatNotSupported); } udev_device_unref(udevDevice); udev_unref(udevObject); return(eErrorCode::None);}
开发者ID:MaiChiemMinh,项目名称:vtStor,代码行数:31,
示例24: media_udev_openstatic inline int media_udev_open(struct udev **udev){ *udev = udev_new(); if (*udev == NULL) return -ENOMEM; return 0;}
开发者ID:jmondi,项目名称:media-ctl,代码行数:7,
示例25: HPRegisterForHotplugEvents/** * Sets up callbacks for device hotplug events. */ULONG HPRegisterForHotplugEvents(void){ struct udev *udev; (void)pthread_mutex_init(&usbNotifierMutex, NULL); if (driverSize <= 0) { Log1(PCSC_LOG_INFO, "No bundle files in pcsc drivers directory: " PCSCLITE_HP_DROPDIR); Log1(PCSC_LOG_INFO, "Disabling USB support for pcscd"); return 0; } /* Create the udev object */ udev = udev_new(); if (!udev) { Log1(PCSC_LOG_ERROR, "udev_new() failed"); return 0; } HPRescanUsbBus(udev); (void)ThreadCreate(&usbNotifyThread, THREAD_ATTR_DETACHED, (PCSCLITE_THREAD_FUNCTION( )) HPEstablishUSBNotifications, udev); return 0;} /* HPRegisterForHotplugEvents */
开发者ID:kenieevan,项目名称:pcsc-lite,代码行数:32,
示例26: mainintmain(int argc, char **argv){ int blight, connector_id; const char *path; struct udev *udev; struct udev_enumerate *e; struct udev_list_entry *entry; struct udev_device *drm_device; if (argc < 3) { printf("Please add connector_id and brightness values from 0-255/n"); return 1; } connector_id = atoi(argv[1]); blight = atoi(argv[2]); udev = udev_new(); if (udev == NULL) { printf("failed to initialize udev context/n"); return 1; } e = udev_enumerate_new(udev); udev_enumerate_add_match_subsystem(e, "drm"); udev_enumerate_add_match_sysname(e, "card[0-9]*"); udev_enumerate_scan_devices(e); drm_device = NULL; udev_list_entry_foreach(entry, udev_enumerate_get_list_entry(e)) { path = udev_list_entry_get_name(entry); drm_device = udev_device_new_from_syspath(udev, path); break; }
开发者ID:ChristophHaag,项目名称:weston,代码行数:35,
示例27: wgbm_get_default_fd_for_patternintwgbm_get_default_fd_for_pattern(const char *pattern){ struct udev *ud; struct udev_enumerate *en; struct udev_list_entry *devices, *entry; const char *path, *filename; struct udev_device *device; int fd; ud = udev_new(); en = udev_enumerate_new(ud); udev_enumerate_add_match_subsystem(en, "drm"); udev_enumerate_add_match_sysname(en, pattern); udev_enumerate_scan_devices(en); devices = udev_enumerate_get_list_entry(en); udev_list_entry_foreach(entry, devices) { path = udev_list_entry_get_name(entry); device = udev_device_new_from_syspath(ud, path); filename = udev_device_get_devnode(device); fd = open(filename, O_RDWR | O_CLOEXEC); udev_device_unref(device); if (fd >= 0) { udev_enumerate_unref(en); udev_unref(ud); return fd; } }
开发者ID:Sonicadvance1,项目名称:waffle,代码行数:29,
示例28: fs_on_read_onlyint fs_on_read_only(const char *p) { struct stat st; _cleanup_udev_unref_ struct udev *udev = NULL; _cleanup_udev_device_unref_ struct udev_device *udev_device = NULL; const char *read_only; assert(p); if (stat(p, &st) < 0) return -errno; if (major(st.st_dev) == 0) return false; udev = udev_new(); if (!udev) return -ENOMEM; udev_device = udev_device_new_from_devnum(udev, 'b', st.st_dev); if (!udev_device) return false; read_only = udev_device_get_sysattr_value(udev_device, "ro"); if (read_only) return streq(read_only, "1"); return false;}
开发者ID:dds,项目名称:systemd,代码行数:28,
示例29: mainint main(void) { _cleanup_manager_free_ Manager *manager = NULL; struct udev *udev; struct udev_device *loopback; int r; test_deserialize_in_addr(); test_deserialize_dhcp_routes(); test_address_equality(); assert_se(manager_new(&manager) >= 0); r = test_load_config(manager); if (r == -EPERM) return EXIT_TEST_SKIP; udev = udev_new(); assert_se(udev); loopback = udev_device_new_from_syspath(udev, "/sys/class/net/lo"); assert_se(loopback); assert_se(udev_device_get_ifindex(loopback) == 1); test_network_get(manager, loopback); assert_se(manager_rtnl_enumerate_links(manager) >= 0); udev_device_unref(loopback); udev_unref(udev);}
开发者ID:AlexBaranosky,项目名称:systemd,代码行数:30,
注:本文中的udev_new函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ udev_settle函数代码示例 C++ udev_monitor_unref函数代码示例 |