Commit Graph

30 Commits

Author SHA1 Message Date
Ingo Weinhold
d6778355ee * <DiskDeviceTypes.h>: Removed kPartitionTypeIntel{Primary,Logical} constants.
* Added new header headers/private/system/disk_device_types.h, which defines
  the <DiskDeviceTypes.h> constants as macros and which can be used where the
  constants cannot be used. The constants are defined using the macros, so now
  there's only one place where the string literals should be specified.
* Use the macros in the partitioning systems. I was too lazy to also adjust the
  file systems -- most of them seem to hard-code the string literal yet.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-01 03:07:42 +00:00
Ingo Weinhold
fb7c02c215 Under Linux use BLKGETSIZE64 to get the device size, now, and only when that
fails fall back to HDIO_GETGEO. This hopefully fixes #3122, as I suspect
HDIO_GETGEO returned an incorrect size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-25 20:31:21 +00:00
Ingo Weinhold
f1f6eacd46 On Linux, FreeBSD, and friends print the partition map, if we could parse it,
but failed to get the specified partition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-24 21:38:44 +00:00
Fredrik Modeen
1d4673660f This fixes when I try to makebootable after building Haiku from Zeta.
I don't get "Error: Specifying directories not supported on this platform!" now.
Also includes some added \n.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32011 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 10:13:37 +00:00
Oliver Tappe
16d5c24e53 * merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-07 10:30:09 +00:00
Axel Dörfler
199f33248d * Removed SECTOR_SIZE in the read-only part of the intel partition scanner;
however, it's still used in the write part.
* Made the read-only code block size agnostic. Only tested with an Apple
  iPod so far, and it recognizes its partition fine now. Next test on real
  hardware.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-14 12:33:01 +00:00
Michael Lotz
c33667d400 Fixing warnings under GCC4 in preparation to enable -Werror there as well:
* Replaced the use of offsetof() for structs that aren't PODs. Add a
  offset_of_member() macro to util/khash.h because that's what it's used for
  in our cases.
* Change the signature of add_debugger_command()/remove_debugger_command() on
  GCC > 2 to avoid the depricated conversion from string constants to char *.
* Adding some "suggested" parenthesis. I know that not everyone likes that, but
  it pointed out at least one bug that is fixed here as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 20:48:02 +00:00
Ingo Weinhold
210553573f Patch by Artur Wyszynski: Added support for partitions in Darwin.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 15:56:33 +00:00
Ingo Weinhold
bc3955fea5 Preparations for removing __BEOS__ from the compiler defines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 21:46:26 +00:00
Axel Dörfler
c7cf16883e * makebootable now checks if the partition/image/device is mounted via the
disk device API, and if that is the case, it will use the private
  BFS_IOCTL_UPDATE_BOOT_BLOCK ioctl to update the boot code.
* Fixed inconsistent naming of "Bootcode" vs. "BootCode".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-13 22:08:26 +00:00
Rene Gollent
878cc30445 Follow Axel's example in r27000 and use addr_t here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-17 16:49:39 +00:00
Rene Gollent
da3c38792b Slightly more defensive approach to searching for the image. Thanks Axel :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-16 22:07:33 +00:00
Rene Gollent
6296f36bc3 Use __HAIKU__ instead of HAIKU_HOST_PLATFORM_HAIKU since apparently the latter doesn't get defined when cross compiling.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-16 05:11:36 +00:00
Rene Gollent
99b25014bb Do this somewhat differently so as to not break makebootable on non-Haiku hosts. Thanks to luroh for pointing this out.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-16 04:26:27 +00:00
Rene Gollent
adf42886f2 Use get_next_image_info to resolve the path to the executable. This fixes the problem that makebootable will not work unless run with an absolute path.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-16 03:06:02 +00:00
François Revol
14fbb88f10 stubbed out makebootable for atari. It should be doable the same way as on x86, but the emulator doesn't scan hdds for bootsector.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 15:52:44 +00:00
Ingo Weinhold
6fd31accd3 makebootable was broken under Haiku:
* Haiku partitions are block devices.
* Unlike BeOS Haiku requires a size parameter to be passed to ioctl()
  for B_GET_PARTITION_INFO.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-15 17:28:22 +00:00
Jérôme Duval
5d54b6c408 followed Ingo and Marcus' suggestion : be nice when called on file names shorter than raw, or when called in the device directory
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-29 14:10:46 +00:00
Jérôme Duval
efb7e1703e assume the partition offset is zero when the device name terminates with /raw
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-29 12:59:12 +00:00
Jérôme Duval
76a9318758 missing new line
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-29 11:51:28 +00:00
Ingo Weinhold
a17d1cf43e axeld + bonefish:
Added parameter --start-offset to allow writing the boot code not only
at the beginning of the given file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23971 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-17 13:45:47 +00:00
Ingo Weinhold
80b2da5e53 Patch by Samuel Rodriguez Perez: Added support for writing Haiku
directly onto a device under FreeBSD.

I messed around with the code a little (style-fixes, some refactoring)
without being able to compile or test it, so be careful...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-05 20:54:42 +00:00
Ingo Weinhold
db5c68ca46 * Added the partition size as parameter to the file and partitioning
system initialize() hooks. It's often the only info about the
  partition one needs and thus locking the partition just to get it is
  no longer necessary.
* intel partitioning system:
  - Removed passing around block sizes. We require 512 byte sectors
    anyway. In fact using the parent partition's block size was even
    wrong.
  - Simplified writing the partition map sector.
  - Simplified and corrected the partition map initialization.
  - We don't fail identifying a partition anymore, if the partition map
    contains no partitions. We would never identify a freshly
    initialized partition map before.
  - Made pm_identify() more intelligent: It determines the priority to
    return depending on whether the partition is the device itself and
    whether we have recognized child partitions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-04 23:48:18 +00:00
Axel Dörfler
361a19cd94 makebootable didn't work correctly on BeOS: the partition offset was divided by
the block size once too often.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-24 14:36:57 +00:00
Ingo Weinhold
39bdbadf39 If the boot code couldn't be found in makebootable's resources, it tries
to load it from an attribute ("BootCode"). On Darwin we write the boot
code into this attribute. This should solve the problem that writing
resources into the makebootable file renders it not executable there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-18 17:33:21 +00:00
Marcus Overhagen
83bf699b3f some build fixes for pxe_ia32 platform
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 12:52:20 +00:00
Marcus Overhagen
e42c2f9984 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18962 a95241bf-73f2-0310-859d-f6bbb57e9c96 2006-09-28 12:04:31 +00:00
Ingo Weinhold
04fcc147ca * Small fixes.
* Added --dry-run option for paranoid ones like me.
* Added support for making partition devices bootable under Linux (x86, BIOS).
  
When specifying respective values for HAIKU_IMAGE_{DIR,NAME} ("/dev" and
e.g. "sda7") a "jam haiku-image" will now replace the contents of your
favorite partition with a fresh Haiku installation. BE WARNED: This is nothing
for the faint of heart and I don't guarantee that my implementation is bug-free
and won't mangle the contents of your hard disk even if you use it correctly.

That being said, note that you'll probably have to run the "jam haiku-image"
as root, if you want to access the partition devices, which is a bit annoying.
Furthermore, if the build_haiku_image script fails for any reason, jam tends
to remove the image file, which in this case would be a partition device node.
The mknod command will be your friend in this case.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-30 01:50:50 +00:00
Ingo Weinhold
98d294ceb6 Added dummy makebootable for boot platform Open Firmware. Just
to make the build system happy for now. We'll see later what we
have to do.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 22:34:01 +00:00
Ingo Weinhold
338b8dc301 Merged changes from branch build_system_redesign at revision 14573.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-29 16:27:43 +00:00