[PATCH v4] ibm_newemac: Parameterize EMAC Multicast Match Handling

Benjamin Herrenschmidt benh at kernel.crashing.org
Sun Jul 6 10:31:39 EST 2008


On Sat, 2008-07-05 at 17:15 -0700, Grant Erickson wrote:
> +       union {
> +               /* Registers unique to EMAC4 implementations */
> +               struct {
> +                       u32 iaht1;      /* Reset, R     */
> +                       u32 iaht2;      /* Reset, R     */
> +                       u32 iaht3;      /* Reset, R     */
> +                       u32 iaht4;      /* Reset, R     */
> +                       u32 gaht1;      /* Reset, R     */
> +                       u32 gaht2;      /* Reset, R     */
> +                       u32 gaht3;      /* Reset, R     */
> +                       u32 gaht4;      /* Reset, R     */
> +                       u32 lsah;
> +                       u32 lsal;
> +                       u32 ipgvr;      /* Reset,    T  */
> +                       u32 stacr;      /* Special      */
> +                       u32 trtr;       /* Special      */
> +                       u32 rwmr;       /* Reset        */
> +                       u32 octx;
> +                       u32 ocrx;
> +                       u32 ipcr;
> +               };
> +               /* Registers unique to EMAC4SYNC implementations */
> +               struct {
> +                       u32 mahr;       /* Reset, R, T  */
> +                       u32 malr;       /* Reset, R, T  */
> +                       u32 mmahr;      /* Reset, R, T  */
> +                       u32 mmalr;      /* Reset, R, T  */
> +                       u32 rsvd0[4];
> +                       u32 lsah;
> +                       u32 lsal;
> +                       u32 ipgvr;      /* Reset, T     */
> +                       u32 stacr;
> +                       u32 trtr;
> +                       u32 rwmr;       /* Reset        */
> +                       u32 octx;
> +                       u32 ocrx;
> +                       u32 rsvd1;
> +                       u32 revid;
> +                       u32 rsvd2[2];
> +                       u32 iaht[8];    /* Reset, R     */
> +                       u32 gaht[8];    /* Reset, R     */
> +                       u32 tpc;        /* Reset, T     */
> +               };
> +       };

Getting there :-) I note that all your sub-structs are unnamed. How does
the compiler knows which one to use to get to, for example, "lsah" ?

Thanks for working on that btw !

Cheers,
Ben.




More information about the Linuxppc-dev mailing list