#ifndef _KERNEL_PROC_MAIL_H #define _KERNEL_PROC_MAIL_H #include #include struct proc; struct proc_resource; struct cpu; struct proc_mail { struct proc_resource* resource; struct proc_suspension_q send_sq; struct proc_suspension_q recv_sq; void* pending_mesg; size_t pending_mesg_size; }; bool proc_cleanup_resource_mail (struct proc_resource* resource, struct cpu** reschedule_cpu); bool proc_mail_send (struct proc* proc, struct proc_mail* mail, struct cpu** reschedule_cpu, void* data, size_t data_size); bool proc_mail_receive (struct proc* proc, struct proc_mail* mail, struct cpu** reschedule_cpu, void* recv_buffer, size_t recv_size); #endif // _KERNEL_PROC_MAIL_H