---
name: "udev_enumerate_add_match_subsystem"
section: "3"
platform: "linux"
package: "systemd-libs"
version: "262.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/udev_enumerate_add_match_subsystem"
---

# udev\_enumerate\_add\_match\_subsystem(3)

Modify filters

## NAME

udev\_enumerate\_add\_match\_subsystem, udev\_enumerate\_add\_nomatch\_subsystem, udev\_enumerate\_add\_match\_sysattr, udev\_enumerate\_add\_nomatch\_sysattr, udev\_enumerate\_add\_match\_property, udev\_enumerate\_add\_match\_sysname, udev\_enumerate\_add\_match\_tag, udev\_enumerate\_add\_match\_parent, udev\_enumerate\_add\_match\_is\_initialized - Modify filters

## SYNOPSIS

```
#include <libudev.h>
```

**int udev\_enumerate\_add\_match\_subsystem(struct udev\_enumerate \****udev\_enumerate***, const char \****subsystem***);**

**int udev\_enumerate\_add\_nomatch\_subsystem(struct udev\_enumerate \****udev\_enumerate***, const char \****subsystem***);**

**int udev\_enumerate\_add\_match\_sysattr(struct udev\_enumerate \****udev\_enumerate***, const char \****sysattr***, const char \****value***);**

**int udev\_enumerate\_add\_nomatch\_sysattr(struct udev\_enumerate \****udev\_enumerate***, const char \****sysattr***, const char \****value***);**

**int udev\_enumerate\_add\_match\_property(struct udev\_enumerate \****udev\_enumerate***, const char \****property***, const char \****value***);**

**int udev\_enumerate\_add\_match\_sysname(struct udev\_enumerate \****udev\_enumerate***, const char \****sysname***);**

**int udev\_enumerate\_add\_match\_tag(struct udev\_enumerate \****udev\_enumerate***, const char \****tag***);**

**int udev\_enumerate\_add\_match\_parent(struct udev\_enumerate \****udev\_enumerate***, struct udev\_device \****parent***);**

**int udev\_enumerate\_add\_match\_is\_initialized(struct udev\_enumerate \****udev\_enumerate***);**

## RETURN VALUE

On success, **udev\_enumerate\_add\_match\_subsystem()**, **udev\_enumerate\_add\_nomatch\_subsystem()**, **udev\_enumerate\_add\_match\_sysattr()**, **udev\_enumerate\_add\_nomatch\_sysattr()**, **udev\_enumerate\_add\_match\_property()**, **udev\_enumerate\_add\_match\_sysname()**, **udev\_enumerate\_add\_match\_tag()**, **udev\_enumerate\_add\_match\_parent()** and **udev\_enumerate\_add\_match\_is\_initialized()** return an integer greater than, or equal to, **0**.

## HISTORY

**udev\_enumerate\_add\_match\_subsystem()**, **udev\_enumerate\_add\_nomatch\_subsystem()**, **udev\_enumerate\_add\_match\_sysattr()**, **udev\_enumerate\_add\_nomatch\_sysattr()**, **udev\_enumerate\_add\_match\_property()**, **udev\_enumerate\_add\_match\_sysname()**, **udev\_enumerate\_add\_match\_tag()**, **udev\_enumerate\_add\_match\_parent()**, and **udev\_enumerate\_add\_match\_is\_initialized()** were added in version 221.

## SEE ALSO

[**udev\_new**(3)](/udev_new/3.md), [**udev\_device\_new\_from\_syspath**(3)](/udev_device_new_from_syspath/3.md), [**udev\_enumerate\_new**(3)](/udev_enumerate_new/3.md), [**udev\_enumerate\_scan\_devices**(3)](/udev_enumerate_scan_devices/3.md), [**udev\_monitor\_new\_from\_netlink**(3)](/udev_monitor_new_from_netlink/3.md), [**udev\_list\_entry**(3)](/udev_list_entry/3.md), [**systemd**(1)](/systemd/1.md)
