Lines Matching refs:syscon

63 typedef TAILQ_HEAD(syscon_list, syscon) syscon_list_t;
68 static int syscon_method_init(struct syscon *syscon);
69 static int syscon_method_uninit(struct syscon *syscon);
86 DEFINE_CLASS_0(syscon, syscon_class, syscon_methods, 0);
98 syscon_method_init(struct syscon *syscon) in syscon_method_init() argument
105 syscon_method_uninit(struct syscon *syscon) in syscon_method_uninit() argument
112 syscon_get_softc(struct syscon *syscon) in syscon_get_softc() argument
115 return (syscon->softc); in syscon_get_softc()
121 struct syscon *
124 struct syscon *syscon; in syscon_create() local
127 syscon = malloc(sizeof(struct syscon), M_SYSCON, in syscon_create()
129 kobj_init((kobj_t)syscon, (kobj_class_t)syscon_class); in syscon_create()
133 syscon->softc = malloc(syscon_class->size, M_SYSCON, in syscon_create()
137 syscon->pdev = pdev; in syscon_create()
138 return (syscon); in syscon_create()
142 struct syscon *
143 syscon_register(struct syscon *syscon) in syscon_register() argument
148 if (syscon->ofw_node <= 0) in syscon_register()
149 syscon->ofw_node = ofw_bus_get_node(syscon->pdev); in syscon_register()
150 if (syscon->ofw_node <= 0) in syscon_register()
154 rv = SYSCON_INIT(syscon); in syscon_register()
161 OF_device_register_xref(OF_xref_from_node(syscon->ofw_node), in syscon_register()
162 syscon->pdev); in syscon_register()
165 TAILQ_INSERT_TAIL(&syscon_list, syscon, syscon_link); in syscon_register()
167 return (syscon); in syscon_register()
171 syscon_unregister(struct syscon *syscon) in syscon_unregister() argument
175 TAILQ_REMOVE(&syscon_list, syscon, syscon_link); in syscon_unregister()
178 OF_device_register_xref(OF_xref_from_node(syscon->ofw_node), NULL); in syscon_unregister()
180 return (SYSCON_UNINIT(syscon)); in syscon_unregister()
187 static struct syscon *
190 struct syscon *entry; in syscon_find_by_ofw_node()
202 struct syscon *
206 struct syscon *syscon; in syscon_create_ofw_node() local
208 syscon = syscon_create(pdev, syscon_class); in syscon_create_ofw_node()
209 if (syscon == NULL) in syscon_create_ofw_node()
211 syscon->ofw_node = node; in syscon_create_ofw_node()
212 if (syscon_register(syscon) == NULL) in syscon_create_ofw_node()
214 return (syscon); in syscon_create_ofw_node()
218 syscon_get_ofw_node(struct syscon *syscon) in syscon_get_ofw_node() argument
221 return (syscon->ofw_node); in syscon_get_ofw_node()
226 struct syscon **syscon) in syscon_get_by_ofw_property() argument
245 *syscon = syscon_find_by_ofw_node(OF_node_from_xref(cells[0])); in syscon_get_by_ofw_property()
246 if (*syscon == NULL) { in syscon_get_by_ofw_property()
259 syscon_get_handle_default(device_t dev, struct syscon **syscon) in syscon_get_handle_default() argument
266 return (SYSCON_GET_HANDLE(parent, syscon)); in syscon_get_handle_default()