search for: part_entry

Displaying 7 results from an estimated 7 matches for "part_entry".

2010 Jul 24
0
[PATCH] chain.c: allocation fixes
..._part_iter *cur; + + while(part) { + cur = part; + if(part->next == next_ebr_part) + part = part->private.ebr.parent; + else + part = NULL; + free(cur->block); + free(cur); + } +} + static struct disk_part_iter *next_ebr_part(struct disk_part_iter *part) { const struct part_entry *ebr_table; @@ -570,10 +588,7 @@ static struct disk_part_iter *next_ebr_part(struct disk_part_iter *part) err_ebr: out_finished: - free(part->private.ebr.parent->block); - free(part->private.ebr.parent); - free(part->block); - free(part); + free_iter(part); retur...
2010 Jul 26
5
[RFC/PATCH] New chainloading functionality
This patch introduces extra functionality to chain.c, mainly with reference to BPB adjustments, but not only that. It expects 3 small patches I sent earlier (they are included for easy reference, patches 1-3/4). The changes introduced are: 1) file and boot sector use separate options to control load address and jump address (if applicable). Options are as described below: *
2008 Apr 24
1
[PATCH] chain.c32: fix booting from logical partitions
...modules/chain.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/com32/modules/chain.c b/com32/modules/chain.c index b790bd0..ec92cd0 100644 --- a/com32/modules/chain.c +++ b/com32/modules/chain.c @@ -228,7 +228,7 @@ find_logical_partition(int whichpart, char *table, struct part_entry *self, struct part_entry *found; int i; - if ( *(uint16_t *)(ptab + 0x1fe) != 0xaa55 ) + if ( *(uint16_t *)(table + 0x1fe) != 0xaa55 ) return NULL; /* Signature missing */ /* We are assumed to already having enumerated all the data partitions -- 1.5.4.3.354.g13f5
2007 Apr 18
2
[Patch]: Drive/Partition and extensible filesystem support for syslinux
...ems (well, the architecture is in place to make it open other filesystems too). Usage is like this: #include <syslinux/io.h> #include <syslinux/partitions.h> #include <fs/fat/libfat.h> syslinux_devdesc dfd; struct libfat_filesystem* fs; diskinfo disk_info; char mbr[512]; static part_entry *partition; int fd; syslinux_get_disk_params(drive, &disk_info); // specify your drive number syslinux_read_disk(&disk_info, mbr, 0, 1); // Read mbr partition = PARTITION_ENTRY(mbr, 2); // 2 for partition 2 // this is the disk device/partition descriptor dfd.disk_info = &disk_info; df...
2007 Apr 05
0
Patch: Add io.c functions, and vfat library
...tions, etc. There was some discussion on whether the FAT library, should be in com32/lib, but its quite helpful for me since I can hook my own read_handler for any partition on any disk, and use libfat to read files off it. Here is an example: typedef struct filedesc { diskinfo* disk_info; part_entry* partition; } filedesc; static filedesc rFd; static int fat_disk_read_handle(intptr_t fdp, void* buf, size_t nbyte, libfat_sector_t sector) { filedesc* fd = (filedesc*) fdp; int num_sectors = nbyte / LIBFAT_SECTOR_SIZE; int status; sector += fd->partition->start_lba; status...
2008 Jul 16
2
[PATCH 1/2] chain.c32: fix bounce buffer handling
Fix breakage in the "hide" option support patch: - The code which initialized the global variable "dapa" was lost in commit 81c203f2, therefore EBIOS access did not work properly. Fixed by removing the global variable completely and moving all bounce buffer handling into read_sector() and write_sector(). - write_sector() copied data to the bounce buffer, but then
2007 Oct 17
3
Adding a "boot from local hard disk" option to syslinux menu, booted from USB
...not known what the default drive is??). Well, in any case, I would really appreciate if someone can let me know if what I want to do is possible at all with syslinux; and possibly how to do it... Thanks, Cheers /// int main(int argc, char *argv[]) { char *mbr, *boot_sector = NULL; struct part_entry *partinfo; char *drivename, *partition, *endds, *endps, *waittotals; int hd, drive, whichpart; static com32sys_t inreg; /* In bss, so zeroed automatically */ int idd, idp, endd, endp; FILE *f; char *log = "/chsdlog.txt"; char logsc[1024]; char *logs = &logsc; char l...