extern unsigned long totalcma_pages;
extern phys_addr_t cma_get_base(const struct cma *cma);
extern unsigned long cma_get_size(const struct cma *cma);
-extern unsigned long cma_get_used(struct cma *cma);
-extern unsigned long cma_get_maxchunk(struct cma *cma);
extern int __init cma_declare_contiguous(phys_addr_t base,
phys_addr_t size, phys_addr_t limit,
return cma->count << PAGE_SHIFT;
}
-unsigned long cma_get_used(struct cma *cma)
-{
- unsigned long ret = 0;
-
- mutex_lock(&cma->lock);
- /* pages counter is smaller than sizeof(int) */
- ret = bitmap_weight(cma->bitmap, (int)cma->count);
- mutex_unlock(&cma->lock);
-
- return ret << cma->order_per_bit;
-}
-
-unsigned long cma_get_maxchunk(struct cma *cma)
-{
- unsigned long maxchunk = 0;
- unsigned long start, end = 0;
-
- mutex_lock(&cma->lock);
- for (;;) {
- start = find_next_zero_bit(cma->bitmap, cma->count, end);
- if (start >= cma->count)
- break;
- end = find_next_bit(cma->bitmap, cma->count, start);
- maxchunk = max(end - start, maxchunk);
- }
- mutex_unlock(&cma->lock);
-
- return maxchunk << cma->order_per_bit;
-}
-
static unsigned long cma_bitmap_aligned_mask(const struct cma *cma,
int align_order)
{
static struct dentry *cma_debugfs_root;
+static unsigned long cma_get_used(struct cma *cma)
+{
+ unsigned long ret = 0;
+
+ mutex_lock(&cma->lock);
+ /* pages counter is smaller than sizeof(int) */
+ ret = bitmap_weight(cma->bitmap, (int)cma->count);
+ mutex_unlock(&cma->lock);
+
+ return ret << cma->order_per_bit;
+}
+
+static unsigned long cma_get_maxchunk(struct cma *cma)
+{
+ unsigned long maxchunk = 0;
+ unsigned long start, end = 0;
+
+ mutex_lock(&cma->lock);
+ for (;;) {
+ start = find_next_zero_bit(cma->bitmap, cma->count, end);
+ if (start >= cma->count)
+ break;
+ end = find_next_bit(cma->bitmap, cma->count, start);
+ maxchunk = max(end - start, maxchunk);
+ }
+ mutex_unlock(&cma->lock);
+
+ return maxchunk << cma->order_per_bit;
+}
+
+
static int cma_debugfs_get(void *data, u64 *val)
{
unsigned long *p = data;