parser 424 arch/microblaze/pci/pci-common.c struct of_pci_range_parser parser; parser 430 arch/microblaze/pci/pci-common.c if (of_pci_range_parser_init(&parser, dev)) parser 434 arch/microblaze/pci/pci-common.c for_each_of_pci_range(&parser, &range) { parser 141 arch/mips/pci/pci-legacy.c struct of_pci_range_parser parser; parser 146 arch/mips/pci/pci-legacy.c if (of_pci_range_parser_init(&parser, node)) parser 149 arch/mips/pci/pci-legacy.c for_each_of_pci_range(&parser, &range) { parser 674 arch/powerpc/kernel/pci-common.c struct of_pci_range_parser parser; parser 680 arch/powerpc/kernel/pci-common.c if (of_pci_range_parser_init(&parser, dev)) parser 684 arch/powerpc/kernel/pci-common.c for_each_of_pci_range(&parser, &range) { parser 371 crypto/asymmetric_keys/asymmetric_type.c struct asymmetric_key_parser *parser; parser 382 crypto/asymmetric_keys/asymmetric_type.c list_for_each_entry(parser, &asymmetric_key_parsers, link) { parser 383 crypto/asymmetric_keys/asymmetric_type.c pr_debug("Trying parser '%s'\n", parser->name); parser 385 crypto/asymmetric_keys/asymmetric_type.c ret = parser->parse(prep); parser 597 crypto/asymmetric_keys/asymmetric_type.c int register_asymmetric_key_parser(struct asymmetric_key_parser *parser) parser 605 crypto/asymmetric_keys/asymmetric_type.c if (strcmp(cursor->name, parser->name) == 0) { parser 607 crypto/asymmetric_keys/asymmetric_type.c parser->name); parser 613 crypto/asymmetric_keys/asymmetric_type.c list_add_tail(&parser->link, &asymmetric_key_parsers); parser 615 crypto/asymmetric_keys/asymmetric_type.c pr_notice("Asymmetric key parser '%s' registered\n", parser->name); parser 628 crypto/asymmetric_keys/asymmetric_type.c void unregister_asymmetric_key_parser(struct asymmetric_key_parser *parser) parser 631 crypto/asymmetric_keys/asymmetric_type.c list_del(&parser->link); parser 634 crypto/asymmetric_keys/asymmetric_type.c pr_notice("Asymmetric key parser '%s' unregistered\n", parser->name); parser 1254 drivers/gpu/drm/amd/amdgpu/amdgpu.h int amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser, parser 748 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c static void amdgpu_cs_parser_fini(struct amdgpu_cs_parser *parser, int error, parser 754 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c ttm_eu_backoff_reservation(&parser->ticket, parser 755 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c &parser->validated); parser 757 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c for (i = 0; i < parser->num_post_deps; i++) { parser 758 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c drm_syncobj_put(parser->post_deps[i].syncobj); parser 759 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c kfree(parser->post_deps[i].chain); parser 761 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c kfree(parser->post_deps); parser 763 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c dma_fence_put(parser->fence); parser 765 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c if (parser->ctx) { parser 766 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c mutex_unlock(&parser->ctx->lock); parser 767 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c amdgpu_ctx_put(parser->ctx); parser 769 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c if (parser->bo_list) parser 770 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c amdgpu_bo_list_put(parser->bo_list); parser 772 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c for (i = 0; i < parser->nchunks; i++) parser 773 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c kvfree(parser->chunks[i].kdata); parser 774 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c kfree(parser->chunks); parser 775 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c if (parser->job) parser 776 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c amdgpu_job_free(parser->job); parser 777 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c if (parser->uf_entry.tv.bo) { parser 778 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c struct amdgpu_bo *uf = ttm_to_amdgpu_bo(parser->uf_entry.tv.bo); parser 941 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c struct amdgpu_cs_parser *parser) parser 943 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c struct amdgpu_fpriv *fpriv = parser->filp->driver_priv; parser 949 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c for (i = 0, j = 0; i < parser->nchunks && j < parser->job->num_ibs; i++) { parser 955 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c chunk = &parser->chunks[i]; parser 956 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c ib = &parser->job->ibs[j]; parser 976 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c r = amdgpu_ctx_get_entity(parser->ctx, chunk_ib->ip_type, parser 983 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c parser->job->preamble_status |= parser 986 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c if (parser->entity && parser->entity != entity) parser 989 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c parser->entity = entity; parser 1007 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c ring = to_amdgpu_ring(parser->entity->rq->sched); parser 1008 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c if (parser->job->uf_addr && ring->funcs->no_user_fence) parser 1011 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c return amdgpu_ctx_wait_prev_fence(parser->ctx, parser->entity); parser 1354 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c struct amdgpu_cs_parser parser = {}; parser 1361 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c parser.adev = adev; parser 1362 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c parser.filp = filp; parser 1364 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c r = amdgpu_cs_parser_init(&parser, data); parser 1370 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c r = amdgpu_cs_ib_fill(adev, &parser); parser 1374 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c r = amdgpu_cs_dependencies(adev, &parser); parser 1380 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c r = amdgpu_cs_parser_bos(&parser, data); parser 1391 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c for (i = 0; i < parser.job->num_ibs; i++) parser 1392 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c trace_amdgpu_cs(&parser, i); parser 1394 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c r = amdgpu_cs_vm_handling(&parser); parser 1398 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c r = amdgpu_cs_submit(&parser, cs); parser 1401 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c amdgpu_cs_parser_fini(&parser, r, reserved_buffers); parser 1711 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c int amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser, parser 1715 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c struct amdgpu_fpriv *fpriv = parser->filp->driver_priv; parser 1731 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c if (dma_resv_locking_ctx((*bo)->tbo.base.resv) != &parser->ticket) parser 88 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c struct amdgpu_cs_parser *parser; parser 460 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c lo = amdgpu_get_ib_value(ctx->parser, ctx->ib_idx, ctx->data0); parser 461 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c hi = amdgpu_get_ib_value(ctx->parser, ctx->ib_idx, ctx->data1); parser 484 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c r = amdgpu_cs_find_mapping(ctx->parser, addr, &bo, &mapping); parser 490 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c if (!ctx->parser->adev->uvd.address_64_bit) { parser 492 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c cmd = amdgpu_get_ib_value(ctx->parser, ctx->ib_idx, ctx->idx) >> 1; parser 713 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c struct amdgpu_device *adev = ctx->parser->adev; parser 754 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c adev->uvd.filp[i] = ctx->parser->filp; parser 772 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c if (adev->uvd.filp[i] != ctx->parser->filp) { parser 814 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c r = amdgpu_cs_find_mapping(ctx->parser, addr, &bo, &mapping); parser 828 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c amdgpu_set_ib_value(ctx->parser, ctx->ib_idx, ctx->data0, parser 830 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c amdgpu_set_ib_value(ctx->parser, ctx->ib_idx, ctx->data1, parser 833 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c cmd = amdgpu_get_ib_value(ctx->parser, ctx->ib_idx, ctx->idx) >> 1; parser 854 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c if (!ctx->parser->adev->uvd.address_64_bit) { parser 862 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c (start >> 28) != (ctx->parser->adev->uvd.inst->gpu_addr >> 28)) { parser 893 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c struct amdgpu_ib *ib = &ctx->parser->job->ibs[ctx->ib_idx]; parser 940 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c struct amdgpu_ib *ib = &ctx->parser->job->ibs[ctx->ib_idx]; parser 944 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c uint32_t cmd = amdgpu_get_ib_value(ctx->parser, ctx->ib_idx, ctx->idx); parser 972 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c int amdgpu_uvd_ring_parse_cs(struct amdgpu_cs_parser *parser, uint32_t ib_idx) parser 982 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c struct amdgpu_ib *ib = &parser->job->ibs[ib_idx]; parser 985 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c parser->job->vm = NULL; parser 994 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c ctx.parser = parser; parser 999 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c if (!parser->adev->uvd.address_64_bit) { parser 83 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h int amdgpu_uvd_ring_parse_cs(struct amdgpu_cs_parser *parser, uint32_t ib_idx); parser 1692 drivers/gpu/drm/radeon/radeon.h int radeon_uvd_cs_parse(struct radeon_cs_parser *parser); parser 415 drivers/gpu/drm/radeon/radeon_cs.c static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error, bool backoff) parser 430 drivers/gpu/drm/radeon/radeon_cs.c list_sort(NULL, &parser->validated, cmp_size_smaller_first); parser 432 drivers/gpu/drm/radeon/radeon_cs.c ttm_eu_fence_buffer_objects(&parser->ticket, parser 433 drivers/gpu/drm/radeon/radeon_cs.c &parser->validated, parser 434 drivers/gpu/drm/radeon/radeon_cs.c &parser->ib.fence->base); parser 436 drivers/gpu/drm/radeon/radeon_cs.c ttm_eu_backoff_reservation(&parser->ticket, parser 437 drivers/gpu/drm/radeon/radeon_cs.c &parser->validated); parser 440 drivers/gpu/drm/radeon/radeon_cs.c if (parser->relocs != NULL) { parser 441 drivers/gpu/drm/radeon/radeon_cs.c for (i = 0; i < parser->nrelocs; i++) { parser 442 drivers/gpu/drm/radeon/radeon_cs.c struct radeon_bo *bo = parser->relocs[i].robj; parser 449 drivers/gpu/drm/radeon/radeon_cs.c kfree(parser->track); parser 450 drivers/gpu/drm/radeon/radeon_cs.c kvfree(parser->relocs); parser 451 drivers/gpu/drm/radeon/radeon_cs.c kvfree(parser->vm_bos); parser 452 drivers/gpu/drm/radeon/radeon_cs.c for (i = 0; i < parser->nchunks; i++) parser 453 drivers/gpu/drm/radeon/radeon_cs.c kvfree(parser->chunks[i].kdata); parser 454 drivers/gpu/drm/radeon/radeon_cs.c kfree(parser->chunks); parser 455 drivers/gpu/drm/radeon/radeon_cs.c kfree(parser->chunks_array); parser 456 drivers/gpu/drm/radeon/radeon_cs.c radeon_ib_free(parser->rdev, &parser->ib); parser 457 drivers/gpu/drm/radeon/radeon_cs.c radeon_ib_free(parser->rdev, &parser->const_ib); parser 461 drivers/gpu/drm/radeon/radeon_cs.c struct radeon_cs_parser *parser) parser 465 drivers/gpu/drm/radeon/radeon_cs.c if (parser->chunk_ib == NULL) parser 468 drivers/gpu/drm/radeon/radeon_cs.c if (parser->cs_flags & RADEON_CS_USE_VM) parser 471 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_cs_parse(rdev, parser->ring, parser); parser 472 drivers/gpu/drm/radeon/radeon_cs.c if (r || parser->parser_error) { parser 477 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_cs_sync_rings(parser); parser 484 drivers/gpu/drm/radeon/radeon_cs.c if (parser->ring == R600_RING_TYPE_UVD_INDEX) parser 486 drivers/gpu/drm/radeon/radeon_cs.c else if ((parser->ring == TN_RING_TYPE_VCE1_INDEX) || parser 487 drivers/gpu/drm/radeon/radeon_cs.c (parser->ring == TN_RING_TYPE_VCE2_INDEX)) parser 490 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_ib_schedule(rdev, &parser->ib, NULL, true); parser 543 drivers/gpu/drm/radeon/radeon_cs.c struct radeon_cs_parser *parser) parser 545 drivers/gpu/drm/radeon/radeon_cs.c struct radeon_fpriv *fpriv = parser->filp->driver_priv; parser 549 drivers/gpu/drm/radeon/radeon_cs.c if (parser->chunk_ib == NULL) parser 551 drivers/gpu/drm/radeon/radeon_cs.c if ((parser->cs_flags & RADEON_CS_USE_VM) == 0) parser 554 drivers/gpu/drm/radeon/radeon_cs.c if (parser->const_ib.length_dw) { parser 555 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_ring_ib_parse(rdev, parser->ring, &parser->const_ib); parser 561 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_ring_ib_parse(rdev, parser->ring, &parser->ib); parser 566 drivers/gpu/drm/radeon/radeon_cs.c if (parser->ring == R600_RING_TYPE_UVD_INDEX) parser 570 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_bo_vm_update_pte(parser, vm); parser 575 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_cs_sync_rings(parser); parser 583 drivers/gpu/drm/radeon/radeon_cs.c (parser->chunk_const_ib != NULL)) { parser 584 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_ib_schedule(rdev, &parser->ib, &parser->const_ib, true); parser 586 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_ib_schedule(rdev, &parser->ib, NULL, true); parser 604 drivers/gpu/drm/radeon/radeon_cs.c static int radeon_cs_ib_fill(struct radeon_device *rdev, struct radeon_cs_parser *parser) parser 610 drivers/gpu/drm/radeon/radeon_cs.c if (parser->chunk_ib == NULL) parser 613 drivers/gpu/drm/radeon/radeon_cs.c if (parser->cs_flags & RADEON_CS_USE_VM) { parser 614 drivers/gpu/drm/radeon/radeon_cs.c struct radeon_fpriv *fpriv = parser->filp->driver_priv; parser 618 drivers/gpu/drm/radeon/radeon_cs.c (parser->chunk_const_ib != NULL)) { parser 619 drivers/gpu/drm/radeon/radeon_cs.c ib_chunk = parser->chunk_const_ib; parser 624 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_ib_get(rdev, parser->ring, &parser->const_ib, parser 630 drivers/gpu/drm/radeon/radeon_cs.c parser->const_ib.is_const_ib = true; parser 631 drivers/gpu/drm/radeon/radeon_cs.c parser->const_ib.length_dw = ib_chunk->length_dw; parser 632 drivers/gpu/drm/radeon/radeon_cs.c if (copy_from_user(parser->const_ib.ptr, parser 638 drivers/gpu/drm/radeon/radeon_cs.c ib_chunk = parser->chunk_ib; parser 644 drivers/gpu/drm/radeon/radeon_cs.c ib_chunk = parser->chunk_ib; parser 646 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_ib_get(rdev, parser->ring, &parser->ib, parser 652 drivers/gpu/drm/radeon/radeon_cs.c parser->ib.length_dw = ib_chunk->length_dw; parser 654 drivers/gpu/drm/radeon/radeon_cs.c memcpy(parser->ib.ptr, ib_chunk->kdata, ib_chunk->length_dw * 4); parser 655 drivers/gpu/drm/radeon/radeon_cs.c else if (copy_from_user(parser->ib.ptr, ib_chunk->user_ptr, ib_chunk->length_dw * 4)) parser 663 drivers/gpu/drm/radeon/radeon_cs.c struct radeon_cs_parser parser; parser 679 drivers/gpu/drm/radeon/radeon_cs.c memset(&parser, 0, sizeof(struct radeon_cs_parser)); parser 680 drivers/gpu/drm/radeon/radeon_cs.c parser.filp = filp; parser 681 drivers/gpu/drm/radeon/radeon_cs.c parser.rdev = rdev; parser 682 drivers/gpu/drm/radeon/radeon_cs.c parser.dev = rdev->dev; parser 683 drivers/gpu/drm/radeon/radeon_cs.c parser.family = rdev->family; parser 684 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_cs_parser_init(&parser, data); parser 687 drivers/gpu/drm/radeon/radeon_cs.c radeon_cs_parser_fini(&parser, r, false); parser 693 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_cs_ib_fill(rdev, &parser); parser 695 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_cs_parser_relocs(&parser); parser 701 drivers/gpu/drm/radeon/radeon_cs.c radeon_cs_parser_fini(&parser, r, false); parser 707 drivers/gpu/drm/radeon/radeon_cs.c trace_radeon_cs(&parser); parser 709 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_cs_ib_chunk(rdev, &parser); parser 713 drivers/gpu/drm/radeon/radeon_cs.c r = radeon_cs_ib_vm_chunk(rdev, &parser); parser 718 drivers/gpu/drm/radeon/radeon_cs.c radeon_cs_parser_fini(&parser, r, true); parser 121 drivers/hid/hid-core.c static int open_collection(struct hid_parser *parser, unsigned type) parser 127 drivers/hid/hid-core.c usage = parser->local.usage[0]; parser 129 drivers/hid/hid-core.c if (parser->collection_stack_ptr == parser->collection_stack_size) { parser 131 drivers/hid/hid-core.c unsigned int new_size = parser->collection_stack_size + parser 134 drivers/hid/hid-core.c collection_stack = krealloc(parser->collection_stack, parser 140 drivers/hid/hid-core.c parser->collection_stack = collection_stack; parser 141 drivers/hid/hid-core.c parser->collection_stack_size = new_size; parser 144 drivers/hid/hid-core.c if (parser->device->maxcollection == parser->device->collection_size) { parser 147 drivers/hid/hid-core.c parser->device->collection_size, parser 151 drivers/hid/hid-core.c hid_err(parser->device, "failed to reallocate collection array\n"); parser 154 drivers/hid/hid-core.c memcpy(collection, parser->device->collection, parser 156 drivers/hid/hid-core.c parser->device->collection_size); parser 157 drivers/hid/hid-core.c memset(collection + parser->device->collection_size, 0, parser 159 drivers/hid/hid-core.c parser->device->collection_size); parser 160 drivers/hid/hid-core.c kfree(parser->device->collection); parser 161 drivers/hid/hid-core.c parser->device->collection = collection; parser 162 drivers/hid/hid-core.c parser->device->collection_size *= 2; parser 165 drivers/hid/hid-core.c parser->collection_stack[parser->collection_stack_ptr++] = parser 166 drivers/hid/hid-core.c parser->device->maxcollection; parser 168 drivers/hid/hid-core.c collection_index = parser->device->maxcollection++; parser 169 drivers/hid/hid-core.c collection = parser->device->collection + collection_index; parser 172 drivers/hid/hid-core.c collection->level = parser->collection_stack_ptr - 1; parser 174 drivers/hid/hid-core.c parser->collection_stack[collection->level - 1]; parser 177 drivers/hid/hid-core.c parser->device->maxapplication++; parser 186 drivers/hid/hid-core.c static int close_collection(struct hid_parser *parser) parser 188 drivers/hid/hid-core.c if (!parser->collection_stack_ptr) { parser 189 drivers/hid/hid-core.c hid_err(parser->device, "collection stack underflow\n"); parser 192 drivers/hid/hid-core.c parser->collection_stack_ptr--; parser 201 drivers/hid/hid-core.c static unsigned hid_lookup_collection(struct hid_parser *parser, unsigned type) parser 203 drivers/hid/hid-core.c struct hid_collection *collection = parser->device->collection; parser 206 drivers/hid/hid-core.c for (n = parser->collection_stack_ptr - 1; n >= 0; n--) { parser 207 drivers/hid/hid-core.c unsigned index = parser->collection_stack[n]; parser 219 drivers/hid/hid-core.c static void complete_usage(struct hid_parser *parser, unsigned int index) parser 221 drivers/hid/hid-core.c parser->local.usage[index] &= 0xFFFF; parser 222 drivers/hid/hid-core.c parser->local.usage[index] |= parser 223 drivers/hid/hid-core.c (parser->global.usage_page & 0xFFFF) << 16; parser 230 drivers/hid/hid-core.c static int hid_add_usage(struct hid_parser *parser, unsigned usage, u8 size) parser 232 drivers/hid/hid-core.c if (parser->local.usage_index >= HID_MAX_USAGES) { parser 233 drivers/hid/hid-core.c hid_err(parser->device, "usage index exceeded\n"); parser 236 drivers/hid/hid-core.c parser->local.usage[parser->local.usage_index] = usage; parser 243 drivers/hid/hid-core.c complete_usage(parser, parser->local.usage_index); parser 245 drivers/hid/hid-core.c parser->local.usage_size[parser->local.usage_index] = size; parser 246 drivers/hid/hid-core.c parser->local.collection_index[parser->local.usage_index] = parser 247 drivers/hid/hid-core.c parser->collection_stack_ptr ? parser 248 drivers/hid/hid-core.c parser->collection_stack[parser->collection_stack_ptr - 1] : 0; parser 249 drivers/hid/hid-core.c parser->local.usage_index++; parser 257 drivers/hid/hid-core.c static int hid_add_field(struct hid_parser *parser, unsigned report_type, unsigned flags) parser 266 drivers/hid/hid-core.c application = hid_lookup_collection(parser, HID_COLLECTION_APPLICATION); parser 268 drivers/hid/hid-core.c report = hid_register_report(parser->device, report_type, parser 269 drivers/hid/hid-core.c parser->global.report_id, application); parser 271 drivers/hid/hid-core.c hid_err(parser->device, "hid_register_report failed\n"); parser 276 drivers/hid/hid-core.c if ((parser->global.logical_minimum < 0 && parser 277 drivers/hid/hid-core.c parser->global.logical_maximum < parser 278 drivers/hid/hid-core.c parser->global.logical_minimum) || parser 279 drivers/hid/hid-core.c (parser->global.logical_minimum >= 0 && parser 280 drivers/hid/hid-core.c (__u32)parser->global.logical_maximum < parser 281 drivers/hid/hid-core.c (__u32)parser->global.logical_minimum)) { parser 283 drivers/hid/hid-core.c parser->global.logical_minimum, parser 284 drivers/hid/hid-core.c parser->global.logical_maximum); parser 289 drivers/hid/hid-core.c report->size += parser->global.report_size * parser->global.report_count; parser 293 drivers/hid/hid-core.c hid_err(parser->device, "report is too long\n"); parser 297 drivers/hid/hid-core.c if (!parser->local.usage_index) /* Ignore padding fields */ parser 300 drivers/hid/hid-core.c usages = max_t(unsigned, parser->local.usage_index, parser 301 drivers/hid/hid-core.c parser->global.report_count); parser 303 drivers/hid/hid-core.c field = hid_register_field(report, usages, parser->global.report_count); parser 307 drivers/hid/hid-core.c field->physical = hid_lookup_collection(parser, HID_COLLECTION_PHYSICAL); parser 308 drivers/hid/hid-core.c field->logical = hid_lookup_collection(parser, HID_COLLECTION_LOGICAL); parser 314 drivers/hid/hid-core.c if (i >= parser->local.usage_index) parser 315 drivers/hid/hid-core.c j = parser->local.usage_index - 1; parser 316 drivers/hid/hid-core.c field->usage[i].hid = parser->local.usage[j]; parser 318 drivers/hid/hid-core.c parser->local.collection_index[j]; parser 327 drivers/hid/hid-core.c field->report_size = parser->global.report_size; parser 328 drivers/hid/hid-core.c field->report_count = parser->global.report_count; parser 329 drivers/hid/hid-core.c field->logical_minimum = parser->global.logical_minimum; parser 330 drivers/hid/hid-core.c field->logical_maximum = parser->global.logical_maximum; parser 331 drivers/hid/hid-core.c field->physical_minimum = parser->global.physical_minimum; parser 332 drivers/hid/hid-core.c field->physical_maximum = parser->global.physical_maximum; parser 333 drivers/hid/hid-core.c field->unit_exponent = parser->global.unit_exponent; parser 334 drivers/hid/hid-core.c field->unit = parser->global.unit; parser 367 drivers/hid/hid-core.c static int hid_parser_global(struct hid_parser *parser, struct hid_item *item) parser 373 drivers/hid/hid-core.c if (parser->global_stack_ptr == HID_GLOBAL_STACK_SIZE) { parser 374 drivers/hid/hid-core.c hid_err(parser->device, "global environment stack overflow\n"); parser 378 drivers/hid/hid-core.c memcpy(parser->global_stack + parser->global_stack_ptr++, parser 379 drivers/hid/hid-core.c &parser->global, sizeof(struct hid_global)); parser 384 drivers/hid/hid-core.c if (!parser->global_stack_ptr) { parser 385 drivers/hid/hid-core.c hid_err(parser->device, "global environment stack underflow\n"); parser 389 drivers/hid/hid-core.c memcpy(&parser->global, parser->global_stack + parser 390 drivers/hid/hid-core.c --parser->global_stack_ptr, sizeof(struct hid_global)); parser 394 drivers/hid/hid-core.c parser->global.usage_page = item_udata(item); parser 398 drivers/hid/hid-core.c parser->global.logical_minimum = item_sdata(item); parser 402 drivers/hid/hid-core.c if (parser->global.logical_minimum < 0) parser 403 drivers/hid/hid-core.c parser->global.logical_maximum = item_sdata(item); parser 405 drivers/hid/hid-core.c parser->global.logical_maximum = item_udata(item); parser 409 drivers/hid/hid-core.c parser->global.physical_minimum = item_sdata(item); parser 413 drivers/hid/hid-core.c if (parser->global.physical_minimum < 0) parser 414 drivers/hid/hid-core.c parser->global.physical_maximum = item_sdata(item); parser 416 drivers/hid/hid-core.c parser->global.physical_maximum = item_udata(item); parser 426 drivers/hid/hid-core.c parser->global.unit_exponent = hid_snto32(raw_value, 4); parser 428 drivers/hid/hid-core.c parser->global.unit_exponent = raw_value; parser 432 drivers/hid/hid-core.c parser->global.unit = item_udata(item); parser 436 drivers/hid/hid-core.c parser->global.report_size = item_udata(item); parser 437 drivers/hid/hid-core.c if (parser->global.report_size > 256) { parser 438 drivers/hid/hid-core.c hid_err(parser->device, "invalid report_size %d\n", parser 439 drivers/hid/hid-core.c parser->global.report_size); parser 445 drivers/hid/hid-core.c parser->global.report_count = item_udata(item); parser 446 drivers/hid/hid-core.c if (parser->global.report_count > HID_MAX_USAGES) { parser 447 drivers/hid/hid-core.c hid_err(parser->device, "invalid report_count %d\n", parser 448 drivers/hid/hid-core.c parser->global.report_count); parser 454 drivers/hid/hid-core.c parser->global.report_id = item_udata(item); parser 455 drivers/hid/hid-core.c if (parser->global.report_id == 0 || parser 456 drivers/hid/hid-core.c parser->global.report_id >= HID_MAX_IDS) { parser 457 drivers/hid/hid-core.c hid_err(parser->device, "report_id %u is invalid\n", parser 458 drivers/hid/hid-core.c parser->global.report_id); parser 464 drivers/hid/hid-core.c hid_err(parser->device, "unknown global tag 0x%x\n", item->tag); parser 473 drivers/hid/hid-core.c static int hid_parser_local(struct hid_parser *parser, struct hid_item *item) parser 491 drivers/hid/hid-core.c if (parser->local.delimiter_depth != 0) { parser 492 drivers/hid/hid-core.c hid_err(parser->device, "nested delimiters\n"); parser 495 drivers/hid/hid-core.c parser->local.delimiter_depth++; parser 496 drivers/hid/hid-core.c parser->local.delimiter_branch++; parser 498 drivers/hid/hid-core.c if (parser->local.delimiter_depth < 1) { parser 499 drivers/hid/hid-core.c hid_err(parser->device, "bogus close delimiter\n"); parser 502 drivers/hid/hid-core.c parser->local.delimiter_depth--; parser 508 drivers/hid/hid-core.c if (parser->local.delimiter_branch > 1) { parser 513 drivers/hid/hid-core.c return hid_add_usage(parser, data, item->size); parser 517 drivers/hid/hid-core.c if (parser->local.delimiter_branch > 1) { parser 522 drivers/hid/hid-core.c parser->local.usage_minimum = data; parser 527 drivers/hid/hid-core.c if (parser->local.delimiter_branch > 1) { parser 532 drivers/hid/hid-core.c count = data - parser->local.usage_minimum; parser 533 drivers/hid/hid-core.c if (count + parser->local.usage_index >= HID_MAX_USAGES) { parser 538 drivers/hid/hid-core.c if (dev_name(&parser->device->dev)) parser 539 drivers/hid/hid-core.c hid_warn(parser->device, parser 541 drivers/hid/hid-core.c data = HID_MAX_USAGES - parser->local.usage_index + parser 542 drivers/hid/hid-core.c parser->local.usage_minimum - 1; parser 544 drivers/hid/hid-core.c hid_err(parser->device, parser 550 drivers/hid/hid-core.c for (n = parser->local.usage_minimum; n <= data; n++) parser 551 drivers/hid/hid-core.c if (hid_add_usage(parser, n, item->size)) { parser 572 drivers/hid/hid-core.c static void hid_concatenate_last_usage_page(struct hid_parser *parser) parser 578 drivers/hid/hid-core.c if (!parser->local.usage_index) parser 581 drivers/hid/hid-core.c usage_page = parser->global.usage_page; parser 587 drivers/hid/hid-core.c for (i = parser->local.usage_index - 1; i >= 0; i--) { parser 588 drivers/hid/hid-core.c if (parser->local.usage_size[i] > 2) parser 592 drivers/hid/hid-core.c current_page = parser->local.usage[i] >> 16; parser 596 drivers/hid/hid-core.c complete_usage(parser, i); parser 604 drivers/hid/hid-core.c static int hid_parser_main(struct hid_parser *parser, struct hid_item *item) parser 609 drivers/hid/hid-core.c hid_concatenate_last_usage_page(parser); parser 615 drivers/hid/hid-core.c ret = open_collection(parser, data & 0xff); parser 618 drivers/hid/hid-core.c ret = close_collection(parser); parser 621 drivers/hid/hid-core.c ret = hid_add_field(parser, HID_INPUT_REPORT, data); parser 624 drivers/hid/hid-core.c ret = hid_add_field(parser, HID_OUTPUT_REPORT, data); parser 627 drivers/hid/hid-core.c ret = hid_add_field(parser, HID_FEATURE_REPORT, data); parser 630 drivers/hid/hid-core.c hid_warn(parser->device, "unknown main item tag 0x%x\n", item->tag); parser 634 drivers/hid/hid-core.c memset(&parser->local, 0, sizeof(parser->local)); /* Reset the local parser environment */ parser 643 drivers/hid/hid-core.c static int hid_parser_reserved(struct hid_parser *parser, struct hid_item *item) parser 777 drivers/hid/hid-core.c static void hid_scan_input_usage(struct hid_parser *parser, u32 usage) parser 779 drivers/hid/hid-core.c struct hid_device *hid = parser->device; parser 785 drivers/hid/hid-core.c static void hid_scan_feature_usage(struct hid_parser *parser, u32 usage) parser 787 drivers/hid/hid-core.c if (usage == 0xff0000c5 && parser->global.report_count == 256 && parser 788 drivers/hid/hid-core.c parser->global.report_size == 8) parser 789 drivers/hid/hid-core.c parser->scan_flags |= HID_SCAN_FLAG_MT_WIN_8; parser 791 drivers/hid/hid-core.c if (usage == 0xff0000c6 && parser->global.report_count == 1 && parser 792 drivers/hid/hid-core.c parser->global.report_size == 8) parser 793 drivers/hid/hid-core.c parser->scan_flags |= HID_SCAN_FLAG_MT_WIN_8; parser 796 drivers/hid/hid-core.c static void hid_scan_collection(struct hid_parser *parser, unsigned type) parser 798 drivers/hid/hid-core.c struct hid_device *hid = parser->device; parser 801 drivers/hid/hid-core.c if (((parser->global.usage_page << 16) == HID_UP_SENSOR) && parser 810 drivers/hid/hid-core.c if ((parser->global.usage_page << 16) == HID_UP_GENDESK) parser 811 drivers/hid/hid-core.c for (i = 0; i < parser->local.usage_index; i++) parser 812 drivers/hid/hid-core.c if (parser->local.usage[i] == HID_GD_POINTER) parser 813 drivers/hid/hid-core.c parser->scan_flags |= HID_SCAN_FLAG_GD_POINTER; parser 815 drivers/hid/hid-core.c if ((parser->global.usage_page << 16) >= HID_UP_MSVENDOR) parser 816 drivers/hid/hid-core.c parser->scan_flags |= HID_SCAN_FLAG_VENDOR_SPECIFIC; parser 819 drivers/hid/hid-core.c static int hid_scan_main(struct hid_parser *parser, struct hid_item *item) parser 824 drivers/hid/hid-core.c hid_concatenate_last_usage_page(parser); parser 830 drivers/hid/hid-core.c hid_scan_collection(parser, data & 0xff); parser 838 drivers/hid/hid-core.c for (i = 0; i < parser->local.usage_index; i++) parser 839 drivers/hid/hid-core.c hid_scan_input_usage(parser, parser->local.usage[i]); parser 844 drivers/hid/hid-core.c for (i = 0; i < parser->local.usage_index; i++) parser 845 drivers/hid/hid-core.c hid_scan_feature_usage(parser, parser->local.usage[i]); parser 850 drivers/hid/hid-core.c memset(&parser->local, 0, sizeof(parser->local)); parser 862 drivers/hid/hid-core.c struct hid_parser *parser; parser 866 drivers/hid/hid-core.c static int (*dispatch_type[])(struct hid_parser *parser, parser 874 drivers/hid/hid-core.c parser = vzalloc(sizeof(struct hid_parser)); parser 875 drivers/hid/hid-core.c if (!parser) parser 878 drivers/hid/hid-core.c parser->device = hid; parser 887 drivers/hid/hid-core.c dispatch_type[item.type](parser, &item); parser 892 drivers/hid/hid-core.c if ((parser->scan_flags & HID_SCAN_FLAG_MT_WIN_8) && parser 905 drivers/hid/hid-core.c if ((parser->scan_flags & HID_SCAN_FLAG_VENDOR_SPECIFIC) parser 906 drivers/hid/hid-core.c && (parser->scan_flags & HID_SCAN_FLAG_GD_POINTER)) parser 915 drivers/hid/hid-core.c kfree(parser->collection_stack); parser 916 drivers/hid/hid-core.c vfree(parser); parser 1185 drivers/hid/hid-core.c struct hid_parser *parser; parser 1193 drivers/hid/hid-core.c static int (*dispatch_type[])(struct hid_parser *parser, parser 1226 drivers/hid/hid-core.c parser = vzalloc(sizeof(struct hid_parser)); parser 1227 drivers/hid/hid-core.c if (!parser) { parser 1232 drivers/hid/hid-core.c parser->device = device; parser 1253 drivers/hid/hid-core.c if (dispatch_type[item.type](parser, &item)) { parser 1261 drivers/hid/hid-core.c if (parser->collection_stack_ptr) { parser 1265 drivers/hid/hid-core.c if (parser->local.delimiter_depth) { parser 1276 drivers/hid/hid-core.c kfree(parser->collection_stack); parser 1277 drivers/hid/hid-core.c vfree(parser); parser 1287 drivers/hid/hid-core.c kfree(parser->collection_stack); parser 1289 drivers/hid/hid-core.c vfree(parser); parser 82 drivers/misc/habanalabs/command_submission.c struct hl_cs_parser parser; parser 85 drivers/misc/habanalabs/command_submission.c parser.ctx_id = job->cs->ctx->asid; parser 86 drivers/misc/habanalabs/command_submission.c parser.cs_sequence = job->cs->sequence; parser 87 drivers/misc/habanalabs/command_submission.c parser.job_id = job->id; parser 89 drivers/misc/habanalabs/command_submission.c parser.hw_queue_id = job->hw_queue_id; parser 90 drivers/misc/habanalabs/command_submission.c parser.job_userptr_list = &job->userptr_list; parser 91 drivers/misc/habanalabs/command_submission.c parser.patched_cb = NULL; parser 92 drivers/misc/habanalabs/command_submission.c parser.user_cb = job->user_cb; parser 93 drivers/misc/habanalabs/command_submission.c parser.user_cb_size = job->user_cb_size; parser 94 drivers/misc/habanalabs/command_submission.c parser.ext_queue = job->ext_queue; parser 97 drivers/misc/habanalabs/command_submission.c rc = hdev->asic_funcs->cs_parser(hdev, &parser); parser 100 drivers/misc/habanalabs/command_submission.c job->patched_cb = parser.patched_cb; parser 101 drivers/misc/habanalabs/command_submission.c job->job_cb_size = parser.patched_cb_size; parser 3178 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser, parser 3186 drivers/misc/habanalabs/goya/goya.c parser->job_userptr_list, &userptr)) parser 3198 drivers/misc/habanalabs/goya/goya.c list_add_tail(&userptr->job_node, parser->job_userptr_list); parser 3211 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size += parser 3224 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser, parser 3310 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size += sizeof(*user_dma_pkt); parser 3313 drivers/misc/habanalabs/goya/goya.c (parser->hw_queue_id > GOYA_QUEUE_ID_DMA_1)) { parser 3319 drivers/misc/habanalabs/goya/goya.c rc = goya_pin_memory_before_cs(hdev, parser, user_dma_pkt, parser 3327 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser, parser 3366 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size += sizeof(*user_dma_pkt); parser 3372 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser, parser 3401 drivers/misc/habanalabs/goya/goya.c rc = goya_validate_dma_pkt_no_host(hdev, parser, user_dma_pkt); parser 3403 drivers/misc/habanalabs/goya/goya.c rc = goya_validate_dma_pkt_host(hdev, parser, user_dma_pkt); parser 3409 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser, parser 3423 drivers/misc/habanalabs/goya/goya.c if (parser->hw_queue_id != GOYA_QUEUE_ID_DMA_1 && parser 3439 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size += sizeof(*user_dma_pkt); parser 3445 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser, parser 3489 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser, bool is_mmu) parser 3494 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size = 0; parser 3497 drivers/misc/habanalabs/goya/goya.c while (cb_parsed_length < parser->user_cb_size) { parser 3503 drivers/misc/habanalabs/goya/goya.c (parser->user_cb->kernel_address + cb_parsed_length); parser 3512 drivers/misc/habanalabs/goya/goya.c if (cb_parsed_length > parser->user_cb_size) { parser 3527 drivers/misc/habanalabs/goya/goya.c parser, (struct packet_wreg32 *) user_pkt); parser 3554 drivers/misc/habanalabs/goya/goya.c rc = goya_validate_dma_pkt_mmu(hdev, parser, parser 3557 drivers/misc/habanalabs/goya/goya.c rc = goya_validate_dma_pkt_no_mmu(hdev, parser, parser 3565 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size += pkt_size; parser 3584 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size += sizeof(struct packet_msg_prot) * 2; parser 3590 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser, parser 3638 drivers/misc/habanalabs/goya/goya.c parser->job_userptr_list, &userptr) == false)) { parser 3720 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser) parser 3727 drivers/misc/habanalabs/goya/goya.c while (cb_parsed_length < parser->user_cb_size) { parser 3734 drivers/misc/habanalabs/goya/goya.c (parser->user_cb->kernel_address + cb_parsed_length); parser 3736 drivers/misc/habanalabs/goya/goya.c (parser->patched_cb->kernel_address + parser 3746 drivers/misc/habanalabs/goya/goya.c if (cb_parsed_length > parser->user_cb_size) { parser 3755 drivers/misc/habanalabs/goya/goya.c rc = goya_patch_dma_packet(hdev, parser, parser 3765 drivers/misc/habanalabs/goya/goya.c rc = goya_validate_wreg32(hdev, parser, parser 3814 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser) parser 3826 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size = parser->user_cb_size + parser 3830 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size, parser 3841 drivers/misc/habanalabs/goya/goya.c parser->patched_cb = hl_cb_get(hdev, &hdev->kernel_cb_mgr, parser 3844 drivers/misc/habanalabs/goya/goya.c WARN(!parser->patched_cb, "DMA CB handle invalid 0x%x\n", parser 3846 drivers/misc/habanalabs/goya/goya.c if (!parser->patched_cb) { parser 3855 drivers/misc/habanalabs/goya/goya.c memcpy((void *) (uintptr_t) parser->patched_cb->kernel_address, parser 3856 drivers/misc/habanalabs/goya/goya.c (void *) (uintptr_t) parser->user_cb->kernel_address, parser 3857 drivers/misc/habanalabs/goya/goya.c parser->user_cb_size); parser 3859 drivers/misc/habanalabs/goya/goya.c patched_cb_size = parser->patched_cb_size; parser 3862 drivers/misc/habanalabs/goya/goya.c user_cb = parser->user_cb; parser 3863 drivers/misc/habanalabs/goya/goya.c parser->user_cb = parser->patched_cb; parser 3864 drivers/misc/habanalabs/goya/goya.c rc = goya_validate_cb(hdev, parser, true); parser 3865 drivers/misc/habanalabs/goya/goya.c parser->user_cb = user_cb; parser 3868 drivers/misc/habanalabs/goya/goya.c hl_cb_put(parser->patched_cb); parser 3872 drivers/misc/habanalabs/goya/goya.c if (patched_cb_size != parser->patched_cb_size) { parser 3874 drivers/misc/habanalabs/goya/goya.c hl_cb_put(parser->patched_cb); parser 3893 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser) parser 3898 drivers/misc/habanalabs/goya/goya.c rc = goya_validate_cb(hdev, parser, false); parser 3904 drivers/misc/habanalabs/goya/goya.c parser->patched_cb_size, parser 3913 drivers/misc/habanalabs/goya/goya.c parser->patched_cb = hl_cb_get(hdev, &hdev->kernel_cb_mgr, parser 3916 drivers/misc/habanalabs/goya/goya.c WARN(!parser->patched_cb, "DMA CB handle invalid 0x%x\n", parser 3918 drivers/misc/habanalabs/goya/goya.c if (!parser->patched_cb) { parser 3923 drivers/misc/habanalabs/goya/goya.c rc = goya_patch_cb(hdev, parser); parser 3926 drivers/misc/habanalabs/goya/goya.c hl_cb_put(parser->patched_cb); parser 3940 drivers/misc/habanalabs/goya/goya.c hl_userptr_delete_list(hdev, parser->job_userptr_list); parser 3945 drivers/misc/habanalabs/goya/goya.c struct hl_cs_parser *parser) parser 3955 drivers/misc/habanalabs/goya/goya.c (u64) (uintptr_t) parser->user_cb, parser 3956 drivers/misc/habanalabs/goya/goya.c parser->user_cb_size, parser 3962 drivers/misc/habanalabs/goya/goya.c (u64) (uintptr_t) parser->user_cb, parser 3963 drivers/misc/habanalabs/goya/goya.c parser->user_cb_size, parser 3970 drivers/misc/habanalabs/goya/goya.c parser->user_cb, parser->user_cb_size); parser 3975 drivers/misc/habanalabs/goya/goya.c int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser) parser 3979 drivers/misc/habanalabs/goya/goya.c if (!parser->ext_queue) parser 3980 drivers/misc/habanalabs/goya/goya.c return goya_parse_cb_no_ext_queue(hdev, parser); parser 3983 drivers/misc/habanalabs/goya/goya.c return goya_parse_cb_mmu(hdev, parser); parser 3985 drivers/misc/habanalabs/goya/goya.c return goya_parse_cb_no_mmu(hdev, parser); parser 225 drivers/misc/habanalabs/goya/goyaP.h int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser); parser 541 drivers/misc/habanalabs/habanalabs.h int (*cs_parser)(struct hl_device *hdev, struct hl_cs_parser *parser); parser 830 drivers/mtd/mtdpart.c static int mtd_part_do_parse(struct mtd_part_parser *parser, parser 837 drivers/mtd/mtdpart.c ret = (*parser->parse_fn)(master, &pparts->parts, data); parser 838 drivers/mtd/mtdpart.c pr_debug("%s: parser %s: %i\n", master->name, parser->name, ret); parser 843 drivers/mtd/mtdpart.c parser->name, master->name); parser 846 drivers/mtd/mtdpart.c pparts->parser = parser; parser 893 drivers/mtd/mtdpart.c struct mtd_part_parser *parser; parser 907 drivers/mtd/mtdpart.c parser = mtd_part_get_compatible_parser(compat); parser 908 drivers/mtd/mtdpart.c if (!parser) parser 910 drivers/mtd/mtdpart.c ret = mtd_part_do_parse(parser, master, pparts, NULL); parser 915 drivers/mtd/mtdpart.c mtd_part_parser_put(parser); parser 927 drivers/mtd/mtdpart.c parser = mtd_part_parser_get(fixed); parser 928 drivers/mtd/mtdpart.c if (!parser && !request_module("%s", fixed)) parser 929 drivers/mtd/mtdpart.c parser = mtd_part_parser_get(fixed); parser 930 drivers/mtd/mtdpart.c if (parser) { parser 931 drivers/mtd/mtdpart.c ret = mtd_part_do_parse(parser, master, pparts, NULL); parser 934 drivers/mtd/mtdpart.c mtd_part_parser_put(parser); parser 964 drivers/mtd/mtdpart.c struct mtd_part_parser *parser; parser 982 drivers/mtd/mtdpart.c parser = mtd_part_parser_get(*types); parser 983 drivers/mtd/mtdpart.c if (!parser && !request_module("%s", *types)) parser 984 drivers/mtd/mtdpart.c parser = mtd_part_parser_get(*types); parser 986 drivers/mtd/mtdpart.c parser ? parser->name : NULL); parser 987 drivers/mtd/mtdpart.c if (!parser) parser 989 drivers/mtd/mtdpart.c ret = mtd_part_do_parse(parser, master, &pparts, data); parser 991 drivers/mtd/mtdpart.c mtd_part_parser_put(parser); parser 1012 drivers/mtd/mtdpart.c const struct mtd_part_parser *parser; parser 1017 drivers/mtd/mtdpart.c parser = parts->parser; parser 1018 drivers/mtd/mtdpart.c if (parser) { parser 1019 drivers/mtd/mtdpart.c if (parser->cleanup) parser 1020 drivers/mtd/mtdpart.c parser->cleanup(parts->parts, parts->nr_parts); parser 1022 drivers/mtd/mtdpart.c mtd_part_parser_put(parser); parser 2170 drivers/mtd/nand/raw/nand_base.c const struct nand_op_parser *parser, parser 2185 drivers/mtd/nand/raw/nand_base.c for (i = 0; i < parser->npatterns; i++) { parser 2188 drivers/mtd/nand/raw/nand_base.c pattern = &parser->patterns[i]; parser 2209 drivers/mtd/nand/raw/nand_base.c pattern = &parser->patterns[best_pattern]; parser 1908 drivers/mtd/nand/raw/sunxi_nand.c const struct nand_op_parser *parser; parser 1913 drivers/mtd/nand/raw/sunxi_nand.c parser = &sunxi_nfc_op_parser; parser 1915 drivers/mtd/nand/raw/sunxi_nand.c parser = &sunxi_nfc_norb_op_parser; parser 1917 drivers/mtd/nand/raw/sunxi_nand.c return nand_op_parser_exec_op(nand, parser, op, check_only); parser 127 drivers/net/ethernet/apm/xgene/xgene_enet_cle.c enum xgene_cle_parser parser = cle->active_parser; parser 138 drivers/net/ethernet/apm/xgene/xgene_enet_cle.c if ((type < PTREE_RAM) && (parser != PARSER_ALL)) parser 139 drivers/net/ethernet/apm/xgene/xgene_enet_cle.c port = parser; parser 235 drivers/of/address.c static int parser_init(struct of_pci_range_parser *parser, parser 241 drivers/of/address.c parser->node = node; parser 242 drivers/of/address.c parser->pna = of_n_addr_cells(node); parser 243 drivers/of/address.c parser->np = parser->pna + na + ns; parser 245 drivers/of/address.c parser->range = of_get_property(node, name, &rlen); parser 246 drivers/of/address.c if (parser->range == NULL) parser 249 drivers/of/address.c parser->end = parser->range + rlen / sizeof(__be32); parser 254 drivers/of/address.c int of_pci_range_parser_init(struct of_pci_range_parser *parser, parser 257 drivers/of/address.c return parser_init(parser, node, "ranges"); parser 261 drivers/of/address.c int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser, parser 264 drivers/of/address.c return parser_init(parser, node, "dma-ranges"); parser 268 drivers/of/address.c struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser, parser 276 drivers/of/address.c if (!parser->range || parser->range + parser->np > parser->end) parser 279 drivers/of/address.c range->pci_space = be32_to_cpup(parser->range); parser 280 drivers/of/address.c range->flags = of_bus_pci_get_flags(parser->range); parser 281 drivers/of/address.c range->pci_addr = of_read_number(parser->range + 1, ns); parser 282 drivers/of/address.c range->cpu_addr = of_translate_address(parser->node, parser 283 drivers/of/address.c parser->range + na); parser 284 drivers/of/address.c range->size = of_read_number(parser->range + parser->pna + na, ns); parser 286 drivers/of/address.c parser->range += parser->np; parser 289 drivers/of/address.c while (parser->range + parser->np <= parser->end) { parser 293 drivers/of/address.c flags = of_bus_pci_get_flags(parser->range); parser 294 drivers/of/address.c pci_addr = of_read_number(parser->range + 1, ns); parser 295 drivers/of/address.c cpu_addr = of_translate_address(parser->node, parser 296 drivers/of/address.c parser->range + na); parser 297 drivers/of/address.c size = of_read_number(parser->range + parser->pna + na, ns); parser 306 drivers/of/address.c parser->range += parser->np; parser 382 drivers/pci/controller/pci-ftpci100.c struct of_pci_range_parser parser; parser 392 drivers/pci/controller/pci-ftpci100.c if (of_pci_dma_range_parser_init(&parser, np)) { parser 400 drivers/pci/controller/pci-ftpci100.c for_each_of_pci_range(&parser, &range) { parser 299 drivers/pci/controller/pci-rcar-gen2.c struct of_pci_range_parser parser; parser 303 drivers/pci/controller/pci-rcar-gen2.c if (of_pci_dma_range_parser_init(&parser, np)) parser 307 drivers/pci/controller/pci-rcar-gen2.c for_each_of_pci_range(&parser, &range) { parser 2160 drivers/pci/controller/pci-tegra.c struct of_pci_range_parser parser; parser 2167 drivers/pci/controller/pci-tegra.c if (of_pci_range_parser_init(&parser, np)) { parser 2172 drivers/pci/controller/pci-tegra.c for_each_of_pci_range(&parser, &range) { parser 696 drivers/pci/controller/pci-v3-semi.c struct of_pci_range_parser parser; parser 700 drivers/pci/controller/pci-v3-semi.c if (of_pci_dma_range_parser_init(&parser, np)) { parser 708 drivers/pci/controller/pci-v3-semi.c for_each_of_pci_range(&parser, &range) { parser 541 drivers/pci/controller/pci-xgene.c struct of_pci_range_parser parser; parser 545 drivers/pci/controller/pci-xgene.c if (of_pci_dma_range_parser_init(&parser, np)) { parser 551 drivers/pci/controller/pci-xgene.c for_each_of_pci_range(&parser, &range) { parser 144 drivers/pci/controller/pcie-cadence-host.c struct of_pci_range_parser parser; parser 167 drivers/pci/controller/pcie-cadence-host.c err = of_pci_range_parser_init(&parser, np); parser 172 drivers/pci/controller/pcie-cadence-host.c for_each_of_pci_range(&parser, &range) { parser 1219 drivers/pci/controller/pcie-iproc.c struct of_pci_range_parser parser; parser 1224 drivers/pci/controller/pcie-iproc.c ret = of_pci_dma_range_parser_init(&parser, pcie->dev->of_node); parser 1228 drivers/pci/controller/pcie-iproc.c for_each_of_pci_range(&parser, &range) { parser 1090 drivers/pci/controller/pcie-rcar.c struct of_pci_range_parser parser; parser 1094 drivers/pci/controller/pcie-rcar.c if (of_pci_dma_range_parser_init(&parser, np)) parser 1098 drivers/pci/controller/pcie-rcar.c for_each_of_pci_range(&parser, &range) { parser 242 drivers/pci/controller/pcie-tango.c struct of_pci_range_parser parser; parser 263 drivers/pci/controller/pcie-tango.c if (of_pci_dma_range_parser_init(&parser, dev->of_node) < 0) parser 266 drivers/pci/controller/pcie-tango.c if (of_pci_range_parser_one(&parser, &range) == NULL) parser 266 drivers/pci/of.c struct of_pci_range_parser parser; parser 293 drivers/pci/of.c err = of_pci_range_parser_init(&parser, dev_node); parser 298 drivers/pci/of.c for_each_of_pci_range(&parser, &range) { parser 285 drivers/staging/mt7621-pci/pci-mt7621.c struct of_pci_range_parser parser; parser 289 drivers/staging/mt7621-pci/pci-mt7621.c if (of_pci_range_parser_init(&parser, node)) { parser 294 drivers/staging/mt7621-pci/pci-mt7621.c for_each_of_pci_range(&parser, &range) { parser 90 include/linux/mtd/partitions.h const struct mtd_part_parser *parser; parser 93 include/linux/mtd/partitions.h extern int __register_mtd_parser(struct mtd_part_parser *parser, parser 95 include/linux/mtd/partitions.h #define register_mtd_parser(parser) __register_mtd_parser(parser, THIS_MODULE) parser 97 include/linux/mtd/partitions.h extern void deregister_mtd_parser(struct mtd_part_parser *parser); parser 874 include/linux/mtd/rawnand.h const struct nand_op_parser *parser, parser 25 include/linux/of_address.h #define for_each_of_pci_range(parser, range) \ parser 26 include/linux/of_address.h for (; of_pci_range_parser_one(parser, range);) parser 51 include/linux/of_address.h extern int of_pci_range_parser_init(struct of_pci_range_parser *parser, parser 53 include/linux/of_address.h extern int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser, parser 56 include/linux/of_address.h struct of_pci_range_parser *parser, parser 88 include/linux/of_address.h static inline int of_pci_range_parser_init(struct of_pci_range_parser *parser, parser 94 include/linux/of_address.h static inline int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser, parser 101 include/linux/of_address.h struct of_pci_range_parser *parser, parser 92 include/linux/skmsg.h struct sk_psock_parser parser; parser 439 include/linux/skmsg.h if (psock->parser.enabled) parser 440 include/linux/skmsg.h psock->parser.saved_data_ready(sk); parser 26 include/sound/seq_virmidi.h struct snd_midi_event *parser; parser 3058 kernel/trace/ftrace.c struct trace_parser parser; parser 3572 kernel/trace/ftrace.c if (trace_parser_get_init(&iter->parser, FTRACE_BUFF_MAX)) parser 3602 kernel/trace/ftrace.c trace_parser_put(&iter->parser); parser 3620 kernel/trace/ftrace.c trace_parser_put(&iter->parser); parser 4680 kernel/trace/ftrace.c struct trace_parser *parser; parser 4697 kernel/trace/ftrace.c parser = &iter->parser; parser 4698 kernel/trace/ftrace.c read = trace_get_user(parser, ubuf, cnt, ppos); parser 4700 kernel/trace/ftrace.c if (read >= 0 && trace_parser_loaded(parser) && parser 4701 kernel/trace/ftrace.c !trace_parser_cont(parser)) { parser 4702 kernel/trace/ftrace.c ret = ftrace_process_regex(iter, parser->buffer, parser 4703 kernel/trace/ftrace.c parser->idx, enable); parser 4704 kernel/trace/ftrace.c trace_parser_clear(parser); parser 5024 kernel/trace/ftrace.c struct trace_parser *parser; parser 5034 kernel/trace/ftrace.c parser = &iter->parser; parser 5035 kernel/trace/ftrace.c if (trace_parser_loaded(parser)) { parser 5036 kernel/trace/ftrace.c ftrace_match_records(iter->hash, parser->buffer, parser->idx); parser 5039 kernel/trace/ftrace.c trace_parser_put(parser); parser 5122 kernel/trace/ftrace.c struct trace_parser parser; parser 5233 kernel/trace/ftrace.c if (trace_parser_get_init(&fgd->parser, FTRACE_BUFF_MAX)) parser 5262 kernel/trace/ftrace.c trace_parser_put(&fgd->parser); parser 5337 kernel/trace/ftrace.c struct trace_parser *parser; parser 5352 kernel/trace/ftrace.c parser = &fgd->parser; parser 5354 kernel/trace/ftrace.c if (trace_parser_loaded((parser))) { parser 5356 kernel/trace/ftrace.c parser->buffer); parser 5359 kernel/trace/ftrace.c trace_parser_put(parser); parser 5462 kernel/trace/ftrace.c struct trace_parser *parser; parser 5473 kernel/trace/ftrace.c parser = &fgd->parser; parser 5475 kernel/trace/ftrace.c read = trace_get_user(parser, ubuf, cnt, ppos); parser 5477 kernel/trace/ftrace.c if (read >= 0 && trace_parser_loaded(parser) && parser 5478 kernel/trace/ftrace.c !trace_parser_cont(parser)) { parser 5481 kernel/trace/ftrace.c parser->buffer); parser 5482 kernel/trace/ftrace.c trace_parser_clear(parser); parser 501 kernel/trace/trace.c struct trace_parser parser; parser 509 kernel/trace/trace.c if (trace_parser_get_init(&parser, PID_BUF_SIZE + 1)) parser 520 kernel/trace/trace.c trace_parser_put(&parser); parser 532 kernel/trace/trace.c trace_parser_put(&parser); parser 550 kernel/trace/trace.c ret = trace_get_user(&parser, ubuf, cnt, &pos); parser 551 kernel/trace/trace.c if (ret < 0 || !trace_parser_loaded(&parser)) parser 559 kernel/trace/trace.c if (kstrtoul(parser.buffer, 0, &val)) parser 569 kernel/trace/trace.c trace_parser_clear(&parser); parser 572 kernel/trace/trace.c trace_parser_put(&parser); parser 1373 kernel/trace/trace.c int trace_parser_get_init(struct trace_parser *parser, int size) parser 1375 kernel/trace/trace.c memset(parser, 0, sizeof(*parser)); parser 1377 kernel/trace/trace.c parser->buffer = kmalloc(size, GFP_KERNEL); parser 1378 kernel/trace/trace.c if (!parser->buffer) parser 1381 kernel/trace/trace.c parser->size = size; parser 1388 kernel/trace/trace.c void trace_parser_put(struct trace_parser *parser) parser 1390 kernel/trace/trace.c kfree(parser->buffer); parser 1391 kernel/trace/trace.c parser->buffer = NULL; parser 1405 kernel/trace/trace.c int trace_get_user(struct trace_parser *parser, const char __user *ubuf, parser 1413 kernel/trace/trace.c trace_parser_clear(parser); parser 1426 kernel/trace/trace.c if (!parser->cont) { parser 1436 kernel/trace/trace.c parser->idx = 0; parser 1448 kernel/trace/trace.c if (parser->idx < parser->size - 1) parser 1449 kernel/trace/trace.c parser->buffer[parser->idx++] = ch; parser 1463 kernel/trace/trace.c parser->buffer[parser->idx] = 0; parser 1464 kernel/trace/trace.c parser->cont = false; parser 1465 kernel/trace/trace.c } else if (parser->idx < parser->size - 1) { parser 1466 kernel/trace/trace.c parser->cont = true; parser 1467 kernel/trace/trace.c parser->buffer[parser->idx++] = ch; parser 1469 kernel/trace/trace.c parser->buffer[parser->idx] = 0; parser 1188 kernel/trace/trace.h static inline bool trace_parser_loaded(struct trace_parser *parser) parser 1190 kernel/trace/trace.h return (parser->idx != 0); parser 1193 kernel/trace/trace.h static inline bool trace_parser_cont(struct trace_parser *parser) parser 1195 kernel/trace/trace.h return parser->cont; parser 1198 kernel/trace/trace.h static inline void trace_parser_clear(struct trace_parser *parser) parser 1200 kernel/trace/trace.h parser->cont = false; parser 1201 kernel/trace/trace.h parser->idx = 0; parser 1204 kernel/trace/trace.h extern int trace_parser_get_init(struct trace_parser *parser, int size); parser 1205 kernel/trace/trace.h extern void trace_parser_put(struct trace_parser *parser); parser 1206 kernel/trace/trace.h extern int trace_get_user(struct trace_parser *parser, const char __user *ubuf, parser 860 kernel/trace/trace_events.c struct trace_parser parser; parser 872 kernel/trace/trace_events.c if (trace_parser_get_init(&parser, EVENT_BUF_SIZE + 1)) parser 875 kernel/trace/trace_events.c read = trace_get_user(&parser, ubuf, cnt, ppos); parser 877 kernel/trace/trace_events.c if (read >= 0 && trace_parser_loaded((&parser))) { parser 880 kernel/trace/trace_events.c if (*parser.buffer == '!') parser 883 kernel/trace/trace_events.c ret = ftrace_set_clr_event(tr, parser.buffer + !set, set); parser 891 kernel/trace/trace_events.c trace_parser_put(&parser); parser 92 net/bluetooth/hidp/hidp.h __u16 parser; parser 134 net/bluetooth/hidp/sock.c __u16 parser; parser 185 net/bluetooth/hidp/sock.c ca.parser = ca32.parser; parser 570 net/core/skmsg.c strp_done(&psock->parser.strp); parser 683 net/core/skmsg.c struct sk_psock_parser *parser; parser 685 net/core/skmsg.c parser = container_of(strp, struct sk_psock_parser, strp); parser 686 net/core/skmsg.c return container_of(parser, struct sk_psock, parser); parser 787 net/core/skmsg.c strp_data_ready(&psock->parser.strp); parser 818 net/core/skmsg.c psock->parser.enabled = false; parser 819 net/core/skmsg.c return strp_init(&psock->parser.strp, sk, &cb); parser 824 net/core/skmsg.c struct sk_psock_parser *parser = &psock->parser; parser 826 net/core/skmsg.c if (parser->enabled) parser 829 net/core/skmsg.c parser->saved_data_ready = sk->sk_data_ready; parser 832 net/core/skmsg.c parser->enabled = true; parser 837 net/core/skmsg.c struct sk_psock_parser *parser = &psock->parser; parser 839 net/core/skmsg.c if (!parser->enabled) parser 842 net/core/skmsg.c sk->sk_data_ready = parser->saved_data_ready; parser 843 net/core/skmsg.c parser->saved_data_ready = NULL; parser 844 net/core/skmsg.c strp_stop(&parser->strp); parser 845 net/core/skmsg.c parser->enabled = false; parser 118 net/core/sock_map.c if (psock->parser.enabled && stab->progs.skb_parser) parser 206 net/core/sock_map.c if (skb_progs && !psock->parser.enabled) { parser 47 sound/core/seq/seq_midi.c struct snd_midi_event *parser; parser 80 sound/core/seq/seq_midi.c if (msynth->parser == NULL) parser 84 sound/core/seq/seq_midi.c if (!snd_midi_event_encode_byte(msynth->parser, parser 134 sound/core/seq/seq_midi.c snd_midi_event_reset_decode(msynth->parser); parser 136 sound/core/seq/seq_midi.c if (msynth->parser == NULL) parser 138 sound/core/seq/seq_midi.c len = snd_midi_event_decode(msynth->parser, msg, sizeof(msg), ev); parser 142 sound/core/seq/seq_midi.c snd_midi_event_reset_decode(msynth->parser); parser 153 sound/core/seq/seq_midi.c if (snd_midi_event_new(MAX_MIDI_EVENT_BUF, &msynth->parser) < 0) parser 185 sound/core/seq/seq_midi.c snd_midi_event_reset_encode(msynth->parser); parser 227 sound/core/seq/seq_midi.c snd_midi_event_reset_decode(msynth->parser); parser 253 sound/core/seq/seq_midi.c snd_midi_event_free(msynth->parser); parser 84 sound/core/seq/seq_virmidi.c snd_midi_event_reset_decode(vmidi->parser); parser 86 sound/core/seq/seq_virmidi.c len = snd_midi_event_decode(vmidi->parser, msg, sizeof(msg), ev); parser 146 sound/core/seq/seq_virmidi.c if (!snd_midi_event_encode_byte(vmidi->parser, input, parser 187 sound/core/seq/seq_virmidi.c if (snd_midi_event_new(0, &vmidi->parser) < 0) { parser 217 sound/core/seq/seq_virmidi.c if (snd_midi_event_new(MAX_MIDI_EVENT_BUF, &vmidi->parser) < 0) { parser 244 sound/core/seq/seq_virmidi.c snd_midi_event_free(vmidi->parser); parser 259 sound/core/seq/seq_virmidi.c snd_midi_event_free(vmidi->parser); parser 611 sound/pci/hda/hda_sysfs.c void (*parser)(char *buf, struct hda_bus *bus, struct hda_codec **retc); parser 617 sound/pci/hda/hda_sysfs.c .parser = parse_codec_mode, parser 621 sound/pci/hda/hda_sysfs.c .parser = parse_model_mode, parser 626 sound/pci/hda/hda_sysfs.c .parser = parse_verb_mode, parser 631 sound/pci/hda/hda_sysfs.c .parser = parse_pincfg_mode, parser 636 sound/pci/hda/hda_sysfs.c .parser = parse_hint_mode parser 640 sound/pci/hda/hda_sysfs.c .parser = parse_vendor_id_mode, parser 644 sound/pci/hda/hda_sysfs.c .parser = parse_subsystem_id_mode, parser 648 sound/pci/hda/hda_sysfs.c .parser = parse_revision_id_mode, parser 652 sound/pci/hda/hda_sysfs.c .parser = parse_chip_name_mode, parser 728 sound/pci/hda/hda_sysfs.c else if (patch_items[line_mode].parser && parser 730 sound/pci/hda/hda_sysfs.c patch_items[line_mode].parser(buf, bus, &codec); parser 31 tools/perf/pmu-events/jsmn.c static jsmntok_t *jsmn_alloc_token(jsmn_parser *parser, parser 36 tools/perf/pmu-events/jsmn.c if ((unsigned)parser->toknext >= num_tokens) parser 38 tools/perf/pmu-events/jsmn.c tok = &tokens[parser->toknext++]; parser 59 tools/perf/pmu-events/jsmn.c static jsmnerr_t jsmn_parse_primitive(jsmn_parser *parser, const char *js, parser 66 tools/perf/pmu-events/jsmn.c start = parser->pos; parser 68 tools/perf/pmu-events/jsmn.c for (; parser->pos < len; parser->pos++) { parser 69 tools/perf/pmu-events/jsmn.c switch (js[parser->pos]) { parser 88 tools/perf/pmu-events/jsmn.c if (js[parser->pos] < 32 || js[parser->pos] >= 127) { parser 89 tools/perf/pmu-events/jsmn.c parser->pos = start; parser 98 tools/perf/pmu-events/jsmn.c parser->pos = start; parser 103 tools/perf/pmu-events/jsmn.c token = jsmn_alloc_token(parser, tokens, num_tokens); parser 105 tools/perf/pmu-events/jsmn.c parser->pos = start; parser 108 tools/perf/pmu-events/jsmn.c jsmn_fill_token(token, JSMN_PRIMITIVE, start, parser->pos); parser 109 tools/perf/pmu-events/jsmn.c parser->pos--; /* parent sees closing brackets */ parser 116 tools/perf/pmu-events/jsmn.c static jsmnerr_t jsmn_parse_string(jsmn_parser *parser, const char *js, parser 121 tools/perf/pmu-events/jsmn.c int start = parser->pos; parser 124 tools/perf/pmu-events/jsmn.c parser->pos++; parser 126 tools/perf/pmu-events/jsmn.c for (; parser->pos < len; parser->pos++) { parser 127 tools/perf/pmu-events/jsmn.c char c = js[parser->pos]; parser 131 tools/perf/pmu-events/jsmn.c token = jsmn_alloc_token(parser, tokens, num_tokens); parser 133 tools/perf/pmu-events/jsmn.c parser->pos = start; parser 137 tools/perf/pmu-events/jsmn.c parser->pos); parser 143 tools/perf/pmu-events/jsmn.c parser->pos++; parser 144 tools/perf/pmu-events/jsmn.c switch (js[parser->pos]) { parser 161 tools/perf/pmu-events/jsmn.c parser->pos = start; parser 166 tools/perf/pmu-events/jsmn.c parser->pos = start; parser 173 tools/perf/pmu-events/jsmn.c jsmnerr_t jsmn_parse(jsmn_parser *parser, const char *js, size_t len, parser 180 tools/perf/pmu-events/jsmn.c for (; parser->pos < len; parser->pos++) { parser 184 tools/perf/pmu-events/jsmn.c c = js[parser->pos]; parser 188 tools/perf/pmu-events/jsmn.c token = jsmn_alloc_token(parser, tokens, num_tokens); parser 191 tools/perf/pmu-events/jsmn.c if (parser->toksuper != -1) parser 192 tools/perf/pmu-events/jsmn.c tokens[parser->toksuper].size++; parser 194 tools/perf/pmu-events/jsmn.c token->start = parser->pos; parser 195 tools/perf/pmu-events/jsmn.c parser->toksuper = parser->toknext - 1; parser 200 tools/perf/pmu-events/jsmn.c for (i = parser->toknext - 1; i >= 0; i--) { parser 205 tools/perf/pmu-events/jsmn.c parser->toksuper = -1; parser 206 tools/perf/pmu-events/jsmn.c token->end = parser->pos + 1; parser 216 tools/perf/pmu-events/jsmn.c parser->toksuper = i; parser 222 tools/perf/pmu-events/jsmn.c r = jsmn_parse_string(parser, js, len, tokens, parser 226 tools/perf/pmu-events/jsmn.c if (parser->toksuper != -1) parser 227 tools/perf/pmu-events/jsmn.c tokens[parser->toksuper].size++; parser 263 tools/perf/pmu-events/jsmn.c r = jsmn_parse_primitive(parser, js, len, tokens, parser 267 tools/perf/pmu-events/jsmn.c if (parser->toksuper != -1) parser 268 tools/perf/pmu-events/jsmn.c tokens[parser->toksuper].size++; parser 279 tools/perf/pmu-events/jsmn.c for (i = parser->toknext - 1; i >= 0; i--) { parser 292 tools/perf/pmu-events/jsmn.c void jsmn_init(jsmn_parser *parser) parser 294 tools/perf/pmu-events/jsmn.c parser->pos = 0; parser 295 tools/perf/pmu-events/jsmn.c parser->toknext = 0; parser 296 tools/perf/pmu-events/jsmn.c parser->toksuper = -1; parser 56 tools/perf/pmu-events/jsmn.h void jsmn_init(jsmn_parser *parser); parser 62 tools/perf/pmu-events/jsmn.h jsmnerr_t jsmn_parse(jsmn_parser *parser, const char *js, parser 85 tools/perf/pmu-events/json.c jsmn_parser parser; parser 98 tools/perf/pmu-events/json.c jsmn_init(&parser); parser 99 tools/perf/pmu-events/json.c res = jsmn_parse(&parser, *map, *size, tokens, parser 106 tools/perf/pmu-events/json.c *len = parser.toknext; parser 15 tools/perf/util/expr.y %pure-parser parser 1 tools/perf/util/parse-events.y %pure-parser parser 532 tools/testing/selftests/bpf/test_progs.c .parser = parse_arg,