/demos/trunk/base/cabs.c |
---|
34,7 → 34,7 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* |
* |
* CVS : $Id: cabs.c,v 1.5 2004-04-18 19:46:29 giacomo Exp $ |
* CVS : $Id: cabs.c,v 1.4 2004-04-17 11:36:13 giacomo Exp $ |
*/ |
/*--------------------------------------------------------------*/ |
45,9 → 45,14 |
#include <modules/cabs.h> |
#include <string.h> |
#include <drivers/shark_linuxc26.h> |
#include <drivers/shark_pci26.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/shark_input26.h> |
#include <drivers/shark_keyb26.h> |
#define FRAME_BUFFER_DEVICE 0 |
#define NCAB 4 /* max number of CABs */ |
#define NCAR 26 /* generated characters */ |
86,6 → 91,73 |
TIME w1[NCAB] = {10000, 10000, 10000, 10000}; |
TIME w2[NCAB] = {10000, 10000, 10000, 10000}; |
PID shutdown_task_PID = -1; |
int device_drivers_init() { |
KEYB_PARMS kparms = BASE_KEYB; |
LINUXC26_register_module(); |
PCI26_init(); |
keyb_def_ctrlC(kparms, NULL); |
INPUT26_init(); |
KEYB26_init(&kparms); |
FB26_init(); |
FB26_open(FRAME_BUFFER_DEVICE); |
FB26_use_grx(FRAME_BUFFER_DEVICE); |
FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
return 0; |
} |
int device_drivers_close() { |
FB26_close(FRAME_BUFFER_DEVICE); |
KEYB26_close(); |
INPUT26_close(); |
return 0; |
} |
TASK shutdown_task_body(void *arg) { |
device_drivers_close(); |
sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
sys_end(); |
return NULL; |
} |
void set_shutdown_task() { |
NRT_TASK_MODEL nrt; |
nrt_task_default_model(nrt); |
shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
if (shutdown_task_PID == NIL) { |
sys_shutdown_message("Error: Cannot create shutdown task\n"); |
sys_end(); |
} |
} |
/****************************************************************/ |
/* This function is called when Alt-X is pressed. |
92,7 → 164,7 |
*/ |
void my_end(KEY_EVT* e) |
{ |
sys_end(); |
task_activate(shutdown_task_PID); |
} |
/******************************************************************/ |
121,6 → 193,10 |
{ |
char c = 0; /* character from keyboard */ |
set_shutdown_task(); |
device_drivers_init(); |
grx_clear(BLACK); |
grx_text("Press a key [1-4]", 10, 16, 7, 0); |
133,7 → 209,7 |
create_channel(c-'1'); |
} |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
240,7 → 316,7 |
p1[i] = task_create(pname1[i], producer, &m, NULL); |
if (p1[i] == NIL) { |
sys_shutdown_message("Could not create task <producer>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return; |
} |
task_activate(p1[i]); |
254,7 → 330,7 |
p2[i] = task_create(pname2[i], consumer, &m, NULL); |
if (p2[i] == NIL) { |
sys_shutdown_message("Could not create task <consumer>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return; |
} |
task_activate(p2[i]); |
289,3 → 365,4 |
sprintf(buffer,"%ld", t2[i]); |
grx_text(buffer,X2+88,yc+R+16,14,0); |
} |
/demos/trunk/base/fly.c |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: fly.c,v 1.5 2004-04-18 19:46:29 giacomo Exp $ |
CVS : $Id: fly.c,v 1.4 2004-04-17 11:36:13 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.5 $ |
Last update: $Date: 2004-04-18 19:46:29 $ |
Revision: $Revision: 1.4 $ |
Last update: $Date: 2004-04-17 11:36:13 $ |
------------ |
**/ |
53,8 → 53,11 |
#include <stdlib.h> |
#include <math.h> |
#include <drivers/shark_linuxc26.h> |
#include <drivers/shark_pci26.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/shark_input26.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/shark_fb26.h> |
#define FRAME_BUFFER_DEVICE 0 |
76,6 → 79,72 |
int fly_wcet = 1000; /* task wcet */ |
PID pid; |
PID shutdown_task_PID = -1; |
int device_drivers_init() { |
KEYB_PARMS kparms = BASE_KEYB; |
LINUXC26_register_module(); |
PCI26_init(); |
keyb_def_ctrlC(kparms, NULL); |
INPUT26_init(); |
KEYB26_init(&kparms); |
FB26_init(); |
FB26_open(FRAME_BUFFER_DEVICE); |
FB26_use_grx(FRAME_BUFFER_DEVICE); |
FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
return 0; |
} |
int device_drivers_close() { |
FB26_close(FRAME_BUFFER_DEVICE); |
KEYB26_close(); |
INPUT26_close(); |
return 0; |
} |
TASK shutdown_task_body(void *arg) { |
device_drivers_close(); |
sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
sys_end(); |
return NULL; |
} |
void set_shutdown_task() { |
NRT_TASK_MODEL nrt; |
nrt_task_default_model(nrt); |
shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
if (shutdown_task_PID == NIL) { |
sys_shutdown_message("Error: Cannot create shutdown task\n"); |
sys_end(); |
} |
} |
/*--------------------------------------------------------------*/ |
void draw_fly(int x, int y, int c) |
151,6 → 220,10 |
int i = 0; /* number of tasks created */ |
TIME seme; /* used to init the random seed */ |
set_shutdown_task(); |
device_drivers_init(); |
/* The scenario */ |
grx_rect(XMIN-D-1, YMIN-D-1, XMAX+D+1, YMAX+D+1, 14); |
grx_text("Simulation of Random Flies", XMIN, YMENU+10, 13, 0); |
176,7 → 249,7 |
pid = task_create("fly", fly, &m, NULL); |
if (pid == NIL) { |
sys_shutdown_message("Could not create task <fly>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
task_activate(pid); |
186,7 → 259,7 |
} while (c != ESC); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
/demos/trunk/base/initfile.c |
---|
20,12 → 20,6 |
#include "modules/sem.h" |
#include "modules/hartport.h" |
#include <drivers/shark_linuxc26.h> |
#include <drivers/shark_input26.h> |
#include <drivers/shark_keyb26.h> |
#define FRAME_BUFFER_DEVICE 0 |
/*+ sysyem tick in us +*/ |
#define TICK 0 |
37,8 → 31,6 |
#define INTDRIVE_T 10000 |
#define INTDRIVE_FLAG 0 |
PID shutdown_task_PID = 1; |
TIME __kernel_register_levels__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
54,66 → 46,6 |
return TICK; |
} |
int device_drivers_close() { |
KEYB26_close(); |
INPUT26_close(); |
return 0; |
} |
int device_drivers_init() { |
KEYB_PARMS kparms = BASE_KEYB; |
LINUXC26_register_module(); |
INPUT26_init(); |
keyb_def_ctrlC(kparms, NULL); |
KEYB26_init(&kparms); |
return 0; |
} |
TASK shutdown_task_body(void *arg) { |
device_drivers_close(); |
sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
sys_end(); |
return NULL; |
} |
void set_shutdown_task() { |
NRT_TASK_MODEL nrt; |
nrt_task_default_model(nrt); |
nrt_task_def_system(nrt); |
nrt_task_def_nokill(nrt); |
shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
if (shutdown_task_PID == NIL) { |
sys_shutdown_message("Error: Cannot create shutdown task\n"); |
sys_end(); |
} |
} |
void call_shutdown_task(void *arg) { |
task_activate(shutdown_task_PID); |
} |
TASK __init__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
120,12 → 52,6 |
HARTPORT_init(); |
set_shutdown_task(); |
device_drivers_init(); |
sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
__call_main__(mb); |
return (void *)0; |
/demos/trunk/base/ego.c |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: ego.c,v 1.5 2004-04-18 19:46:29 giacomo Exp $ |
CVS : $Id: ego.c,v 1.4 2004-04-17 11:36:13 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.5 $ |
Last update: $Date: 2004-04-18 19:46:29 $ |
Revision: $Revision: 1.4 $ |
Last update: $Date: 2004-04-17 11:36:13 $ |
------------ |
**/ |
51,8 → 51,14 |
#include <kernel/kern.h> |
#include <drivers/shark_linuxc26.h> |
#include <drivers/shark_pci26.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/shark_input26.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/shark_fb26.h> |
#define FRAME_BUFFER_DEVICE 0 |
#define X0 10 |
/* task periods */ |
68,8 → 74,74 |
"I am ego2 and I print a character every 200 ms", |
"I am ego3 and I print a character every 300 ms"}; |
PID shutdown_task_PID = -1; |
/***************************************************************/ |
int device_drivers_init() { |
KEYB_PARMS kparms = BASE_KEYB; |
LINUXC26_register_module(); |
PCI26_init(); |
keyb_def_ctrlC(kparms, NULL); |
INPUT26_init(); |
KEYB26_init(&kparms); |
FB26_init(); |
FB26_open(FRAME_BUFFER_DEVICE); |
FB26_use_grx(FRAME_BUFFER_DEVICE); |
FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
return 0; |
} |
int device_drivers_close() { |
FB26_close(FRAME_BUFFER_DEVICE); |
KEYB26_close(); |
INPUT26_close(); |
return 0; |
} |
TASK shutdown_task_body(void *arg) { |
device_drivers_close(); |
sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
sys_end(); |
return NULL; |
} |
void set_shutdown_task() { |
NRT_TASK_MODEL nrt; |
nrt_task_default_model(nrt); |
shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
if (shutdown_task_PID == NIL) { |
sys_shutdown_message("Error: Cannot create shutdown task\n"); |
sys_end(); |
} |
} |
TASK ego(void *arg) |
{ |
int i = (int)arg; |
107,7 → 179,7 |
*/ |
void my_end(KEY_EVT* e) |
{ |
sys_end(); |
task_activate(shutdown_task_PID); |
} |
/******************************************************************/ |
134,6 → 206,10 |
KEY_EVT emerg; |
HARD_TASK_MODEL m1, m2, m3; |
set_shutdown_task(); |
device_drivers_init(); |
/* set the keyboard handler to exit correctly */ |
emerg.ascii = 'x'; |
emerg.scan = KEY_X; |
155,7 → 231,7 |
pid1 = task_create("ego1", ego, &m1, NULL); |
if (pid1 == NIL) { |
sys_shutdown_message("Could not create task <ego1>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
169,7 → 245,7 |
pid2 = task_create("ego2", ego, &m2, NULL); |
if (pid2 == NIL) { |
sys_shutdown_message("Could not create task <ego2>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
183,7 → 259,7 |
pid3 = task_create("ego3", ego, &m3, NULL); |
if (pid3 == NIL) { |
sys_shutdown_message("Could not create task <ego3>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
/demos/trunk/base/aster.c |
---|
34,7 → 34,7 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* |
* |
* CVS : $Id: aster.c,v 1.4 2004-04-18 19:46:29 giacomo Exp $ |
* CVS : $Id: aster.c,v 1.3 2004-04-17 11:36:12 giacomo Exp $ |
Author: Gerardo Lamastra |
Giuseppe Lipari |
82,10 → 82,12 |
#include <modules/cabs.h> |
#include <string.h> |
#define __VPAGING__ |
#include <drivers/shark_linuxc26.h> |
#include <drivers/shark_input26.h> |
#include <drivers/shark_keyb26.h> |
//#define __VPAGING__ |
#include <drivers/crtwin.h> |
int num_aster = 0; |
93,7 → 95,61 |
CAB cc; |
BYTE esc = FALSE; |
PID shutdown_task_PID; |
int device_drivers_init() { |
KEYB_PARMS kparms = BASE_KEYB; |
LINUXC26_register_module(); |
keyb_def_ctrlC(kparms, NULL); |
INPUT26_init(); |
KEYB26_init(&kparms); |
return 0; |
} |
int device_drivers_close() { |
KEYB26_close(); |
INPUT26_close(); |
return 0; |
} |
TASK shutdown_task_body(void *arg) { |
device_drivers_close(); |
sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
sys_end(); |
return NULL; |
} |
void set_shutdown_task() { |
NRT_TASK_MODEL nrt; |
nrt_task_default_model(nrt); |
shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
if (shutdown_task_PID == NIL) { |
sys_shutdown_message("Error: Cannot create shutdown task\n"); |
sys_end(); |
} |
} |
TASK asteroide(void) |
{ |
int i = 1; |
296,6 → 352,10 |
struct timespec t; |
set_shutdown_task(); |
device_drivers_init(); |
#ifdef __VPAGING__ |
set_active_page(1); |
set_visual_page(1); |
323,7 → 383,7 |
p2 = task_create("Clock",clock,&m_per,NULL); |
if (p2 == -1) { |
sys_shutdown_message("Aster.C(main): Could not create task <Clock>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
331,7 → 391,7 |
p3 = task_create("Title",title,&m_soft, NULL); |
if (p3 == -1) { |
sys_shutdown_message("Aster.C(main): Could not create task <Title>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
339,7 → 399,7 |
p4 = task_create("Put",put,&m_soft, NULL); |
if (p4 == -1) { |
sys_shutdown_message("Aster.C(main): Could not create task <Put>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
348,7 → 408,7 |
p5 = task_create("Write",write_keyb,&m_nrt,NULL); |
if (p5 == -1) { |
sys_shutdown_message("Aster.C(main): Could not create task <Write>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
356,7 → 416,7 |
p6 = task_create("CabTask",ccc,&m_per,NULL); |
if (p6 == -1) { |
sys_shutdown_message("Aster.C(main): Could not create task <CabTask>\n"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
375,8 → 435,7 |
set_visual_page(0); |
#endif |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
} |
/demos/trunk/base/pcidemo.c |
---|
33,14 → 33,66 |
#include "kernel/kern.h" |
#include "unistd.h" |
#include "drivers/shark_linuxc26.h" |
#include "drivers/shark_pci26.h" |
PID shutdown_task_PID; |
int device_drivers_init() { |
LINUXC26_register_module(); |
PCI26_init(); |
return 0; |
} |
int device_drivers_close() { |
return 0; |
} |
TASK shutdown_task_body(void *arg) { |
device_drivers_close(); |
sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
sys_end(); |
return NULL; |
} |
void set_shutdown_task() { |
NRT_TASK_MODEL nrt; |
nrt_task_default_model(nrt); |
shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
if (shutdown_task_PID == NIL) { |
sys_shutdown_message("Error: Cannot create shutdown task\n"); |
sys_end(); |
} |
} |
int main (int argc, char *argv[]) |
{ |
set_shutdown_task(); |
device_drivers_init(); |
cprintf("Init Done...\n"); |
sleep(5); |
sys_end(); |
task_activate(shutdown_task_PID); |
return 0; |
/demos/trunk/base/ipcidemo.c |
---|
20,9 → 20,6 |
#include "modules/sem.h" |
#include "modules/hartport.h" |
#include "drivers/shark_linuxc26.h" |
#include "drivers/shark_pci26.h" |
/*+ sysyem tick in us +*/ |
#define TICK 0 |
34,8 → 31,6 |
#define INTDRIVE_T 10000 |
#define INTDRIVE_FLAG 0 |
PID shutdown_task_PID; |
TIME __kernel_register_levels__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
51,56 → 46,6 |
return TICK; |
} |
int device_drivers_init() { |
LINUXC26_register_module(); |
PCI26_init(); |
return 0; |
} |
int device_drivers_close() { |
return 0; |
} |
TASK shutdown_task_body(void *arg) { |
device_drivers_close(); |
sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
sys_end(); |
return NULL; |
} |
void call_shutdown_task(void *arg) { |
task_activate(shutdown_task_PID); |
} |
void set_shutdown_task() { |
NRT_TASK_MODEL nrt; |
nrt_task_default_model(nrt); |
nrt_task_def_system(nrt); |
nrt_task_def_nokill(nrt); |
shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
if (shutdown_task_PID == NIL) { |
sys_shutdown_message("Error: Cannot create shutdown task\n"); |
sys_end(); |
} |
} |
TASK __init__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
107,12 → 52,6 |
HARTPORT_init(); |
set_shutdown_task(); |
device_drivers_init(); |
sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
__call_main__(mb); |
return (void *)0; |
/demos/trunk/base/makefile |
---|
26,7 → 26,7 |
make -f $(SUBMAKE) APP=sig INIT= OTHEROBJS="ihello.o" OTHERINCL= SHARKOPT= |
preempt: |
make -f $(SUBMAKE) APP=preempt INIT= OTHEROBJS="initfile.o" OTHERINCL= SHARKOPT="__LINUXC26__ __INPUT__" |
make -f $(SUBMAKE) APP=preempt INIT= OTHEROBJS="initfile.o" OTHERINCL= SHARKOPT= |
semdemo: |
make -f $(SUBMAKE) APP=semdemo INIT= OTHEROBJS="isemdemo.o" OTHERINCL= SHARKOPT= |
85,11 → 85,11 |
# Graphical applications |
ego: |
make -f $(SUBMAKE) APP=ego INIT= OTHEROBJS="initgraph.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |
make -f $(SUBMAKE) APP=ego INIT= OTHEROBJS="initfile.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |
fly: |
make -f $(SUBMAKE) APP=fly INIT= OTHEROBJS="initgraph.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |
make -f $(SUBMAKE) APP=fly INIT= OTHEROBJS="initfile.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |
cabs: |
make -f $(SUBMAKE) APP=cabs INIT= OTHEROBJS="initgraph.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |
make -f $(SUBMAKE) APP=cabs INIT= OTHEROBJS="initfile.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |