[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: questions about relocator16.S

From: Vladimir 'phcoder' Serbinenko
Subject: Re: questions about relocator16.S
Date: Tue, 14 Aug 2018 10:36:55 +0200

вт, 14 авг. 2018 г., 9:11 Cao jin <address@hidden>:

  I am learning these code, and now have 2 questions:

1. at the bottom of relocator_common.S, there is:

        /* Jump location. Is filled by the code */
        .long   0
        .long   CODE_SEGMENT

Since it is offset & segment selector value, why is not ".word
CODE_SEGMENT", is there any subtle difference?
i386 is little endian, so effectively it just reserves 2 bytes more and fills them with zeros.

2. in relocator16.S, after "RELOAD_GDT", the other segment registers are
updated two times with DATA_SEGMENT & PSEUDO_REAL_DSEG, they are pretty
close, there is no memory read/write between them, so why we need the
updates with DATA_SEGMENT?
It's derived from older code that may have had accesses there. But it was tested on many CPUs and changing it risks triggering obscure bug in an obscure CPU

Cao jin

Grub-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]