• Home
  • Raw
  • Download

Lines Matching full:item

114 STATIC UINT32 ParseItemAccess(const CHAR *buf, DevAccessItem *item)  in ParseItemAccess()  argument
118 item->type = DEVLIMIT_DEV_ALL; in ParseItemAccess()
121 item->type = DEVLIMIT_DEV_BLOCK; in ParseItemAccess()
124 item->type = DEVLIMIT_DEV_CHAR; in ParseItemAccess()
135 for (INT32 count = 0; count < sizeof(item->name) - 1; count++) { in ParseItemAccess()
139 item->name[count] = *buf; in ParseItemAccess()
150 item->access |= DEVLIMIT_ACC_READ; in ParseItemAccess()
153 item->access |= DEVLIMIT_ACC_WRITE; in ParseItemAccess()
156 item->access |= DEVLIMIT_ACC_MKNOD; in ParseItemAccess()
234 STATIC BOOL DevLimitMatchItemPartial(LOS_DL_LIST *list, DevAccessItem *item) in DevLimitMatchItemPartial() argument
236 if ((list == NULL) || (item == NULL)) { in DevLimitMatchItemPartial()
244 if (item->type != walk->type) { in DevLimitMatchItemPartial()
247 if ((strcmp(walk->name, "*") != 0) && (strcmp(item->name, "*") != 0) in DevLimitMatchItemPartial()
248 && (strcmp(walk->name, item->name) != 0)) { in DevLimitMatchItemPartial()
251 if (!(item->access & ~(walk->access))) { in DevLimitMatchItemPartial()
258 STATIC BOOL DevLimitParentAllowsRmItem(ProcDevLimit *devParentLimit, DevAccessItem *item) in DevLimitParentAllowsRmItem() argument
263 /* Make sure you're not removing part or a whole item existing in the parent plimits */ in DevLimitParentAllowsRmItem()
264 return !DevLimitMatchItemPartial(&devParentLimit->accessList, item); in DevLimitParentAllowsRmItem()
267 STATIC BOOL DevLimitMatchItem(LOS_DL_LIST *list, DevAccessItem *item) in DevLimitMatchItem() argument
269 if ((list == NULL) || (item == NULL)) { in DevLimitMatchItem()
277 if (item->type != walk->type) { in DevLimitMatchItem()
280 if ((strcmp(walk->name, "*") != 0) && (strcmp(walk->name, item->name) != 0)) { in DevLimitMatchItem()
283 if (!(item->access & ~(walk->access))) { in DevLimitMatchItem()
293 STATIC BOOL DevLimitVerifyNewItem(ProcDevLimit *parent, DevAccessItem *item, INT32 currBehavior) in DevLimitVerifyNewItem() argument
303 return !DevLimitMatchItemPartial(&parent->accessList, item); in DevLimitVerifyNewItem()
305 return DevLimitMatchItem(&parent->accessList, item); in DevLimitVerifyNewItem()
308 STATIC BOOL DevLimitParentAllowsAddItem(ProcDevLimit *devParentLimit, DevAccessItem *item, INT32 cu… in DevLimitParentAllowsAddItem() argument
310 return DevLimitVerifyNewItem(devParentLimit, item, currBehavior); in DevLimitParentAllowsAddItem()
313 STATIC VOID DevLimitAccessListRm(ProcDevLimit *devLimit, DevAccessItem *item) in DevLimitAccessListRm() argument
315 if ((item == NULL) || (devLimit == NULL)) { in DevLimitAccessListRm()
320 if (walk->type != item->type) { in DevLimitAccessListRm()
323 if (strcmp(walk->name, item->name) != 0) { in DevLimitAccessListRm()
326 walk->access &= ~item->access; in DevLimitAccessListRm()
334 STATIC UINT32 DevLimitAccessListAdd(ProcDevLimit *devLimit, DevAccessItem *item) in DevLimitAccessListAdd() argument
336 if ((item == NULL) || (devLimit == NULL)) { in DevLimitAccessListAdd()
345 (VOID)memcpy_s(newItem, sizeof(DevAccessItem), item, sizeof(DevAccessItem)); in DevLimitAccessListAdd()
347 if (walk->type != item->type) { in DevLimitAccessListAdd()
350 if (strcmp(walk->name, item->name) != 0) { in DevLimitAccessListAdd()
353 walk->access |= item->access; in DevLimitAccessListAdd()
382 * propagates a new item to the children
384 …NT32 DevLimitPropagateItem(ProcLimitSet *procLimitSet, ProcDevLimit *devLimit, DevAccessItem *item) in DevLimitPropagateItem() argument
390 if ((procLimitSet == NULL) || (item == NULL)) { in DevLimitPropagateItem()
411 ret = DevLimitAccessListAdd(devLimitChild, item); in DevLimitPropagateItem()
413 DevLimitAccessListRm(devLimitChild, item); in DevLimitPropagateItem()
424 DevAccessItem item = {0}; in DevLimitUpdateAccess() local
430 ret = ParseItemAccess(buf, &item); in DevLimitUpdateAccess()
435 if (item.type == DEVLIMIT_DEV_ALL) { in DevLimitUpdateAccess()
443 if (!DevLimitParentAllowsRmItem(devParentLimit, &item)) { in DevLimitUpdateAccess()
447 DevLimitAccessListRm(devLimit, &item); in DevLimitUpdateAccess()
450 if (!DevLimitParentAllowsAddItem(devParentLimit, &item, devLimit->behavior)) { in DevLimitUpdateAccess()
454 ret = DevLimitAccessListAdd(devLimit, &item); in DevLimitUpdateAccess()
459 DevLimitAccessListRm(devLimit, &item); in DevLimitUpdateAccess()
461 ret = DevLimitAccessListAdd(devLimit, &item); in DevLimitUpdateAccess()
464 ret = DevLimitPropagateItem(procLimitSet, devLimit, &item); in DevLimitUpdateAccess()
517 DevAccessItem *item = NULL; in OsDevLimitShow() local
532 LOS_DL_LIST_FOR_EACH_ENTRY(item, &devLimit->accessList, DevAccessItem, list) { in OsDevLimitShow()
533 DevLimitItemSetAccess(acc, item->access); in OsDevLimitShow()
534 LosBufPrintf(seqBuf, "%c %s %s\n", DevLimitItemTypeToChar(item->type), item->name, acc); in OsDevLimitShow()
572 DevAccessItem item = {0}; in OsDevLimitCheckPermission() local
584 item.type = ConversionDevType(vnodeType); in OsDevLimitCheckPermission()
585 item.access = ConversionDevAccess(flags); in OsDevLimitCheckPermission()
586 LOS_ListInit(&(item.list)); in OsDevLimitCheckPermission()
587 (VOID)strncpy_s(item.name, PATH_MAX, pathName, PATH_MAX); in OsDevLimitCheckPermission()
590 matched = !DevLimitMatchItemPartial(&devLimit->accessList, &item); in OsDevLimitCheckPermission()
592 matched = DevLimitMatchItem(&devLimit->accessList, &item); in OsDevLimitCheckPermission()