summaryrefslogtreecommitdiff
path: root/cesar/maximus/processors/inc/Processor.h
diff options
context:
space:
mode:
Diffstat (limited to 'cesar/maximus/processors/inc/Processor.h')
-rw-r--r--cesar/maximus/processors/inc/Processor.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/cesar/maximus/processors/inc/Processor.h b/cesar/maximus/processors/inc/Processor.h
new file mode 100644
index 0000000000..e1a650ab56
--- /dev/null
+++ b/cesar/maximus/processors/inc/Processor.h
@@ -0,0 +1,52 @@
+#ifndef maximus_processors_inc_processor_h
+#define maximus_processors_inc_processor_h
+/* Maximus project {{{
+ *
+ * Copyright (C) 2012 MStar Semiconductor
+ *
+ * <<<Licence>>>
+ *
+ * }}} */
+/**
+ * \file maximus/processors/inc/Processor.h
+ * \ingroup maximus_processors
+ *
+ */
+#include "maximus/common/types.h"
+#include "maximus/processors/processors.h"
+#include "maximus/scheduler/scheduler.h"
+#include "maximus/interface/maximus.h"
+#include "maximus/sci/sci_msg.h"
+
+class Processor
+{
+private:
+ Sci_Msg_Type processor_type;
+
+protected:
+
+ SciServer &sci_server;
+ MaximusCallBack &maximus_cb;
+ Scheduler *p_scheduler;
+
+public:
+
+ Processor (SciServer &ref1,
+ MaximusCallBack &ref2,
+ Sci_Msg_Type type);
+
+ virtual ~Processor ();
+
+ virtual SciMsg* create_sci_msg (
+ struct Sci_Msg_Header &header,
+ unsigned char *buffer) = 0;
+
+ virtual void dispatchMsgProc (SciMsg *msg_rx) = 0;
+
+ inline void register_scheduler (Scheduler *p)
+ {
+ p_scheduler = p;
+ }
+};
+
+#endif /* maximus_processors_inc_processor_h */