[haiku-bugs] Re: [Haiku] #4028: Hybrid GPT/MBR Initial Program Loader

  • From: "bonefish" <trac@xxxxxxxxxxxx>
  • Date: Mon, 06 Jun 2011 01:02:15 -0000

#4028: Hybrid GPT/MBR Initial Program Loader
----------------------------+---------------------------
   Reporter:  meianoite     |      Owner:  axeld
       Type:  enhancement   |     Status:  new
   Priority:  normal        |  Milestone:  R1
  Component:  File Systems  |    Version:  R1/pre-alpha1
 Resolution:                |   Keywords:
 Blocked By:                |   Blocking:
Has a Patch:  1             |   Platform:  All
----------------------------+---------------------------

Comment (by bonefish):

 Replying to [comment:12 meianoite]:
 > In any case, I'm still unsure where the appropriate header should
 reside, were it to be shared. If I understand correctly, and were the
 header not to be shared, I'd have to grow src/add-
 ons/kernel/partitioning_systems/intel/Jamfile with something similar to:
 >
 > {{{
 > DataFileToSourceFile [ FGristFiles MasterBootRecord.h ] : [ FGristFiles
 base_mbr.bin ]
 >       : kBootCode : 436 ;
 > }}}

 The last parameter is a variable name too, declared as `long long`,
 containing the size of the array. It isn't needed when you create a
 header, since `sizeof(kBootCode)` works just fine in this case, but if one
 creates a source file and references it from other source files, one might
 find it handy.

 > and have the new header be included by PartitionMapWriter.cpp. That's
 simple enough, but the shared header case still eludes me. What would be
 the correct location then?

 Since it's a generated header, it doesn't really matter. Just generate it
 in one of the Jamfiles where it is needed and refer to it from the other
 one. For that you need to 1. add the respective include path:
 {{{
 SubDirHdrs [ FDirName $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) add-ons kernel
 partitioning_systems intel ] ;
 }}}
 and 2. explicitly state the inclusion relationship:
 {{{
 Includes [ FGristFiles myFile.cpp ]
     : <src!add-ons!kernel!partitioning_systems!intel>MasterBootRecord.h ;
 }}}

 Untested, so make sure you check the paths and grists.

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/4028#comment:13>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: