MCPcopy Create free account
hub / github.com/F-Stack/f-stack / kobj_class_compile1

Function kobj_class_compile1

freebsd/kern/subr_kobj.c:129–154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127}
128
129static int
130kobj_class_compile1(kobj_class_t cls, int mflags)
131{
132 kobj_ops_t ops;
133
134 KOBJ_ASSERT(MA_NOTOWNED);
135
136 ops = malloc(sizeof(struct kobj_ops), M_KOBJ, mflags);
137 if (ops == NULL)
138 return (ENOMEM);
139
140 /*
141 * We may have lost a race for kobj_class_compile here - check
142 * to make sure someone else hasn't already compiled this
143 * class.
144 */
145 KOBJ_LOCK();
146 if (cls->ops) {
147 KOBJ_UNLOCK();
148 free(ops, M_KOBJ);
149 return (0);
150 }
151 kobj_class_compile_common(cls, ops);
152 KOBJ_UNLOCK();
153 return (0);
154}
155
156void
157kobj_class_compile(kobj_class_t cls)

Callers 2

kobj_class_compileFunction · 0.85
kobj_init1Function · 0.85

Calls 3

mallocFunction · 0.85
freeFunction · 0.70

Tested by

no test coverage detected