int set_acl(struct asfd *asfd, const char *path, const char *acltext, char metacmd, struct cntr *cntr) { switch(metacmd) { case META_ACCESS_ACL: return do_set_acl(asfd, path, acltext, ACL_TYPE_ACCESS, cntr); case META_DEFAULT_ACL: return do_set_acl(asfd, path, acltext, ACL_TYPE_DEFAULT, cntr); default: logp("unknown acl type: %c\n", metacmd); logw(asfd, cntr, "unknown acl type: %c\n", metacmd); return -1; } }
int set_acl(struct asfd *asfd, const char *path, struct sbuf *sb, const char *acltext, size_t alen, char metacmd, struct conf **confs) { switch(metacmd) { case META_ACCESS_ACL: return do_set_acl(asfd, path, acltext, alen, ACL_TYPE_ACCESS, confs); case META_DEFAULT_ACL: return do_set_acl(asfd, path, acltext, alen, ACL_TYPE_DEFAULT, confs); default: logp("unknown acl type: %c\n", metacmd); logw(asfd, confs, "unknown acl type: %c\n", metacmd); break; } return -1; }
int main(void) { int r; message m; int ipc_status; /* SEF local startup. */ sef_local_startup(); for(;;) { r= driver_receive(ANY, &m, &ipc_status); if (r < 0) { printf("PCI: driver_receive failed: %d\n", r); break; } if (is_ipc_notify(ipc_status)) { printf("PCI: got notify from %d\n", m.m_source); /* done, get a new message */ continue; } switch(m.m_type) { case BUSC_PCI_INIT: do_init(&m); break; case BUSC_PCI_FIRST_DEV: do_first_dev(&m); break; case BUSC_PCI_NEXT_DEV: do_next_dev(&m); break; case BUSC_PCI_FIND_DEV: do_find_dev(&m); break; case BUSC_PCI_IDS: do_ids(&m); break; case BUSC_PCI_RESERVE: do_reserve(&m); break; case BUSC_PCI_ATTR_R8: do_attr_r8(&m); break; case BUSC_PCI_ATTR_R16: do_attr_r16(&m); break; case BUSC_PCI_ATTR_R32: do_attr_r32(&m); break; case BUSC_PCI_ATTR_W8: do_attr_w8(&m); break; case BUSC_PCI_ATTR_W16: do_attr_w16(&m); break; case BUSC_PCI_ATTR_W32: do_attr_w32(&m); break; case BUSC_PCI_RESCAN: do_rescan_bus(&m); break; case BUSC_PCI_DEV_NAME_S: do_dev_name_s(&m); break; case BUSC_PCI_SLOT_NAME_S: do_slot_name_s(&m); break; case BUSC_PCI_SET_ACL: do_set_acl(&m); break; case BUSC_PCI_DEL_ACL: do_del_acl(&m); break; case BUSC_PCI_GET_BAR: do_get_bar(&m); break; default: printf("PCI: got message from %d, type %d\n", m.m_source, m.m_type); break; } } return 0; }