source: anotherchoice/tags/jsp-1.4.4-full-UTF8/utils/hew-renesas/copy_kernel_source.pl@ 26

Last change on this file since 26 was 26, checked in by ykominami, 10 years ago

initial

File size: 5.5 KB
Line 
1#! /usr/bin/perl
2#
3# TOPPERS/JSP Kernel
4# Toyohashi Open Platform for Embedded Real-Time Systems/
5# Just Standard Profile Kernel
6#
7# Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
8# Toyohashi Univ. of Technology, JAPAN
9# Copyright (C) 2004 by Embedded and Real-Time Systems Laboratory
10# Graduate School of Information Science, Nagoya Univ., JAPAN
11# Copyright (C) 2005-2007 by Industrial Technology Institute,
12# Miyagi Prefectural Government, JAPAN
13#
14# 上記著作権者
15は,以下の (1)〜(4) の条件か,Free Software Foundation
16# によってå…
17¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
18# 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
19# を改変したものを含む.以下同じ)を使用・複製・改変・再é…
20å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
21# 利用と呼ぶ)することを無償で許諾する.
22# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
23# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
24# スコード中に含まれていること.
25# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
26# 用できる形で再é…
27å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
28å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
29# 者
30マニュアルなど)に,上記の著作権表示,この利用条件および下記
31# の無保証規定を掲載すること.
32# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
33# 用できない形で再é…
34å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
35# と.
36# (a) 再é…
37å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
38マニュアルなど)に,上記の著
39# 作権表示,この利用条件および下記の無保証規定を掲載すること.
40# (b) 再é…
41å¸ƒã®å½¢æ…
42‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
43# 報告すること.
44# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
45# 害からも,上記著作権者
46およびTOPPERSプロジェクトをå…
47è²¬ã™ã‚‹ã“と.
48#
49# 本ソフトウェアは,無保証で提供されているものである.上記著作権者
50お
51# よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
52# 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
53# 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
54#
55
56# 処理内
57容
58#  ・jsp/kernelにあるソースコードをAPI毎にコピーする。
59#   (関数単位でリンクできるようにする)
60#  ・コピーする際に、ファイルå…
61ˆé ­ã«#define __tskiniなどのマクロ定義を追加する。
62#  
63# 使い方
64#   perl copy_kernel_source.pl src_path dst_path
65#    引数
66#     src_path:jsp/kernelへの相対パス
67#     dst_path:ファイルのコピーå…
68ˆã¸ã®ç›¸å¯¾ãƒ‘ス
69
70
71$src_path = $ARGV[0];
72$dst_path = $ARGV[1];
73
74# å…
75ƒã«ãªã‚‹ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«åã¨è¿½åŠ ã™ã‚‹ãƒžã‚¯ãƒ­åã®å®šç¾©
76%hash_array = (
77 "task.c"
78 => [qw(tskini tsksched tskrun tsknrun tskdmt tskact tskext tskpri tskrot tsktex)],
79 "wait.c"
80 => [qw(waimake waicmp waitmo waitmook waican wairel wobjwai wobjwaitmo wobjpri)],
81 "time_event.c"
82 => [qw(tmeini tmeup tmedown tmeins tmedel isig_tim)],
83 "syslog.c"
84 => [qw(logini vwri_log vrea_log vmsk_log logter)],
85 "task_manage.c"
86 => [qw(act_tsk iact_tsk can_act ext_tsk ter_tsk chg_pri get_pri)],
87 "task_sync.c"
88 => [qw(slp_tsk tslp_tsk wup_tsk iwup_tsk can_wup rel_wai irel_wai sus_tsk rsm_tsk frsm_tsk dly_tsk)],
89 "task_except.c"
90 => [qw(ras_tex iras_tex dis_tex ena_tex sns_tex)],
91 "semaphore.c"
92 => [qw(semini sig_sem isig_sem wai_sem pol_sem twai_sem)],
93 "eventflag.c"
94 => [qw(flgini flgcnd set_flg iset_flg clr_flg wai_flg pol_flg twai_flg)],
95 "dataqueue.c"
96 => [qw(dtqini dtqenq dtqfenq dtqdeq dtqsnd dtqrcv snd_dtq psnd_dtq ipsnd_dtq tsnd_dtq fsnd_dtq ifsnd_dtq rcv_dtq prcv_dtq trcv_dtq)],
97 "mailbox.c"
98 => [qw(mbxini snd_mbx rcv_mbx prcv_mbx trcv_mbx)],
99 "mempfix.c"
100 => [qw(mpfini mpfget get_mpf pget_mpf tget_mpf rel_mpf)],
101 "time_manage.c"
102 => [qw(set_tim get_tim vxget_tim)],
103 "cyclic.c"
104 => [qw(cycini cycenq sta_cyc stp_cyc cyccal)],
105 "sys_manage.c"
106 => [qw(rot_rdq irot_rdq get_tid iget_tid loc_cpu iloc_cpu unl_cpu iunl_cpu dis_dsp ena_dsp sns_ctx sns_loc sns_dsp sns_dpn vsns_ini)],
107 "interrupt.c"
108 => [qw(inhini)],
109 "exception.c"
110 => [qw(excini vxsns_ctx vxsns_loc vxsns_dsp vxsns_dpn vxsns_tex)]
111);
112
113#
114# メインの処理
115#
116foreach $file (keys(%hash_array)) {
117 @array = @{$hash_array{$file}};
118 foreach $api (@array) {
119 &copy_file($file, $api);
120 }
121}
122
123
124#
125# 第1引数:å…
126ƒã«ãªã‚‹ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ãƒ•ã‚¡ã‚¤ãƒ«åï¼ˆãƒ‘スを含まず)
127# 第2引数:条件コンパイル用のマクロ定義を追加するAPI、関数名
128#      →出力するファイル名もå…
129¼ã­ã¦ã„る。
130#
131sub copy_file {
132 my($filename, $api) = @_;
133 open(OUTFILE, ">$dst_path/$api.c") || die "Cannot open $dst_path/$api.c";
134
135 # API毎のマクロ定義を追加
136 print OUTFILE "#define __$api\n";
137
138 # jsp/kernelからファイルをコピー
139 open(INFILE, "$src_path/$filename") || die "Cannot open $src_path/$filename";
140 while ($line = <INFILE>) {
141 print OUTFILE $line;
142 }
143
144 close(INFILE);
145 close(OUTFILE);
146}
Note: See TracBrowser for help on using the repository browser.