/linux-6.6.21/kernel/ |
D | audit_watch.c | 100 void audit_get_watch(struct audit_watch *watch) in audit_get_watch() argument 102 refcount_inc(&watch->count); in audit_get_watch() 105 void audit_put_watch(struct audit_watch *watch) in audit_put_watch() argument 107 if (refcount_dec_and_test(&watch->count)) { in audit_put_watch() 108 WARN_ON(watch->parent); in audit_put_watch() 109 WARN_ON(!list_empty(&watch->rules)); in audit_put_watch() 110 kfree(watch->path); in audit_put_watch() 111 kfree(watch); in audit_put_watch() 115 static void audit_remove_watch(struct audit_watch *watch) in audit_remove_watch() argument 117 list_del(&watch->wlist); in audit_remove_watch() [all …]
|
D | watch_queue.c | 201 struct watch *watch; in __post_watch_notification() local 210 hlist_for_each_entry_rcu(watch, &wlist->watchers, list_node) { in __post_watch_notification() 211 if (watch->id != id) in __post_watch_notification() 214 n->info |= watch->info_id; in __post_watch_notification() 216 wqueue = rcu_dereference(watch->queue); in __post_watch_notification() 221 if (security_post_notification(watch->cred, cred, n) < 0) in __post_watch_notification() 416 struct watch *watch = container_of(rcu, struct watch, rcu); in free_watch() local 418 put_watch_queue(rcu_access_pointer(watch->queue)); in free_watch() 419 atomic_dec(&watch->cred->user->nr_watches); in free_watch() 420 put_cred(watch->cred); in free_watch() [all …]
|
D | auditfilter.c | 89 if (erule->watch) in audit_free_rule() 90 audit_put_watch(erule->watch); in audit_free_rule() 158 krule->inode_f || krule->watch || krule->tree || in audit_to_inode() 671 audit_watch_path(krule->watch)); in audit_krule_to_data() 736 if (strcmp(audit_watch_path(a->watch), in audit_compare_rule() 737 audit_watch_path(b->watch))) in audit_compare_rule() 890 if (old->watch) { in audit_dupe_rule() 891 audit_get_watch(old->watch); in audit_dupe_rule() 892 new->watch = old->watch; in audit_dupe_rule() 910 } else if (entry->rule.watch) { in audit_find_rule() [all …]
|
D | audit.h | 267 extern void audit_put_watch(struct audit_watch *watch); 268 extern void audit_get_watch(struct audit_watch *watch); 273 extern char *audit_watch_path(struct audit_watch *watch); 274 extern int audit_watch_compare(struct audit_watch *watch, unsigned long ino,
|
/linux-6.6.21/drivers/xen/xenbus/ |
D | xenbus_dev_frontend.c | 228 struct xenbus_watch watch; member 233 static void free_watch_adapter(struct watch_adapter *watch) in free_watch_adapter() argument 235 kfree(watch->watch.node); in free_watch_adapter() 236 kfree(watch->token); in free_watch_adapter() 237 kfree(watch); in free_watch_adapter() 243 struct watch_adapter *watch; in alloc_watch_adapter() local 245 watch = kzalloc(sizeof(*watch), GFP_KERNEL); in alloc_watch_adapter() 246 if (watch == NULL) in alloc_watch_adapter() 249 watch->watch.node = kstrdup(path, GFP_KERNEL); in alloc_watch_adapter() 250 if (watch->watch.node == NULL) in alloc_watch_adapter() [all …]
|
D | xenbus_xs.c | 764 int register_xenbus_watch(struct xenbus_watch *watch) in register_xenbus_watch() argument 767 char token[sizeof(watch) * 2 + 1]; in register_xenbus_watch() 770 sprintf(token, "%lX", (long)watch); in register_xenbus_watch() 772 watch->nr_pending = 0; in register_xenbus_watch() 778 list_add(&watch->list, &watches); in register_xenbus_watch() 781 err = xs_watch(watch->node, token); in register_xenbus_watch() 785 list_del(&watch->list); in register_xenbus_watch() 795 void unregister_xenbus_watch(struct xenbus_watch *watch) in unregister_xenbus_watch() argument 798 char token[sizeof(watch) * 2 + 1]; in unregister_xenbus_watch() 801 sprintf(token, "%lX", (long)watch); in unregister_xenbus_watch() [all …]
|
D | xenbus_probe_backend.c | 183 static bool frontend_will_handle(struct xenbus_watch *watch, in frontend_will_handle() argument 186 return watch->nr_pending == 0; in frontend_will_handle() 189 static void frontend_changed(struct xenbus_watch *watch, in frontend_changed() argument 192 xenbus_otherend_changed(watch, path, token, 0); in frontend_changed() 212 static void backend_changed(struct xenbus_watch *watch, in backend_changed() argument
|
D | xenbus.h | 47 bool (*otherend_will_handle)(struct xenbus_watch *watch, 49 void (*otherend_changed)(struct xenbus_watch *watch, const char *path, 125 void xenbus_otherend_changed(struct xenbus_watch *watch,
|
D | xenbus_client.c | 129 struct xenbus_watch *watch, in xenbus_watch_path() argument 137 watch->node = path; in xenbus_watch_path() 138 watch->will_handle = will_handle; in xenbus_watch_path() 139 watch->callback = callback; in xenbus_watch_path() 141 err = register_xenbus_watch(watch); in xenbus_watch_path() 144 watch->node = NULL; in xenbus_watch_path() 145 watch->will_handle = NULL; in xenbus_watch_path() 146 watch->callback = NULL; in xenbus_watch_path() 171 struct xenbus_watch *watch, in xenbus_watch_pathfmt() argument 190 err = xenbus_watch_path(dev, path, watch, will_handle, callback); in xenbus_watch_pathfmt()
|
D | xenbus_comms.c | 212 struct xs_watch_event *watch; in process_msg() member 262 len += sizeof(*state.watch); in process_msg() 269 state.body = state.watch->body; in process_msg() 287 state.watch->len = state.msg.len; in process_msg() 288 err = xs_watch_msg(state.watch); in process_msg()
|
/linux-6.6.21/Documentation/core-api/ |
D | watch_queue.rst | 33 watch through that pipe. Only sources that have been connected to a pipe will 65 internally by the watch queue itself. There are two subtypes: 70 The first indicates that an object on which a watch was installed was removed 79 * The watch ID (mask with WATCH_INFO_ID and shift by WATCH_INFO_ID__SHIFT). 80 This indicates that caller's ID of the watch, which may be between 0 97 A "watch list" is a list of watchers that are subscribed to a source of 100 non-global watch list is typically referred to by reference to the object it 102 watch that specific key). 104 To manage a watch list, the following functions are provided: 109 void (*release_watch)(struct watch *wlist)); [all …]
|
/linux-6.6.21/drivers/counter/ |
D | counter-chrdev.c | 139 struct counter_watch *const watch, in counter_set_event_node() argument 148 if (event_node->event == watch->event && in counter_set_event_node() 149 event_node->channel == watch->channel) in counter_set_event_node() 160 event_node->event = watch->event; in counter_set_event_node() 161 event_node->channel = watch->channel; in counter_set_event_node() 268 struct counter_watch watch; in counter_add_watch() local 276 if (copy_from_user(&watch, uwatch, sizeof(watch))) in counter_add_watch() 279 if (watch.component.type == COUNTER_COMPONENT_NONE) in counter_add_watch() 282 parent = watch.component.parent; in counter_add_watch() 285 switch (watch.component.scope) { in counter_add_watch() [all …]
|
D | interrupt-cnt.c | 143 const struct counter_watch *watch) in interrupt_cnt_watch_validate() argument 145 if (watch->channel != 0 || in interrupt_cnt_watch_validate() 146 watch->event != COUNTER_EVENT_CHANGE_OF_STATE) in interrupt_cnt_watch_validate()
|
/linux-6.6.21/Documentation/translations/zh_CN/core-api/ |
D | watch_queue.rst | 105 void (*release_watch)(struct watch *wlist)); 135 对象还可以携带该对象的过滤规则,由用户空间设置。watch结构体的某些部分可以由驱动程 138 struct watch { 159 * ``void init_watch(struct watch *watch, struct watch_queue *wqueue);`` 163 * ``int add_watch_to_object(struct watch *watch, struct watch_list *wlist);`` 165 将观测订阅到观测列表(通知源)。watch结构体中的driver-settable字段必须在调用 251 (watch.info & info_mask) == info_filter
|
/linux-6.6.21/include/linux/ |
D | watch_queue.h | 54 struct watch { struct 75 void (*release_watch)(struct watch *); argument 85 extern void init_watch(struct watch *, struct watch_queue *); 86 extern int add_watch_to_object(struct watch *, struct watch_list *); 95 void (*release_watch)(struct watch *)) in init_watch_list() argument
|
/linux-6.6.21/tools/gpio/ |
D | Makefile | 21 ALL_TARGETS := lsgpio gpio-hammer gpio-event-mon gpio-watch 72 GPIO_WATCH_IN := $(OUTPUT)gpio-watch-in.o 74 $(Q)$(MAKE) $(build)=gpio-watch 75 $(OUTPUT)gpio-watch: $(GPIO_WATCH_IN)
|
D | Build | 5 gpio-watch-y += gpio-watch.o
|
/linux-6.6.21/include/xen/ |
D | xenbus.h | 191 int register_xenbus_watch(struct xenbus_watch *watch); 192 void unregister_xenbus_watch(struct xenbus_watch *watch); 210 struct xenbus_watch *watch, 216 int xenbus_watch_pathfmt(struct xenbus_device *dev, struct xenbus_watch *watch,
|
/linux-6.6.21/Documentation/filesystems/ |
D | inotify.rst | 18 What is the design decision behind not tying the watch to the open fd of 30 an fd-per-watch? 33 An fd-per-watch quickly consumes more file descriptors than are allowed, 37 A watch consumes less memory than an open file, separating the number 47 fd returns all watch events and also any potential out-of-band data. If 48 every fd was a separate watch,
|
/linux-6.6.21/include/uapi/linux/ |
D | watch_queue.h | 75 struct watch_notification watch; member 99 struct watch_notification watch; member
|
/linux-6.6.21/security/keys/ |
D | internal.h | 191 .watch.type = WATCH_TYPE_KEY_NOTIFY, in notify_key() 192 .watch.subtype = subtype, in notify_key() 193 .watch.info = watch_sizeof(n), in notify_key() 198 post_watch_notification(key->watchers, &n.watch, current_cred(), in notify_key()
|
D | keyctl.c | 1777 struct watch *watch = NULL; in keyctl_watch_key() local 1805 watch = kzalloc(sizeof(*watch), GFP_KERNEL); in keyctl_watch_key() 1806 if (!watch) in keyctl_watch_key() 1809 init_watch(watch, wqueue); in keyctl_watch_key() 1810 watch->id = key->serial; in keyctl_watch_key() 1811 watch->info_id = (u32)watch_id << WATCH_INFO_ID__SHIFT; in keyctl_watch_key() 1823 ret = add_watch_to_object(watch, key->watchers); in keyctl_watch_key() 1827 watch = NULL; in keyctl_watch_key() 1840 kfree(watch); in keyctl_watch_key()
|
/linux-6.6.21/Documentation/gpu/ |
D | introduction.rst | 155 * `An Overview of the Linux and Userspace Graphics Stack <https://www.youtube.com/watch?v=wjAJmqwg4… 156 …en on Linux: introduction to Kernel Mode Setting <https://www.youtube.com/watch?v=haes4_Xnc5Q>`_ -… 157 * `Everything Great about Upstream Graphics <https://www.youtube.com/watch?v=kVzHOgt6WGE>`_ - Danie… 158 * `An introduction to the Linux DRM subsystem <https://www.youtube.com/watch?v=LbDOCJcDRoo>`_ - Max… 159 * `Embrace the Atomic (Display) Age <https://www.youtube.com/watch?v=LjiB_JeDn2M>`_ - Daniel Vetter… 160 * `Anatomy of an Atomic KMS Driver <https://www.youtube.com/watch?v=lihqR9sENpc>`_ - Laurent Pincha… 161 * `Atomic Modesetting for Drivers <https://www.youtube.com/watch?v=kl9suFgbTc8>`_ - Daniel Vetter (… 162 * `Anatomy of an Embedded KMS Driver <https://www.youtube.com/watch?v=Ja8fM7rTae4>`_ - Laurent Pinc…
|
/linux-6.6.21/arch/loongarch/kernel/ |
D | genex.S | 93 BUILD_HANDLER watch watch none
|
/linux-6.6.21/arch/mips/kernel/ |
D | watch.c | 20 struct mips3264_watch_reg_state *watches = &t->thread.watch.mips3264; in mips_install_watch_registers() 53 ¤t->thread.watch.mips3264; in mips_read_watch_registers()
|