|
BaseChannel:
All Channels are BaseChannels and must implement the
Channel structure as the first element of its
structure and call it
struct Channel
|
|
{
|
|
struct Linkable
|
node; |
int
|
channel_flags; |
struct ChannelLinkInfo
|
*link_info; |
int
|
type; |
int
|
io_flags; |
struct
Linkable
|
nexus[16]; |
__int32
|
pid; |
Uint64
|
atomic_id;
|
Uint64
|
ipv6[2]; // |
struct
Signal
|
ch_signal; |
char
|
name[64];
|
struct
RunInfo
|
run_info; |
struct
Signal
|
ch_signal;
|
struct HyperLinkedList
|
system_list; |
struct HyperLinkedList
|
join_list; |
struct HyperLinkedList
|
process_list; |
struct HyperLinkedList
|
exception_list;
|
struct
NetXecThread
|
system_thread; |
struct NetXecThread |
join_thread;
|
struct NetXecThread |
process_thread;
|
struct NetXecThread |
exception_thread;
|
SDL_mutex
|
mutex; |
SDL_cond
|
wait_mask; |
SDL_mutex
|
*io_lock;
|
SDL_SpinLock
signal lock.
__int32 (*paint)(struct Graphics2D *); |
*atomic_lock;
//non blocking |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ei:
struct MyNewChannel
{
struct BaseChannel base;
};
System Channels:
These are channels that "tend" to be singletons.
#define
SYSTEM_CHANNEL_MASK
0x00000001 // NetXecChannel
#define
DEVICE_CHANNEL_MASK
0x00000002
#define
MEMORY_CHANNEL_MASK
0x00000004
#define
THREAD_CHANNEL_MASK
0x00000008
#define
SIGNAL_CHANNEL_MASK
0x00000010
#define
MEDIA_CHANNEL_MASK
0x00000020
#define
CLOCK_CHANNEL_MASK
0x00000040 //clock->clock_register
#define
CONTAINER_CHANNEL_MASK
0x00000080 // IO goes to HyperView->asynch
blitter list.
#define
URL_CHANNEL_MASK
0x00000100 // URI fetcher.
#define
SERVER_CHANNEL_MASK
0x00000200
#define
PROCESS_CHANNEL_MASK
0x00000400 // random processing
#define STATE_MACHINE_CHANNEL_MASK 0x00000800
#define
CLI_CHANNEL_MASK
0x00001000
#define
COMPILER_CHANNEL_MASK
0x00002000
#define
DEBUG_CHANNEL_MASK
0x00004000
#define
NIMOSINI_CHANNEL_MASK
0x00008000 // AI Channel
Composite Channel:
Is a collection of Standard Channels.
All implementations are Composite Channels.
Example;
struct MyCompositeChannel
{
struct BaseChannel base;
struct STDIOChanne stdio;
struct MemoryChannel memory;
struct ThreadChannel threads;
struct ContainerChannel graphics;
struct ServerChannel network;
struct URLChannel fetcher;
};
SubChannels are Channels that extend other channrels
// *** System SubChannel
#define
STDIN_CHANNEL
0x00000000 //-
#define
STDOUT_CHANNEL
0x00000001 //-
#define
STDERR_CHANNEL
0x00000002 //-
//*** Device SubChannel 0
#define
GPU_CHANNEL
0x00000001 // GPU IO/clock memory
#define
USB_CHANNEL
0x00000002 //
//*** MemoryChannel SubChannel
#define
HEAP_CHANNEL
0x00000001
#define
STACK_CHANNEL
0x00000002
#define
SHARED_MEMORY_CHANNEL
0x00000004
#define
BACKING_STORE_CHANNEL
0x00000008
#define
CLOUD_CHANNEL
0x00000010
#define
REGISTRY_CHANNEL
0x00000020
#define
DEVICE_MEMORY_CHANNEL
0x00000040
//*** Thread SubChannel
//...This
space for rent
//*** Signal SubChannel
//----
//*** Media SubChannel
#define
AUDIO_CHANNEL
0x00000001
#define
IMAGE_CHANNEL
0x00000002
#define
VIDEO_CHANNEL
0x00000004 // ContainerChannel derived.
#define
VLC_CHANNEL
0x00000008 // VLC derived
#define
TELEVISION_CHANNEL
0x00000010
//*** Clock SubChannel
//*** Container SubChannel
//*** URLChannel SubChannel
#define
FTP_CHANNEL
0x00000001
#define
TELNET_CHANNEL
0x00000002
#define
GOPHER_CHANNEL
0x00000004
#define
FILE_CHANNEL
0x00000008
#define
CHAT_CHANNEL
0x00000010
//*** Server SubChannel
#define
PORT_SERVER_CHANNEL
0x00000020
#define
FTP_SERVER_CHANNEL
0x00000040
#define
HTML_SERVER_CHANNEL
0x00000080
#define
SQL_SERVER_CHANNEL
0x00000100
#define
BML_SERVER_CHANNEL
0x00000200
#define
BQL_SERVER_CHANNEL
0x00000400
#define
BLOCKC_SERVER_CHANNEL
0x00000800
#define
DEBUG_SERVER_CHANNEL
0x00001000
//*** NIMOSINI AI SubChannel
#define NEURAL_CHANNEL0 0x00000000 // Neural net
interface.
#define NEURAL_CHANNEL1 0x00000001 // Neural net
interface.
#define NEURAL_CHANNEL2 0x00000002 // Neural net
interface.
#define NEURAL_CHANNEL3 0x00000003 // Neural net
interface.
#define NEURAL_CHANNEL4 0x00000004 // Neural net
interface.
#define NEURAL_CHANNEL5 0x00000005 // Neural net
interface.
#define NEURAL_CHANNEL6 0x00000006 // Neural net
interface.
#define NEURAL_CHANNEL7 0x00000007 // Neural net
interface.
#define JULIA_CHANNEL8 0x00000008
#define ANTLR_CHANNEL0 x000000009
//*** ProtocolChannel SubChannel
#define
GPS_CHANNEL
0x00000000
#define
GPRS_CHANNEL
0x00000001 // General packet radio
serves,
#define
BML_CHANNEL
0x00000002
#define
BQL_CHANNEL
0x00000003
#define
HTML_CHANNEL
0x00000004
#define EMSCRYPTEN_CHANNEL 0x00000005
#define
SQL_CHANNEL
0x00000006
//*** Process SubChannel
#define ENCRYPTION_CHANNEL 0x00000000
#define STATISTICS_CHANNEL 0x00000001 //
#define TRANSFORM_CHANNEL 0x00000002 //
#define ARBITRATION_CHANNEL 0x00000003 //
#define
SMC_CHANNEL
0x00000003 // self modified code.
// *** Compiler
SubChannel
#define x64_ASSEMBLER_CCHANNEL 0x00000000
#define ARM8_ASSEMBER_CCHANNEL 0x00000001
#define C_CCHANNEL
0x00000002
#define FORTRAN_CCHANNEL
0x00000003
#define JAVA_CCHANNEL
0x00000004
#define EMSCRIPTEN_CCHANNEL
0x00000005
#define JAVA_SCRIPT_CCHANNEL
0x00000006
|
|