Lines Matching refs:buf

44 int drm_buffer_alloc(struct drm_buffer **buf, int size)  in drm_buffer_alloc()  argument
51 *buf = kzalloc(sizeof(struct drm_buffer) + nr_pages*sizeof(char *), in drm_buffer_alloc()
54 if (*buf == NULL) { in drm_buffer_alloc()
61 (*buf)->size = size; in drm_buffer_alloc()
65 (*buf)->data[idx] = in drm_buffer_alloc()
70 if ((*buf)->data[idx] == NULL) { in drm_buffer_alloc()
84 kfree((*buf)->data[idx]); in drm_buffer_alloc()
86 kfree(*buf); in drm_buffer_alloc()
97 int drm_buffer_copy_from_user(struct drm_buffer *buf, in drm_buffer_copy_from_user() argument
103 if (size > buf->size) { in drm_buffer_copy_from_user()
106 size, buf->size); in drm_buffer_copy_from_user()
112 if (copy_from_user(buf->data[idx], in drm_buffer_copy_from_user()
117 user_data, buf, idx); in drm_buffer_copy_from_user()
122 buf->iterator = 0; in drm_buffer_copy_from_user()
129 void drm_buffer_free(struct drm_buffer *buf) in drm_buffer_free() argument
132 if (buf != NULL) { in drm_buffer_free()
134 int nr_pages = buf->size / PAGE_SIZE + 1; in drm_buffer_free()
137 kfree(buf->data[idx]); in drm_buffer_free()
139 kfree(buf); in drm_buffer_free()
155 void *drm_buffer_read_object(struct drm_buffer *buf, in drm_buffer_read_object() argument
158 int idx = drm_buffer_index(buf); in drm_buffer_read_object()
159 int page = drm_buffer_page(buf); in drm_buffer_read_object()
163 obj = &buf->data[page][idx]; in drm_buffer_read_object()
167 memcpy(stack_obj, &buf->data[page][idx], beginsz); in drm_buffer_read_object()
169 memcpy(stack_obj + beginsz, &buf->data[page + 1][0], in drm_buffer_read_object()
175 drm_buffer_advance(buf, objsize); in drm_buffer_read_object()