void test_move_card_should_not_change_stack_empty_stack_coordinates() { struct stack *origin, *destination; struct card *card[2]; card_malloc(&card[0]); card_malloc(&card[1]); card_init(card[0]); card_init(card[1]); card_set(card[0], ACE, SPADES, EXPOSED, MANEUVRE_BEGIN_Y, MANEUVRE_0_BEGIN_X); card_set(card[1], KING, HEARTS, EXPOSED, MANEUVRE_BEGIN_Y, MANEUVRE_1_BEGIN_X); stack_malloc(&origin); stack_malloc(&destination); stack_init(origin); stack_init(destination); stack_push(&origin, card[0]); stack_push(&destination, card[1]); move_card(&origin, &destination); assert(origin->card->frame->begin_y == MANEUVRE_BEGIN_Y); assert(origin->card->frame->begin_x == MANEUVRE_0_BEGIN_X); stack_free(origin); stack_free(destination); }
void *video_hw_init (void) { GraphicDevice *pGD = (GraphicDevice *)&mb862xx; printf ("Video: Fujitsu "); memset (pGD, 0, sizeof (GraphicDevice)); #if defined(CONFIG_VIDEO_CORALP) if (card_init () == 0) { return (NULL); } #else /* Preliminary init of the onboard graphic controller, retrieve base address */ if ((pGD->frameAdrs = board_video_init ()) == 0) { printf ("Controller not found!\n"); return (NULL); } else printf("Lime\n"); #endif de_init (); #if !defined(CONFIG_VIDEO_CORALP) board_disp_init(); #endif #if defined(CONFIG_LWMON5) && !(CONFIG_POST & CFG_POST_SYSMON) /* Lamp on */ board_backlight_switch (1); #endif return pGD; }
void test_move_card_from_non_stack_empty_stack_to_non_stack_empty_stack() { struct stack *origin, *destination; struct card *card[6]; for (int i = 0; i < 6; i++) { card_malloc(&card[i]); card_init(card[i]); card_set(card[i], TWO + i, i % 5, i % 2, 99, 99); } stack_malloc(&origin); stack_malloc(&destination); stack_init(origin); stack_init(destination); for (int i = 0; i < 3; i++) { stack_push(&origin, card[i]); } for (int i = 3; i < 6; i++) { stack_push(&destination, card[i]); } move_card(&origin, &destination); assert(stack_length(origin) == 2); assert(stack_length(destination) == 4); assert(cards_equal(destination->card, card[2])); assert(cards_equal(destination->next->card, card[5])); stack_free(origin); stack_free(destination); }
void test_move_card_from_stack_empty_stack_to_non_stack_empty_stack() { struct stack *origin, *destination, *new_origin, *new_destination, *origin_duplicate, *destination_duplicate; struct card *card; card_malloc(&card); card_init(card); card_set(card, ACE, SPADES, EXPOSED, 0, 0); stack_malloc(&origin); stack_malloc(&destination); stack_init(origin); stack_init(destination); new_origin = origin; new_destination = destination; stack_push(&new_destination, card); origin_duplicate = stack_dup(origin); destination_duplicate = stack_dup(destination); move_card(&new_origin, &new_destination); assert(origin == new_origin); assert(stacks_equal(origin, origin_duplicate)); assert(destination == new_destination); assert(stacks_equal(destination, destination_duplicate)); stack_free(origin); stack_free(destination); }
//fill up the deck with cards that have value (suits and ranks) void deck_fill(Deck * aDeckPtr){ int rank; int suit; int card=FIRSTCARD; for(rank=2;rank<15;rank++){ for(suit=1;suit<5;suit++){ card_init(cards[card],suit,rank); card += 1; } } }
/* input: a dealer pointer, a shoe pointer * output: none * return: none * comments: resets the dealer */ void dealer_reset(dealer * foo, shoe * bar) { card tmp; card_init(&tmp); while (!hand_empty(&foo->one)) { tmp = hand_deq(&foo->one); take_card(bar, tmp); } foo->value = 0; hand_init(&foo->one); }
/** * initialize - Performs all initialization procedures * * Returns a CHARLIE_STAT_* constant that indicates the succes or * failure of the initialization. */ static uint8_t initialize(void) { charlie.shutdown = FALSE; init_atmega(); init_ports(); debug_init_ports(); rs232_init(); spi_init_master(); i2c_init(); if (rtc_init()) { return CHARLIE_STAT_RTC_ERROR; } time_init(); time_sync_to_realtime(); sched_init(); if (card_init()) { return CHARLIE_STAT_CARD_ERROR; } if (fsys_init()) { return CHARLIE_STAT_FSYS_ERROR; } if (fsys_check_read_only()) { return CHARLIE_STAT_FSYS_READONLY; } cfg_load(); if (enc28j60_init(&cfg.mac_addr)) { return CHARLIE_STAT_NET_ERROR; } net_init(); adc_init(); sensors_init(); pump_init(); plants_init(); sei(); return CHARLIE_STAT_OK; }
void *video_hw_init (void) { GraphicDevice *dev = &mb862xx; puts ("Video: Fujitsu "); memset (dev, 0, sizeof (GraphicDevice)); #if defined(CONFIG_VIDEO_CORALP) if (card_init () == 0) return NULL; #else /* * Preliminary init of the onboard graphic controller, * retrieve base address */ if ((dev->frameAdrs = board_video_init ()) == 0) { puts ("Controller not found!\n"); return NULL; } else { puts ("Lime\n"); /* Set Change of Clock Frequency Register */ HOST_WR_REG (GC_CCF, CONFIG_SYS_MB862xx_CCF); /* Delay required */ udelay(300); /* Set Memory I/F Mode Register) */ HOST_WR_REG (GC_MMR, CONFIG_SYS_MB862xx_MMR); } #endif de_init (); #if !defined(CONFIG_VIDEO_CORALP) board_disp_init (); #endif #if (defined(CONFIG_LWMON5) || \ defined(CONFIG_SOCRATES)) && !(CONFIG_POST & CONFIG_SYS_POST_SYSMON) /* Lamp on */ board_backlight_switch (1); #endif return dev; }
int main() { int r; card_t* card; reader_list* readerList = (reader_list*)malloc(sizeof(reader_list)); r = pcsc_detect_readers(readerList); if( !r==SC_SUCCESS) { printf("pcsc_detect_readers: %s\n",sc_strerror(r)); return -1; } connect_card(readerList->root->reader, &card); card_init(card); csVerifyAdminPIN(card, (unsigned char*)"12345678", 8); csGenerateAndImportKeyPair(card, 2048); return 0; }
/* input: a dealer pointer, a shoe pointer * output: various dealer info * return: an int with the first cards value * comments: starts the dealer and shows the first card */ int dealer_start(dealer * foo, shoe * bar) { int i; int rval = 0; card tmp; for (i = 0; i < 2; ++i) { card_init(&tmp); tmp = deal_card(bar); hand_enq(&foo->one, tmp); ++foo->cnt; foo->value += card_value(&tmp); if (i == 0) { fdprintf(OUT, "Dealer shows : "); card_print(&tmp); rval = card_value(&tmp); fdprintf(OUT, "\n"); } } return rval; }
/* -------------------------------------------------------------------------- * * Client Initialisation * * -------------------------------------------------------------------------- */ void client_init(void) { int i; SDL_RWops *rwops; const sgVersion *sgver; const SDL_version *sdlver; client_log(STATUS, "Starte "PACKAGE" v"VERSION"..."); /* GUI Library initialisieren */ sgver = sgLinkedVersion(); client_log(STATUS, "Initialisiere sgUI v%u.%u.%u", sgver->major, sgver->minor, sgver->patch); sgInit(); /* Such-Pfade adden... Alle Dateien des Tichu-Clients werden über die libsgui geöffnet Auf windows starten wir immer aus dem Programm-Verzeichnis, wir müssen also nur unsere Unterverzeichnisse kennen: */ sgAddFilePath("data"); sgAddFilePath("sounds"); sgAddFilePath("images"); /* Auf *NIXes wird immer an einen festen Pfad installiert: */ #ifdef DATADIR sgAddFilePath(DATADIR "/data"); sgAddFilePath(DATADIR "/sounds"); sgAddFilePath(DATADIR "/images"); #endif /* Vielleicht sollten wir die folgenden Pfade nur für debug-builds absuchen (#ifdef DEBUG) */ sgAddFilePath("client/data"); sgAddFilePath("client/sounds"); sgAddFilePath("client/images"); sgAddFilePath("tichu/client/data"); sgAddFilePath("tichu/client/sounds"); sgAddFilePath("tichu/client/images"); sgAddFilePath("../data"); sgAddFilePath("../sounds"); sgAddFilePath("../images"); client_path = sgGetFilePath(); /* cursors themes laden */ sgOpenCursorThemes(); /* Konfigurationsdatei öffnen */ client_ini = ini_open(CLIENT_INI, INI_READ); #ifdef DEBUG ini_dump(client_ini); #endif /* DEBUG */ if(!client_ini) client_log(ERROR, "Fehler beim Öffnen der Konfigurationsdatei %s!", CLIENT_INI); /* SDL Initialisation */ sdlver = SDL_Linked_Version(); client_log(STATUS, "Initialisiere SDL v%u.%u.%u", sdlver->major, sdlver->minor, sdlver->patch); if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_NOPARACHUTE)) client_log(ERROR, "Kann SDL nicht initialisieren!"); client_subsystems = SDL_WasInit(SDL_INIT_EVERYTHING); client_getmodes(); client_configure(); #if MDEBUG_ENABLE mdebug_init(); #endif /* MDEBUG_ENABLE */ /* Netzwerk initialisieren */ net_init(); /* Module welche auf SDL basieren initialisieren */ sound_init(); // card_init("data/cards.ini", "data/cards-alpha.png"); /* net read/error funktionen */ net_register(NET_READ, client_event); net_register(NET_ERROR, client_event); #ifdef WIN32 /* Im Windows-Taskbar sieht ein 32x32 Icon am besten aus */ client_load_icon("dragon-32.png"); #else /* Unter Fluxbox und XFCE macht sich ein 16x16 Icon am Besten :P * * Oooops, unter der neuen Fluxbox mit all dem Antialias Gewixe * aber nicht, dort wäre auch ein 32x32 angebracht. * * Aber wie finden wir raus welchen WM wir runnen auf X11? * Naja, vorerst einmal scheissegal :P */ client_load_icon("dragon-16.png"); #endif /* WIN32 */ /* Window-Manager Titel setzen */ SDL_WM_SetCaption("Tichu SDL Client v"VERSION, NULL); /* Fonts laden und der GUI übergeben */ for(i = 0; i < 3; i++) { rwops = client_open_rwops(client_config.font[i], CLIENT_READ); client_font[i] = sgLoadFontRWops(rwops); } /* Einen Puffer für die Kommandozeile und Chatkonsole reservieren */ client_buffer = strdup(client_ascii); if(sound_status & SOUND_AVAIL) { sound_configure(client_ini); /* Soundeffekte laden */ ui_loadsounds(); /* Soundtracks laden */ sound_mus_scan(); if(sound_playlist.head) sound_mus_play((struct sound_mus *)sound_playlist.head); } /* Kartendaten laden */ card_configure(client_ini); card_init(); /* Fächerkonfiguration laden */ fan_configure(client_ini); }
int main2() { // Seed RNG // Generate Key Pair ERR_load_crypto_strings(); char error[400]; int modulus_length = 2048; // bits unsigned long e = 65537; const char* e_hex = "100001"; RSA *rsa = NULL; rsa = RSA_generate_key(modulus_length, e, NULL /*keygen_progress*/, NULL); if (rsa == NULL) { ERR_error_string(ERR_get_error(), error); printf("Failed to generate RSA key pair.OpenSSL error:\n %s\n", error); return -1; } unsigned char *n_hex = (unsigned char*)calloc(1, 2*2048/8); unsigned char *d_hex = (unsigned char*)calloc(1, 2*2048/8); unsigned char *p_hex = (unsigned char*)calloc(1, 2*2048/8); unsigned char *q_hex = (unsigned char*)calloc(1, 2*2048/8); if (!( n_hex = (unsigned char*) BN_bn2hex((const BIGNUM*)rsa->n) )) { printf("Modulo parsing error\n"); return -1; } if (!( d_hex = (unsigned char*) BN_bn2hex((const BIGNUM*)rsa->d) )) { printf("Private exponent parsing error\n"); return -1; } if (!( p_hex = (unsigned char*) BN_bn2hex((const BIGNUM*)rsa->q) )) { printf("Private exponent parsing error\n"); return -1; } if (!( q_hex = (unsigned char*) BN_bn2hex((const BIGNUM*)rsa->p) )) { printf("Private exponent parsing error\n"); return -1; } printf("Public modulus:\n\t%s\n", n_hex); printf("Private exponent:\n\t%s\n", d_hex); printf("Prime p:\n\t%s\n", p_hex); printf("Prime q:\n\t%s\n", q_hex); // Import Key Pair sc_cardctl_openpgp_keystore_info_t key_info; key_info.keytype = SC_OPENPGP_KEY_ENCR; key_info.keyformat = SC_OPENPGP_KEYFORMAT_STD; /* n */ unsigned char* n_bin = (unsigned char*)calloc(1, modulus_length/8); key_info.n_len = BN_bn2bin(rsa->n, n_bin); key_info.n = n_bin; /* e */ key_info.e = (u8*)calloc(1, 4); hex_to_bin(e_hex, key_info.e, &(key_info.e_len)); /* p */ unsigned char* p_bin = (unsigned char*)calloc(1, strlen((const char*)p_hex)/2); key_info.p_len = BN_bn2bin(rsa->p, p_bin); key_info.p = p_bin; /* q */ unsigned char* q_bin = (unsigned char*)calloc(1, strlen((const char*)q_hex)/2); key_info.q_len = BN_bn2bin(rsa->q, q_bin); key_info.q = q_bin; printf("Lengths: n = %lu\ne= %lu\np = %lu\nq = %lu\n",key_info.n_len, key_info.e_len, key_info.p_len, key_info.q_len); // List readers int r; card_t* card; reader_list* readerList = (reader_list*)malloc(sizeof(reader_list)); r = pcsc_detect_readers(readerList); if( !r==SC_SUCCESS) { printf("pcsc_detect_readers: %s\n",sc_strerror(r)); return -1; } connect_card(readerList->root->reader, &card); card_init(card); csVerifyAdminPIN(card, (unsigned char*)"12345678", 8); if( (r = pgp_store_key(card, &key_info)) != 0) printf("pgp_store_key error: %d\n",r); // Cleanups free(rsa); free(n_bin); free(n_hex); free(d_hex); return 0; }
int main() { struct deck my_deck; struct card my_card,card_result; int res,i; #define CHECK_DECK_OP() \ if ( res != DECK_OK ) {\ deck_get_op_result(res);\ deck_print_cards_cnt(&my_deck);\ } //10 cards at first res = deck_init(&my_deck,10); CHECK_DECK_OP(); //look in empty deck printf("look in empty deck test\n"); res =deck_look(&my_deck,&my_card); CHECK_DECK_OP(); card_print(&my_card); printf("look in empty deck test end\n"); printf("draw from empty deck test\n"); res = deck_draw(&my_deck,&my_card); CHECK_DECK_OP(); card_print(&my_card); printf("draw from empty deck test end\n"); printf("push in deck test\n"); card_init(&my_card,"test",1,1,1); res =deck_push(&my_deck,&my_card); CHECK_DECK_OP(); res =deck_look(&my_deck,&card_result); CHECK_DECK_OP(); card_print(&card_result); printf("push in deck test end\n"); printf("push five cards and draw 5 cards test\n"); for( i =0; i < 5; i ++ ){ card_init(&my_card,"test",i,i,i); res = deck_push(&my_deck,&my_card); CHECK_DECK_OP(); } printf("get last 10 cards from deck\n"); for ( i =0; i < 10; i++ ){ res = deck_draw(&my_deck,&card_result); CHECK_DECK_OP(); card_print(&card_result); } printf("push five cards and draw 10 cards test end\n"); printf("reallocation test\n"); printf("old size [%d]\n",deck_get_size(&my_deck)); for ( i =0; i < 15; i++ ){ card_init(&my_card,"test",i,i,i); res = deck_push(&my_deck,&my_card); CHECK_DECK_OP(); } printf("new size [%d]\n",deck_get_size(&my_deck)); printf("reallocation test end\n"); printf("Deck deinit\n"); deck_deinit(&my_deck); return 0; }