This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: Net BSD network stack posix tasks -
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Alok Singh wrote:
> Gary,
> To give an example, I'm required to make a posix call in the
> end_send function below. end_send will be called by the network stack to
> send the out to Ethernet driver( layers below network layer to be
> precise). What will be happen in this case? Wouldn't the system crash
> because of it??
Why would you be calling some POSIX function from this code? That's
most certainly not right (and is a layering violation). What are you
trying to accomplish that the standard stack and I/O functions (e.g.
select) cannot provide?
>
> ETH_DRV_SC(end_sc0,
> &end0_priv_data, // Driver specific data
> ETH_NAME, // Name for this interface
> end_start,
> end_stop,
> end_ioctl,
> end_can_send,
> end_send,
> end_recv,
> end_deliver,
> end_poll,
> end_int_vector);
>
> NETDEVTAB_ENTRY(end_netdev0,
> "device_end0",
> end_drv_init,
> &end_sc0);
>
>
> *****************
> end_send()
> {
> -------------------------------
> pthread_cleanup_push();
> ----------------------------
>
> }
>
>
> regards,
> Alok
>
> -----Original Message-----
> From: Gary Thomas [mailto:gary@mlbassoc.com]
> Sent: Wednesday, May 30, 2007 5:30 PM
> To: Alok Singh
> Cc: ecos-discuss@ecos.sourceware.org
> Subject: Re: [ECOS] Net BSD network stack posix tasks -
>
> Alok Singh wrote:
>> Thanks for all the suggestions. My only issue is, and a simple one,
> that
>> if I want to send a packet out of the device in the network thread
>> context, then I've problems. We have our implementation of message
>> queues, mutexes, and other stuff that all use POSIX calls. So the code
>> crashes, since I'm trying to make posix calls (while putting the
> packet
>> in the message queue, and using mutexes), in the context of native cyg
>> thread context. To overcome this problem, I'm queuing the packet
> coming
>> out of the network stack, and then another posix thread de-queues the
>> packet, and sends it out. This is working fine except that performance
>> is not that good, and some fine tuning is required. In the limited
>> testing I did while sending the packet out in the context of network
>> thread, the performance is better, and suits my purpose.
>
> Sorry, but this description doesn't make a lot of sense (to me at
> least).
> There should be no difference doing network I/O from a POSIX thread and
> a native eCos thread. Everything should boil down to socket I/O, which
> is the API exported by the network stacks.
>
> Perhaps you can explain in more detail, or provide some code snippets.
> What do you mean by "send a packet out of the device in the network
> thread
> context?"
>
>> There is no issue with BSD stack. It runs perfectly fine.
>
>> regards,
>> Alok
>
>> -----Original Message-----
>> From: ecos-discuss-owner@ecos.sourceware.org
>> [mailto:ecos-discuss-owner@ecos.sourceware.org] On Behalf Of Nick
>> Garnett
>> Sent: Tuesday, May 29, 2007 10:56 PM
>> To: Alok Singh
>> Cc: ecos-discuss@ecos.sourceware.org
>> Subject: Re: [ECOS] Net BSD network stack posix tasks -
>
>> "Alok Singh" <aloks@broadcom.com> writes:
>
>>> Hi,
>>> I don't understand licensing issues much. I've a question. Am I
>> allowed
>>> to convert network stack threads to posix threads instead of native
>> cyg
>>> threads? I've compatibility issues making ecos network stack work
>> with
>>> my application (Posix based.) Though there are ways to overcome this
>>> issue, but they affect the performance of the system.
>> (I'm not sure why this has anything to do with licensing.)
>
>> The network threads are internal to the stack. POSIX threads are for
>> running application code. The network threads will never run
>> application code and so don't need to be POSIX threads. The network
>> threads work perfectly well alongside POSIX applications without
>> needing to be POSIX threads themselves.
>
>> I don't know what problems you are having, but your suggestion is
>> almost certainly the wrong solution. It sounds to me like you are
>> trying to do something that eCos doesn't support. Tell us what the
>> problem is and maybe someone can offer a better solution.
>
>
>
>
- --
- ------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
- ------------------------------------------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iD8DBQFGXZtbmaKbSsQGV8ARAtyGAJ4rc3vaIGDEDEWNN5VOPOPkN5nLBwCgmd+N
v914Bs1vf3lDuVzapG7iqJk=
=4sqX
-----END PGP SIGNATURE-----
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss