]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
powerpc/nvram: Add nvram_find_partition()
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 2 Aug 2010 00:01:58 +0000 (10:01 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 30 Nov 2010 04:34:05 +0000 (15:34 +1100)
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/nvram_64.c

index 6dd2700852f040ce5affc2c6463eed62a175811d..01e6844be8d78ead5f5fba941ae9a13cae201723 100644 (file)
@@ -429,6 +429,28 @@ static int nvram_get_partition_size(loff_t data_index)
 }
 
 
+/**
+ * nvram_find_partition - Find an nvram partition by signature and name
+ * @name: Name of the partition or NULL for any name
+ * @sig: Signature to test against
+ * @out_size: if non-NULL, returns the size of the data part of the partition
+ */
+loff_t nvram_find_partition(const char *name, int sig, int *out_size)
+{
+       struct nvram_partition *p;
+
+       list_for_each_entry(p, &nvram_part->partition, partition) {
+               if (p->header.signature == sig &&
+                   (!name || !strncmp(p->header.name, name, 12))) {
+                       if (out_size)
+                               *out_size = (p->header.length - 1) *
+                                       NVRAM_BLOCK_LEN;
+                       return p->index + NVRAM_HEADER_LEN;
+               }
+       }
+       return 0;
+}
+
 /* nvram_setup_partition
  *
  * This will setup the partition we need for buffering the