>>> On 31.07.15 at 17:46, <konrad.w...@oracle.com> wrote:
> On Thu, Jul 30, 2015 at 09:47:40AM -0700, Johannes Erdfelt wrote:
>> On Mon, Jul 27, 2015, Konrad Rzeszutek Wilk <kon...@kernel.org> wrote:
>> > +struct xsplice_reloc_howto {  
>> > +    uint32_t    howto; /* XSPLICE_HOWTO_* */  
>> > +    uint32_t    flag; /* XSPLICE_HOWTO_FLAG_* */  
>> > +    uint32_t    size; /* Size, in bytes, of the item to be relocated. */  
>> > +    uint32_t    r_shift; /* The value the final relocation is shifted 
>> > right by; used to drop unwanted data from the relocation. */  
>> > +    uint64_t    mask; /* Bitmask for which parts of the instruction or 
>> > data are replaced with the relocated value. */  
>> > +    uint8_t     pad[8]; /* Must be zero. */  
>> > +};  
>> 
>> I'm curious how r_shift and mask are used. I'm familiar with x86 and
>> x86_64 and I'm not sure how these fit in. Is this to support other
>> architectures?
> 
> It is to patch up data. We can specify the exact mask for an unsigned
> int - so we only patch specific bits. Ditto if we want to remove certain
> values.

Still I don't see a practical use: What relocated item would (on x86)
be stored starting at other than bit 0 of a byte/word? Also, wouldn't
a shift count be redundant with the mask value anyway?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to