• Home
  • Raw
  • Download

Lines Matching +full:zero +full:- +full:initialised

1 // SPDX-License-Identifier: GPL-2.0
3 * transport_class.c - implementation of generic transport classes
6 * Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com>
21 * transport class<-----attribute container<----class device
23 * Usually the attribute container is per-HBA, but the design doesn't
34 * transport_class_register - register an initial transport class
36 * @tclass: a pointer to the transport class structure to be initialised
40 * zeros and then generic class must have been initialised with the
49 return class_register(&tclass->class); in transport_class_register()
54 * transport_class_unregister - unregister a previously registered class
63 class_unregister(&tclass->class); in transport_class_unregister()
76 * anon_transport_class_register - register an anonymous class
90 atc->container.class = &atc->tclass.class; in anon_transport_class_register()
91 attribute_container_set_no_classdevs(&atc->container); in anon_transport_class_register()
92 error = attribute_container_register(&atc->container); in anon_transport_class_register()
95 atc->tclass.setup = anon_transport_dummy_function; in anon_transport_class_register()
96 atc->tclass.remove = anon_transport_dummy_function; in anon_transport_class_register()
102 * anon_transport_class_unregister - unregister an anon class
111 if (unlikely(attribute_container_unregister(&atc->container))) in anon_transport_class_unregister()
120 struct transport_class *tclass = class_to_transport_class(cont->class); in transport_setup_classdev()
123 if (tclass->setup) in transport_setup_classdev()
124 tclass->setup(tcont, dev, classdev); in transport_setup_classdev()
130 …* transport_setup_device - declare a new dev for transport class association but don't make it vis…
158 if (!error && tcont->statistics) in transport_add_class_device()
159 error = sysfs_create_group(&classdev->kobj, tcont->statistics); in transport_add_class_device()
166 * transport_add_device - declare a new dev for transport class association
186 struct transport_class *tclass = class_to_transport_class(cont->class); in transport_configure()
189 if (tclass->configure) in transport_configure()
190 tclass->configure(tcont, dev, cdev); in transport_configure()
196 * transport_configure_device - configure an already set up device
219 struct transport_class *tclass = class_to_transport_class(cont->class); in transport_remove_classdev()
221 if (tclass->remove) in transport_remove_classdev()
222 tclass->remove(tcont, dev, classdev); in transport_remove_classdev()
224 if (tclass->remove != anon_transport_dummy_function) { in transport_remove_classdev()
225 if (tcont->statistics) in transport_remove_classdev()
226 sysfs_remove_group(&classdev->kobj, tcont->statistics); in transport_remove_classdev()
235 * transport_remove_device - remove the visibility of a device
256 struct transport_class *tclass = class_to_transport_class(cont->class); in transport_destroy_classdev()
258 if (tclass->remove != anon_transport_dummy_function) in transport_destroy_classdev()
264 * transport_destroy_device - destroy a removed device
271 * last reference goes to zero. Note also that the classdev retains a