asma 69 drivers/staging/android/ashmem.c struct ashmem_area *asma; asma 176 drivers/staging/android/ashmem.c static void range_alloc(struct ashmem_area *asma, asma 184 drivers/staging/android/ashmem.c range->asma = asma; asma 243 drivers/staging/android/ashmem.c struct ashmem_area *asma; asma 250 drivers/staging/android/ashmem.c asma = kmem_cache_zalloc(ashmem_area_cachep, GFP_KERNEL); asma 251 drivers/staging/android/ashmem.c if (!asma) asma 254 drivers/staging/android/ashmem.c INIT_LIST_HEAD(&asma->unpinned_list); asma 255 drivers/staging/android/ashmem.c memcpy(asma->name, ASHMEM_NAME_PREFIX, ASHMEM_NAME_PREFIX_LEN); asma 256 drivers/staging/android/ashmem.c asma->prot_mask = PROT_MASK; asma 257 drivers/staging/android/ashmem.c file->private_data = asma; asma 272 drivers/staging/android/ashmem.c struct ashmem_area *asma = file->private_data; asma 276 drivers/staging/android/ashmem.c list_for_each_entry_safe(range, next, &asma->unpinned_list, unpinned) asma 280 drivers/staging/android/ashmem.c if (asma->file) asma 281 drivers/staging/android/ashmem.c fput(asma->file); asma 282 drivers/staging/android/ashmem.c kmem_cache_free(ashmem_area_cachep, asma); asma 289 drivers/staging/android/ashmem.c struct ashmem_area *asma = iocb->ki_filp->private_data; asma 295 drivers/staging/android/ashmem.c if (asma->size == 0) asma 298 drivers/staging/android/ashmem.c if (!asma->file) { asma 310 drivers/staging/android/ashmem.c ret = vfs_iter_read(asma->file, iter, &iocb->ki_pos, 0); asma 313 drivers/staging/android/ashmem.c asma->file->f_pos = iocb->ki_pos; asma 321 drivers/staging/android/ashmem.c struct ashmem_area *asma = file->private_data; asma 326 drivers/staging/android/ashmem.c if (asma->size == 0) { asma 331 drivers/staging/android/ashmem.c if (!asma->file) { asma 338 drivers/staging/android/ashmem.c ret = vfs_llseek(asma->file, offset, origin); asma 343 drivers/staging/android/ashmem.c file->f_pos = asma->file->f_pos; asma 371 drivers/staging/android/ashmem.c struct ashmem_area *asma = file->private_data; asma 377 drivers/staging/android/ashmem.c if (!asma->size) { asma 383 drivers/staging/android/ashmem.c if (vma->vm_end - vma->vm_start > PAGE_ALIGN(asma->size)) { asma 389 drivers/staging/android/ashmem.c if ((vma->vm_flags & ~calc_vm_prot_bits(asma->prot_mask, 0)) & asma 394 drivers/staging/android/ashmem.c vma->vm_flags &= ~calc_vm_may_flags(~asma->prot_mask); asma 396 drivers/staging/android/ashmem.c if (!asma->file) { asma 400 drivers/staging/android/ashmem.c if (asma->name[ASHMEM_NAME_PREFIX_LEN] != '\0') asma 401 drivers/staging/android/ashmem.c name = asma->name; asma 404 drivers/staging/android/ashmem.c vmfile = shmem_file_setup(name, asma->size, vma->vm_flags); asma 410 drivers/staging/android/ashmem.c asma->file = vmfile; asma 425 drivers/staging/android/ashmem.c get_file(asma->file); asma 434 drivers/staging/android/ashmem.c fput(asma->file); asma 443 drivers/staging/android/ashmem.c vma->vm_file = asma->file; asma 481 drivers/staging/android/ashmem.c struct file *f = range->asma->file; asma 527 drivers/staging/android/ashmem.c static int set_prot_mask(struct ashmem_area *asma, unsigned long prot) asma 534 drivers/staging/android/ashmem.c if ((asma->prot_mask & prot) != prot) { asma 543 drivers/staging/android/ashmem.c asma->prot_mask = prot; asma 550 drivers/staging/android/ashmem.c static int set_name(struct ashmem_area *asma, void __user *name) asma 572 drivers/staging/android/ashmem.c if (asma->file) asma 575 drivers/staging/android/ashmem.c strcpy(asma->name + ASHMEM_NAME_PREFIX_LEN, local_name); asma 581 drivers/staging/android/ashmem.c static int get_name(struct ashmem_area *asma, void __user *name) asma 594 drivers/staging/android/ashmem.c if (asma->name[ASHMEM_NAME_PREFIX_LEN] != '\0') { asma 599 drivers/staging/android/ashmem.c len = strlen(asma->name + ASHMEM_NAME_PREFIX_LEN) + 1; asma 600 drivers/staging/android/ashmem.c memcpy(local_name, asma->name + ASHMEM_NAME_PREFIX_LEN, len); asma 622 drivers/staging/android/ashmem.c static int ashmem_pin(struct ashmem_area *asma, size_t pgstart, size_t pgend, asma 628 drivers/staging/android/ashmem.c list_for_each_entry_safe(range, next, &asma->unpinned_list, unpinned) { asma 675 drivers/staging/android/ashmem.c range_alloc(asma, range, range->purged, asma 690 drivers/staging/android/ashmem.c static int ashmem_unpin(struct ashmem_area *asma, size_t pgstart, size_t pgend, asma 697 drivers/staging/android/ashmem.c list_for_each_entry_safe(range, next, &asma->unpinned_list, unpinned) { asma 717 drivers/staging/android/ashmem.c range_alloc(asma, range, purged, pgstart, pgend, new_range); asma 727 drivers/staging/android/ashmem.c static int ashmem_get_pin_status(struct ashmem_area *asma, size_t pgstart, asma 733 drivers/staging/android/ashmem.c list_for_each_entry(range, &asma->unpinned_list, unpinned) { asma 745 drivers/staging/android/ashmem.c static int ashmem_pin_unpin(struct ashmem_area *asma, unsigned long cmd, asma 765 drivers/staging/android/ashmem.c if (!asma->file) asma 770 drivers/staging/android/ashmem.c pin.len = PAGE_ALIGN(asma->size) - pin.offset; asma 778 drivers/staging/android/ashmem.c if (PAGE_ALIGN(asma->size) < pin.offset + pin.len) asma 786 drivers/staging/android/ashmem.c ret = ashmem_pin(asma, pgstart, pgend, &range); asma 789 drivers/staging/android/ashmem.c ret = ashmem_unpin(asma, pgstart, pgend, &range); asma 792 drivers/staging/android/ashmem.c ret = ashmem_get_pin_status(asma, pgstart, pgend); asma 806 drivers/staging/android/ashmem.c struct ashmem_area *asma = file->private_data; asma 811 drivers/staging/android/ashmem.c ret = set_name(asma, (void __user *)arg); asma 814 drivers/staging/android/ashmem.c ret = get_name(asma, (void __user *)arg); asma 819 drivers/staging/android/ashmem.c if (!asma->file) { asma 821 drivers/staging/android/ashmem.c asma->size = (size_t)arg; asma 826 drivers/staging/android/ashmem.c ret = asma->size; asma 829 drivers/staging/android/ashmem.c ret = set_prot_mask(asma, arg); asma 832 drivers/staging/android/ashmem.c ret = asma->prot_mask; asma 837 drivers/staging/android/ashmem.c ret = ashmem_pin_unpin(asma, cmd, (void __user *)arg); asma 874 drivers/staging/android/ashmem.c struct ashmem_area *asma = file->private_data; asma 878 drivers/staging/android/ashmem.c if (asma->file) asma 879 drivers/staging/android/ashmem.c seq_printf(m, "inode:\t%ld\n", file_inode(asma->file)->i_ino); asma 881 drivers/staging/android/ashmem.c if (asma->name[ASHMEM_NAME_PREFIX_LEN] != '\0') asma 883 drivers/staging/android/ashmem.c asma->name + ASHMEM_NAME_PREFIX_LEN);