source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/lm32/makeoffset.c@ 26

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

initial

File size: 4.1 KB
RevLine 
[26]1/*
2 * TOPPERS/JSP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 *
9 * 上記著作権者
10は,以下の (1)〜(4) の条件か,Free Software Foundation
11 * によってå…
12¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
13 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
14 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
15å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
16 * 利用と呼ぶ)することを無償で許諾する.
17 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
18 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
19 * スコード中に含まれていること.
20 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
21 * 用できる形で再é…
22å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
23å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
24 * 者
25マニュアルなど)に,上記の著作権表示,この利用条件および下記
26 * の無保証規定を掲載すること.
27 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
28 * 用できない形で再é…
29å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
30 * と.
31 * (a) 再é…
32å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
33マニュアルなど)に,上記の著
34 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
35 * (b) 再é…
36å¸ƒã®å½¢æ…
37‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
38 * 報告すること.
39 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
40 * 害からも,上記著作権者
41およびTOPPERSプロジェクトをå…
42è²¬ã™ã‚‹ã“と.
43 *
44 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
45お
46 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
47 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
48 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
49 *
50 * @(#) $Id: makeoffset.c,v 1.14 2007/07/27 11:28:44 honda Exp $
51 */
52
53#include "jsp_kernel.h"
54#include "task.h"
55
56#undef offsetof
57#define offsetof(structure, field) \
58 ((INT) &(((structure *) 0)->field))
59
60#define OFFSET_DEF(TYPE, FIELD) \
61 Asm("OFFSET_DEF " #TYPE "_" #FIELD " = %0" \
62 : /* no output */ \
63 : "g"(offsetof(TYPE, FIELD)))
64
65#define OFFSET_DEF2(TYPE, FIELD, FIELDNAME) \
66 Asm("OFFSET_DEF " #TYPE "_" #FIELDNAME " = %0" \
67 : /* no output */ \
68 : "g"(offsetof(TYPE, FIELD)))
69
70void
71makeoffset()
72{
73 OFFSET_DEF2(TCB, tinib, tinib);
74 OFFSET_DEF2(TINIB, task, task);
75 OFFSET_DEF2(TINIB, exinf, exinf);
76 OFFSET_DEF(TCB, texptn);
77
78 OFFSET_DEF2(TCB, tskctxb.sp, sp);
79 OFFSET_DEF2(TCB, tskctxb.pc, pc);
80
81 //OFFSET_DEF(INT_TABLE, intmask);
82
83 /*
84 * 構造体ICU_IPM内
85のオフセット
86 * 割込みコントローラ依存なので、システム依存部で定義
87 */
88#ifdef OFFSET_DEF_ICU_IPM
89 OFFSET_DEF_ICU_IPM;
90#endif /* OFFSET_DEF_ICU_IPM */
91
92}
93
94UW BIT_REF_4 = 0x12345678;
95UH BIT_REF_2 = 0x1234;
96UB BIT_REF_1 = 0x12;
97
98#if SIL_ENDIAN == SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */
99TCB BIT_BB_TCB_enatex = {
100 /* BIT_BB:ビッグエンディアン、
101 バイト単位でビットパターンを出力する */
102#else /* SIL_ENDIAN == SIL_ENDIAN_BIG *//* リトルエンディアンプロセッサ */
103TCB BIT_LB_TCB_enatex = {
104 /* BIT_LB:リトルエンディアン、
105 バイト単位でビットパターンを出力する */
106#endif /* SIL_ENDIAN == SIL_ENDIAN_BIG */
107 { NULL, NULL }, NULL, 0, 0,
108 FALSE, FALSE, TRUE,
109 0, NULL, { NULL, NULL }
110 };
Note: See TracBrowser for help on using the repository browser.