aboutsummaryrefslogtreecommitdiffstats
path: root/demos/Win32-MSVS/chcore.c
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-03-04 10:33:38 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-03-04 10:33:38 +0000
commit99ac65be2ac3d59a4de3b5adaa4dd9adeb80c1e2 (patch)
treef5b7095946f7b4553698e91adfe07f2bcaa1e110 /demos/Win32-MSVS/chcore.c
parentec0a917ae1bef32f1848161e759ef98542327523 (diff)
downloadChibiOS-99ac65be2ac3d59a4de3b5adaa4dd9adeb80c1e2.tar.gz
ChibiOS-99ac65be2ac3d59a4de3b5adaa4dd9adeb80c1e2.tar.bz2
ChibiOS-99ac65be2ac3d59a4de3b5adaa4dd9adeb80c1e2.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@213 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos/Win32-MSVS/chcore.c')
-rw-r--r--demos/Win32-MSVS/chcore.c115
1 files changed, 0 insertions, 115 deletions
diff --git a/demos/Win32-MSVS/chcore.c b/demos/Win32-MSVS/chcore.c
deleted file mode 100644
index facdea31c..000000000
--- a/demos/Win32-MSVS/chcore.c
+++ /dev/null
@@ -1,115 +0,0 @@
-#include <windows.h>
-#include <stdio.h>
-
-#undef CDECL
-
-#include <ch.h>
-
-static LARGE_INTEGER nextcnt;
-static LARGE_INTEGER slice;
-
-void InitSimCom1(void);
-void InitSimCom2(void);
-BOOL Com1ConnInterruptSimCom(void);
-BOOL Com2ConnInterruptSimCom(void);
-BOOL Com1InInterruptSimCom(void);
-BOOL Com2InInterruptSimCom(void);
-BOOL Com1OutInterruptSimCom(void);
-BOOL Com2OutInterruptSimCom(void);
-
-/*
- * Simulated HW initialization.
- */
-void InitCore(void) {
- WSADATA wsaData;
-
- // Initialization.
- if (WSAStartup(2, &wsaData) != 0) {
- printf("Unable to locate a winsock DLL\n");
- exit(1);
- }
-
- printf("Win32 ChibiOS/RT simulator\n\n");
- printf("Thread structure %d bytes\n", sizeof(Thread));
- if (!QueryPerformanceFrequency(&slice)) {
- printf("QueryPerformanceFrequency() error");
- exit(1);
- }
- printf("Core Frequency %u Hz\n", slice.LowPart);
- slice.QuadPart /= CH_FREQUENCY;
- QueryPerformanceCounter(&nextcnt);
- nextcnt.QuadPart += slice.QuadPart;
-
- InitSimCom1();
- InitSimCom2();
-}
-
-/*
- * Interrupt simulation.
- */
-void ChkIntSources(void) {
- LARGE_INTEGER n;
-
- if (Com1InInterruptSimCom() || Com2InInterruptSimCom() ||
- Com1OutInterruptSimCom() || Com2OutInterruptSimCom() ||
- Com1ConnInterruptSimCom() || Com2ConnInterruptSimCom()) {
- if (chSchRescRequiredI())
- chSchDoRescheduleI();
- return;
- }
-
- // Interrupt Timer simulation (10ms interval).
- QueryPerformanceCounter(&n);
- if (n.QuadPart > nextcnt.QuadPart) {
- nextcnt.QuadPart += slice.QuadPart;
- chSysTimerHandlerI();
- if (chSchRescRequiredI())
- chSchDoRescheduleI();
- }
-}
-
-t_msg _IdleThread(void *p) {
-
- chThdSetPriority(IDLEPRIO);
-
- while (TRUE) {
-
- ChkIntSources();
- Sleep(0);
- }
-}
-
-__declspec(naked) void __fastcall chSysHalt(void) {
-
- exit(2);
-}
-
-__declspec(naked) void __fastcall chSysSwitchI(Thread *otp, Thread *ntp) {
-
- __asm {
- // Switch out code
- push ebp
- push esi
- push edi
- push ebx
- mov dword ptr 16[ecx],esp
- // Switch in code
- mov esp,16[edx]
- pop ebx
- pop edi
- pop esi
- pop ebp
- ret
- }
-}
-
-__declspec(naked) void __fastcall threadexit(void) {
-
- __asm {
-// add esp,4 ; The thread parameter
- push eax ; The exit code returned by the thread
- call chThdExit
- add esp,4
- call chSysHalt ; Should *never* happen
- }
-}