/alps/pcitool

To get this branch, use:
bzr branch http://suren.me/webbzr/alps/pcitool

« back to all changes in this revision

Viewing changes to kmem.c

  • Committer: Suren A. Chilingaryan
  • Date: 2011-10-23 01:17:19 UTC
  • Revision ID: csa@dside.dyndns.org-20111023011719-690ioo0e9jodpey3
Sync only required buffers

Show diffs side-by-side

added added

removed removed

Lines of Context:
225
225
    }
226
226
}
227
227
 
 
228
/*
228
229
int pcilib_sync_kernel_memory(pcilib_t *ctx, pcilib_kmem_handle_t *k, pcilib_kmem_sync_direction_t dir) {
229
230
    int i;
230
231
    int ret;
232
233
    pcilib_kmem_list_t *kbuf = (pcilib_kmem_list_t*)k;
233
234
    
234
235
    ks.dir = dir;
235
 
    
 
236
 
236
237
    for (i = 0; i < kbuf->buf.n_blocks; i++) {
237
238
        ks.handle.handle_id = kbuf->buf.blocks[i].handle_id;
238
239
        ks.handle.pa = kbuf->buf.blocks[i].pa;
241
242
            pcilib_error("PCIDRIVER_IOC_KMEM_SYNC ioctl have failed");
242
243
            return PCILIB_ERROR_FAILED;
243
244
        }
244
 
        
245
 
        if (!kbuf->buf.blocks[i].pa) {
246
 
            kbuf->buf.blocks[i].pa = ks.handle.pa;
247
 
        }
248
245
    }
249
246
    
250
247
    return 0;    
251
248
}
252
249
 
 
250
*/
 
251
 
 
252
int pcilib_kmem_sync_block(pcilib_t *ctx, pcilib_kmem_handle_t *k, pcilib_kmem_sync_direction_t dir, size_t block) {
 
253
    int ret;
 
254
    kmem_sync_t ks;
 
255
    pcilib_kmem_list_t *kbuf = (pcilib_kmem_list_t*)k;
 
256
 
 
257
    ks.dir = dir;
 
258
    ks.handle.handle_id = kbuf->buf.blocks[block].handle_id;
 
259
    ks.handle.pa = kbuf->buf.blocks[block].pa;
 
260
    ret = ioctl(ctx->handle, PCIDRIVER_IOC_KMEM_SYNC, &ks);
 
261
    if (ret) {
 
262
        pcilib_error("PCIDRIVER_IOC_KMEM_SYNC ioctl have failed");
 
263
        return PCILIB_ERROR_FAILED;
 
264
    }
 
265
    
 
266
    return 0;
 
267
}
253
268
 
254
269
void *pcilib_kmem_get_ua(pcilib_t *ctx, pcilib_kmem_handle_t *k) {
255
270
    pcilib_kmem_list_t *kbuf = (pcilib_kmem_list_t*)k;
280
295
    pcilib_kmem_list_t *kbuf = (pcilib_kmem_list_t*)k;
281
296
    return kbuf->buf.reused;
282
297
}
283