[OpenBIOS] [PATCH] Add block-size to partition packages.

Laurent Vivier laurent at lvivier.info
Thu Dec 18 21:31:32 CET 2008


Yaboot uses "block-size" with disk-label packages.

This patch add block-size to all partitions packages.

Signed-off-by: Laurent Vivier <Laurent at lvivier.info>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: parts-block-size
Type: application/octet-stream
Size: 3165 bytes
Desc: not available
URL: <http://lists.openbios.org/pipermail/openbios/attachments/20081218/6360da0c/attachment.dmg>
-------------- next part --------------


---
  modules/disk-label.c |   20 +++++++++++++++++++-
  modules/mac-parts.c  |    7 +++++++
  modules/pc-parts.c   |    7 +++++++
  modules/sun-parts.c  |    7 +++++++
  4 files changed, 40 insertions(+), 1 deletion(-)

Index: openbios-devel/modules/disk-label.c
===================================================================
--- openbios-devel.orig/modules/disk-label.c	2008-12-18  
21:20:37.000000000 +0100
+++ openbios-devel/modules/disk-label.c	2008-12-18 21:21:43.000000000  
+0100
@@ -200,12 +200,30 @@
  	PUSH(0);
  }

+static void
+dlabel_block_size( dlabel_info_t *di )
+{
+	xt_t xt;
+
+	if( !di->part_ih )
+		goto no_handler;
+
+	xt = find_ih_method("block-size", di->part_ih);
+	if ( !xt )
+		goto no_handler;
+
+	call_package( xt , di->part_ih );
+	return;
+no_handler:
+	PUSH(512);
+}
+
  NODE_METHODS( dlabel ) = {
  	{ "open",	dlabel_open 	},
  	{ "close",	dlabel_close 	},
  	{ "offset",	dlabel_offset 	},
  	{ "load",	dlabel_load 	},
-
+	{ "block-size", dlabel_block_size },
  	{ "read",	dlabel_read 	},
  	{ "write",	dlabel_write 	},
  	{ "seek",	dlabel_seek 	},
Index: openbios-devel/modules/mac-parts.c
===================================================================
--- openbios-devel.orig/modules/mac-parts.c	2008-12-18  
21:20:37.000000000 +0100
+++ openbios-devel/modules/mac-parts.c	2008-12-18 21:21:43.000000000  
+0100
@@ -119,6 +119,12 @@
  }

  static void
+macparts_block_size( __attribute__((unused))macparts_info_t *di )
+{
+	PUSH(512);
+}
+
+static void
  macparts_initialize( macparts_info_t *di )
  {
  	fword("register-partition-package");
@@ -128,6 +134,7 @@
  	{ "probe",	macparts_probe 		},
  	{ "open",	macparts_open 		},
  	{ "get-info",	macparts_get_info 	},
+	{ "block-size",	macparts_block_size 	},
  	{ NULL,		macparts_initialize	},
  };

Index: openbios-devel/modules/pc-parts.c
===================================================================
--- openbios-devel.orig/modules/pc-parts.c	2008-12-18  
21:20:37.000000000 +0100
+++ openbios-devel/modules/pc-parts.c	2008-12-18 21:21:43.000000000  
+0100
@@ -186,6 +186,12 @@
  }

  static void
+pcparts_block_size( __attribute__((unused))pcparts_info_t *di )
+{
+	PUSH(512);
+}
+
+static void
  pcparts_initialize( pcparts_info_t *di )
  {
  	fword("register-partition-package");
@@ -195,6 +201,7 @@
  	{ "probe",	pcparts_probe 		},
  	{ "open",	pcparts_open 		},
  	{ "get-info",	pcparts_get_info 	},
+	{ "block-size",	pcparts_block_size 	},
  	{ NULL,		pcparts_initialize	},
  };

Index: openbios-devel/modules/sun-parts.c
===================================================================
--- openbios-devel.orig/modules/sun-parts.c	2008-12-18  
21:20:37.000000000 +0100
+++ openbios-devel/modules/sun-parts.c	2008-12-18 21:21:43.000000000  
+0100
@@ -173,6 +173,12 @@
  }

  static void
+sunparts_block_size( __attribute__((unused))sunparts_info_t *di )
+{
+	PUSH(512);
+}
+
+static void
  sunparts_initialize( __attribute__((unused))sunparts_info_t *di )
  {
  	fword("register-partition-package");
@@ -182,6 +188,7 @@
  	{ "probe",	sunparts_probe 		},
  	{ "open",	sunparts_open 		},
  	{ "get-info",	sunparts_get_info 	},
+	{ "block-size",	sunparts_block_size 	},
  	{ NULL,		sunparts_initialize	},
  };





More information about the OpenBIOS mailing list