typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;


struct iter {
	uint32_t i;
};

struct point {
	uint32_t i, j;
};

static void outb(uint8_t value, uint16_t port)
{
        __builtin_outb(value, port);
}


static struct point mkpoint(void)
{
	struct point p;
	p.i = 1000;
	p.j = 2000;
	return p;
}

static void main(void)
{
	struct iter iter;
	for(iter.i = 0; iter.i < 32; iter.i++) {
		outb(iter.i, 0x80);
	}
	struct point p;
	p = mkpoint();
	outb(p.i, 0x80);
	outb(p.j, 0x80);
}