diff --git a/user/app1/appl.cc b/user/app1/appl.cc new file mode 100644 index 0000000..1f65807 --- /dev/null +++ b/user/app1/appl.cc @@ -0,0 +1,24 @@ +// vim: set noet ts=4 sw=4: + +#include "../libsys/stub.h" + +extern "C" void main() { + // Thread 1 may be an auxiliary thread + + //sys_test(1,2,3,4,5); + + unsigned id = sys_getpid(); + char text[] = "testX"; + text[4] = 0x30+id; + + for (unsigned i = 1;; ++i) { + write(1, text, sizeof(text)); + if(i==id){ + //write(2, "kill", 4); + //write(2, &text[4], 1); + //write(2, " ", 1); + sys_exit(); + } + sleep(1000); + } +} diff --git a/user/app1/appl.h b/user/app1/appl.h new file mode 100644 index 0000000..bc0bb75 --- /dev/null +++ b/user/app1/appl.h @@ -0,0 +1,32 @@ +// vim: set noet ts=4 sw=4: + +/*! \file + * \brief Enthält die Klasse Application + */ + +#pragma once +#include "../libsys/types.h" +#include "../libsys/thread.h" + +//! \brief Test application +//! +//! \note Any class derived from Thread defines an application for StuBS. +//! +class Application : public Thread { + // Prevent copies and assignments + Application(const Application&) = delete; + Application& operator=(const Application&) = delete; + + public: + Application(Application&&) = delete; + + /*! \brief Constructor + * + */ + Application() {} + + /*! \brief Contains the application code. + * + */ + void action() override; +}; diff --git a/user/app1/build/app b/user/app1/build/app new file mode 100755 index 0000000..7415358 Binary files /dev/null and b/user/app1/build/app differ diff --git a/user/app1/build/app.img b/user/app1/build/app.img new file mode 100755 index 0000000..b0b6bf9 Binary files /dev/null and b/user/app1/build/app.img differ diff --git a/user/app1/build/appl.d b/user/app1/build/appl.d new file mode 100644 index 0000000..1041d02 --- /dev/null +++ b/user/app1/build/appl.d @@ -0,0 +1,2 @@ +build/appl.o: appl.cc ../../libsys/../libsys/stub.h \ + ../../libsys/../libsys/types.h diff --git a/user/app1/build/appl.o b/user/app1/build/appl.o new file mode 100644 index 0000000..9211d4d Binary files /dev/null and b/user/app1/build/appl.o differ diff --git a/user/app2/build/app b/user/app2/build/app new file mode 100755 index 0000000..60aca0f Binary files /dev/null and b/user/app2/build/app differ diff --git a/user/app2/build/app.img b/user/app2/build/app.img new file mode 100755 index 0000000..11bfae1 Binary files /dev/null and b/user/app2/build/app.img differ diff --git a/user/app2/build/kappl.d b/user/app2/build/kappl.d new file mode 100644 index 0000000..257ab31 --- /dev/null +++ b/user/app2/build/kappl.d @@ -0,0 +1,2 @@ +build/kappl.o: kappl.cc ../../libsys/../libsys/stub.h \ + ../../libsys/../libsys/types.h ../../libsys/../libsys/string.h diff --git a/user/app2/build/kappl.o b/user/app2/build/kappl.o new file mode 100644 index 0000000..821e363 Binary files /dev/null and b/user/app2/build/kappl.o differ diff --git a/user/app2/kappl.cc b/user/app2/kappl.cc new file mode 100644 index 0000000..ed6e396 --- /dev/null +++ b/user/app2/kappl.cc @@ -0,0 +1,37 @@ +// vim: set noet ts=4 sw=4: + +#include "../libsys/stub.h" +#include "../libsys/string.h" + +//#include "../libsys/string.h" + +extern "C" void main() { + char cmd_buff[100]; + uint8_t bufferpos = 0; + while(1){ + char msg[11]; + int len; + len = read(0, msg, 1); + if(len){ + write(0, msg, len); + memcpy(&cmd_buff[bufferpos], msg, len); + bufferpos+=len; + for(uint8_t i=0; i