int main(void) { int selection = 0; Node *pList = NULL; Contact *newPerson = NULL; newPerson = make_contact(); user_menu(&selection); pList = make_node(newPerson); return 0; }
int main (void) { // Print welcome message printf("Welcome to the MOTION EQUATION CALCULATOR\n\n"); // Variable for the user choice menu. int user_choice; do { user_choice = user_menu(); // print menu, validate choice is between 1 and 5 // You will pass the address of this variable to your equation functions. float result; // Variable to hold calculated result // Handle menu choice selected by user switch( user_choice ) { case 1: equation1(&result); break; case 2: equation2(&result); break; case 3: equation3(&result); break; case 4: equation4(&result); break; case 5: // exit program if user selected QUIT printf("Thank you for using the MOTION EQUATION CALCULATOR. Goodbye.\n"); return 0; break; } // Print out the calculated result with four digits after the decimal place printf("Your result is %.4f.\n\n", result); } while ( user_choice != 5 ); return 0; // exit with no error }
extern "C" int main(stage2_args *args) { TRACE(("boot(): enter\n")); if (heap_init(args) < B_OK) panic("Could not initialize heap!\n"); TRACE(("boot(): heap initialized...\n")); // set debug syslog default #if KDEBUG_ENABLE_DEBUG_SYSLOG gKernelArgs.keep_debug_output_buffer = true; #endif add_stage2_driver_settings(args); platform_init_video(); // the main platform dependent initialisation // has already taken place at this point. if (vfs_init(args) < B_OK) panic("Could not initialize VFS!\n"); dprintf("Welcome to the Haiku boot loader!\n"); bool mountedAllVolumes = false; Directory *volume = get_boot_file_system(args); if (volume == NULL || (platform_boot_options() & BOOT_OPTION_MENU) != 0) { if (volume == NULL) puts("\tno boot path found, scan for all partitions...\n"); if (mount_file_systems(args) < B_OK) { // That's unfortunate, but we still give the user the possibility // to insert a CD-ROM or just rescan the available devices puts("Could not locate any supported boot devices!\n"); } // ToDo: check if there is only one bootable volume! mountedAllVolumes = true; if (user_menu(&volume) < B_OK) { // user requested to quit the loader goto out; } } if (volume != NULL) { // we got a volume to boot from! status_t status; while ((status = load_kernel(args, volume)) < B_OK) { // loading the kernel failed, so let the user choose another // volume to boot from until it works volume = NULL; if (!mountedAllVolumes) { // mount all other file systems, if not already happened if (mount_file_systems(args) < B_OK) panic("Could not locate any supported boot devices!\n"); mountedAllVolumes = true; } if (user_menu(&volume) < B_OK || volume == NULL) { // user requested to quit the loader goto out; } } // if everything is okay, continue booting; the kernel // is already loaded at this point and we definitely // know our boot volume, too if (status == B_OK) { register_boot_file_system(volume); if ((platform_boot_options() & BOOT_OPTION_DEBUG_OUTPUT) == 0) platform_switch_to_logo(); load_modules(args, volume); load_driver_settings(args, volume); // apply boot settings apply_boot_settings(); // set up kernel args version info gKernelArgs.kernel_args_size = sizeof(kernel_args); gKernelArgs.version = CURRENT_KERNEL_ARGS_VERSION; // clone the boot_volume KMessage into kernel accessible memory // note, that we need to 4 byte align the buffer and thus allocate // 3 more bytes void* buffer = kernel_args_malloc(gBootVolume.ContentSize() + 3); if (!buffer) { panic("Could not allocate memory for the boot volume kernel " "arguments"); } buffer = (void*)(((addr_t)buffer + 3) & ~(addr_t)0x3); memcpy(buffer, gBootVolume.Buffer(), gBootVolume.ContentSize()); gKernelArgs.boot_volume = buffer; gKernelArgs.boot_volume_size = gBootVolume.ContentSize(); // ToDo: cleanup, heap_release() etc. platform_start_kernel(); } } out: heap_release(args); return 0; }