From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15189 invoked by alias); 12 Sep 2007 05:14:57 -0000 Received: (qmail 15169 invoked by uid 22791); 12 Sep 2007 05:14:55 -0000 X-Spam-Check-By: sourceware.org Received: from elasmtp-spurfowl.atl.sa.earthlink.net (HELO elasmtp-spurfowl.atl.sa.earthlink.net) (209.86.89.66) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 12 Sep 2007 05:14:50 +0000 Received: from [76.167.204.177] (helo=PAULD) by elasmtp-spurfowl.atl.sa.earthlink.net with asmtp (Exim 4.34) id 1IVKYq-0003Rl-DA for ecos-discuss@ecos.sourceware.org; Wed, 12 Sep 2007 01:14:48 -0400 From: "Paul D. DeRocco" To: "'ecos-discuss'" Date: Wed, 12 Sep 2007 05:14:00 -0000 Message-ID: <01b601c7f4fb$d27af2b0$887ba8c0@PAULD> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook, Build 10.0.6822 In-Reply-To: <000901c7f4f8$8e3a2330$1c0110ac@ariga> X-ELNK-Trace: bd7d5d4e6f8f652c74cfc7ce3b1ad11381c87f5e51960688f30a5b886132e3be1f8932fbcdf6fd7a350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c X-IsSubscribed: yes Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: RE: [ECOS] How DSR is executed in interrupt ? X-SW-Source: 2007-09/txt/msg00063.txt.bz2 > From: ariga masahiro > > I am especially dubious whether it is correctly called. > My next dubious point is that argument cpd->interrupt is > used as eCos Vector-Table refence pointer.Is it correct to > pass the same > number to cyg_drv_interrupt_mask ? But I am sorry I can't fathom it yet. > > -- my ISR routine is below > lan91cxx_isr(cyg_vector_t vector, cyg_addrword_t data > /* , HAL_SavedRegisters *regs */ ) > { > struct eth_drv_sc *sc = (struct eth_drv_sc *)data; > struct lan91cxx_priv_data *cpd = > (struct lan91cxx_priv_data *)sc->driver_private; > > DEBUG_FUNCTION(); > > INCR_STAT( interrupts ); > > //20070903 > diag_printf("ISR int=%d\n",cpd->interrupt); > > cyg_drv_interrupt_mask(cpd->interrupt); > cyg_drv_interrupt_acknowledge(cpd->interrupt); > return (CYG_ISR_HANDLED|CYG_ISR_CALL_DSR); // Run the DSR } The "vector" parameter is the interrupt vector number, so I don't see any reason for wasting time casting "data" and following the chain to the "interrupt" member. -- Ciao, Paul D. DeRocco Paul mailto:pderocco@ix.netcom.com -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss