www.pudn.com > LFYOS.zip > process.h
#ifndef OS_PROCESS_STRUCT
#define OS_PROCESS_STRUCT
struct thread_physical_block {
int stack_memory_id,stack_block_id;
int memory_id,block_id;
};
#define RESET_PHYSICAL_BLOCK(b,v) \
{ \
(b).stack_memory_id=(v); \
(b).stack_block_id=(v); \
(b).memory_id=(v); \
(b).block_id=(v); \
}
#define COPY_THREAD_PHYSICAL_BLOCK(s,d) \
{ \
(d).stack_memory_id =(s).stack_memory_id; \
(d).stack_block_id =(s).stack_block_id; \
(d).memory_id =(s).memory_id; \
(d).block_id =(s).block_id; \
}
#define COMPARE_THREAD_PHYSICAL_BLOCK(s,d) \
( \
((d).stack_memory_id ==(s).stack_memory_id) \
&&((d).stack_block_id ==(s).stack_block_id) \
&&((d).memory_id ==(s).memory_id) \
&&((d).block_id ==(s).block_id) \
)
struct network_address{
int a;
};
#define COPY_NETWORK_ADDRESS(s,d) {(d).a=(s).a;}
struct file{
struct{
struct network_address network_node;
int server_processor,server_process,file_handler;
}file;
struct{
int processor,process;
}proxy;
int memory_process,open_window_id;
int window_base_1,window_base_2,window_length,right;
struct capability capability;
int read_in_flag,swap_out_flag;
};
#define COPY_FILE(s,d) \
{ \
COPY_NETWORK_ADDRESS(((s).file.network_node), \
((d).file.network_node)); \
(d).file.server_processor=(s).file.server_processor; \
(d).file.server_process =(s).file.server_process; \
(d).file.file_handler =(s).file.file_handler; \
(d).proxy.processor =(s).proxy.processor; \
(d).proxy.process =(s).proxy.process; \
(d).memory_process =(s).memory_process; \
(d).open_window_id =(s).open_window_id; \
(d).window_base_1 =(s).window_base_1; \
(d).window_base_2 =(s).window_base_2; \
(d).window_length =(s).window_length; \
(d).right =(s).right; \
COPY_CAPABILITY((s).capability,(d).capability); \
(d).read_in_flag =(s).read_in_flag; \
(d).swap_out_flag =(s).swap_out_flag; \
}
union file_system_operation_parameter{
struct {
int begin_rw,end_rw;
}read_write;
};
#define COPY_OPERATION_PARAMETER(s,d) \
{ \
char *ps=(char *)&(s),*pd=(char *)&(d); \
int i,length; \
length=sizeof(union file_system_operation_parameter); \
for(i=0;i