| /linux/include/linux/ |
| A D | kref.h | 19 struct kref { struct 29 static inline void kref_init(struct kref *kref) in kref_init() argument 34 static inline unsigned int kref_read(const struct kref *kref) in kref_read() argument 43 static inline void kref_get(struct kref *kref) in kref_get() argument 62 static inline int kref_put(struct kref *kref, void (*release)(struct kref *kref)) in kref_put() argument 65 release(kref); in kref_put() 71 static inline int kref_put_mutex(struct kref *kref, in kref_put_mutex() argument 72 void (*release)(struct kref *kref), in kref_put_mutex() argument 76 release(kref); in kref_put_mutex() 82 static inline int kref_put_lock(struct kref *kref, in kref_put_lock() argument [all …]
|
| /linux/drivers/target/iscsi/cxgbit/ |
| A D | cxgbit.h | 140 struct kref kref; member 185 struct kref kref; member 211 struct kref kref; member 244 void _cxgbit_free_cdev(struct kref *kref); 245 void _cxgbit_free_csk(struct kref *kref); 246 void _cxgbit_free_cnp(struct kref *kref); 250 kref_get(&cdev->kref); in cxgbit_get_cdev() 260 kref_get(&csk->kref); in cxgbit_get_csk() 265 kref_put(&csk->kref, _cxgbit_free_csk); in cxgbit_put_csk() 270 kref_get(&cnp->kref); in cxgbit_get_cnp() [all …]
|
| /linux/Documentation/translations/zh_CN/core-api/ |
| A D | kref.rst | 3 :Original: Documentation/core-api/kref.rst 35 要使用kref,请在你的数据结构中添加一个,如:: 41 struct kref refcount; 46 kref可以出现在数据结构体中的任何地方。 51 你必须在分配kref之后初始化它。 要做到这一点,可以这样调用kref_init:: 60 这将kref中的refcount设置为1。 65 一旦你有一个初始化的kref,你必须遵循以下规则: 80 在没有已经持有有效指针的情况下获得一个kref-ed结构体的有效指针,那么在没 89 void data_release(struct kref *ref) 176 struct kref refcount; [all …]
|
| /linux/drivers/gpu/drm/amd/display/dc/core/ |
| A D | dc_surface.c | 180 static void dc_plane_state_free(struct kref *kref) in dc_plane_state_free() argument 182 struct dc_plane_state *plane_state = container_of(kref, struct dc_plane_state, refcount); in dc_plane_state_free() 197 static void dc_gamma_free(struct kref *kref) in dc_gamma_free() argument 199 struct dc_gamma *gamma = container_of(kref, struct dc_gamma, refcount); in dc_gamma_free() 228 static void dc_transfer_func_free(struct kref *kref) in dc_transfer_func_free() argument 230 struct dc_transfer_func *tf = container_of(kref, struct dc_transfer_func, refcount); in dc_transfer_func_free() 254 static void dc_3dlut_func_free(struct kref *kref) in dc_3dlut_func_free() argument 256 struct dc_3dlut *lut = container_of(kref, struct dc_3dlut, refcount); in dc_3dlut_func_free()
|
| /linux/include/linux/ceph/ |
| A D | buffer.h | 17 struct kref kref; member 23 extern void ceph_buffer_release(struct kref *kref); 27 kref_get(&b->kref); in ceph_buffer_get() 34 kref_put(&b->kref, ceph_buffer_release); in ceph_buffer_put()
|
| A D | string_table.h | 11 struct kref kref; member 20 extern void ceph_release_string(struct kref *ref); 27 kref_get(&str->kref); in ceph_get_string() 35 kref_put(&str->kref, ceph_release_string); in ceph_put_string() 56 kref_get_unless_zero(&___str->kref)) \
|
| /linux/arch/powerpc/platforms/cell/spufs/ |
| A D | gang.c | 23 kref_init(&gang->kref); in alloc_spu_gang() 33 static void destroy_spu_gang(struct kref *kref) in destroy_spu_gang() argument 36 gang = container_of(kref, struct spu_gang, kref); in destroy_spu_gang() 43 kref_get(&gang->kref); in get_spu_gang() 49 return kref_put(&gang->kref, &destroy_spu_gang); in put_spu_gang()
|
| A D | context.c | 39 kref_init(&ctx->kref); in alloc_spu_context() 69 void destroy_spu_context(struct kref *kref) in destroy_spu_context() argument 72 ctx = container_of(kref, struct spu_context, kref); in destroy_spu_context() 90 kref_get(&ctx->kref); in get_spu_context() 96 return kref_put(&ctx->kref, &destroy_spu_context); in put_spu_context()
|
| /linux/security/integrity/ |
| A D | digsig_asymmetric.c | 33 key_ref_t kref; in request_asymmetric_key() local 35 kref = keyring_search(make_key_ref(key, 1), in request_asymmetric_key() 37 if (!IS_ERR(kref)) { in request_asymmetric_key() 45 key_ref_t kref; in request_asymmetric_key() local 47 kref = keyring_search(make_key_ref(keyring, 1), in request_asymmetric_key() 49 if (IS_ERR(kref)) in request_asymmetric_key() 50 key = ERR_CAST(kref); in request_asymmetric_key() 52 key = key_ref_to_ptr(kref); in request_asymmetric_key()
|
| /linux/drivers/acpi/ |
| A D | acpi_ipmi.c | 40 struct kref kref; member 83 struct kref kref; member 121 kref_init(&ipmi_device->kref); in ipmi_dev_alloc() 148 static void ipmi_dev_release_kref(struct kref *kref) in ipmi_dev_release_kref() argument 151 container_of(kref, struct acpi_ipmi_device, kref); in ipmi_dev_release_kref() 176 kref_get(&ipmi_device->kref); in acpi_ipmi_dev_get() 203 kref_init(&ipmi_msg->kref); in ipmi_msg_alloc() 218 static void ipmi_msg_release_kref(struct kref *kref) in ipmi_msg_release_kref() argument 221 container_of(kref, struct acpi_ipmi_msg, kref); in ipmi_msg_release_kref() 228 kref_get(&tx_msg->kref); in acpi_ipmi_msg_get() [all …]
|
| /linux/drivers/gpu/drm/msm/ |
| A D | msm_gem_vma.c | 12 msm_gem_address_space_destroy(struct kref *kref) in msm_gem_address_space_destroy() argument 14 struct msm_gem_address_space *aspace = container_of(kref, in msm_gem_address_space_destroy() 15 struct msm_gem_address_space, kref); in msm_gem_address_space_destroy() 28 kref_put(&aspace->kref, msm_gem_address_space_destroy); in msm_gem_address_space_put() 35 kref_get(&aspace->kref); in msm_gem_address_space_get() 137 kref_get(&aspace->kref); in msm_gem_init_vma() 161 kref_init(&aspace->kref); in msm_gem_address_space_create()
|
| /linux/net/batman-adv/ |
| A D | types.h | 190 struct kref refcount; 274 struct kref refcount; 344 struct kref refcount; 497 struct kref refcount; 572 struct kref refcount; 631 struct kref refcount; 666 struct kref refcount; 735 struct kref refcount; 1482 struct kref refcount; 1510 struct kref refcount; [all …]
|
| A D | originator.h | 24 void batadv_orig_node_release(struct kref *ref); 30 void batadv_hardif_neigh_release(struct kref *ref); 35 void batadv_neigh_node_release(struct kref *ref); 45 void batadv_neigh_ifinfo_release(struct kref *ref); 55 void batadv_orig_ifinfo_release(struct kref *ref); 64 void batadv_orig_node_vlan_release(struct kref *ref);
|
| /linux/drivers/media/cec/core/ |
| A D | cec-notifier.c | 24 struct kref kref; member 60 kref_get(&n->kref); in cec_notifier_get_conn() 80 kref_init(&n->kref); in cec_notifier_get_conn() 87 static void cec_notifier_release(struct kref *kref) in cec_notifier_release() argument 90 container_of(kref, struct cec_notifier, kref); in cec_notifier_release() 100 kref_put(&n->kref, cec_notifier_release); in cec_notifier_put()
|
| /linux/drivers/gpu/drm/nouveau/nvkm/core/ |
| A D | memory.c | 104 kref_init(&memory->kref); in nvkm_memory_ctor() 108 nvkm_memory_del(struct kref *kref) in nvkm_memory_del() argument 110 struct nvkm_memory *memory = container_of(kref, typeof(*memory), kref); in nvkm_memory_del() 123 kref_put(&memory->kref, nvkm_memory_del); in nvkm_memory_unref() 132 kref_get(&memory->kref); in nvkm_memory_ref()
|
| /linux/drivers/usb/misc/ |
| A D | usblcd.c | 51 struct kref kref; member 60 #define to_lcd_dev(d) container_of(d, struct usb_lcd, kref) 67 static void lcd_delete(struct kref *kref) in lcd_delete() argument 69 struct usb_lcd *dev = to_lcd_dev(kref); in lcd_delete() 95 kref_get(&dev->kref); in lcd_open() 100 kref_put(&dev->kref, lcd_delete); in lcd_open() 120 kref_put(&dev->kref, lcd_delete); in lcd_release() 330 kref_init(&dev->kref); in lcd_probe() 388 kref_put(&dev->kref, lcd_delete); in lcd_probe() 431 kref_put(&dev->kref, lcd_delete); in lcd_disconnect()
|
| /linux/drivers/gpu/drm/vmwgfx/ |
| A D | ttm_object.c | 77 struct kref refcount; 128 struct kref kref; member 143 static void ttm_object_file_destroy(struct kref *kref) in ttm_object_file_destroy() argument 201 static void ttm_release_base(struct kref *kref) in ttm_release_base() argument 336 if (unlikely(kref_read(&ref->kref) == 0)) in ttm_ref_object_exists() 374 if (kref_get_unless_zero(&ref->kref)) { in ttm_ref_object_add() 398 kref_init(&ref->kref); in ttm_ref_object_add() 423 ttm_ref_object_release(struct kref *kref) in ttm_ref_object_release() argument 426 container_of(kref, struct ttm_ref_object, kref); in ttm_ref_object_release() 461 kref_put(&ref->kref, ttm_ref_object_release); in ttm_ref_object_base_unref() [all …]
|
| /linux/drivers/scsi/libfc/ |
| A D | fc_rport.c | 152 kref_init(&rdata->kref); in fc_rport_create() 175 void fc_rport_destroy(struct kref *kref) in fc_rport_destroy() argument 179 rdata = container_of(kref, struct fc_rport_priv, kref); in fc_rport_destroy() 284 kref_get(&rdata->kref); in fc_rport_work() 487 kref_get(&rdata->kref); in fc_rport_enter_delete() 553 kref_get(&rdata->kref); in fc_rport_enter_ready() 839 kref_get(&rdata->kref); in fc_rport_enter_flogi() 1096 kref_get(&rdata->kref); in fc_rport_enter_plogi() 1298 kref_get(&rdata->kref); in fc_rport_enter_prli() 1402 kref_get(&rdata->kref); in fc_rport_enter_rtv() [all …]
|
| /linux/net/ceph/ |
| A D | buffer.c | 26 kref_init(&b->kref); in ceph_buffer_new() 34 void ceph_buffer_release(struct kref *kref) in ceph_buffer_release() argument 36 struct ceph_buffer *b = container_of(kref, struct ceph_buffer, kref); in ceph_buffer_release()
|
| /linux/include/drm/ |
| A D | drm_syncobj.h | 43 struct kref refcount; 66 void drm_syncobj_free(struct kref *kref); 125 void drm_syncobj_free(struct kref *kref);
|
| /linux/drivers/hid/ |
| A D | hid-cougar.c | 70 struct kref kref; member 126 kref_get(&shared->kref); in cougar_get_shared_data() 133 static void cougar_release_shared_data(struct kref *kref) in cougar_release_shared_data() argument 135 struct cougar_shared *shared = container_of(kref, in cougar_release_shared_data() 136 struct cougar_shared, kref); in cougar_release_shared_data() 150 kref_put(&cougar->shared->kref, cougar_release_shared_data); in cougar_remove_shared_data() 175 kref_init(&shared->kref); in cougar_bind_shared_data()
|
| /linux/drivers/usb/core/ |
| A D | file.c | 61 struct kref kref; member 80 kref_get(&usb_class->kref); in init_usb_class() 90 kref_init(&usb_class->kref); in init_usb_class() 105 static void release_usb_class(struct kref *kref) in release_usb_class() argument 116 kref_put(&usb_class->kref, release_usb_class); in destroy_usb_class()
|
| /linux/drivers/misc/vmw_vmci/ |
| A D | vmci_resource.c | 124 kref_init(&resource->kref); in vmci_resource_add() 185 kref_get(&resource->kref); in vmci_resource_get() 190 static void vmci_release_resource(struct kref *kref) in vmci_release_resource() argument 193 container_of(kref, struct vmci_resource, kref); in vmci_release_resource() 214 return kref_put(&resource->kref, vmci_release_resource) ? in vmci_resource_put()
|
| /linux/kernel/sched/ |
| A D | autogroup.c | 15 kref_init(&autogroup_default.kref); in autogroup_init() 25 static inline void autogroup_destroy(struct kref *kref) in autogroup_destroy() argument 27 struct autogroup *ag = container_of(kref, struct autogroup, kref); in autogroup_destroy() 40 kref_put(&ag->kref, autogroup_destroy); in autogroup_kref_put() 45 kref_get(&ag->kref); in autogroup_kref_get() 75 kref_init(&ag->kref); in autogroup_create()
|
| /linux/drivers/infiniband/hw/cxgb4/ |
| A D | iw_cxgb4.h | 112 struct kref kref; member 194 struct kref rqt_kref; 195 struct kref pbl_kref; 213 struct kref kref; member 216 void _c4iw_free_wr_wait(struct kref *kref); 221 kref_read(&wr_waitp->kref)); in c4iw_put_wr_wait() 229 kref_read(&wr_waitp->kref)); in c4iw_get_wr_wait() 231 kref_get(&wr_waitp->kref); in c4iw_get_wr_wait() 690 kref_get(&((ep)->kref)); \ 692 void _c4iw_free_ep(struct kref *kref); [all …]
|