regcache-rbtree.c (c04c1b9ee8f30c7a3a25e20e406247003f634ebe) | regcache-rbtree.c (bacdbe077342ecc9e7b3e374cc5a41995116706a) |
---|---|
1/* 2 * Register cache access API - rbtree caching support 3 * 4 * Copyright 2011 Wolfson Microelectronics plc 5 * 6 * Author: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> 7 * 8 * This program is free software; you can redistribute it and/or modify --- 124 unchanged lines hidden (view full) --- 133{ 134 struct regmap *map = s->private; 135 struct regcache_rbtree_ctx *rbtree_ctx = map->cache; 136 struct regcache_rbtree_node *n; 137 struct rb_node *node; 138 unsigned int base, top; 139 int nodes = 0; 140 int registers = 0; | 1/* 2 * Register cache access API - rbtree caching support 3 * 4 * Copyright 2011 Wolfson Microelectronics plc 5 * 6 * Author: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> 7 * 8 * This program is free software; you can redistribute it and/or modify --- 124 unchanged lines hidden (view full) --- 133{ 134 struct regmap *map = s->private; 135 struct regcache_rbtree_ctx *rbtree_ctx = map->cache; 136 struct regcache_rbtree_node *n; 137 struct rb_node *node; 138 unsigned int base, top; 139 int nodes = 0; 140 int registers = 0; |
141 int average; | |
142 | 141 |
143 mutex_lock(&map->lock); | 142 map->lock(map); |
144 145 for (node = rb_first(&rbtree_ctx->root); node != NULL; 146 node = rb_next(node)) { 147 n = container_of(node, struct regcache_rbtree_node, node); 148 149 regcache_rbtree_get_base_top_reg(n, &base, &top); 150 seq_printf(s, "%x-%x (%d)\n", base, top, top - base + 1); 151 152 nodes++; 153 registers += top - base + 1; 154 } 155 | 143 144 for (node = rb_first(&rbtree_ctx->root); node != NULL; 145 node = rb_next(node)) { 146 n = container_of(node, struct regcache_rbtree_node, node); 147 148 regcache_rbtree_get_base_top_reg(n, &base, &top); 149 seq_printf(s, "%x-%x (%d)\n", base, top, top - base + 1); 150 151 nodes++; 152 registers += top - base + 1; 153 } 154 |
156 if (nodes) 157 average = registers / nodes; 158 else 159 average = 0; 160 | |
161 seq_printf(s, "%d nodes, %d registers, average %d registers\n", | 155 seq_printf(s, "%d nodes, %d registers, average %d registers\n", |
162 nodes, registers, average); | 156 nodes, registers, registers / nodes); |
163 | 157 |
164 mutex_unlock(&map->lock); | 158 map->unlock(map); |
165 166 return 0; 167} 168 169static int rbtree_open(struct inode *inode, struct file *file) 170{ 171 return single_open(file, rbtree_show, inode->i_private); 172} --- 258 unchanged lines hidden --- | 159 160 return 0; 161} 162 163static int rbtree_open(struct inode *inode, struct file *file) 164{ 165 return single_open(file, rbtree_show, inode->i_private); 166} --- 258 unchanged lines hidden --- |