Pip
Architecture-dependent parts of Pip: MAL, IAL and boot
Data Structures | Typedefs | Enumerations | Functions
ial.h File Reference

Interrupt Abstraction Layer common interface. More...

#include <stdint.h>
#include <x86int.h>

Go to the source code of this file.

Data Structures

struct  partition_id
 Partition-to-PartitionID structure. More...
 
struct  hardware_def
 Platform-specific hardware memory range definition. More...
 

Typedefs

typedef enum user_ctx_role_e user_ctx_role_t
 
typedef struct partition_id pip_pid
 

Enumerations

enum  user_ctx_role_e {
  INT_CTX = 0, ISR_CTX = 1, NOTIF_CHILD_CTX = 2, NOTIF_PARENT_CTX = 3,
  INVALID_CTX = 4
}
 

Functions

void initInterrupts ()
 Interface for interrupt initialization. More...
 
void panic ()
 Interface for kernel panic. More...
 
void enableInterrupts ()
 Interface for interrupt activation. More...
 
void disableInterrupts ()
 Interface for interrupt desactivation. More...
 
void dispatch2 (uint32_t partition, uint32_t vint, uint32_t data1, uint32_t data2, uint32_t caller)
 Dispatch & switch to given partition. More...
 
void resume (uint32_t descriptor, uint32_t pipflags)
 Resume interrupted partition. More...
 
void dispatchGlue (uint32_t descriptor, uint32_t vint, uint32_t notify, uint32_t data1, uint32_t data2, gate_ctx_t *ctx)
 
void yieldGlue (uint32_t calleePartDescVAddr, uint32_t userTargetInterrupt, uint32_t userCallerContextSaveIndex, uint32_t flagsOnWake, uint32_t flagsOnYield, gate_ctx_t *ctx)
 

Detailed Description

Interrupt Abstraction Layer common interface.

Typedef Documentation

◆ pip_pid

typedef struct partition_id pip_pid

◆ user_ctx_role_t

Enumeration Type Documentation

◆ user_ctx_role_e

Enumerator
INT_CTX 
ISR_CTX 
NOTIF_CHILD_CTX 
NOTIF_PARENT_CTX 
INVALID_CTX 

Function Documentation

◆ disableInterrupts()

void disableInterrupts ( )

Interface for interrupt desactivation.

◆ dispatch2()

void dispatch2 ( uint32_t  partition,
uint32_t  vint,
uint32_t  data1,
uint32_t  data2,
uint32_t  caller 
)

Dispatch & switch to given partition.

◆ dispatchGlue()

void dispatchGlue ( uint32_t  descriptor,
uint32_t  vint,
uint32_t  notify,
uint32_t  data1,
uint32_t  data2,
gate_ctx_t ctx 
)

◆ enableInterrupts()

void enableInterrupts ( )

Interface for interrupt activation.

◆ initInterrupts()

void initInterrupts ( )

Interface for interrupt initialization.

◆ panic()

void panic ( )

Interface for kernel panic.

◆ resume()

void resume ( uint32_t  descriptor,
uint32_t  pipflags 
)

Resume interrupted partition.

◆ yieldGlue()

void yieldGlue ( uint32_t  calleePartDescVAddr,
uint32_t  userTargetInterrupt,
uint32_t  userCallerContextSaveIndex,
uint32_t  flagsOnWake,
uint32_t  flagsOnYield,
gate_ctx_t ctx 
)