fda 2360 drivers/android/binder.c struct binder_fd_array_object *fda; fda 2379 drivers/android/binder.c fda = to_binder_fd_array_object(hdr); fda 2381 drivers/android/binder.c fda->parent, fda 2390 drivers/android/binder.c fd_buf_size = sizeof(u32) * fda->num_fds; fda 2391 drivers/android/binder.c if (fda->num_fds >= SIZE_MAX / sizeof(u32)) { fda 2393 drivers/android/binder.c debug_id, (u64)fda->num_fds); fda 2397 drivers/android/binder.c fda->parent_offset > parent->length - fd_buf_size) { fda 2400 drivers/android/binder.c debug_id, (u64)fda->num_fds); fda 2412 drivers/android/binder.c fda->parent_offset; fda 2413 drivers/android/binder.c for (fd_index = 0; fd_index < fda->num_fds; fda 2625 drivers/android/binder.c static int binder_translate_fd_array(struct binder_fd_array_object *fda, fda 2636 drivers/android/binder.c fd_buf_size = sizeof(u32) * fda->num_fds; fda 2637 drivers/android/binder.c if (fda->num_fds >= SIZE_MAX / sizeof(u32)) { fda 2639 drivers/android/binder.c proc->pid, thread->pid, (u64)fda->num_fds); fda 2643 drivers/android/binder.c fda->parent_offset > parent->length - fd_buf_size) { fda 2646 drivers/android/binder.c proc->pid, thread->pid, (u64)fda->num_fds); fda 2657 drivers/android/binder.c fda->parent_offset; fda 2663 drivers/android/binder.c for (fdi = 0; fdi < fda->num_fds; fdi++) { fda 3315 drivers/android/binder.c struct binder_fd_array_object *fda = fda 3321 drivers/android/binder.c &ptr_object, fda->parent, fda 3336 drivers/android/binder.c fda->parent_offset, fda 3346 drivers/android/binder.c ret = binder_translate_fd_array(fda, parent, t, thread, fda 3356 drivers/android/binder.c fda->parent_offset + sizeof(u32) * fda->num_fds; fda 12 tools/lib/api/fd/array.c void fdarray__init(struct fdarray *fda, int nr_autogrow) fda 14 tools/lib/api/fd/array.c fda->entries = NULL; fda 15 tools/lib/api/fd/array.c fda->priv = NULL; fda 16 tools/lib/api/fd/array.c fda->nr = fda->nr_alloc = 0; fda 17 tools/lib/api/fd/array.c fda->nr_autogrow = nr_autogrow; fda 20 tools/lib/api/fd/array.c int fdarray__grow(struct fdarray *fda, int nr) fda 23 tools/lib/api/fd/array.c int nr_alloc = fda->nr_alloc + nr; fda 24 tools/lib/api/fd/array.c size_t psize = sizeof(fda->priv[0]) * nr_alloc; fda 26 tools/lib/api/fd/array.c struct pollfd *entries = realloc(fda->entries, size); fda 31 tools/lib/api/fd/array.c priv = realloc(fda->priv, psize); fda 37 tools/lib/api/fd/array.c fda->nr_alloc = nr_alloc; fda 38 tools/lib/api/fd/array.c fda->entries = entries; fda 39 tools/lib/api/fd/array.c fda->priv = priv; fda 45 tools/lib/api/fd/array.c struct fdarray *fda = calloc(1, sizeof(*fda)); fda 47 tools/lib/api/fd/array.c if (fda != NULL) { fda 48 tools/lib/api/fd/array.c if (fdarray__grow(fda, nr_alloc)) { fda 49 tools/lib/api/fd/array.c free(fda); fda 50 tools/lib/api/fd/array.c fda = NULL; fda 52 tools/lib/api/fd/array.c fda->nr_autogrow = nr_autogrow; fda 56 tools/lib/api/fd/array.c return fda; fda 59 tools/lib/api/fd/array.c void fdarray__exit(struct fdarray *fda) fda 61 tools/lib/api/fd/array.c free(fda->entries); fda 62 tools/lib/api/fd/array.c free(fda->priv); fda 63 tools/lib/api/fd/array.c fdarray__init(fda, 0); fda 66 tools/lib/api/fd/array.c void fdarray__delete(struct fdarray *fda) fda 68 tools/lib/api/fd/array.c fdarray__exit(fda); fda 69 tools/lib/api/fd/array.c free(fda); fda 72 tools/lib/api/fd/array.c int fdarray__add(struct fdarray *fda, int fd, short revents) fda 74 tools/lib/api/fd/array.c int pos = fda->nr; fda 76 tools/lib/api/fd/array.c if (fda->nr == fda->nr_alloc && fda 77 tools/lib/api/fd/array.c fdarray__grow(fda, fda->nr_autogrow) < 0) fda 80 tools/lib/api/fd/array.c fda->entries[fda->nr].fd = fd; fda 81 tools/lib/api/fd/array.c fda->entries[fda->nr].events = revents; fda 82 tools/lib/api/fd/array.c fda->nr++; fda 86 tools/lib/api/fd/array.c int fdarray__filter(struct fdarray *fda, short revents, fda 87 tools/lib/api/fd/array.c void (*entry_destructor)(struct fdarray *fda, int fd, void *arg), fda 92 tools/lib/api/fd/array.c if (fda->nr == 0) fda 95 tools/lib/api/fd/array.c for (fd = 0; fd < fda->nr; ++fd) { fda 96 tools/lib/api/fd/array.c if (fda->entries[fd].revents & revents) { fda 98 tools/lib/api/fd/array.c entry_destructor(fda, fd, arg); fda 104 tools/lib/api/fd/array.c fda->entries[nr] = fda->entries[fd]; fda 105 tools/lib/api/fd/array.c fda->priv[nr] = fda->priv[fd]; fda 111 tools/lib/api/fd/array.c return fda->nr = nr; fda 114 tools/lib/api/fd/array.c int fdarray__poll(struct fdarray *fda, int timeout) fda 116 tools/lib/api/fd/array.c return poll(fda->entries, fda->nr, timeout); fda 119 tools/lib/api/fd/array.c int fdarray__fprintf(struct fdarray *fda, FILE *fp) fda 121 tools/lib/api/fd/array.c int fd, printed = fprintf(fp, "%d [ ", fda->nr); fda 123 tools/lib/api/fd/array.c for (fd = 0; fd < fda->nr; ++fd) fda 124 tools/lib/api/fd/array.c printed += fprintf(fp, "%s%d", fd ? ", " : "", fda->entries[fd].fd); fda 30 tools/lib/api/fd/array.h void fdarray__init(struct fdarray *fda, int nr_autogrow); fda 31 tools/lib/api/fd/array.h void fdarray__exit(struct fdarray *fda); fda 34 tools/lib/api/fd/array.h void fdarray__delete(struct fdarray *fda); fda 36 tools/lib/api/fd/array.h int fdarray__add(struct fdarray *fda, int fd, short revents); fda 37 tools/lib/api/fd/array.h int fdarray__poll(struct fdarray *fda, int timeout); fda 38 tools/lib/api/fd/array.h int fdarray__filter(struct fdarray *fda, short revents, fda 39 tools/lib/api/fd/array.h void (*entry_destructor)(struct fdarray *fda, int fd, void *arg), fda 41 tools/lib/api/fd/array.h int fdarray__grow(struct fdarray *fda, int extra); fda 42 tools/lib/api/fd/array.h int fdarray__fprintf(struct fdarray *fda, FILE *fp); fda 44 tools/lib/api/fd/array.h static inline int fdarray__available_entries(struct fdarray *fda) fda 46 tools/lib/api/fd/array.h return fda->nr_alloc - fda->nr; fda 985 tools/perf/builtin-kvm.c struct fdarray *fda = &kvm->evlist->core.pollfd; fda 996 tools/perf/builtin-kvm.c if (fda->entries[nr_stdin].revents & POLLIN) fda 1000 tools/perf/builtin-kvm.c err = fdarray__poll(fda, 100); fda 7 tools/perf/tests/fdarray.c static void fdarray__init_revents(struct fdarray *fda, short revents) fda 11 tools/perf/tests/fdarray.c fda->nr = fda->nr_alloc; fda 13 tools/perf/tests/fdarray.c for (fd = 0; fd < fda->nr; ++fd) { fda 14 tools/perf/tests/fdarray.c fda->entries[fd].fd = fda->nr - fd; fda 15 tools/perf/tests/fdarray.c fda->entries[fd].revents = revents; fda 19 tools/perf/tests/fdarray.c static int fdarray__fprintf_prefix(struct fdarray *fda, const char *prefix, FILE *fp) fda 27 tools/perf/tests/fdarray.c return printed + fdarray__fprintf(fda, fp); fda 33 tools/perf/tests/fdarray.c struct fdarray *fda = fdarray__new(5, 5); fda 35 tools/perf/tests/fdarray.c if (fda == NULL) { fda 40 tools/perf/tests/fdarray.c fdarray__init_revents(fda, POLLIN); fda 41 tools/perf/tests/fdarray.c nr_fds = fdarray__filter(fda, POLLHUP, NULL, NULL); fda 42 tools/perf/tests/fdarray.c if (nr_fds != fda->nr_alloc) { fda 44 tools/perf/tests/fdarray.c nr_fds, fda->nr_alloc); fda 48 tools/perf/tests/fdarray.c fdarray__init_revents(fda, POLLHUP); fda 49 tools/perf/tests/fdarray.c nr_fds = fdarray__filter(fda, POLLHUP, NULL, NULL); fda 52 tools/perf/tests/fdarray.c nr_fds, fda->nr_alloc); fda 56 tools/perf/tests/fdarray.c fdarray__init_revents(fda, POLLHUP); fda 57 tools/perf/tests/fdarray.c fda->entries[2].revents = POLLIN; fda 58 tools/perf/tests/fdarray.c expected_fd[0] = fda->entries[2].fd; fda 61 tools/perf/tests/fdarray.c fdarray__fprintf_prefix(fda, "before", stderr); fda 62 tools/perf/tests/fdarray.c nr_fds = fdarray__filter(fda, POLLHUP, NULL, NULL); fda 63 tools/perf/tests/fdarray.c fdarray__fprintf_prefix(fda, " after", stderr); fda 69 tools/perf/tests/fdarray.c if (fda->entries[0].fd != expected_fd[0]) { fda 71 tools/perf/tests/fdarray.c fda->entries[0].fd, expected_fd[0]); fda 75 tools/perf/tests/fdarray.c fdarray__init_revents(fda, POLLHUP); fda 76 tools/perf/tests/fdarray.c fda->entries[0].revents = POLLIN; fda 77 tools/perf/tests/fdarray.c expected_fd[0] = fda->entries[0].fd; fda 78 tools/perf/tests/fdarray.c fda->entries[3].revents = POLLIN; fda 79 tools/perf/tests/fdarray.c expected_fd[1] = fda->entries[3].fd; fda 82 tools/perf/tests/fdarray.c fdarray__fprintf_prefix(fda, "before", stderr); fda 83 tools/perf/tests/fdarray.c nr_fds = fdarray__filter(fda, POLLHUP, NULL, NULL); fda 84 tools/perf/tests/fdarray.c fdarray__fprintf_prefix(fda, " after", stderr); fda 92 tools/perf/tests/fdarray.c if (fda->entries[fd].fd != expected_fd[fd]) { fda 94 tools/perf/tests/fdarray.c fda->entries[fd].fd, expected_fd[fd]); fda 103 tools/perf/tests/fdarray.c fdarray__delete(fda); fda 111 tools/perf/tests/fdarray.c struct fdarray *fda = fdarray__new(2, 2); fda 113 tools/perf/tests/fdarray.c if (fda == NULL) { fda 119 tools/perf/tests/fdarray.c if (fda->entries[_idx].fd != _fd) { \ fda 121 tools/perf/tests/fdarray.c __LINE__, _idx, fda->entries[1].fd, _fd); \ fda 124 tools/perf/tests/fdarray.c if (fda->entries[_idx].events != (_revents)) { \ fda 126 tools/perf/tests/fdarray.c __LINE__, _idx, fda->entries[_idx].fd, _revents); \ fda 131 tools/perf/tests/fdarray.c if (fdarray__add(fda, _fd, _revents) < 0) { \ fda 136 tools/perf/tests/fdarray.c if (fda->nr != _nr) { \ fda 138 tools/perf/tests/fdarray.c __LINE__,_fd, _revents, fda->nr, _nr); \ fda 146 tools/perf/tests/fdarray.c fdarray__fprintf_prefix(fda, "before growing array", stderr); fda 150 tools/perf/tests/fdarray.c if (fda->entries == NULL) { fda 155 tools/perf/tests/fdarray.c fdarray__fprintf_prefix(fda, "after 3rd add", stderr); fda 159 tools/perf/tests/fdarray.c fdarray__fprintf_prefix(fda, "after 4th add", stderr); fda 173 tools/perf/tests/fdarray.c fdarray__delete(fda); fda 406 tools/perf/util/evlist.c static void perf_evlist__munmap_filtered(struct fdarray *fda, int fd, fda 409 tools/perf/util/evlist.c struct mmap *map = fda->priv[fd].ptr; fda 160 tools/testing/selftests/net/msg_zerocopy.c int fda = fd; fda 162 tools/testing/selftests/net/msg_zerocopy.c fd = accept(fda, NULL, NULL); fda 165 tools/testing/selftests/net/msg_zerocopy.c if (close(fda))