summaryrefslogtreecommitdiff
path: root/package/fusion/fusion.h
diff options
context:
space:
mode:
Diffstat (limited to 'package/fusion/fusion.h')
-rw-r--r--package/fusion/fusion.h277
1 files changed, 0 insertions, 277 deletions
diff --git a/package/fusion/fusion.h b/package/fusion/fusion.h
deleted file mode 100644
index d9139fc6d..000000000
--- a/package/fusion/fusion.h
+++ /dev/null
@@ -1,277 +0,0 @@
-#ifndef __LINUX__FUSION_H__
-#define __LINUX__FUSION_H__
-
-#include <asm/ioctl.h>
-
-/*
- * Fusion Kernel Device API Version
- */
-#define FUSION_API_MAJOR 3 /* Increased if backward compatibility is dropped. */
-#define FUSION_API_MINOR 2 /* Increased if new features are added. */
-
-/*
- * The Fusion ID is a unique identifier for one process consisting of threads.
- */
-typedef unsigned long FusionID;
-
-#define FUSION_ID_MASTER 1 /* This is the fusion id of the master (first process). */
-
-/*
- * Entering a world
- */
-typedef struct {
- struct {
- int major; /* Must be set to FUSION_API_MAJOR before entering. */
- int minor; /* Must be set to FUSION_API_MINOR before entering. */
- } api;
-
- FusionID fusion_id; /* Returns the fusion id of the entering process. */
-} FusionEnter;
-
-/*
- * Forking in world
- */
-typedef struct {
- FusionID fusion_id; /* Returns the fusion id of the new (forked) fusionee. */
-} FusionFork;
-
-/*
- * Sending a message
- */
-typedef struct {
- FusionID fusion_id; /* recipient */
-
- int msg_id; /* optional message identifier */
- int msg_size; /* message size, must be greater than zero */
- const void *msg_data; /* message data, must not be NULL */
-} FusionSendMessage;
-
-/*
- * Receiving a message
- */
-typedef enum {
- FMT_SEND, /* msg_id is an optional custom id */
- FMT_CALL, /* msg_id is the call id */
- FMT_REACTOR, /* msg_id is the reactor id */
- FMT_SHMPOOL /* msg_id is the pool id */
-} FusionMessageType;
-
-typedef struct {
- FusionMessageType msg_type; /* type (origin) of message */
-
- int msg_id; /* message id (custom id or call/reactor/pool id) */
- int msg_size; /* size of the following message data */
-
- /* message data follows */
-} FusionReadMessage;
-
-/*
- * Dispatching a message via a reactor
- */
-typedef struct {
- int reactor_id;
- int self;
-
- int msg_size; /* message size, must be greater than zero */
- const void *msg_data; /* message data, must not be NULL */
-} FusionReactorDispatch;
-
-/*
- * Calling (synchronous RPC)
- */
-typedef struct {
- int call_id; /* new call id returned */
-
- void *handler; /* function pointer of handler to install */
- void *ctx; /* optional handler context */
-} FusionCallNew;
-
-typedef enum {
- FCEF_NONE = 0x00000000,
- FCEF_ONEWAY = 0x00000001,
- FCEF_ALL = 0x00000001
-} FusionCallExecFlags;
-
-typedef struct {
- int ret_val; /* return value of the call */
-
- int call_id; /* id of the requested call, each call has a fixed owner */
-
- int call_arg; /* optional int argument */
- void *call_ptr; /* optional pointer argument (shared memory) */
-
- FusionCallExecFlags flags; /* execution flags */
-} FusionCallExecute;
-
-typedef struct {
- int call_id; /* id of currently executing call */
-
- int val; /* value to return */
-} FusionCallReturn;
-
-typedef struct {
- void *handler; /* function pointer of handler to call */
- void *ctx; /* optional handler context */
-
- int caller; /* fusion id of the caller or zero if called from Fusion */
- int call_arg; /* optional call parameter */
- void *call_ptr; /* optional call parameter */
-} FusionCallMessage;
-
-/*
- * Watching a reference
- *
- * This information is needed to have a specific call being executed if the
- * reference count reaches zero. Currently one watch per reference is allowed.
- *
- * The call is made by Fusion and therefor has a caller id of zero.
- *
- */
-typedef struct {
- int id; /* id of the reference to watch */
-
- int call_id; /* id of the call to execute */
- int call_arg; /* optional call parameter, e.g. the id of a user
- space resource associated with that reference */
-} FusionRefWatch;
-
-/*
- * Inheriting local count from other reference
- */
-typedef struct {
- int id; /* own reference id */
- int from; /* id of the reference to inherit from */
-} FusionRefInherit;
-
-/*
- * Killing other fusionees (experimental)
- */
-typedef struct {
- FusionID fusion_id; /* fusionee to kill, zero means all but ourself */
- int signal; /* signal to be delivered, e.g. SIGTERM */
- int timeout_ms; /* -1 means no timeout, 0 means infinite, otherwise the
- max. time to wait until the fusionee(s) terminated */
-} FusionKill;
-
-
-/*
- * Shared memory pools
- */
-typedef struct {
- int max_size; /* Maximum size that this pool will be allowed to grow to. */
-
- int pool_id; /* Returns the new pool id. */
- void *addr_base; /* Returns the base of the reserved virtual memory address space. */
-} FusionSHMPoolNew;
-
-typedef struct {
- int pool_id; /* The id of the pool to attach to. */
-
- void *addr_base; /* Returns the base of the reserved virtual memory address space. */
- int size; /* Returns the current size of the pool. */
-} FusionSHMPoolAttach;
-
-typedef struct {
- int pool_id; /* The id of the pool to notify. */
-
- int size; /* New size of the pool. */
-} FusionSHMPoolDispatch;
-
-typedef enum {
- FSMT_REMAP, /* Remap the pool due to a change of its size. */
- FSMT_UNMAP /* Unmap the pool due to its destruction. */
-} FusionSHMPoolMessageType;
-
-typedef struct {
- FusionSHMPoolMessageType type; /* Type of the message. */
-
- int size; /* New size of the pool, if type is FSMT_REMAP. */
-} FusionSHMPoolMessage;
-
-
-/*
- * Fusion types
- */
-typedef enum {
- FT_LOUNGE,
- FT_MESSAGING,
- FT_CALL,
- FT_REF,
- FT_SKIRMISH,
- FT_PROPERTY,
- FT_REACTOR,
- FT_SHMPOOL
-} FusionType;
-
-
-/*
- * Set attributes like 'name' for an entry of the specified type.
- */
-#define FUSION_ENTRY_INFO_NAME_LENGTH 24
-
-typedef struct {
- FusionType type;
- int id;
-
- char name[FUSION_ENTRY_INFO_NAME_LENGTH];
-} FusionEntryInfo;
-
-
-
-#define FUSION_ENTER _IOR(FT_LOUNGE, 0x00, FusionEnter)
-#define FUSION_UNBLOCK _IO (FT_LOUNGE, 0x01)
-#define FUSION_KILL _IOW(FT_LOUNGE, 0x02, FusionKill)
-
-#define FUSION_ENTRY_SET_INFO _IOW(FT_LOUNGE, 0x03, FusionEntryInfo)
-#define FUSION_ENTRY_GET_INFO _IOW(FT_LOUNGE, 0x04, FusionEntryInfo)
-
-#define FUSION_FORK _IOW(FT_LOUNGE, 0x05, FusionFork)
-
-#define FUSION_SEND_MESSAGE _IOW(FT_MESSAGING, 0x00, FusionSendMessage)
-
-#define FUSION_CALL_NEW _IOW(FT_CALL, 0x00, FusionCallNew)
-#define FUSION_CALL_EXECUTE _IOW(FT_CALL, 0x01, FusionCallExecute)
-#define FUSION_CALL_RETURN _IOW(FT_CALL, 0x02, FusionCallReturn)
-#define FUSION_CALL_DESTROY _IOW(FT_CALL, 0x03, int)
-
-#define FUSION_REF_NEW _IOW(FT_REF, 0x00, int)
-#define FUSION_REF_UP _IOW(FT_REF, 0x01, int)
-#define FUSION_REF_UP_GLOBAL _IOW(FT_REF, 0x02, int)
-#define FUSION_REF_DOWN _IOW(FT_REF, 0x03, int)
-#define FUSION_REF_DOWN_GLOBAL _IOW(FT_REF, 0x04, int)
-#define FUSION_REF_ZERO_LOCK _IOW(FT_REF, 0x05, int)
-#define FUSION_REF_ZERO_TRYLOCK _IOW(FT_REF, 0x06, int)
-#define FUSION_REF_UNLOCK _IOW(FT_REF, 0x07, int)
-#define FUSION_REF_STAT _IOW(FT_REF, 0x08, int)
-#define FUSION_REF_WATCH _IOW(FT_REF, 0x09, FusionRefWatch)
-#define FUSION_REF_INHERIT _IOW(FT_REF, 0x0A, FusionRefInherit)
-#define FUSION_REF_DESTROY _IOW(FT_REF, 0x0B, int)
-
-#define FUSION_SKIRMISH_NEW _IOW(FT_SKIRMISH, 0x00, int)
-#define FUSION_SKIRMISH_PREVAIL _IOW(FT_SKIRMISH, 0x01, int)
-#define FUSION_SKIRMISH_SWOOP _IOW(FT_SKIRMISH, 0x02, int)
-#define FUSION_SKIRMISH_DISMISS _IOW(FT_SKIRMISH, 0x03, int)
-#define FUSION_SKIRMISH_DESTROY _IOW(FT_SKIRMISH, 0x04, int)
-#define FUSION_SKIRMISH_LOCK_COUNT _IOW(FT_SKIRMISH, 0x05, int)
-
-#define FUSION_PROPERTY_NEW _IOW(FT_PROPERTY, 0x00, int)
-#define FUSION_PROPERTY_LEASE _IOW(FT_PROPERTY, 0x01, int)
-#define FUSION_PROPERTY_PURCHASE _IOW(FT_PROPERTY, 0x02, int)
-#define FUSION_PROPERTY_CEDE _IOW(FT_PROPERTY, 0x03, int)
-#define FUSION_PROPERTY_HOLDUP _IOW(FT_PROPERTY, 0x04, int)
-#define FUSION_PROPERTY_DESTROY _IOW(FT_PROPERTY, 0x05, int)
-
-#define FUSION_REACTOR_NEW _IOW(FT_REACTOR, 0x00, int)
-#define FUSION_REACTOR_ATTACH _IOW(FT_REACTOR, 0x01, int)
-#define FUSION_REACTOR_DETACH _IOW(FT_REACTOR, 0x02, int)
-#define FUSION_REACTOR_DISPATCH _IOW(FT_REACTOR, 0x03, FusionReactorDispatch)
-#define FUSION_REACTOR_DESTROY _IOW(FT_REACTOR, 0x04, int)
-
-#define FUSION_SHMPOOL_NEW _IOW(FT_SHMPOOL, 0x00, FusionSHMPoolNew)
-#define FUSION_SHMPOOL_ATTACH _IOW(FT_SHMPOOL, 0x01, FusionSHMPoolAttach)
-#define FUSION_SHMPOOL_DETACH _IOW(FT_SHMPOOL, 0x02, int)
-#define FUSION_SHMPOOL_DISPATCH _IOW(FT_SHMPOOL, 0x03, FusionSHMPoolDispatch)
-#define FUSION_SHMPOOL_DESTROY _IOW(FT_SHMPOOL, 0x04, int)
-
-#endif
-