#ifndef PORT_H #define PORT_H #include "stdint.h" typedef struct { uint16_t number; // port number, e.g. 0x3d4 VGA index register } port8_t; void port8_init( port8_t *port, uint16_t number ); void port8_write( port8_t *port, uint8_t data ); uint8_t port8_read( port8_t *port ); typedef struct { uint16_t number; } port16_t; void port16_init( port16_t *port, uint16_t number ); void port16_write( port16_t *port, uint16_t data ); uint16_t port16_read( port16_t *port ); typedef struct { uint16_t number; } port32_t; void port32_init( port32_t *port, uint16_t number ); void port32_write( port32_t *port, uint32_t data ); uint32_t port32_read( port32_t *port ); #endif // PORT_H