summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/gc/obj.h10
-rw-r--r--src/include/gc/server.h90
-rw-r--r--src/include/gc/syscall.h12
-rw-r--r--src/include/gm/call.h18
-rw-r--r--src/include/gm/call/manager.h14
-rw-r--r--src/include/gm/method.h27
-rw-r--r--src/include/gm/method/manager.h20
7 files changed, 2 insertions, 189 deletions
diff --git a/src/include/gc/obj.h b/src/include/gc/obj.h
deleted file mode 100644
index fcb60cd..0000000
--- a/src/include/gc/obj.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef DEF_OBJ_H
-#define DEF_OBJ_H
-
-// generic method error codes
-#define ME_UNHANDLED -32767
-#define ME_INTERRUPTED -32766
-
-typedef int Object;
-
-#endif
diff --git a/src/include/gc/server.h b/src/include/gc/server.h
deleted file mode 100644
index 3612a1d..0000000
--- a/src/include/gc/server.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef DEF_SERVER_H
-#define DEF_SERVER_H
-
-#include "syscall.h"
-#include "obj.h"
-
-//parameter/return values types
-#define PT_VOID 0
-#define PT_OBJDESC 1
-#define PT_LONG 2
-#define PT_LONGLONG 3 //for return values
-#define PT_SHM 3
-
-struct method_data {
- struct {
- union {
- int i;
- void* p;
- };
- int type;
- int keepShm; //for messages : keep shared memory segment after return or unmap ? (default : 0 = unmap)
- size_t shmsize;
- } parameters[3];
- uint32_t func;
- int pid;
- int blocking; //1 : blocking request, 0 : message
- struct object_srv *obj;
-};
-
-struct method_ret {
- union {
- int i;
- int64_t l;
- };
- int type;
- int status; //= error code if any
-};
-
-//helper function for creating return values
-struct method_ret mr_long(int val);
-struct method_ret mr_llong(int64_t val);
-struct method_ret mr_obj(Object obj);
-struct method_ret mr_srv(struct object_srv* obj);
-struct method_ret mr_void();
-struct method_ret mr_err(int error);
-
-// for checking if a string passed in shared memory is valid
-#define CHKSSTR(md, n) { size_t _i, _ok = 0; if (md->parameters[n].p == 0) return mr_err(-1); \
- for (_i = 0; _i < md->parameters[n].shmsize; _i++) { \
- if (*((char*)md->parameters[n].p + _i) == 0) { \
- _ok = 1; break; \
- } } \
- if (!_ok && md->parameters[n].shmsize != 0) return mr_err(-1); }
-
-typedef struct method_ret (*method_handler)(struct method_data*);
-
-struct method_srv {
- uint32_t id;
- method_handler h;
-
- struct method_srv *next;
-};
-
-struct object_srv {
- int id; //descriptor
- struct method_srv *methods;
-
- void *data;
-
- struct object_srv *next;
-};
-
-typedef struct object_srv Server;
-
-extern Server procServer; //corresponds to descriptor 0.
-
-//possible actions for srv_handle
-#define HA_ONCE 1 //check if requests are waiting, if so handle them
-#define HA_WAIT 2 //check if requests are waiting, if so handle them, else wait for one to come and handle it
-#define HA_LOOP 3 //wait for requests to come, handling them in an infinite loop
-
-void srv_handleAll(); //check all objects once
-void srv_handle(Server* o, int act);
-
-Server *srv_create();
-void srv_delete(Server *o);
-Server *srv_get(int descriptor);
-void srv_addHandler(Server* o, uint32_t method, method_handler h);
-
-#endif
diff --git a/src/include/gc/syscall.h b/src/include/gc/syscall.h
index e6005c1..a8928e3 100644
--- a/src/include/gc/syscall.h
+++ b/src/include/gc/syscall.h
@@ -35,17 +35,9 @@ void printk(char* str);
void thread_new(void (*entry)(void*), void *data);
void irq_wait(int number);
int proc_priv();
+
+int proc_setheap(size_t start, size_t end);
int shm_create(size_t offset, size_t length);
int shm_delete(size_t offset);
-int object_create();
-int object_owned(int descriptor);
-void object_close(int descriptor);
-int request_get(int descriptor, struct user_request *rq, int wait);
-int request_has(int descriptor);
-void request_answer(int descriptor, uint32_t answer1, uint32_t answer2, int errcode);
-int request_mapShm(int descriptor, size_t offset, int number);
-int request(int descriptor, struct user_sendrequest *rq);
-int send_msg(int descriptor, struct user_sendrequest *rq);
-int proc_setheap(size_t start, size_t end);
#endif
diff --git a/src/include/gm/call.h b/src/include/gm/call.h
deleted file mode 100644
index 5c3849d..0000000
--- a/src/include/gm/call.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef DEF_CALL_H
-#define DEF_CALL_H
-
-/*
- * This file and all files in include/call/ define prototypes to helper functions for calling methods on objects.
- */
-
-#include <gc/obj.h>
-
-#define _CHP Object o, int block
-#define _CHC if (block) request(o, &sr); else send_msg(o, &sr);
-
-int c_handleCheck(_CHP, int method);
-int c_handleCheckA(_CHP, int* methods, int number);
-
-int c_nothing(_CHP);
-
-#endif
diff --git a/src/include/gm/call/manager.h b/src/include/gm/call/manager.h
deleted file mode 100644
index 49aafe7..0000000
--- a/src/include/gm/call/manager.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef DEF_CALL_MANAGER_H
-#define DEF_CALL_MANAGER_H
-
-#include <gm/call.h>
-#include <gc/obj.h>
-
-Object c_open(_CHP, char *c);
-Object open(char *c); //calls c_open with object 1
-
-void c_registerSvc(char *name); //automatically calls with objecct id 0
-
-void c_logSvc(char *log, int level);
-
-#endif
diff --git a/src/include/gm/method.h b/src/include/gm/method.h
deleted file mode 100644
index 13d3f16..0000000
--- a/src/include/gm/method.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef DEF_METHOD_H
-#define DEF_METHOD_H
-
-#define MP(r, a, b, c) (((r << 6) | (a << 4) | (b << 2) | c) << 24)
-
-/* ****** FORMAT FOR #define NAMES : ******
- * M_<method_name>_<ret><param1><param2><param3>
- * where ret, param1, param2 and param3 are one of the following :
- * - V (0) : nothing (void)
- * - O (1) : object descriptor
- * - I (2) : int
- * - B (2) : int used as a boolean (0 = no, 1 = yes)
- * - M (3) : shared memory, only for parameters
- * - L (3) : int64 (long long), only for return values
- */
-
-#define M_HANDLECHECK_BIVV (1 | MP(2, 2, 0, 0))
-#define M_HANDLECHECK_BMIV (1 | MP(2, 3, 2, 0))
-/* Checks if object handles that method. In case BIVV, only one method is checked for.
- * In case BMIV, the [b] methods in shared memory [a] are checked, first one not found returns false. */
-
-#define M_NOTHING_VVVV (2)
-/* This method does nothing, it just checks message transmission to an object. */
-
-#include "method/manager.h"
-
-#endif
diff --git a/src/include/gm/method/manager.h b/src/include/gm/method/manager.h
deleted file mode 100644
index 2066093..0000000
--- a/src/include/gm/method/manager.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifdef DEF_METHOD_H
-
-#define M_OPEN_OMVV (10 | MP(1, 3, 0, 0))
-/* This function opens a distant ressource. Example : open("file:Root/Public/test.txt"); */
-
-#define M_REGISTERSVC_VMOV (11 | MP(0, 3, 1, 0))
-/* This function registers a service.
- * parameter 1 : service name;
- * parameter 2 : service root object. */
-
-#define M_LOGSVC_VMIV (12 | MP(0, 3, 2, 0))
-/* This parameters logs an entry for service with corresponding PID. Parameter 2 is : */
-#define LL_CRITICAL 0
-#define LL_ERROR 1
-#define LL_WARNING 2
-#define LL_NOTICE 3
-#define LL_STATUS 4
-#define LL_DEBUG 5
-
-#endif