aboutsummaryrefslogtreecommitdiffstats
path: root/src/modify.c
diff options
context:
space:
mode:
authorroot <root>2007-09-10 09:53:07 +0000
committerroot <root>2007-09-10 09:53:07 +0000
commit529b3f6fffd9ed9742009162077ea5c98325d2a9 (patch)
treeedee67eb0b8f16c7b6cb00ee662c1a34ac885fa5 /src/modify.c
parent61c1751407b35ed4fe98d5e1e39608c7940349d2 (diff)
downloadgpt-529b3f6fffd9ed9742009162077ea5c98325d2a9.tar.gz
gpt-529b3f6fffd9ed9742009162077ea5c98325d2a9.tar.bz2
gpt-529b3f6fffd9ed9742009162077ea5c98325d2a9.zip
*** empty log message ***
Diffstat (limited to 'src/modify.c')
-rw-r--r--src/modify.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/modify.c b/src/modify.c
new file mode 100644
index 0000000..7a26073
--- /dev/null
+++ b/src/modify.c
@@ -0,0 +1,37 @@
+#include "project.h"
+
+
+
+int
+add (DISK * d, int n, char *name,char *type_guid, int start, int end)
+{
+ GPT_headers h;
+ GPT_entry e={0};
+
+ h=headers_get(d);
+
+ if(a_to_guid(type_guid,&e.type)) {
+ fprintf(stderr,"GUID type %s was not parsed\n");
+ return -1;
+ }
+ e.label=guid_random();
+ e.start=start;
+ e.end=end;
+
+
+ ascii_to_utf16(name,-1,e.name,sizeof(e.name));
+
+
+ entry_show(&e);
+
+/*Odd order because efi says so*/
+
+ entry_write(d,&h.header,n,&e);
+ header_redo_ent_crc(d,&h.header);
+ header_write(d,&h.header);
+
+ entry_write(d,&h.alt_header,n,&e);
+ header_redo_ent_crc(d,&h.alt_header);
+ header_write(d,&h.alt_header);
+return 0;
+}