cls
void cls(void);
cls();
cls();
cls();
cls();
cls();
cls();
cls();
cls();
cls();
cls();
cls();
cls();
h2span_cluster_t *cls;
RB_FOREACH(cls, h2span_cluster_tree, &cluster_tree) {
RB_FOREACH(node, h2span_node_tree, &cls->tree) {
relay->source_rt->any.link->node->cls,
h2span_cluster_t *cls;
cls = RB_FIND(h2span_cluster_tree, &cluster_tree, &dummy_cls);
if (cls)
++cls->refs;
return (cls);
dmsg_cluster_put(h2span_cluster_t *cls)
assert(cls->refs > 0);
--cls->refs;
if (RB_EMPTY(&cls->tree) && cls->refs == 0) {
&cluster_tree, cls);
dmsg_free(cls);
dmsg_node_get(h2span_cluster_t *cls, uuid_t *pfs_id)
h2span_cluster_t *cls;
RB_FOREACH(cls, h2span_cluster_tree, &cluster_tree) {
dmsg_peer_type_to_str(cls->peer_type),
dmsg_uuid_to_str(&cls->peer_id, &uustr),
cls->peer_label);
RB_FOREACH(node, h2span_node_tree, &cls->tree) {
h2span_cluster_t *cls;
RB_FOREACH(cls, h2span_cluster_tree, &cluster_tree) {
RB_FOREACH(node, h2span_node_tree, &cls->tree) {
struct h2span_cluster *cls;
h2span_cluster_t *cls;
cls = RB_FIND(h2span_cluster_tree, &cluster_tree, &dummy_cls);
if (cls == NULL) {
cls = dmsg_alloc(sizeof(*cls));
cls->peer_id = msg->any.lnk_span.peer_id;
cls->peer_type = msg->any.lnk_span.peer_type;
cls->peer_label, sizeof(cls->peer_label));
RB_INIT(&cls->tree);
RB_INSERT(h2span_cluster_tree, &cluster_tree, cls);
node = RB_FIND(h2span_node_tree, &cls->tree, &dummy_node);
node->cls = cls;
RB_INSERT(h2span_node_tree, &cls->tree, node);
cls = node->cls;
dmsg_uuid_to_str(&cls->peer_id, &alloc),
cls->peer_label,
RB_REMOVE(h2span_node_tree, &cls->tree, node);
if (RB_EMPTY(&cls->tree) && cls->refs == 0) {
&cluster_tree, cls);
dmsg_free(cls);
node->cls = NULL;
h2span_cluster_t *cls;
RB_FOREACH(cls, h2span_cluster_tree, &cluster_tree) {
RB_FOREACH(node, h2span_node_tree, &cls->tree) {
uuid_compare(&slink->node->cls->peer_id,
login_getclass(const char *cls)
return login_getclassbyname(cls, NULL);
const char *cls = NULL;
cls = pwd->pw_class;
if (cls == NULL || *cls == '\0')
cls = (pwd->pw_uid == 0) ? LOGIN_DEFROOTCLASS : LOGIN_DEFCLASS;
return login_getclassbyname(cls, pwd);
u_int fat, bss, rds, cls, dir, lsn, x, x1, x2;
cls = (bpb.bpbHugeSectors - x1) / bpb.bpbSecPerClust;
if (cls > x)
cls = x;
cls);
if (cls < mincls(fat)) {
warnx("%u clusters too few clusters for FAT%u, need %u", cls, fat,
if (cls > maxcls(fat)) {
cls = maxcls(fat);
bpb.bpbHugeSectors = x1 + (cls + 1) * bpb.bpbSecPerClust - 1;
"(%u bytes/cluster)\n", fname, cls * bpb.bpbSecPerClust,
cls * bpb.bpbSecPerClust == 1 ? "" : "s", cls, fat,
cls == 1 ? "" : "s", bpb.bpbBytesPerSec * bpb.bpbSecPerClust);
uint32_t cls;
cls = pci_get_class(dev);
if (cls == PCIC_STORAGE)
if (cls == PCIC_DISPLAY || cls == PCIC_MEMORY ||
cls == PCIC_BASEPERIPH)
midi_init(kobj_class_t cls, int unit, int channel, void *cookie)
kobj_init((kobj_t)m, cls);
mpu401_init(kobj_class_t cls, void *cookie, driver_intr_t softintr,
kobj_init((kobj_t)m, cls);
ac97_create(device_t dev, void *devinfo, kobj_class_t cls)
codec->methods = kobj_create(cls, M_AC97, M_WAITOK | M_ZERO);
#define AC97_CREATE(dev, devinfo, cls) ac97_create(dev, devinfo, &cls ## _class)
struct ac97_info *ac97_create(device_t dev, void *devinfo, kobj_class_t cls);
mixer_obj_create(device_t dev, kobj_class_t cls, void *devinfo,
KASSERT(dev != NULL && cls != NULL && devinfo != NULL,
__func__, dev, cls, devinfo));
m = (struct snd_mixer *)kobj_create(cls, M_MIXER, M_WAITOK | M_ZERO);
mixer_create(device_t dev, kobj_class_t cls, void *devinfo, const char *desc)
m = mixer_obj_create(dev, cls, devinfo, MIXER_TYPE_SECONDARY, desc);
mixer_init(device_t dev, kobj_class_t cls, void *devinfo)
m = mixer_obj_create(dev, cls, devinfo, MIXER_TYPE_PRIMARY, NULL);
struct snd_mixer *mixer_create(device_t dev, kobj_class_t cls, void *devinfo,
int mixer_init(device_t dev, kobj_class_t cls, void *devinfo);
pcm_chn_create(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, int dir, int num, void *devinfo)
ch->methods = kobj_create(cls, M_DEVBUF, M_WAITOK | M_ZERO);
pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo)
ch = pcm_chn_create(d, NULL, cls, dir, -1, devinfo);
cls->name, dir, devinfo);
struct pcm_channel *pcm_chn_create(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, int dir, int num, void *devinfo);
int pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo);
if (cls->ops) {
ops->cls = cls;
cls->ops = ops;
for (m = cls->methods; m->desc; m++)
kobj_lookup_method_class(kobj_class_t cls, kobjop_desc_t desc)
kobj_method_t *methods = cls->methods;
kobj_lookup_method_mi(kobj_class_t cls, kobjop_desc_t desc)
ce = kobj_lookup_method_class(cls, desc);
basep = cls->baseclasses;
kobj_lookup_method(kobj_class_t cls,
ce = kobj_lookup_method_mi(cls, desc);
kobj_lookup_method_cache(kobj_class_t cls, kobj_method_t **cep,
ce = kobj_lookup_method(cls, cep, desc);
kobj_class_free(kobj_class_t cls)
for (i = 0, m = cls->methods; m->desc; i++, m++)
kfree(cls->ops, M_KOBJ);
cls->ops = NULL;
kobj_class_instantiate(kobj_class_t cls)
if (!cls->ops)
kobj_class_compile(cls);
cls->refs++;
kobj_class_uninstantiate(kobj_class_t cls)
cls->refs--;
if (cls->refs == 0)
kobj_class_free(cls);
kobj_create(kobj_class_t cls,
obj = kmalloc(cls->size, mtype, mflags | M_ZERO);
kobj_init(obj, cls);
kobj_init(kobj_t obj, kobj_class_t cls)
kobj_class_instantiate(cls);
obj->ops = cls->ops;
kobj_class_t cls = obj->ops->cls;
kobj_class_uninstantiate(cls);
kobj_class_compile(kobj_class_t cls)
if (cls->ops)
clist_catq(struct clist *cls, struct clist *cld)
while ((c = clist_getc(cls)) != -1)
kobj_class_t cls;
void kobj_class_instantiate(kobj_class_t cls);
void kobj_class_uninstantiate(kobj_class_t cls);
kobj_t kobj_create(kobj_class_t cls,
void kobj_init(kobj_t obj, kobj_class_t cls);
_m = kobj_lookup_method_cache(OPS->cls, &OPS->cache[0], \
kobj_method_t *kobj_lookup_method(kobj_class_t cls,
kobjop_t kobj_lookup_method_cache(kobj_class_t cls,
char *p, *cls = NULL;
cls = optarg;
else if (cls != NULL && *cls != '\0') {
lc = login_getclassbyname(cls, NULL);
if (lc == NULL || strcmp(cls, lc->lc_class) != 0)
cls, lc?lc->lc_class:"current settings");