extern int hwclock_main ( int argc, char **argv ) { int opt; enum OpMode mode = SHOW; int utc = 0; int utc_arg = 0; #ifdef CONFIG_FEATURE_HWCLOCK_LONGOPTIONS struct option long_options[] = { { "show", 0, 0, 'r' }, { "utc", 0, 0, 'u' }, { "localtime", 0, 0, 'l' }, { "hctosys", 0, 0, 's' }, { "systohc", 0, 0, 'w' }, { 0, 0, 0, 0 } }; while (( opt = getopt_long ( argc, argv, "rwsul", long_options, 0 )) != EOF ) { #else while (( opt = getopt ( argc, argv, "rwsul" )) != EOF ) { #endif switch ( opt ) { case 'r': mode = SHOW; break; case 'w': mode = SYSTOHC; break; case 's': mode = HCTOSYS; break; case 'u': utc = 1; utc_arg = 1; break; case 'l': // -l is not supported by the normal hwclock (only --localtime) utc = 0; utc_arg = 1; break; default: bb_show_usage(); break; } } if ( !utc_arg ) utc = check_utc ( ); switch ( mode ) { case SYSTOHC: return from_sys_clock ( utc ); case HCTOSYS: return to_sys_clock ( utc ); case SHOW: default: return show_clock ( utc ); } }
int hwclock_main(int argc UNUSED_PARAM, char **argv) { const char *rtcname = NULL; unsigned opt; int utc; #if ENABLE_FEATURE_HWCLOCK_LONG_OPTIONS static const char hwclock_longopts[] ALIGN1 = "localtime\0" No_argument "l" /* short opt is non-standard */ "utc\0" No_argument "u" "show\0" No_argument "r" "hctosys\0" No_argument "s" "systohc\0" No_argument "w" "systz\0" No_argument "t" /* short opt is non-standard */ "rtc\0" Required_argument "f" ; applet_long_options = hwclock_longopts; #endif opt_complementary = "r--wst:w--rst:s--wrt:t--rsw:l--u:u--l"; opt = getopt32(argv, "lurswtf:", &rtcname); /* If -u or -l wasn't given check if we are using utc */ if (opt & (HWCLOCK_OPT_UTC | HWCLOCK_OPT_LOCALTIME)) utc = (opt & HWCLOCK_OPT_UTC); else utc = rtc_adjtime_is_utc(); if (opt & HWCLOCK_OPT_HCTOSYS) to_sys_clock(&rtcname, utc); else if (opt & HWCLOCK_OPT_SYSTOHC) from_sys_clock(&rtcname, utc); else if (opt & HWCLOCK_OPT_SYSTZ) set_system_clock_timezone(utc); else /* default HWCLOCK_OPT_SHOW */ show_clock(&rtcname, utc); return 0; }
int hwclock_main(int argc, char **argv ) { unsigned opt; int utc; #if ENABLE_FEATURE_HWCLOCK_LONG_OPTIONS static const struct option hwclock_long_options[] = { { "localtime", 0, 0, 'l' }, { "utc", 0, 0, 'u' }, { "show", 0, 0, 'r' }, { "hctosys", 0, 0, 's' }, { "systohc", 0, 0, 'w' }, { "file", 1, 0, 'f' }, { 0, 0, 0, 0 } }; applet_long_options = hwclock_long_options; #endif opt_complementary = "?:r--ws:w--rs:s--wr:l--u:u--l"; opt = getopt32(argc, argv, "lurswf:", &rtcname); /* If -u or -l wasn't given check if we are using utc */ if (opt & (HWCLOCK_OPT_UTC | HWCLOCK_OPT_LOCALTIME)) utc = opt & HWCLOCK_OPT_UTC; else utc = check_utc(); if (opt & HWCLOCK_OPT_HCTOSYS) { return to_sys_clock(utc); } else if (opt & HWCLOCK_OPT_SYSTOHC) { return from_sys_clock(utc); } else { /* default HWCLOCK_OPT_SHOW */ return show_clock(utc); } }