Rev 3039 | Rev 3262 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3039 | Rev 3243 | ||
---|---|---|---|
Line 329... | Line 329... | ||
329 | printk("Info %s " format , __func__, ## arg) |
329 | printk("Info %s " format , __func__, ## arg) |
Line 330... | Line 330... | ||
330 | 330 | ||
Line 331... | Line -... | ||
331 | #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) |
- | |
332 | - | ||
333 | - | ||
334 | struct scatterlist { |
- | |
335 | unsigned long page_link; |
- | |
336 | unsigned int offset; |
- | |
337 | unsigned int length; |
- | |
338 | dma_addr_t dma_address; |
- | |
339 | unsigned int dma_length; |
- | |
340 | }; |
- | |
341 | - | ||
342 | struct sg_table { |
- | |
343 | struct scatterlist *sgl; /* the list */ |
- | |
344 | unsigned int nents; /* number of mapped entries */ |
- | |
345 | unsigned int orig_nents; /* original size of list */ |
- | |
346 | }; |
- | |
347 | - | ||
348 | #define SG_MAX_SINGLE_ALLOC (4096 / sizeof(struct scatterlist)) |
- | |
349 | - | ||
350 | struct scatterlist *sg_next(struct scatterlist *sg); |
- | |
351 | - | ||
352 | #define sg_dma_address(sg) ((sg)->dma_address) |
- | |
353 | #define sg_dma_len(sg) ((sg)->length) |
- | |
354 | - | ||
355 | #define sg_is_chain(sg) ((sg)->page_link & 0x01) |
- | |
356 | #define sg_is_last(sg) ((sg)->page_link & 0x02) |
- | |
357 | #define sg_chain_ptr(sg) \ |
- | |
358 | ((struct scatterlist *) ((sg)->page_link & ~0x03)) |
- | |
359 | - | ||
360 | static inline addr_t sg_page(struct scatterlist *sg) |
- | |
361 | { |
- | |
362 | return (addr_t)((sg)->page_link & ~0x3); |
- | |
363 | } |
- | |
Line 364... | Line 331... | ||
364 | 331 | #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) |
|
365 | #define for_each_sg(sglist, sg, nr, __i) \ |
332 | |
366 | for (__i = 0, sg = (sglist); __i < (nr); __i++, sg = sg_next(sg)) |
333 | |
367 | 334 | ||
Line -... | Line 335... | ||
- | 335 | ||
Line 368... | Line 336... | ||
368 | 336 | ||
369 | 337 | struct page |
|
370 | struct page |
338 | { |
371 | { |
339 | unsigned int addr; |
Line 388... | Line 356... | ||
388 | struct pagelist { |
356 | struct pagelist { |
389 | dma_addr_t *page; |
357 | dma_addr_t *page; |
390 | unsigned int nents; |
358 | unsigned int nents; |
391 | }; |
359 | }; |
Line -... | Line 360... | ||
- | 360 | ||
- | 361 | #define page_cache_release(page) FreePage((addr_t)(page)) |
|
- | 362 | ||
- | 363 | #define alloc_page(gfp_mask) (struct page*)AllocPage() |
|
392 | 364 |