LF OS
Hobby operating system for amd64 with high ambitions
Loading...
Searching...
No Matches
message_passing.h File Reference

(7c4d7d1 userspace/term: change eyecandy inclusion to use objcopy instead of xxd)

#include <stdint.h>
#include <stdbool.h>
#include <uuid.h>
#include <sys/types.h>
+ Include dependency graph for message_passing.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Message
 
union  Message::UserData
 
struct  Message::UserData::IOUserData
 
struct  Message::UserData::SignalUserData
 
struct  Message::UserData::HardwareInterruptUserData
 
struct  Message::UserData::ServiceDiscoveryData
 
union  UserData
 
struct  UserData::IOUserData
 
struct  UserData::SignalUserData
 
struct  UserData::HardwareInterruptUserData
 
struct  UserData::ServiceDiscoveryData
 

Enumerations

enum  MessageType {
  MT_Invalid , MT_IO , MT_Signal , MT_HardwareInterrupt ,
  MT_ServiceDiscovery , MT_UserDefined = 1024
}
 

Functions

struct Message __attribute__ ((packed))
 

Variables

size_t size
 Size of the message, including metadata.
 
size_t user_size
 Size of the user data.
 
pid_t sender
 Sender of the message.
 
enum MessageType type
 Type of the message.
 
union UserData user_data
 

Data Structure Documentation

◆ Message

struct Message

Definition at line 33 of file message_passing.h.

+ Collaboration diagram for Message:
Data Fields
pid_t sender Sender of the message.
size_t size Size of the message, including metadata.
enum MessageType type Type of the message.
union UserData user_data
size_t user_size Size of the user data.

◆ Message::UserData

union Message::UserData

Definition at line 46 of file message_passing.h.

+ Collaboration diagram for Message::UserData:
Data Fields
struct HardwareInterruptUserData HardwareInterrupt
struct IOUserData IO
char raw[0]
struct ServiceDiscoveryData ServiceDiscovery
struct SignalUserData Signal

◆ Message::UserData::IOUserData

struct Message::UserData::IOUserData

Definition at line 47 of file message_passing.h.

+ Collaboration diagram for Message::UserData::IOUserData:
Data Fields
char data[0] $user_size - sizeof(IO) bytes of data
int fd File descriptor this data is for.

◆ Message::UserData::SignalUserData

struct Message::UserData::SignalUserData

Definition at line 55 of file message_passing.h.

+ Collaboration diagram for Message::UserData::SignalUserData:
Data Fields
uint16_t signal Signal identifier.

◆ Message::UserData::HardwareInterruptUserData

struct Message::UserData::HardwareInterruptUserData

Definition at line 60 of file message_passing.h.

+ Collaboration diagram for Message::UserData::HardwareInterruptUserData:
Data Fields
uint16_t interrupt

◆ Message::UserData::ServiceDiscoveryData

struct Message::UserData::ServiceDiscoveryData

Definition at line 64 of file message_passing.h.

+ Collaboration diagram for Message::UserData::ServiceDiscoveryData:
Data Fields
char discoveryData[0]
uint64_t mq
bool response
uuid_t serviceIdentifier

◆ UserData

union UserData

Definition at line 12 of file message_passing.h.

+ Collaboration diagram for UserData:
Data Fields
struct HardwareInterruptUserData HardwareInterrupt
struct IOUserData IO
char raw[0]
struct ServiceDiscoveryData ServiceDiscovery
struct SignalUserData Signal

◆ UserData::IOUserData

struct UserData::IOUserData

Definition at line 13 of file message_passing.h.

+ Collaboration diagram for UserData::IOUserData:
Data Fields
char data[0] $user_size - sizeof(IO) bytes of data
int fd File descriptor this data is for.

◆ UserData::SignalUserData

struct UserData::SignalUserData

Definition at line 21 of file message_passing.h.

+ Collaboration diagram for UserData::SignalUserData:
Data Fields
uint16_t signal Signal identifier.

◆ UserData::HardwareInterruptUserData

struct UserData::HardwareInterruptUserData

Definition at line 26 of file message_passing.h.

+ Collaboration diagram for UserData::HardwareInterruptUserData:
Data Fields
uint16_t interrupt

◆ UserData::ServiceDiscoveryData

struct UserData::ServiceDiscoveryData

Definition at line 30 of file message_passing.h.

+ Collaboration diagram for UserData::ServiceDiscoveryData:
Data Fields
char discoveryData[0]
uint64_t mq
bool response
uuid_t serviceIdentifier

Enumeration Type Documentation

◆ MessageType

Enumerator
MT_Invalid 

Invalid message, only size is valid.

MT_IO 
MT_Signal 
MT_HardwareInterrupt 
MT_ServiceDiscovery 
MT_UserDefined 

Definition at line 21 of file message_passing.h.

Function Documentation

◆ __attribute__()

struct Message __attribute__ ( (packed)  )

Definition at line 28 of file hpet.c.

Variable Documentation

◆ sender

pid_t sender

Sender of the message.

Definition at line 7 of file message_passing.h.

◆ size

size_t size

Size of the message, including metadata.

Definition at line 1 of file message_passing.h.

◆ type

uint32_t type

Type of the message.

Definition at line 10 of file message_passing.h.

◆ user_data

union UserData user_data

◆ user_size

size_t user_size

Size of the user data.

Definition at line 4 of file message_passing.h.