diff options
author | Alexis211 <alexis211@gmail.com> | 2010-09-10 19:35:31 +0200 |
---|---|---|
committer | Alexis211 <alexis211@gmail.com> | 2010-09-10 19:35:31 +0200 |
commit | a8da6dba7ddc5e3d31a1914597e7b38fbc2d197c (patch) | |
tree | fbef80d474e5b9c891e0eb353cfa602acf67fdae /src/include/gc/server.h | |
parent | aba6ed4b91aff5d914be11704e34de75bfd4d003 (diff) | |
download | TCE-a8da6dba7ddc5e3d31a1914597e7b38fbc2d197c.tar.gz TCE-a8da6dba7ddc5e3d31a1914597e7b38fbc2d197c.zip |
Removed all old object/request/... stuff (that was crap)
Diffstat (limited to 'src/include/gc/server.h')
-rw-r--r-- | src/include/gc/server.h | 90 |
1 files changed, 0 insertions, 90 deletions
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 |