123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- /*****************************************************************************/
- /* ここから */
- /*****************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- #include "wonx_include/system.h"
- #include "Wonx.h"
- /*****************************************************************************/
- /* 互換関数の定義 */
- /*****************************************************************************/
- /*
- * Xサーバとの同期の整合性がとれなくなるなどの問題が考えられるので,
- * 互換関数の内部は UNIXTimer_Pause(), UNIXTimer_Unpause() でくくり,
- * タイマ割り込みを一時停止して処理を行う.また,unpause するまえに,
- * かならず sync するようにする.
- */
- /*
- * タイマの一時停止の2重解除の問題が出てくるので,
- * 互換関数から互換関数を呼んではいけない.
- * (一時停止はネストされるが,いちおう)
- * 似たような処理をする関数の場合は,必ず static な別関数に処理をまとめ,
- * そっちを呼び出すようにすること.
- * 引数の表示の問題もあるしね.
- */
- void sys_interrupt_set_hook(int type, intvector_t * vector,
- intvector_t * old_vector)
- {
- WWInterrupt ww_interrupt;
- if (!Wonx_IsCreated()) Wonx_Create();
- /* タイマを一時停止する */
- UNIXTimer_Pause(WonxSystem_GetUNIXTimer(Wonx_GetWonxSystem()));
- printf("call : sys_interrupt_set_hook() : type = %d, vector = %p, old_vector = %p\n", type, vector, old_vector);
- fflush(stdout);
- ww_interrupt = WonxSystem_GetWWInterrupt(Wonx_GetWonxSystem());
- old_vector->callback = WWInterrupt_GetCallback(ww_interrupt, type);
- old_vector->cs = WWInterrupt_GetCS(ww_interrupt, type);
- old_vector->ds = WWInterrupt_GetDS(ww_interrupt, type);
- WWInterrupt_SetCallback(ww_interrupt, type, vector->callback);
- WWInterrupt_SetCS(ww_interrupt, type, vector->cs);
- WWInterrupt_SetDS(ww_interrupt, type, vector->ds);
- printf("call : sys_interrupt_set_hook() : return value = none\n");
- fflush(stdout);
- /* タイマをもとに戻す */
- UNIXTimer_Unpause(WonxSystem_GetUNIXTimer(Wonx_GetWonxSystem()));
- return;
- }
- void sys_interrupt_reset_hook(int type, intvector_t * old_vector)
- {
- WWInterrupt ww_interrupt;
- if (!Wonx_IsCreated()) Wonx_Create();
- /* タイマを一時停止する */
- UNIXTimer_Pause(WonxSystem_GetUNIXTimer(Wonx_GetWonxSystem()));
- printf("call : sys_interrupt_reset_hook() : type = %d, old_vector = %p\n", type, old_vector);
- fflush(stdout);
- ww_interrupt = WonxSystem_GetWWInterrupt(Wonx_GetWonxSystem());
- WWInterrupt_SetCallback(ww_interrupt, type, old_vector->callback);
- WWInterrupt_SetCS(ww_interrupt, type, old_vector->cs);
- WWInterrupt_SetDS(ww_interrupt, type, old_vector->ds);
- printf("call : sys_interrupt_reset_hook() : return value = none\n");
- fflush(stdout);
- /* タイマをもとに戻す */
- UNIXTimer_Unpause(WonxSystem_GetUNIXTimer(Wonx_GetWonxSystem()));
- return;
- }
- void sys_wait(unsigned int wait_time)
- {
- }
- unsigned long int sys_get_tick_count(void)
- {
- return (0);
- }
- void sys_sleep(void)
- {
- }
- void sys_set_sleep_time(int sleep_time)
- {
- }
- int sys_get_sleep_time(void)
- {
- return (0);
- }
- void sys_set_awake_key(int pattern)
- {
- }
- int sys_get_awake_key(void)
- {
- return (0);
- }
- void sys_set_keepalive_int(int pattern)
- {
- }
- void sys_get_ownerinfo(int size, char * buffer)
- {
- }
- int sys_suspend(int core)
- {
- return (0);
- }
- void sys_resume(int core)
- {
- }
- void sys_set_remote(int remote)
- {
- }
- unsigned int sys_get_remote(void)
- {
- return (0);
- }
- void * sys_alloc_iram(void * p, unsigned int size)
- {
- return (NULL);
- }
- void sys_free_iram(void * p)
- {}
- void * sys_get_my_iram(void)
- {
- return (NULL);
- }
- unsigned int sys_get_version(void)
- {
- return (0);
- }
- int sys_swap(int core)
- {
- return (0);
- }
- void sys_set_resume(unsigned int flags)
- {
- }
- unsigned int sys_get_resume(void)
- {
- return (0);
- }
- void bios_exit()
- {
- printf("call : bios_exit() : \n");
- fflush(stdout);
- exit (0);
- }
- /*****************************************************************************/
- /* ここまで */
- /*****************************************************************************/
- /*****************************************************************************/
- /* End of File. */
- /*****************************************************************************/
|