12.07.2015 Views

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>RedHawk</strong> <strong>Linux</strong> User’s <strong>Guide</strong>実 際 の 通 知 はモジュールの 割 り 込 みハンドラ 内 で 実 施 されます。 割 り 込 みをrtc0から 受 信 した 時 、この 割 り 込 みサービス・ルーチンはそれを 要 求 したプロセスへシグナルを 送 信 するかどうかを 判断 します。もしrtc_info 構 造造 体 内 に「シグナルID/プロセスID」のペアが 登 録 されている 場 合 、指 定 されたシグナルはkill_proc() 関 数 を 使 い 対 応 するプロセスへ 送 信 されます。**********************************************************************************int rcim_intr(int irq, void *dev_id, struct pt_regs *regs){u_int32_t isr;isr = readl(&bd_rcim_regs->request);writel(0, &bd_rcim_regs->request);writel(ALL_INT_MASK, &bd_rcim_regs->clear);/* Use isr to determine whether the interrupt was generated by rtc 0 only if“rcim” module is not built into the kernel. If “rcim” is active, itsinterrupt handler would have cleared “request” register by the time weget here. */// if (isr & RCIM_REG_RTC0) {// Send signal to user process if requestedif (rtc_info.signal_num && rtc_info.signal_pid &&(kill_proc(rtc_info.signal_pid, rtc_info.signal_num, 1) == -ESRCH)){rtc_info.signal_pid = 0;}// }return IRQ_HANDLED;}**********************************************************************************デバイスがクローズされた 時 、rtc0はシャット・ダウンされます。カウント 値 は0へリセットされ、クロックは 停 止 されます。さらに 割 り 込 みを 受 信 した 場 合 にシグナルがこれ 以 上 送 信 されないように 割 り 込 み/シグナルの 結 合 はクリアされます。*********************************************************************************int rcim_rtc_close(struct inode *inode,struct file *filep){if (!rtc_info.flag)return (-ENXIO);rtc_info.nopens--;if(rtc_info.nopens == 0) {writel(~RCIM_RTC_START, &bd_rcim_regs->rtc0_control);writel(0, &bd_rcim_regs->rtc0_timer);rtc_info.signal_num = 0;rtc_info.signal_pid = 0;}return 0;}*********************************************************************************14-8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!