| To: | nalkunda@xxxxxxxxxxx |
|---|---|
| Subject: | Re: Casting (struct rtable*) to (struct dst_entry*) |
| From: | "David S. Miller" <davem@xxxxxxxxxx> |
| Date: | Wed, 19 Mar 2003 21:33:52 -0800 (PST) |
| Cc: | netdev@xxxxxxxxxxx, linux-net@xxxxxxxxxxxxxxx |
| In-reply-to: | <200303200027.41923.nalkunda@xxxxxxxxxxx> |
| References: | <200303192355.02509.nalkunda@xxxxxxxxxxx> <20030319.205912.131928327.davem@xxxxxxxxxx> <200303200027.41923.nalkunda@xxxxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
From: N N Ashok <nalkunda@xxxxxxxxxxx>
Date: Thu, 20 Mar 2003 00:27:41 -0500
I did see that. But however, I could not understand how "struct rtable" can
be
casted to "struct dst_entry" and then back again, all the while accessing
fields of both structures.
You miss the point that they are the same structure. It is allocated
the size of "struct rtable" but it may be casted back and forth
between rtable and dst_entry as desired.
void foo(void)
{
struct rtable rt;
struct dst_entry *dst;
rt->u.dst.bar = 1;
dst = (struct dst_entry *) &rt;
ASSERT(dst->bar == 1);
dst = &rt->u.dst;
ASSERT(dst->bar == 1);
}
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: Casting (struct rtable*) to (struct dst_entry*), N N Ashok |
|---|---|
| Next by Date: | Re: Casting (struct rtable*) to (struct dst_entry*), N N Ashok |
| Previous by Thread: | Re: Casting (struct rtable*) to (struct dst_entry*), N N Ashok |
| Next by Thread: | Re: Casting (struct rtable*) to (struct dst_entry*), N N Ashok |
| Indexes: | [Date] [Thread] [Top] [All Lists] |