/* * This file and its contents are supplied under the terms of the * Common Development and Distribution License ("CDDL"), version 1.0. * You may only use this file in accordance with the terms of version * 1.0 of the CDDL. * * A full copy of the text of the CDDL should have accompanied this * source. A copy of the CDDL is also available via the Internet at * http://www.illumos.org/license/CDDL. */ /* * Copyright 2013 (c) Joyent, Inc. All rights reserved. */ /* * This test takes data from the current binary which is basically running in a * loop between two functions and our goal is to have two unique types that they * contain which we can print. */ #include <unistd.h> typedef struct zelda_info { const char *zi_gamename; int zi_ndungeons; const char *zi_villain; int zi_haszelda; } zelda_info_t; static int has_princess(zelda_info_t *z) { return (z->zi_haszelda); } static int has_dungeons(zelda_info_t *z) { return (z->zi_ndungeons != 0); } static const char * has_villain(zelda_info_t *z) { return (z->zi_villain); } int main(void) { zelda_info_t oot; zelda_info_t la; zelda_info_t lttp; oot.zi_gamename = "Ocarina of Time"; oot.zi_ndungeons = 10; oot.zi_villain = "Ganondorf"; oot.zi_haszelda = 1; la.zi_gamename = "Link's Awakening"; la.zi_ndungeons = 9; la.zi_villain = "Nightmare"; la.zi_haszelda = 0; lttp.zi_gamename = "A Link to the Past"; lttp.zi_ndungeons = 12; lttp.zi_villain = "Ganon"; lttp.zi_haszelda = 1; for (;;) { (void) has_princess(&oot); (void) has_dungeons(&la); (void) has_villain(<tp); sleep(1); } return (0); } |