search for: part_iter

Displaying 15 results from an estimated 15 matches for "part_iter".

2012 Nov 06
50
chain.c32 (and partiter) updates v2
This is a bit updated set of chain.c32 changes that simplifies a few things (and in partiter part), fixes few minor issues and adds a few new features. Details are in the following commits, below is the summary and pull details at the end. Shao - any chance to peek over them ? Most of those are relatively simple changes and well tested, though of course something might have slipped my attention.
2013 Oct 18
0
[RFC/PATCH 1/3] Move partiter from com32/chain to com32/lib/syslinux
...e "partiter.h" -#include "utility.h" - -#define ost_is_ext(type) ((type) == 0x05 || (type) == 0x0F || (type) == 0x85) -#define ost_is_nondata(type) (ost_is_ext(type) || (type) == 0x00) -#define sane(s,l) ((s)+(l) > (s)) - -/* virtual forwards */ - -static void pi_dtor_(struct part_iter *); -static int pi_next_(struct part_iter *); -static int pi_dos_next(struct part_iter *); -static int pi_gpt_next(struct part_iter *); - -/* vtab and types */ - -static struct itertype types[] = { - [0] = { - .dtor = &pi_dtor_, - .next = &pi_dos_next, -}, [1] = { - .dtor = &pi_dto...
2014 Jun 29
0
[PATCH 4/6] chain: add missing pi_del() in find*() functions
...more), it should be deleted after each loop iteration. diff --git a/com32/chain/chain.c b/com32/chain/chain.c index c08ec6e..f86cd7d 100644 --- a/com32/chain/chain.c +++ b/com32/chain/chain.c @@ -64,27 +64,23 @@ static int is_phys(uint8_t sdifs) static int find_by_sig(uint32_t mbr_sig, struct part_iter **_boot_part) { - struct part_iter *boot_part = NULL; + struct part_iter *iter = NULL; struct disk_info diskinfo; int drive; for (drive = 0x80; drive < 0x80 + fixed_cnt; drive++) { if (disk_get_params(drive, &diskinfo)) continue; /* Drive doesn't exist */...
2010 Aug 08
1
PATCH/RFC chain.c: update iterator code, yank from chain.c, move both to separate directory
1) code split and move Iterator related functionality is yanked from chain.c and moved to iterator.{c,h}. Both are moved to com32/chain and this way chain.c is ready for further splitting. Alternatively, partiter could be moved to com32/lib at any time in the future. It's potentially useful for other modules (e.g. if someone wanted to code partition dumper or editor). 2) Iterator updates
2014 Jun 29
10
[PATCH 0/6] chain.c32 patches
This small set fixes few bugs, improves gpt handling (under buggy conditions) and implements strict flag with more fine grained control which should fix issues with sanity checks against disk sizes. If this set is allright I'd want to do what I mentioned in older discussion with Ady - backport missing patches from 6.x to 5.x and 4.x so all versions have up to date chain version. Michal
2015 Jul 22
0
[PULL 1/8] Move partiter from com32/chain to com32/lib/syslinux
...e "partiter.h" -#include "utility.h" - -#define ost_is_ext(type) ((type) == 0x05 || (type) == 0x0F || (type) == 0x85) -#define ost_is_nondata(type) (ost_is_ext(type) || (type) == 0x00) -#define sane(s,l) ((s)+(l) > (s)) - -/* virtual forwards */ - -static void pi_dtor_(struct part_iter *); -static int pi_next_(struct part_iter *); -static int pi_dos_next(struct part_iter *); -static int pi_gpt_next(struct part_iter *); - -/* vtab and types */ - -static struct itertype types[] = { - [0] = { - .dtor = &pi_dtor_, - .next = &pi_dos_next, -}, [1] = { - .dtor = &pi_dto...
2014 Jun 29
0
[PATCH 3/6] chain/partiter: adjust error reporting
...similar to disklib) - though it has to be quieted first and provide strerr()-like functionality in place of its verbosity. diff --git a/com32/chain/chain.c b/com32/chain/chain.c index ae95d45..c08ec6e 100644 --- a/com32/chain/chain.c +++ b/com32/chain/chain.c @@ -352,7 +352,7 @@ int find_dp(struct part_iter **_iter) } while (!pi_next(iter)); /* broken part structure or other problems */ if (iter->status) { - error("Can't find myself on the drive I booted from."); + error("Unable to find partition with syslinux (fs)."); goto bail; } } @@ -372,7...
2015 Jul 22
13
[PULL 0/8] MultiFS suppport for BIOS and EFI
So last week I was wondering if XFS was still working -- even with its last on-disk structure changes -- and it _suprisingly_ worked as expected. Right, now I can finally get rid of GRUB and use Syslinux to boot my Linux on EFI from a rootfs with xfs. Shit, I have two partitions (the first one being the required ESP) so there is no way to access the other partitions since because Syslinux does not
2014 Jun 29
0
[PATCH 1/6] chain/partiter: fix and improve gpt handling in buggy cases
...ondary GPT header checksum invalid."); - return -1; - } - } - /* restore old checksum */ - gh->chksum = hold_crc32; - - return 0; + valid = crc == crc32(crc32(0, NULL, 0), buf, gh->hdr_size); + gh->chksum = crc; + return valid; } static int pi_next_(struct part_iter *iter) @@ -546,10 +528,108 @@ void pi_del(struct part_iter **_iter) *_iter = NULL; } +static void try_gpt_we(const char *str, int sec) +{ + if (sec) + error(str); + else + warn(str); +} + +static struct disk_gpt_header *try_gpt_hdr(const struct disk_info *di, int sec) +{ + const ch...
2016 Jul 14
3
[PATCH] : Adding dlabel option to chain.c32
On 07/14/16 05:56, Ady Ady via Syslinux wrote: > > @Peter, Erwan, Gene, Michal, (and anyone else interested)... > > Although I haven't actually tested Erwan's patch, would it be > acceptable by you (all) if I were to send a patch to this Syslinux > Mailing List with the same code while changing the wording as I > previously suggested in a prior email? Would it be
2012 Aug 20
13
[PATCH 00/12] Multidisk support
Hello, the following patches should get multidisk access working. The syntax accepted is the following: (hdx,y)/path/to/file where x is the disk number and start at 0 and the y is the partition number starting at 1. So (hd0,1) is the first partition of the first disk. the other accepted syntax is using MBR's 32 bits disk signature so for example: (mbr:0x12345678,2)/foo/bar would address
2016 Jul 15
0
[PATCH] : Add diskbypartname option to chain.c32
...artname/com32/chain/chain.c Fri Jul 15 01:00:03 2016 @@ -143,6 +143,38 @@ return drive; } +/* + * Search for a disk having a GPT partition with a specified Partition Name. + * Return disk and iterator at proper position. + */ +static int find_disk_by_partition_name(const char *label, struct part_iter **_boot_part) +{ + struct part_iter *iter = NULL; + struct disk_info diskinfo; + int drive; + + for (drive = 0x80; drive < 0x80 + fixed_cnt; drive++) { + if (disk_get_params(drive, &diskinfo)) + continue; /* Drive doesn't exist */ + if (!(iter = pi_begin(&diskinfo, o...
2013 Oct 18
0
[RFC/PATCH 3/3] Wire up MultiFS support.
...fo[disk]->first; i; i = i->next) { + if (i->partition == partition) + return i->fs; + } + return NULL; +} + +/* + * Attempt to find a partition based on drive and partition numbers. + * + * @ret: 0 on success, -1 on failure. + */ +static int find_partition(struct part_iter **_iter, struct disk_info *diskinfo, + int partition) +{ + struct part_iter *iter = NULL; + + if (!(iter = pi_begin(diskinfo, 0))) + return -1; + + do { + if (iter->index == partition) + break; + } while (!pi_next(iter)); + + if (iter->status) { + d...
2016 Jul 17
0
[PATCH] Restore - chain.c32: Allow both "guid" and "uuid"
...id" --- com32/chain/chain.c | 3 ++- com32/chain/options.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/com32/chain/chain.c b/com32/chain/chain.c index 4e9e32d..492f21c 100644 --- a/com32/chain/chain.c +++ b/com32/chain/chain.c @@ -286,7 +286,8 @@ int find_dp(struct part_iter **_iter) error("Unable to find requested MBR signature."); goto bail; } - } else if (!strncmp(opt.drivename, "guid", 4)) { + } else if (!strncmp(opt.drivename, "guid", 4) || + !strncmp(opt.drivename, "uuid", 4)) { if (str_to...
2013 Jan 07
2
chain.c32 bug
i`ve found a bug in chain.c32 in v4.06. When i use isolinux it does not run windows7 installation, chainloading bootmgr. the error is: Can't find myself on the drive I booted from. chain.c32 from syslinux 3.xx works like a charm! chain.c32 from syslinux 5 shous tat this is not a com32 app