Changeset db71e2a in mainline for uspace/app
- Timestamp:
- 2013-07-24T17:42:25Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 69b264a9
- Parents:
- 52f1882 (diff), cffa14e6 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- uspace/app
- Files:
-
- 7 added
- 4 deleted
- 48 edited
-
bdsh/Makefile (modified) (2 diffs)
-
bdsh/cmds/builtins/batch/batch.c (modified) (6 diffs)
-
bdsh/cmds/modules/bdd/bdd.c (deleted)
-
bdsh/cmds/modules/bdd/bdd.h (deleted)
-
bdsh/cmds/modules/bdd/bdd_def.h (deleted)
-
bdsh/cmds/modules/bdd/entry.h (deleted)
-
bdsh/cmds/modules/cat/cat.c (modified) (7 diffs)
-
bdsh/cmds/modules/cmp/cmp.c (modified) (1 diff)
-
bdsh/cmds/modules/cp/cp.c (modified) (1 diff)
-
bdsh/cmds/modules/help/help.c (modified) (3 diffs)
-
bdsh/cmds/modules/ls/ls.c (modified) (1 diff)
-
bdsh/cmds/modules/modules.h (modified) (2 diffs)
-
bdsh/cmds/modules/pwd/pwd.c (modified) (1 diff)
-
bdsh/cmds/modules/rm/rm.c (modified) (2 diffs)
-
bdsh/cmds/modules/sleep/sleep.c (modified) (2 diffs)
-
bdsh/exec.c (modified) (1 diff)
-
binutils/intrusive.sh (modified) (2 diffs)
-
binutils/toolchain.sh (modified) (1 diff)
-
blkdump/blkdump.c (modified) (9 diffs)
-
bnchmark/bnchmark.c (modified) (1 diff)
-
dnscfg/Makefile (added)
-
dnscfg/dnscfg.c (added)
-
dnsres/Makefile (added)
-
dnsres/dnsres.c (added)
-
edit/edit.c (modified) (10 diffs)
-
edit/search_impl.h (modified) (2 diffs)
-
edit/sheet_impl.h (modified) (2 diffs)
-
inet/inet.c (modified) (14 diffs)
-
init/init.c (modified) (2 diffs)
-
mkbd/main.c (modified) (2 diffs)
-
mkmfs/mkmfs.c (modified) (1 diff)
-
msim/arch_helenos/input.c (modified) (1 diff)
-
netecho/netecho.c (modified) (8 diffs)
-
nettest1/nettest.c (modified) (8 diffs)
-
nettest1/nettest.h (modified) (1 diff)
-
nettest1/nettest1.c (modified) (27 diffs)
-
nettest2/nettest2.c (modified) (27 diffs)
-
nettest3/nettest3.c (modified) (6 diffs)
-
nterm/conn.c (modified) (4 diffs)
-
nterm/nterm.c (modified) (2 diffs)
-
pcc/config.h (modified) (1 diff)
-
ping/ping.c (modified) (14 diffs)
-
ping6/Makefile (added)
-
ping6/ping6.c (added)
-
taskdump/symtab.c (modified) (1 diff)
-
tester/ipc/starve.c (modified) (1 diff)
-
tetris/scores.c (modified) (3 diffs)
-
tetris/screen.c (modified) (3 diffs)
-
top/screen.c (modified) (2 diffs)
-
trace/ipc_desc.c (modified) (1 diff)
-
trace/ipc_desc.h (modified) (1 diff)
-
trace/ipcp.c (modified) (2 diffs)
-
trace/syscalls.c (modified) (2 diffs)
-
trace/syscalls.h (modified) (2 diffs)
-
trace/trace.c (modified) (6 diffs)
-
vdemo/vdemo.c (modified) (1 diff)
-
vlaunch/Makefile (modified) (1 diff)
-
vlaunch/gfx/helenos.tga (added)
-
vlaunch/vlaunch.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/bdsh/Makefile
r52f1882 rdb71e2a 29 29 30 30 USPACE_PREFIX = ../.. 31 LIBS = $(LIBBLOCK_PREFIX)/libblock.a $(LIBCLUI_PREFIX)/libclui.a \ 32 $(LIBFMTUTIL_PREFIX)/libfmtutil.a 33 EXTRA_CFLAGS = -I$(LIBBLOCK_PREFIX) -I$(LIBCLUI_PREFIX) \ 34 -I$(LIBFMTUTIL_PREFIX) -I. -Icmds/ -Icmds/builtins -Icmds/modules 31 LIBS = $(LIBCLUI_PREFIX)/libclui.a $(LIBFMTUTIL_PREFIX)/libfmtutil.a 32 EXTRA_CFLAGS = -I$(LIBCLUI_PREFIX) -I$(LIBFMTUTIL_PREFIX) \ 33 -I. -Icmds/ -Icmds/builtins -Icmds/modules 35 34 BINARY = bdsh 36 35 … … 40 39 cmds/modules/mkfile/mkfile.c \ 41 40 cmds/modules/rm/rm.c \ 42 cmds/modules/bdd/bdd.c \43 41 cmds/modules/cat/cat.c \ 44 42 cmds/modules/touch/touch.c \ -
uspace/app/bdsh/cmds/builtins/batch/batch.c
r52f1882 rdb71e2a 29 29 #include <stdio.h> 30 30 #include <stdlib.h> 31 #include <stdbool.h> 32 #include <errno.h> 31 33 #include "config.h" 32 34 #include "util.h" … … 44 46 if (level == HELP_SHORT) { 45 47 printf( 46 "\n batch [filename] \n"48 "\n batch [filename] [-c]\n" 47 49 " Issues commands stored in the file.\n" 48 50 " Each command must correspond to the single line in the file.\n\n"); … … 54 56 " separate groups of commands. There is no support for comments,\n" 55 57 " variables, recursion or other programming constructs - the `batch'\n" 56 " command is indeed very trivial.\n\n"); 58 " command is indeed very trivial.\n" 59 " If the filename is followed by -c, execution continues even if some\n" 60 " of the commands failed.\n\n"); 57 61 } 58 62 … … 65 69 { 66 70 unsigned int argc; 71 bool continue_despite_errors = false; 67 72 68 73 /* Count the arguments */ … … 72 77 printf("%s - no input file provided.\n", cmdname); 73 78 return CMD_FAILURE; 79 } 80 81 if (argc > 2) { 82 if (str_cmp(argv[2], "-c") == 0) 83 continue_despite_errors = true; 74 84 } 75 85 … … 99 109 rc = process_input(&fusr); 100 110 /* fusr->line was freed by process_input() */ 111 if ((rc != EOK) && continue_despite_errors) { 112 /* Mute the error. */ 113 rc = EOK; 114 } 101 115 } 102 116 if (rc == 0 && c != EOF) { -
uspace/app/bdsh/cmds/modules/cat/cat.c
r52f1882 rdb71e2a 63 63 static bool should_quit = false; 64 64 static bool dash_represents_stdin = false; 65 static unsigned int lineno = 0; 66 static bool number = false; 67 static bool last_char_was_newline = false; 65 68 66 69 static console_ctrl_t *console = NULL; … … 75 78 { "hex", no_argument, 0, 'x' }, 76 79 { "stdin", no_argument, 0, 's' }, 80 { "number", no_argument, 0, 'n' }, 77 81 { 0, 0, 0, 0 } 78 82 }; … … 95 99 " -m, --more Pause after each screen full\n" 96 100 " -x, --hex Print bytes as hex values\n" 97 " -s --stdin Treat `-' in file list as standard input\n" 101 " -s, --stdin Treat `-' in file list as standard input\n" 102 " -n, --number Number all output lines\n" 98 103 "Currently, %s is under development, some options don't work.\n", 99 104 cmdname, cmdname); … … 117 122 static void waitkey() 118 123 { 119 kbd_event_t ev; 124 cons_event_t ev; 125 kbd_event_t *kev; 120 126 121 127 while (true) { 122 if (!console_get_ kbd_event(console, &ev)) {128 if (!console_get_event(console, &ev)) { 123 129 return; 124 130 } 125 if (ev.type == KEY_PRESS) { 126 if (ev.key == KC_ESCAPE || ev.key == KC_Q) { 131 if (ev.type == CEV_KEY && ev.ev.key.type == KEY_PRESS) { 132 kev = &ev.ev.key; 133 134 if (kev->key == KC_ESCAPE || kev->key == KC_Q) { 127 135 should_quit = true; 128 136 return; 129 137 } 130 if ( ev.key == KC_C) {138 if (kev->key == KC_C) { 131 139 paging_enabled = false; 132 140 return; 133 141 } 134 if ( ev.key == KC_ENTER || ev.key == KC_SPACE ||135 ev.key == KC_PAGE_DOWN) {142 if (kev->key == KC_ENTER || kev->key == KC_SPACE || 143 kev->key == KC_PAGE_DOWN) { 136 144 return; 137 145 } … … 150 158 static void paged_char(wchar_t c) 151 159 { 160 if (last_char_was_newline && number) { 161 lineno++; 162 printf("%6u ", lineno); 163 } 152 164 putchar(c); 165 last_char_was_newline = c == '\n'; 153 166 if (paging_enabled) { 154 167 chars_remaining--; … … 303 316 should_quit = false; 304 317 console = console_init(stdin, stdout); 318 number = false; 319 lineno = 0; 320 /* This enables printing of the first number. */ 321 last_char_was_newline = true; 322 305 323 306 324 argc = cli_count_args(argv); 307 325 308 326 for (c = 0, optind = 0, opt_ind = 0; c != -1;) { 309 c = getopt_long(argc, argv, "xhvmH:t:b:s ", long_options, &opt_ind);327 c = getopt_long(argc, argv, "xhvmH:t:b:s:n", long_options, &opt_ind); 310 328 switch (c) { 311 329 case 'h': … … 344 362 dash_represents_stdin = true; 345 363 break; 364 case 'n': 365 number = true; 366 break; 346 367 } 347 368 } -
uspace/app/bdsh/cmds/modules/cmp/cmp.c
r52f1882 rdb71e2a 107 107 108 108 if (offset[0] != offset[1] || 109 bcmp(buffer[0], buffer[1], offset[0])) {109 memcmp(buffer[0], buffer[1], offset[0]) != 0) { 110 110 rc = 1; 111 111 goto end; -
uspace/app/bdsh/cmds/modules/cp/cp.c
r52f1882 rdb71e2a 152 152 153 153 while (true) { 154 kbd_event_t ev;154 cons_event_t ev; 155 155 console_flush(con); 156 console_get_ kbd_event(con, &ev);157 if ( (ev.type != KEY_PRESS)158 || (ev.mods & (KM_CTRL | KM_ALT)) != 0) {156 console_get_event(con, &ev); 157 if (ev.type != CEV_KEY || ev.ev.key.type != KEY_PRESS || 158 (ev.ev.key.mods & (KM_CTRL | KM_ALT)) != 0) { 159 159 continue; 160 160 } 161 161 162 switch(ev. key) {162 switch(ev.ev.key.key) { 163 163 case KC_Y: 164 164 printf("y\n"); -
uspace/app/bdsh/cmds/modules/help/help.c
r52f1882 rdb71e2a 98 98 builtin_t *cmd; 99 99 module_t *mod; 100 unsigned int i;101 100 102 101 printf("\n Bdsh built-in commands:\n"); … … 104 103 105 104 /* First, show a list of built in commands that are available in this mode */ 106 for (cmd = builtins; cmd->name != NULL; cmd++ , i++) {105 for (cmd = builtins; cmd->name != NULL; cmd++) { 107 106 if (is_builtin_alias(cmd->name)) 108 107 printf(" %-16s\tAlias for `%s'\n", cmd->name, … … 112 111 } 113 112 114 i = 0;115 116 113 /* Now, show a list of module commands that are available in this mode */ 117 for (mod = modules; mod->name != NULL; mod++ , i++) {114 for (mod = modules; mod->name != NULL; mod++) { 118 115 if (is_module_alias(mod->name)) 119 116 printf(" %-16s\tAlias for `%s'\n", mod->name, -
uspace/app/bdsh/cmds/modules/ls/ls.c
r52f1882 rdb71e2a 315 315 { 316 316 if (stat(path, &de->s)) { 317 cli_error(CL_ENOENT, path);317 cli_error(CL_ENOENT, "%s", path); 318 318 return LS_BOGUS; 319 319 } -
uspace/app/bdsh/cmds/modules/modules.h
r52f1882 rdb71e2a 50 50 #include "mkfile/entry.h" 51 51 #include "rm/entry.h" 52 #include "bdd/entry.h"53 52 #include "cat/entry.h" 54 53 #include "touch/entry.h" … … 74 73 #include "mkfile/mkfile_def.h" 75 74 #include "rm/rm_def.h" 76 #include "bdd/bdd_def.h"77 75 #include "cat/cat_def.h" 78 76 #include "touch/touch_def.h" -
uspace/app/bdsh/cmds/modules/pwd/pwd.c
r52f1882 rdb71e2a 55 55 } 56 56 57 memset(buff, 0, sizeof(buff));57 memset(buff, 0, PATH_MAX); 58 58 getcwd(buff, PATH_MAX); 59 59 -
uspace/app/bdsh/cmds/modules/rm/rm.c
r52f1882 rdb71e2a 99 99 if (NULL == (rm->nwd = (char *) malloc(PATH_MAX))) 100 100 return 0; 101 memset(rm->nwd, 0, sizeof(rm->nwd));101 memset(rm->nwd, 0, PATH_MAX); 102 102 103 103 if (NULL == (rm->owd = (char *) malloc(PATH_MAX))) 104 104 return 0; 105 memset(rm->owd, 0, sizeof(rm->owd));105 memset(rm->owd, 0, PATH_MAX); 106 106 107 107 if (NULL == (rm->cwd = (char *) malloc(PATH_MAX))) 108 108 return 0; 109 memset(rm->cwd, 0, sizeof(rm->cwd));109 memset(rm->cwd, 0, PATH_MAX); 110 110 111 111 chdir("."); … … 298 298 break; 299 299 } 300 memset(buff, 0, sizeof(buff));300 memset(buff, 0, len); 301 301 snprintf(buff, len, "%s", argv[i]); 302 302 -
uspace/app/bdsh/cmds/modules/sleep/sleep.c
r52f1882 rdb71e2a 67 67 uint64_t whole_seconds; 68 68 uint64_t frac_seconds; 69 c har *endptr;69 const char *endptr; 70 70 71 71 /* Check for whole seconds */ … … 114 114 int ret; 115 115 unsigned int argc; 116 useconds_t duration ;116 useconds_t duration = 0; 117 117 118 118 /* Count the arguments */ -
uspace/app/bdsh/exec.c
r52f1882 rdb71e2a 83 83 /* We now have n places to look for the command */ 84 84 for (i = 0; search_dir[i] != NULL; i++) { 85 memset(found, 0, sizeof(found));85 memset(found, 0, PATH_MAX); 86 86 snprintf(found, PATH_MAX, "%s/%s", search_dir[i], cmd); 87 87 if (-1 != try_access(found)) { -
uspace/app/binutils/intrusive.sh
r52f1882 rdb71e2a 96 96 # libposix function name redefinitons in one of the arm-specific files. 97 97 # 98 # Patch 9 99 # Libiberty does not trust our strncmp that is provided in libposix. 100 # That is because when cross-compiling, it cannot check how it behaves 101 # and assumes the worst. But then it clashes when linking (due to 102 # multiple definitions of ...) and this patch prevents compilation of 103 # liberty strncmp. 98 104 99 105 case "$1" in … … 157 163 # Patch libiberty configure script. 158 164 cat "$2/libiberty/configure.backup" | \ 159 # See Patch 1. 160 sed 's/^cross_compiling=no/cross_compiling=yes/g' \ 165 # See Patch 1 and 9. 166 sed -e 's/^cross_compiling=no/cross_compiling=yes/g' \ 167 -e 's/ac_cv_func_strncmp_works=no/ac_cv_func_strncmp_works=yes/g' \ 161 168 > "$2/libiberty/configure" 162 169 -
uspace/app/binutils/toolchain.sh
r52f1882 rdb71e2a 72 72 echo ' ld $LD_ARGS' 73 73 echo 'else' 74 CFLAGS="`echo " $3 " | \74 CFLAGS="`echo " $3 " | \ 75 75 sed 's/ -O[^ ]*//g' | \ 76 76 sed 's/ -W[^ ]*//g' | \ 77 77 sed 's/ -pipe//g' | \ 78 sed 's/ -g //g' | \78 sed 's/ -g[^ ]*//g' | \ 79 79 sed 's/ [ ]*/ /g'`" 80 80 echo ' CONFTEST="`echo \"$*\" | grep '\' conftest \''`"' -
uspace/app/blkdump/blkdump.c
r52f1882 rdb71e2a 1 1 /* 2 2 * Copyright (c) 2011 Martin Sucha 3 * Copyright (c) 201 0Jiri Svoboda3 * Copyright (c) 2013 Jiri Svoboda 4 4 * All rights reserved. 5 5 * … … 52 52 53 53 static void syntax_print(void); 54 static int print_blocks(aoff64_t block_offset, aoff64_t block_count, size_t block_size); 55 static int print_toc(void); 54 56 static void print_hex_row(uint8_t *data, size_t length, size_t bytes_per_row); 57 58 static bool relative = false; 59 static service_id_t service_id; 55 60 56 61 int main(int argc, char **argv) … … 59 64 int rc; 60 65 char *dev_path; 61 service_id_t service_id;62 66 size_t block_size; 63 67 char *endptr; … … 65 69 aoff64_t block_count = 1; 66 70 aoff64_t dev_nblocks; 67 uint8_t *data; 68 size_t data_offset; 69 aoff64_t current; 70 aoff64_t limit; 71 bool relative = false; 71 bool toc = false; 72 72 73 73 if (argc < 2) { … … 79 79 --argc; ++argv; 80 80 81 if (str_cmp(*argv, "--toc") == 0) { 82 --argc; ++argv; 83 toc = true; 84 goto devname; 85 } 86 81 87 if (str_cmp(*argv, "--relative") == 0) { 82 88 --argc; ++argv; … … 120 126 } 121 127 128 devname: 122 129 if (argc != 1) { 123 130 printf(NAME ": Error, unexpected argument.\n"); … … 153 160 printf("Device %s has %" PRIuOFF64 " blocks, %" PRIuOFF64 " bytes each\n", dev_path, dev_nblocks, (aoff64_t) block_size); 154 161 162 if (toc) 163 rc = print_toc(); 164 else 165 rc = print_blocks(block_offset, block_count, block_size); 166 167 block_fini(service_id); 168 169 return rc; 170 } 171 172 static int print_blocks(aoff64_t block_offset, aoff64_t block_count, size_t block_size) 173 { 174 uint8_t *data; 175 aoff64_t current; 176 aoff64_t limit; 177 size_t data_offset; 178 int rc; 179 155 180 data = malloc(block_size); 156 181 if (data == NULL) { 157 182 printf(NAME ": Error allocating data buffer of %" PRIuOFF64 " bytes", (aoff64_t) block_size); 158 block_fini(service_id);159 183 return 3; 160 184 } 161 185 162 186 limit = block_offset + block_count; 163 187 for (current = block_offset; current < limit; current++) { … … 168 192 return 3; 169 193 } 170 194 171 195 printf("---- Block %" PRIuOFF64 " (at %" PRIuOFF64 ") ----\n", current, current*block_size); 172 196 173 197 for (data_offset = 0; data_offset < block_size; data_offset += 16) { 174 198 if (relative) { … … 183 207 printf("\n"); 184 208 } 185 209 186 210 free(data); 187 188 block_fini(service_id); 211 return 0; 212 } 213 214 static int print_toc(void) 215 { 216 toc_block_t *toc; 217 218 toc = block_get_toc(service_id, 0); 219 if (toc == NULL) 220 return 1; 221 222 printf("TOC size: %" PRIu16 " bytes\n", toc->size); 223 printf("First session: %" PRIu8 "\n", toc->first_session); 224 printf("Last_session: %" PRIu8 "\n", toc->last_session); 189 225 190 226 return 0; -
uspace/app/bnchmark/bnchmark.c
r52f1882 rdb71e2a 142 142 { 143 143 int rc; 144 umseconds_t milliseconds_taken ;144 umseconds_t milliseconds_taken = 0; 145 145 char *path = NULL; 146 146 measure_func_t fn = NULL; -
uspace/app/edit/edit.c
r52f1882 rdb71e2a 80 80 tag_t sel_start; 81 81 82 /** Active keyboard modifiers */ 83 keymod_t keymod; 84 82 85 /** 83 86 * Ideal column where the caret should try to get. This is used … … 119 122 static void cursor_setvis(bool visible); 120 123 124 static void key_handle_press(kbd_event_t *ev); 121 125 static void key_handle_unmod(kbd_event_t const *ev); 122 126 static void key_handle_ctrl(kbd_event_t const *ev); … … 124 128 static void key_handle_shift_ctrl(kbd_event_t const *ev); 125 129 static void key_handle_movement(unsigned int key, bool shift); 130 131 static void pos_handle(pos_event_t *ev); 126 132 127 133 static int file_save(char const *fname); … … 182 188 int main(int argc, char *argv[]) 183 189 { 184 kbd_event_t ev;190 cons_event_t ev; 185 191 bool new_file; 186 192 int rc; … … 245 251 246 252 while (!done) { 247 console_get_ kbd_event(con, &ev);253 console_get_event(con, &ev); 248 254 pane.rflags = 0; 249 255 250 if (ev.type == KEY_PRESS) { 251 /* Handle key press. */ 252 if (((ev.mods & KM_ALT) == 0) && 253 ((ev.mods & KM_SHIFT) == 0) && 254 (ev.mods & KM_CTRL) != 0) { 255 key_handle_ctrl(&ev); 256 } else if (((ev.mods & KM_ALT) == 0) && 257 ((ev.mods & KM_CTRL) == 0) && 258 (ev.mods & KM_SHIFT) != 0) { 259 key_handle_shift(&ev); 260 } else if (((ev.mods & KM_ALT) == 0) && 261 ((ev.mods & KM_CTRL) != 0) && 262 (ev.mods & KM_SHIFT) != 0) { 263 key_handle_shift_ctrl(&ev); 264 } else if ((ev.mods & (KM_CTRL | KM_ALT | KM_SHIFT)) == 0) { 265 key_handle_unmod(&ev); 266 } 256 switch (ev.type) { 257 case CEV_KEY: 258 pane.keymod = ev.ev.key.mods; 259 if (ev.ev.key.type == KEY_PRESS) 260 key_handle_press(&ev.ev.key); 261 break; 262 case CEV_POS: 263 pos_handle(&ev.ev.pos); 264 break; 267 265 } 268 266 … … 286 284 287 285 return 0; 286 } 287 288 /* Handle key press. */ 289 static void key_handle_press(kbd_event_t *ev) 290 { 291 if (((ev->mods & KM_ALT) == 0) && 292 ((ev->mods & KM_SHIFT) == 0) && 293 (ev->mods & KM_CTRL) != 0) { 294 key_handle_ctrl(ev); 295 } else if (((ev->mods & KM_ALT) == 0) && 296 ((ev->mods & KM_CTRL) == 0) && 297 (ev->mods & KM_SHIFT) != 0) { 298 key_handle_shift(ev); 299 } else if (((ev->mods & KM_ALT) == 0) && 300 ((ev->mods & KM_CTRL) != 0) && 301 (ev->mods & KM_SHIFT) != 0) { 302 key_handle_shift_ctrl(ev); 303 } else if ((ev->mods & (KM_CTRL | KM_ALT | KM_SHIFT)) == 0) { 304 key_handle_unmod(ev); 305 } 288 306 } 289 307 … … 462 480 } 463 481 482 static void pos_handle(pos_event_t *ev) 483 { 484 coord_t bc; 485 spt_t pt; 486 bool select; 487 488 if (ev->type == POS_PRESS && ev->vpos < (unsigned)pane.rows) { 489 bc.row = pane.sh_row + ev->vpos; 490 bc.column = pane.sh_column + ev->hpos; 491 sheet_get_cell_pt(doc.sh, &bc, dir_before, &pt); 492 493 select = (pane.keymod & KM_SHIFT) != 0; 494 495 caret_move(pt, select, true); 496 } 497 } 498 464 499 /** Move caret while preserving or resetting selection. */ 465 500 static void caret_move(spt_t new_caret_pt, bool select, bool update_ideal_column) … … 592 627 static char *prompt(char const *prompt, char const *init_value) 593 628 { 594 kbd_event_t ev; 629 cons_event_t ev; 630 kbd_event_t *kev; 595 631 char *str; 596 632 wchar_t buffer[INFNAME_MAX_LEN + 1]; … … 612 648 613 649 while (!done) { 614 console_get_kbd_event(con, &ev); 615 616 if (ev.type == KEY_PRESS) { 650 console_get_event(con, &ev); 651 652 if (ev.type == CEV_KEY && ev.ev.key.type == KEY_PRESS) { 653 kev = &ev.ev.key; 654 617 655 /* Handle key press. */ 618 if ((( ev.mods & KM_ALT) == 0) &&619 ( ev.mods & KM_CTRL) != 0) {656 if (((kev->mods & KM_ALT) == 0) && 657 (kev->mods & KM_CTRL) != 0) { 620 658 ; 621 } else if (( ev.mods & (KM_CTRL | KM_ALT)) == 0) {622 switch ( ev.key) {659 } else if ((kev->mods & (KM_CTRL | KM_ALT)) == 0) { 660 switch (kev->key) { 623 661 case KC_ESCAPE: 624 662 return NULL; … … 634 672 break; 635 673 default: 636 if ( ev.c >= 32 && nc < max_len) {637 putchar( ev.c);674 if (kev->c >= 32 && nc < max_len) { 675 putchar(kev->c); 638 676 console_flush(con); 639 buffer[nc++] = ev.c;677 buffer[nc++] = kev->c; 640 678 } 641 679 break; -
uspace/app/edit/search_impl.h
r52f1882 rdb71e2a 40 40 41 41 /** Search state */ 42 typedefstruct search {42 struct search { 43 43 /* Note: This structure is opaque for the user. */ 44 44 … … 49 49 void *client_data; 50 50 search_ops_t ops; 51 } search_t;51 }; 52 52 53 53 #endif -
uspace/app/edit/sheet_impl.h
r52f1882 rdb71e2a 40 40 41 41 /** Sheet */ 42 typedefstruct sheet {42 struct sheet { 43 43 /* Note: This structure is opaque for the user. */ 44 44 … … 48 48 49 49 list_t tags; 50 } sheet_t;50 }; 51 51 52 52 #endif -
uspace/app/inet/inet.c
r52f1882 rdb71e2a 1 1 /* 2 * Copyright (c) 201 2Jiri Svoboda2 * Copyright (c) 2013 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 36 36 37 37 #include <errno.h> 38 #include <inet/addr.h> 38 39 #include <inet/inetcfg.h> 39 40 #include <loc.h> … … 43 44 #include <sys/types.h> 44 45 45 #define NAME "inet"46 #define NAME "inet" 46 47 47 48 static void print_syntax(void) … … 54 55 } 55 56 56 static int naddr_parse(const char *text, inet_naddr_t *naddr)57 {58 unsigned long a[4], bits;59 char *cp = (char *)text;60 int i;61 62 for (i = 0; i < 3; i++) {63 a[i] = strtoul(cp, &cp, 10);64 if (*cp != '.')65 return EINVAL;66 ++cp;67 }68 69 a[3] = strtoul(cp, &cp, 10);70 if (*cp != '/')71 return EINVAL;72 ++cp;73 74 bits = strtoul(cp, &cp, 10);75 if (*cp != '\0')76 return EINVAL;77 78 naddr->ipv4 = 0;79 for (i = 0; i < 4; i++) {80 if (a[i] > 255)81 return EINVAL;82 naddr->ipv4 = (naddr->ipv4 << 8) | a[i];83 }84 85 if (bits > 31)86 return EINVAL;87 88 naddr->bits = bits;89 return EOK;90 }91 92 static int addr_parse(const char *text, inet_addr_t *addr)93 {94 unsigned long a[4];95 char *cp = (char *)text;96 int i;97 98 for (i = 0; i < 3; i++) {99 a[i] = strtoul(cp, &cp, 10);100 if (*cp != '.')101 return EINVAL;102 ++cp;103 }104 105 a[3] = strtoul(cp, &cp, 10);106 if (*cp != '\0')107 return EINVAL;108 109 addr->ipv4 = 0;110 for (i = 0; i < 4; i++) {111 if (a[i] > 255)112 return EINVAL;113 addr->ipv4 = (addr->ipv4 << 8) | a[i];114 }115 116 return EOK;117 }118 119 static int naddr_format(inet_naddr_t *naddr, char **bufp)120 {121 int rc;122 123 rc = asprintf(bufp, "%d.%d.%d.%d/%d", naddr->ipv4 >> 24,124 (naddr->ipv4 >> 16) & 0xff, (naddr->ipv4 >> 8) & 0xff,125 naddr->ipv4 & 0xff, naddr->bits);126 127 if (rc < 0)128 return ENOMEM;129 130 return EOK;131 }132 133 static int addr_format(inet_addr_t *addr, char **bufp)134 {135 int rc;136 137 rc = asprintf(bufp, "%d.%d.%d.%d", addr->ipv4 >> 24,138 (addr->ipv4 >> 16) & 0xff, (addr->ipv4 >> 8) & 0xff,139 addr->ipv4 & 0xff);140 141 if (rc < 0)142 return ENOMEM;143 144 return EOK;145 }146 147 57 static int addr_create_static(int argc, char *argv[]) 148 58 { … … 178 88 } 179 89 180 rc = naddr_parse(addr_spec, &naddr);90 rc = inet_naddr_parse(addr_spec, &naddr); 181 91 if (rc != EOK) { 182 92 printf(NAME ": Invalid network address format '%s'.\n", … … 267 177 route_name = argv[2]; 268 178 269 rc = naddr_parse(dest_str, &dest);179 rc = inet_naddr_parse(dest_str, &dest); 270 180 if (rc != EOK) { 271 181 printf(NAME ": Invalid network address format '%s'.\n", … … 274 184 } 275 185 276 rc = addr_parse(router_str, &router);186 rc = inet_addr_parse(router_str, &router); 277 187 if (rc != EOK) { 278 188 printf(NAME ": Invalid address format '%s'.\n", router_str); … … 347 257 if (count > 0) 348 258 printf(" [Addr/Width] [Link-Name] [Addr-Name] [Def-MTU]\n"); 349 ainfo.name = linfo.name = astr = NULL; 259 ainfo.name = NULL; 260 linfo.name = NULL; 261 astr = NULL; 350 262 351 263 for (i = 0; i < count; i++) { … … 366 278 } 367 279 368 rc = naddr_format(&ainfo.naddr, &astr);280 rc = inet_naddr_format(&ainfo.naddr, &astr); 369 281 if (rc != EOK) { 370 282 printf("Memory allocation failed.\n"); … … 380 292 free(astr); 381 293 382 ainfo.name = linfo.name = astr = NULL; 294 ainfo.name = NULL; 295 linfo.name = NULL; 296 astr = NULL; 383 297 } 384 298 … … 419 333 printf(" [Dest/Width] [Router-Addr] [Route-Name]\n"); 420 334 421 srinfo.name = dest_str = router_str = NULL; 335 srinfo.name = NULL; 336 dest_str = NULL; 337 router_str = NULL; 422 338 423 339 for (i = 0; i < count; i++) { … … 430 346 } 431 347 432 rc = naddr_format(&srinfo.dest, &dest_str);348 rc = inet_naddr_format(&srinfo.dest, &dest_str); 433 349 if (rc != EOK) { 434 350 printf("Memory allocation failed.\n"); … … 437 353 } 438 354 439 rc = addr_format(&srinfo.router, &router_str);355 rc = inet_addr_format(&srinfo.router, &router_str); 440 356 if (rc != EOK) { 441 357 printf("Memory allocation failed.\n"); … … 450 366 free(router_str); 451 367 452 router_str = srinfo.name = dest_str = NULL; 368 router_str = NULL; 369 srinfo.name = NULL; 370 dest_str = NULL; 453 371 } 454 372 -
uspace/app/init/init.c
r52f1882 rdb71e2a 359 359 srv_start("/srv/tcp"); 360 360 srv_start("/srv/udp"); 361 srv_start("/srv/dnsrsrv"); 361 362 362 363 srv_start("/srv/clipboard"); … … 369 370 #ifdef CONFIG_START_BD 370 371 srv_start("/srv/ata_bd"); 371 srv_start("/srv/gxe_bd");372 372 #endif 373 373 -
uspace/app/mkbd/main.c
r52f1882 rdb71e2a 177 177 178 178 while (1) { 179 kbd_event_t ev;180 bool ok = console_get_ kbd_event(con, &ev);179 cons_event_t ev; 180 bool ok = console_get_event(con, &ev); 181 181 if (!ok) { 182 182 printf("Connection with console broken: %s.\n", … … 185 185 } 186 186 187 if (ev.key == KC_ESCAPE) { 187 if (ev.type == CEV_KEY && ev.ev.key.type == KEY_PRESS && 188 ev.ev.key.key == KC_ESCAPE) { 188 189 break; 189 190 } -
uspace/app/mkmfs/mkmfs.c
r52f1882 rdb71e2a 649 649 mark_bmap(ibmap_buf, i, FREE); 650 650 651 for (i = sb->first_data_zone + 1; i < sb->n_zones; ++i)651 for (i = 2; i < sb->n_zones - sb->first_data_zone; ++i) 652 652 mark_bmap(zbmap_buf, i, FREE); 653 653 -
uspace/app/msim/arch_helenos/input.c
r52f1882 rdb71e2a 91 91 bool stdin_poll(char *key) 92 92 { 93 kbd_event_t ev;93 cons_event_t ev; 94 94 suseconds_t timeout = 0; 95 95 errno = EOK; 96 96 console_flush(input_prompt->console); 97 bool has_input = console_get_ kbd_event_timeout(input_prompt->console, &ev, &timeout);97 bool has_input = console_get_event_timeout(input_prompt->console, &ev, &timeout); 98 98 if (!has_input) { 99 99 return false; 100 100 } 101 101 102 if (ev.type != KEY_PRESS)102 if (ev.type != CEV_KEY || ev.ev.key.type != KEY_PRESS) 103 103 return false; 104 104 105 *key = ev. c;105 *key = ev.ev.key.c; 106 106 107 107 return true; -
uspace/app/netecho/netecho.c
r52f1882 rdb71e2a 225 225 uint8_t address_buf[sizeof(struct sockaddr_in6)]; 226 226 227 socklen_t addrlen ;227 socklen_t addrlen = sizeof(struct sockaddr_in6); 228 228 int socket_id; 229 229 ssize_t rcv_size; … … 240 240 if (type == SOCK_STREAM) { 241 241 /* Accept a socket if a stream socket is used */ 242 addrlen = sizeof(address_buf);243 242 if (verbose) 244 243 printf("accept()\n"); 245 socket_id = accept(listening_id, (void *) address_buf, &addrlen);244 socket_id = accept(listening_id, (void *) address_buf, &addrlen); 246 245 if (socket_id <= 0) { 247 246 socket_print_error(stderr, socket_id, "Socket accept: ", "\n"); … … 280 279 case AF_INET6: 281 280 port = ntohs(address_in6->sin6_port); 282 address_start = (uint8_t *) &address_in6->sin6_addr.s6_addr;281 address_start = (uint8_t *) address_in6->sin6_addr.s6_addr; 283 282 break; 284 283 default: … … 312 311 rc = sendto(socket_id, reply ? reply : data, reply ? reply_length : length, 0, address, addrlen); 313 312 if (rc != EOK) 314 socket_print_error(stderr, rc, "Socket send : ", "\n");313 socket_print_error(stderr, rc, "Socket sendto: ", "\n"); 315 314 } 316 315 } … … 380 379 address_in6.sin6_family = AF_INET6; 381 380 address_in6.sin6_port = htons(port); 381 address_in6.sin6_addr = in6addr_any; 382 382 address = (struct sockaddr *) &address_in6; 383 383 addrlen = sizeof(address_in6); … … 394 394 return listening_id; 395 395 } 396 396 397 /* Bind the listening socket */ 398 rc = bind(listening_id, address, addrlen); 399 if (rc != EOK) { 400 socket_print_error(stderr, rc, "Socket bind: ", "\n"); 401 return rc; 402 } 403 397 404 /* if the stream socket is used */ 398 405 if (type == SOCK_STREAM) { … … 402 409 backlog = 3; 403 410 } 404 411 405 412 /* Set the backlog */ 406 413 rc = listen(listening_id, backlog); … … 409 416 return rc; 410 417 } 411 }412 413 /* Bind the listening socket */414 rc = bind(listening_id, address, addrlen);415 if (rc != EOK) {416 socket_print_error(stderr, rc, "Socket bind: ", "\n");417 return rc;418 418 } 419 419 -
uspace/app/nettest1/nettest.c
r52f1882 rdb71e2a 41 41 #include "print_error.h" 42 42 43 44 43 /** Creates new sockets. 45 44 * … … 52 51 * @return Other error codes as defined for the socket() function. 53 52 */ 54 int sockets_create(int verbose, int *socket_ids, int sockets, int family, sock_type_t type) 55 { 56 int index; 57 53 int sockets_create(int verbose, int *socket_ids, unsigned int sockets, 54 uint16_t family, sock_type_t type) 55 { 58 56 if (verbose) 59 57 printf("Create\t"); 60 61 fflush(stdout); 62 63 for ( index = 0; index < sockets; index++) {58 59 fflush(stdout); 60 61 for (unsigned int index = 0; index < sockets; index++) { 64 62 socket_ids[index] = socket(family, type, 0); 65 63 if (socket_ids[index] < 0) { 66 printf("Socket % d(%d) error:\n", index, socket_ids[index]);64 printf("Socket %u (%d) error:\n", index, socket_ids[index]); 67 65 socket_print_error(stderr, socket_ids[index], "Socket create: ", "\n"); 68 66 return socket_ids[index]; 69 67 } 68 70 69 if (verbose) 71 70 print_mark(index); … … 83 82 * @return Other error codes as defined for the closesocket() function. 84 83 */ 85 int sockets_close(int verbose, int *socket_ids, int sockets) 86 { 87 int index; 88 int rc; 89 84 int sockets_close(int verbose, int *socket_ids, unsigned int sockets) 85 { 90 86 if (verbose) 91 87 printf("\tClose\t"); 92 93 fflush(stdout); 94 95 for ( index = 0; index < sockets; index++) {96 rc = closesocket(socket_ids[index]);88 89 fflush(stdout); 90 91 for (unsigned int index = 0; index < sockets; index++) { 92 int rc = closesocket(socket_ids[index]); 97 93 if (rc != EOK) { 98 printf("Socket % d(%d) error:\n", index, socket_ids[index]);94 printf("Socket %u (%d) error:\n", index, socket_ids[index]); 99 95 socket_print_error(stderr, rc, "Socket close: ", "\n"); 100 96 return rc; 101 97 } 98 102 99 if (verbose) 103 100 print_mark(index); … … 117 114 * @return Other error codes as defined for the connect() function. 118 115 */ 119 int sockets_connect(int verbose, int *socket_ids, int sockets, struct sockaddr *address, socklen_t addrlen) 120 { 121 int index; 122 int rc; 123 116 int sockets_connect(int verbose, int *socket_ids, unsigned int sockets, 117 struct sockaddr *address, socklen_t addrlen) 118 { 124 119 if (verbose) 125 120 printf("\tConnect\t"); … … 127 122 fflush(stdout); 128 123 129 for ( index = 0; index < sockets; index++) {130 rc = connect(socket_ids[index], address, addrlen);124 for (unsigned int index = 0; index < sockets; index++) { 125 int rc = connect(socket_ids[index], address, addrlen); 131 126 if (rc != EOK) { 132 127 socket_print_error(stderr, rc, "Socket connect: ", "\n"); 133 128 return rc; 134 129 } 135 if (verbose) 136 print_mark(index); 137 } 138 139 return EOK; 140 } 141 142 /** Sends data via sockets. 143 * 144 * @param[in] verbose A value indicating whether to print out verbose information. 145 * @param[in] socket_ids A field of stored socket identifiers. 146 * @param[in] sockets The number of sockets in the field. Should be at most the size of the field. 147 * @param[in] address The destination host address to send data to. 148 * @param[in] addrlen The length of the destination address in bytes. 149 * @param[in] data The data to be sent. 150 * @param[in] size The data size in bytes. 151 * @param[in] messages The number of datagrams per socket to be sent. 130 131 if (verbose) 132 print_mark(index); 133 } 134 135 return EOK; 136 } 137 138 /** Send data via sockets. 139 * 140 * @param[in] verbose Print out verbose information. 141 * @param[in] socket_ids Stored socket identifiers. 142 * @param[in] sockets Number of sockets. 143 * @param[in] address Destination host address to send data to. 144 * @param[in] addrlen Length of the destination address in bytes. 145 * @param[in] data Data to be sent. 146 * @param[in] size Size of the data in bytes. 147 * @param[in] messages Number of datagrams per socket to be sent. 148 * @param[in] type Socket type. 149 * 152 150 * @return EOK on success. 153 151 * @return Other error codes as defined for the sendto() function. 154 */ 155 int sockets_sendto(int verbose, int *socket_ids, int sockets, struct sockaddr *address, socklen_t addrlen, char *data, int size, int messages) 156 { 157 int index; 158 int message; 159 int rc; 160 152 * 153 */ 154 int sockets_sendto(int verbose, int *socket_ids, unsigned int sockets, 155 struct sockaddr *address, socklen_t addrlen, char *data, size_t size, 156 unsigned int messages, sock_type_t type) 157 { 161 158 if (verbose) 162 159 printf("\tSendto\t"); 163 164 fflush(stdout); 165 166 for (index = 0; index < sockets; index++) { 167 for (message = 0; message < messages; message++) { 168 rc = sendto(socket_ids[index], data, size, 0, address, addrlen); 160 161 fflush(stdout); 162 163 for (unsigned int index = 0; index < sockets; index++) { 164 for (unsigned int message = 0; message < messages; message++) { 165 int rc; 166 167 switch (type) { 168 case SOCK_STREAM: 169 rc = send(socket_ids[index], data, size, 0); 170 break; 171 case SOCK_DGRAM: 172 rc = sendto(socket_ids[index], data, size, 0, address, addrlen); 173 break; 174 default: 175 rc = EINVAL; 176 } 177 169 178 if (rc != EOK) { 170 printf("Socket %d (%d), message %d error:\n", index, socket_ids[index], message); 179 printf("Socket %u (%d), message %u error:\n", 180 index, socket_ids[index], message); 171 181 socket_print_error(stderr, rc, "Socket send: ", "\n"); 172 182 return rc; 173 183 } 174 184 } 175 if (verbose) 176 print_mark(index); 177 } 178 179 return EOK; 180 } 181 182 /** Receives data via sockets. 183 * 184 * @param[in] verbose A value indicating whether to print out verbose information. 185 * @param[in] socket_ids A field of stored socket identifiers. 186 * @param[in] sockets The number of sockets in the field. Should be at most the size of the field. 187 * @param[in] address The source host address of received datagrams. 188 * @param[in,out] addrlen The maximum length of the source address in bytes. The actual size of the source address is set instead. 189 * @param[out] data The received data. 190 * @param[in] size The maximum data size in bytes. 191 * @param[in] messages The number of datagrams per socket to be received. 185 186 if (verbose) 187 print_mark(index); 188 } 189 190 return EOK; 191 } 192 193 /** Receive data via sockets. 194 * 195 * @param[in] verbose Print out verbose information. 196 * @param[in] socket_ids Stored socket identifiers. 197 * @param[in] sockets Number of sockets. 198 * @param[in] address Source host address of received datagrams. 199 * @param[in,out] addrlen Maximum length of the source address in bytes. 200 * The actual size of the source address is set. 201 * @param[out] data Received data. 202 * @param[in] size Maximum data size in bytes. 203 * @param[in] messages Number of datagrams per socket to be received. 204 * 192 205 * @return EOK on success. 193 206 * @return Other error codes as defined for the recvfrom() function. 194 */ 195 int sockets_recvfrom(int verbose, int *socket_ids, int sockets, struct sockaddr *address, socklen_t *addrlen, char *data, int size, int messages) 196 { 197 int value; 198 int index; 199 int message; 200 207 * 208 */ 209 int sockets_recvfrom(int verbose, int *socket_ids, unsigned int sockets, 210 struct sockaddr *address, socklen_t *addrlen, char *data, size_t size, 211 unsigned int messages) 212 { 201 213 if (verbose) 202 214 printf("\tRecvfrom\t"); … … 204 216 fflush(stdout); 205 217 206 for (index = 0; index < sockets; index++) { 207 for (message = 0; message < messages; message++) { 208 value = recvfrom(socket_ids[index], data, size, 0, address, addrlen); 209 if (value < 0) { 210 printf("Socket %d (%d), message %d error:\n", index, socket_ids[index], message); 211 socket_print_error(stderr, value, "Socket receive: ", "\n"); 212 return value; 213 } 214 } 215 if (verbose) 216 print_mark(index); 217 } 218 return EOK; 219 } 220 221 /** Sends and receives data via sockets. 218 for (unsigned int index = 0; index < sockets; index++) { 219 for (unsigned int message = 0; message < messages; message++) { 220 int rc = recvfrom(socket_ids[index], data, size, 0, address, addrlen); 221 if (rc < 0) { 222 printf("Socket %u (%d), message %u error:\n", 223 index, socket_ids[index], message); 224 socket_print_error(stderr, rc, "Socket receive: ", "\n"); 225 return rc; 226 } 227 } 228 229 if (verbose) 230 print_mark(index); 231 } 232 233 return EOK; 234 } 235 236 /** Send and receive data via sockets. 222 237 * 223 238 * Each datagram is sent and a reply read consequently. 224 239 * The next datagram is sent after the reply is received. 225 240 * 226 * @param[in] verbose A value indicating whether to print out verbose information. 227 * @param[in] socket_ids A field of stored socket identifiers. 228 * @param[in] sockets The number of sockets in the field. Should be at most the size of the field. 229 * @param[in,out] address The destination host address to send data to. The source host address of received datagrams is set instead. 230 * @param[in] addrlen The length of the destination address in bytes. 231 * @param[in,out] data The data to be sent. The received data are set instead. 232 * @param[in] size The data size in bytes. 233 * @param[in] messages The number of datagrams per socket to be received. 241 * @param[in] verbose Print out verbose information. 242 * @param[in] socket_ids Stored socket identifiers. 243 * @param[in] sockets Number of sockets. 244 * @param[in,out] address Destination host address to send data to. 245 * The source host address of received datagrams is set. 246 * @param[in] addrlen Length of the destination address in bytes. 247 * @param[in,out] data Data to be sent. The received data are set. 248 * @param[in] size Size of the data in bytes. 249 * @param[in] messages Number of datagrams per socket to be received. 250 * @param[in] type Socket type. 251 * 234 252 * @return EOK on success. 235 253 * @return Other error codes as defined for the recvfrom() function. 236 */ 237 int sockets_sendto_recvfrom(int verbose, int *socket_ids, int sockets, struct sockaddr *address, socklen_t *addrlen, char *data, int size, int messages) 238 { 239 int value; 240 int index; 241 int message; 242 int rc; 243 254 * 255 */ 256 int sockets_sendto_recvfrom(int verbose, int *socket_ids, unsigned int sockets, 257 struct sockaddr *address, socklen_t *addrlen, char *data, 258 size_t size, unsigned int messages, sock_type_t type) 259 { 244 260 if (verbose) 245 261 printf("\tSendto and recvfrom\t"); 246 247 fflush(stdout); 248 249 for (index = 0; index < sockets; index++) { 250 for (message = 0; message < messages; message++) { 251 rc = sendto(socket_ids[index], data, size, 0, address, *addrlen); 262 263 fflush(stdout); 264 265 for (unsigned int index = 0; index < sockets; index++) { 266 for (unsigned int message = 0; message < messages; message++) { 267 int rc; 268 269 switch (type) { 270 case SOCK_STREAM: 271 rc = send(socket_ids[index], data, size, 0); 272 break; 273 case SOCK_DGRAM: 274 rc = sendto(socket_ids[index], data, size, 0, address, *addrlen); 275 break; 276 default: 277 rc = EINVAL; 278 } 279 252 280 if (rc != EOK) { 253 printf("Socket %d (%d), message %d error:\n", index, socket_ids[index], message); 281 printf("Socket %u (%d), message %u error:\n", 282 index, socket_ids[index], message); 254 283 socket_print_error(stderr, rc, "Socket send: ", "\n"); 255 284 return rc; 256 285 } 257 value = recvfrom(socket_ids[index], data, size, 0, address, addrlen); 258 if (value < 0) { 259 printf("Socket %d (%d), message %d error:\n", index, socket_ids[index], message); 260 socket_print_error(stderr, value, "Socket receive: ", "\n"); 261 return value; 262 } 263 } 286 287 rc = recvfrom(socket_ids[index], data, size, 0, address, addrlen); 288 if (rc < 0) { 289 printf("Socket %u (%d), message %u error:\n", 290 index, socket_ids[index], message); 291 socket_print_error(stderr, rc, "Socket receive: ", "\n"); 292 return rc; 293 } 294 } 295 264 296 if (verbose) 265 297 print_mark(index); … … 274 306 * 275 307 * @param[in] index The index of the mark to be printed. 276 */ 277 void print_mark(int index) 308 * 309 */ 310 void print_mark(unsigned int index) 278 311 { 279 312 if ((index + 1) % 10) … … 281 314 else 282 315 printf("|"); 316 283 317 fflush(stdout); 284 318 } -
uspace/app/nettest1/nettest.h
r52f1882 rdb71e2a 40 40 #include <net/socket.h> 41 41 42 extern void print_mark(int); 43 extern int sockets_create(int, int *, int, int, sock_type_t); 44 extern int sockets_close(int, int *, int); 45 extern int sockets_connect(int, int *, int, struct sockaddr *, socklen_t); 46 extern int sockets_sendto(int, int *, int, struct sockaddr *, socklen_t, char *, int, int); 47 extern int sockets_recvfrom(int, int *, int, struct sockaddr *, socklen_t *, char *, int, int); 48 extern int sockets_sendto_recvfrom(int, int *, int, struct sockaddr *, socklen_t *, char *, int, int); 42 extern void print_mark(unsigned int); 43 extern int sockets_create(int, int *, unsigned int, uint16_t, sock_type_t); 44 extern int sockets_close(int, int *, unsigned int); 45 extern int sockets_connect(int, int *, unsigned int, struct sockaddr *, 46 socklen_t); 47 extern int sockets_sendto(int, int *, unsigned int, struct sockaddr *, 48 socklen_t, char *, size_t, unsigned int, sock_type_t); 49 extern int sockets_recvfrom(int, int *, unsigned int, struct sockaddr *, 50 socklen_t *, char *, size_t, unsigned int); 51 extern int sockets_sendto_recvfrom(int, int *, unsigned int, struct sockaddr *, 52 socklen_t *, char *, size_t, unsigned int, sock_type_t); 49 53 50 54 #endif -
uspace/app/nettest1/nettest1.c
r52f1882 rdb71e2a 46 46 #include <arg_parse.h> 47 47 48 #include <inet/dnsr.h> 48 49 #include <net/in.h> 49 50 #include <net/in6.h> … … 53 54 54 55 /** Echo module name. */ 55 #define NAME "Nettest1"56 #define NAME "nettest1" 56 57 57 58 /** Packet data pattern. */ 58 #define NETTEST1_TEXT "Networking test 1 - sockets"59 60 static int family = PF_INET;59 #define NETTEST1_TEXT "Networking test 1 - sockets" 60 61 static uint16_t family = AF_INET; 61 62 static sock_type_t type = SOCK_DGRAM; 62 static char *data;63 63 static size_t size = 27; 64 static int verbose = 0; 64 static bool verbose = false; 65 static int sockets = 10; 66 static int messages = 10; 67 static uint16_t port = 7; 65 68 66 69 static struct sockaddr *address; 67 70 static socklen_t addrlen; 68 71 69 static int sockets; 70 static int messages; 71 static uint16_t port; 72 static char *data; 72 73 73 74 static void nettest1_print_help(void) … … 75 76 printf( 76 77 "Network Networking test 1 aplication - sockets\n" 77 "Usage: echo [options] numeric_address\n"78 "Usage: nettest1 [options] host\n" 78 79 "Where options are:\n" 79 80 "-f protocol_family | --family=protocol_family\n" … … 113 114 int value; 114 115 int rc; 115 116 116 117 switch (argv[*index][1]) { 117 118 /* … … 119 120 */ 120 121 case 'f': 121 rc = arg_parse_name_int(argc, argv, index, &family, 0, socket_parse_protocol_family); 122 if (rc != EOK) 123 return rc; 122 rc = arg_parse_name_int(argc, argv, index, &value, 0, 123 socket_parse_protocol_family); 124 if (rc != EOK) 125 return rc; 126 127 family = (uint16_t) value; 124 128 break; 125 129 case 'h': … … 130 134 if (rc != EOK) 131 135 return rc; 136 132 137 break; 133 138 case 'n': … … 135 140 if (rc != EOK) 136 141 return rc; 142 137 143 break; 138 144 case 'p': … … 140 146 if (rc != EOK) 141 147 return rc; 148 142 149 port = (uint16_t) value; 143 150 break; … … 146 153 if (rc != EOK) 147 154 return rc; 155 148 156 size = (value >= 0) ? (size_t) value : 0; 149 157 break; 150 158 case 't': 151 rc = arg_parse_name_int(argc, argv, index, &value, 0, socket_parse_socket_type); 152 if (rc != EOK) 153 return rc; 159 rc = arg_parse_name_int(argc, argv, index, &value, 0, 160 socket_parse_socket_type); 161 if (rc != EOK) 162 return rc; 163 154 164 type = (sock_type_t) value; 155 165 break; … … 157 167 verbose = 1; 158 168 break; 169 159 170 /* 160 171 * Long options with double dash ('-') … … 162 173 case '-': 163 174 if (str_lcmp(argv[*index] + 2, "family=", 7) == 0) { 164 rc = arg_parse_name_int(argc, argv, index, & family, 9,175 rc = arg_parse_name_int(argc, argv, index, &value, 9, 165 176 socket_parse_protocol_family); 166 177 if (rc != EOK) 167 178 return rc; 179 180 family = (uint16_t) value; 168 181 } else if (str_lcmp(argv[*index] + 2, "help", 5) == 0) { 169 182 nettest1_print_help(); … … 181 194 if (rc != EOK) 182 195 return rc; 196 183 197 port = (uint16_t) value; 184 198 } else if (str_lcmp(argv[*index] + 2, "type=", 5) == 0) { … … 187 201 if (rc != EOK) 188 202 return rc; 203 189 204 type = (sock_type_t) value; 190 205 } else if (str_lcmp(argv[*index] + 2, "verbose", 8) == 0) { … … 199 214 return EINVAL; 200 215 } 201 216 202 217 return EOK; 203 218 } … … 210 225 static void nettest1_fill_buffer(char *buffer, size_t size) 211 226 { 212 size_t length; 213 214 length = 0; 227 size_t length = 0; 215 228 while (size > length + sizeof(NETTEST1_TEXT) - 1) { 216 229 memcpy(buffer + length, NETTEST1_TEXT, … … 218 231 length += sizeof(NETTEST1_TEXT) - 1; 219 232 } 220 233 221 234 memcpy(buffer + length, NETTEST1_TEXT, size - length); 222 235 buffer[size] = '\0'; … … 225 238 static int nettest1_test(int *socket_ids, int nsockets, int nmessages) 226 239 { 227 int rc;228 229 240 if (verbose) 230 241 printf("%d sockets, %d messages\n", nsockets, nmessages); 231 232 rc = sockets_create(verbose, socket_ids, nsockets, family, type);233 if (rc != EOK) 234 return rc; 235 242 243 int rc = sockets_create(verbose, socket_ids, nsockets, family, type); 244 if (rc != EOK) 245 return rc; 246 236 247 if (type == SOCK_STREAM) { 237 248 rc = sockets_connect(verbose, socket_ids, nsockets, address, … … 240 251 return rc; 241 252 } 242 253 243 254 rc = sockets_sendto_recvfrom(verbose, socket_ids, nsockets, address, 244 &addrlen, data, size, nmessages );245 if (rc != EOK) 246 return rc; 247 255 &addrlen, data, size, nmessages, type); 256 if (rc != EOK) 257 return rc; 258 248 259 rc = sockets_close(verbose, socket_ids, nsockets); 249 260 if (rc != EOK) 250 261 return rc; 251 262 252 263 if (verbose) 253 264 printf("\tOK\n"); 254 265 255 266 /****/ 256 267 257 268 rc = sockets_create(verbose, socket_ids, nsockets, family, type); 258 269 if (rc != EOK) 259 270 return rc; 260 271 261 272 if (type == SOCK_STREAM) { 262 273 rc = sockets_connect(verbose, socket_ids, nsockets, address, … … 265 276 return rc; 266 277 } 267 278 268 279 rc = sockets_sendto(verbose, socket_ids, nsockets, address, addrlen, 269 data, size, nmessages );270 if (rc != EOK) 271 return rc; 272 280 data, size, nmessages, type); 281 if (rc != EOK) 282 return rc; 283 273 284 rc = sockets_recvfrom(verbose, socket_ids, nsockets, address, &addrlen, 274 285 data, size, nmessages); 275 286 if (rc != EOK) 276 287 return rc; 277 288 278 289 rc = sockets_close(verbose, socket_ids, nsockets); 279 290 if (rc != EOK) 280 291 return rc; 281 292 282 293 if (verbose) 283 294 printf("\tOK\n"); 284 295 285 296 return EOK; 286 297 } … … 288 299 int main(int argc, char *argv[]) 289 300 { 290 struct sockaddr_in address_in;291 struct sockaddr_in6 address_in6;292 uint8_t *address_start;293 294 int *socket_ids;295 int index;296 struct timeval time_before;297 struct timeval time_after;298 299 int rc;300 301 sockets = 10;302 messages = 10;303 port = 7;304 305 301 /* 306 302 * Parse the command line arguments. Stop before the last argument 307 303 * if it does not start with dash ('-') 308 304 */ 309 for (index = 1; (index < argc - 1) || ((index == argc - 1) && (argv[index][0] == '-')); index++) { 305 int index; 306 int rc; 307 308 for (index = 1; (index < argc - 1) || ((index == argc - 1) && 309 (argv[index][0] == '-')); index++) { 310 310 /* Options should start with dash ('-') */ 311 311 if (argv[index][0] == '-') { … … 318 318 } 319 319 } 320 321 /* If not before the last argument containing the address*/320 321 /* The last argument containing the host */ 322 322 if (index >= argc) { 323 printf(" Command line error: missing address\n");323 printf("Host name missing.\n"); 324 324 nettest1_print_help(); 325 325 return EINVAL; 326 326 } 327 327 328 char *addr_s = argv[argc - 1]; 329 330 /* Interpret as address */ 331 inet_addr_t addr_addr; 332 rc = inet_addr_parse(addr_s, &addr_addr); 333 334 if (rc != EOK) { 335 /* Interpret as a host name */ 336 dnsr_hostinfo_t *hinfo = NULL; 337 rc = dnsr_name2host(addr_s, &hinfo, family); 338 339 if (rc != EOK) { 340 printf("Error resolving host '%s'.\n", addr_s); 341 return EINVAL; 342 } 343 344 addr_addr = hinfo->addr; 345 } 346 347 struct sockaddr_in addr; 348 struct sockaddr_in6 addr6; 349 uint16_t af = inet_addr_sockaddr_in(&addr_addr, &addr, &addr6); 350 351 if (af != family) { 352 printf("Address family does not match explicitly set family.\n"); 353 return EINVAL; 354 } 355 328 356 /* Prepare the address buffer */ 329 330 switch (family) { 331 case PF_INET: 332 address_in.sin_family = AF_INET; 333 address_in.sin_port = htons(port); 334 address = (struct sockaddr *) &address_in; 335 addrlen = sizeof(address_in); 336 address_start = (uint8_t *) &address_in.sin_addr.s_addr; 337 break; 338 case PF_INET6: 339 address_in6.sin6_family = AF_INET6; 340 address_in6.sin6_port = htons(port); 341 address = (struct sockaddr *) &address_in6; 342 addrlen = sizeof(address_in6); 343 address_start = (uint8_t *) &address_in6.sin6_addr.s6_addr; 357 358 switch (af) { 359 case AF_INET: 360 addr.sin_port = htons(port); 361 address = (struct sockaddr *) &addr; 362 addrlen = sizeof(addr); 363 break; 364 case AF_INET6: 365 addr6.sin6_port = htons(port); 366 address = (struct sockaddr *) &addr6; 367 addrlen = sizeof(addr6); 344 368 break; 345 369 default: … … 347 371 return EAFNOSUPPORT; 348 372 } 349 350 /* Parse the last argument which should contain the address */ 351 rc = inet_pton(family, argv[argc - 1], address_start); 352 if (rc != EOK) { 353 fprintf(stderr, "Address parse error %d\n", rc); 354 return rc; 355 } 356 373 357 374 /* Check data buffer size */ 358 375 if (size <= 0) { … … 361 378 size = 1024; 362 379 } 363 380 364 381 /* 365 382 * Prepare data buffer. Allocate size bytes plus one for the … … 372 389 } 373 390 nettest1_fill_buffer(data, size); 374 391 375 392 /* Check socket count */ 376 393 if (sockets <= 0) { … … 379 396 sockets = 2; 380 397 } 381 398 382 399 /* 383 400 * Prepare socket buffer. Allocate count fields plus the terminating 384 401 * null (\0). 385 402 */ 386 socket_ids = (int *) malloc(sizeof(int) * (sockets + 1));403 int *socket_ids = (int *) malloc(sizeof(int) * (sockets + 1)); 387 404 if (!socket_ids) { 388 405 fprintf(stderr, "Failed to allocate receive buffer.\n"); 389 406 return ENOMEM; 390 407 } 408 391 409 socket_ids[sockets] = 0; 392 410 393 411 if (verbose) 394 412 printf("Starting tests\n"); 395 413 414 struct timeval time_before; 396 415 rc = gettimeofday(&time_before, NULL); 397 416 if (rc != EOK) { … … 399 418 return rc; 400 419 } 401 420 402 421 nettest1_test(socket_ids, 1, 1); 403 422 nettest1_test(socket_ids, 1, messages); 404 423 nettest1_test(socket_ids, sockets, 1); 405 424 nettest1_test(socket_ids, sockets, messages); 406 425 426 struct timeval time_after; 407 427 rc = gettimeofday(&time_after, NULL); 408 428 if (rc != EOK) { … … 410 430 return rc; 411 431 } 412 432 413 433 printf("Tested in %ld microseconds\n", tv_sub(&time_after, 414 434 &time_before)); 415 435 416 436 if (verbose) 417 437 printf("Exiting\n"); 418 438 419 439 return EOK; 420 440 } 421 441 422 423 442 /** @} 424 443 */ -
uspace/app/nettest2/nettest2.c
r52f1882 rdb71e2a 47 47 #include <stdbool.h> 48 48 49 #include <inet/dnsr.h> 49 50 #include <net/in.h> 50 51 #include <net/in6.h> … … 54 55 55 56 /** Echo module name. */ 56 #define NAME "Nettest2"57 #define NAME "nettest2" 57 58 58 59 /** Packet data pattern. */ 59 #define NETTEST2_TEXT "Networking test 2 - transfer"60 61 static size_t size;62 static bool verbose;63 static sock_type_t type;64 static int sockets;65 static int messages;66 static int family;67 static uint16_t port ;60 #define NETTEST2_TEXT "Networking test 2 - transfer" 61 62 static uint16_t family = PF_INET; 63 static size_t size = 28; 64 static bool verbose = false; 65 static sock_type_t type = SOCK_DGRAM; 66 static int sockets = 10; 67 static int messages = 10; 68 static uint16_t port = 7; 68 69 69 70 static void nettest2_print_help(void) … … 71 72 printf( 72 73 "Network Networking test 2 aplication - UDP transfer\n" 73 "Usage: echo [options] address\n"74 "Usage: nettest2 [options] host\n" 74 75 "Where options are:\n" 75 76 "-f protocol_family | --family=protocol_family\n" … … 106 107 static void nettest2_fill_buffer(char *buffer, size_t size) 107 108 { 108 size_t length; 109 110 length = 0; 109 size_t length = 0; 111 110 while (size > length + sizeof(NETTEST2_TEXT) - 1) { 112 111 memcpy(buffer + length, NETTEST2_TEXT, … … 114 113 length += sizeof(NETTEST2_TEXT) - 1; 115 114 } 116 115 117 116 memcpy(buffer + length, NETTEST2_TEXT, size - length); 118 117 buffer[size] = '\0'; … … 129 128 int value; 130 129 int rc; 131 130 132 131 switch (argv[*index][1]) { 133 132 /* … … 135 134 */ 136 135 case 'f': 137 rc = arg_parse_name_int(argc, argv, index, & family, 0,136 rc = arg_parse_name_int(argc, argv, index, &value, 0, 138 137 socket_parse_protocol_family); 139 138 if (rc != EOK) 140 139 return rc; 140 141 family = (uint16_t) value; 141 142 break; 142 143 case 'h': 143 144 nettest2_print_help(); 144 145 return EOK; 145 break;146 146 case 'm': 147 147 rc = arg_parse_int(argc, argv, index, &messages, 0); 148 148 if (rc != EOK) 149 149 return rc; 150 150 151 break; 151 152 case 'n': … … 153 154 if (rc != EOK) 154 155 return rc; 156 155 157 break; 156 158 case 'p': … … 158 160 if (rc != EOK) 159 161 return rc; 162 160 163 port = (uint16_t) value; 161 164 break; … … 164 167 if (rc != EOK) 165 168 return rc; 169 166 170 size = (value >= 0) ? (size_t) value : 0; 167 171 break; … … 171 175 if (rc != EOK) 172 176 return rc; 177 173 178 type = (sock_type_t) value; 174 179 break; … … 176 181 verbose = true; 177 182 break; 183 178 184 /* 179 185 * Long options with double dash ('-') … … 181 187 case '-': 182 188 if (str_lcmp(argv[*index] + 2, "family=", 7) == 0) { 183 rc = arg_parse_name_int(argc, argv, index, & family, 9,189 rc = arg_parse_name_int(argc, argv, index, &value, 9, 184 190 socket_parse_protocol_family); 185 191 if (rc != EOK) 186 192 return rc; 193 194 family = (uint16_t) value; 187 195 } else if (str_lcmp(argv[*index] + 2, "help", 5) == 0) { 188 196 nettest2_print_help(); … … 200 208 if (rc != EOK) 201 209 return rc; 210 202 211 port = (uint16_t) value; 203 212 } else if (str_lcmp(argv[*index] + 2, "type=", 5) == 0) { … … 206 215 if (rc != EOK) 207 216 return rc; 217 208 218 type = (sock_type_t) value; 209 219 } else if (str_lcmp(argv[*index] + 2, "verbose", 8) == 0) { … … 218 228 return EINVAL; 219 229 } 220 230 221 231 return EOK; 222 232 } … … 224 234 int main(int argc, char *argv[]) 225 235 { 226 struct sockaddr *address;227 struct sockaddr_in address_in;228 struct sockaddr_in6 address_in6;229 socklen_t addrlen;230 uint8_t *address_start;231 232 int *socket_ids;233 char *data;234 236 int index; 235 struct timeval time_before;236 struct timeval time_after;237 238 237 int rc; 239 240 size = 28; 241 verbose = false; 242 type = SOCK_DGRAM; 243 sockets = 10; 244 messages = 10; 245 family = PF_INET; 246 port = 7; 247 238 248 239 /* 249 240 * Parse the command line arguments. … … 253 244 for (index = 1; (index < argc - 1) || ((index == argc - 1) && 254 245 (argv[index][0] == '-')); ++index) { 255 256 246 /* Options should start with dash ('-') */ 257 247 if (argv[index][0] == '-') { … … 264 254 } 265 255 } 266 267 /* If not before the last argument containing the address*/256 257 /* The last argument containing the host */ 268 258 if (index >= argc) { 269 printf(" Command line error: missing address\n");259 printf("Host name missing.\n"); 270 260 nettest2_print_help(); 271 261 return EINVAL; 272 262 } 273 263 264 char *addr_s = argv[argc - 1]; 265 266 /* Interpret as address */ 267 inet_addr_t addr_addr; 268 rc = inet_addr_parse(addr_s, &addr_addr); 269 270 if (rc != EOK) { 271 /* Interpret as a host name */ 272 dnsr_hostinfo_t *hinfo = NULL; 273 rc = dnsr_name2host(addr_s, &hinfo, family); 274 275 if (rc != EOK) { 276 printf("Error resolving host '%s'.\n", addr_s); 277 return EINVAL; 278 } 279 280 addr_addr = hinfo->addr; 281 } 282 283 struct sockaddr_in addr; 284 struct sockaddr_in6 addr6; 285 uint16_t af = inet_addr_sockaddr_in(&addr_addr, &addr, &addr6); 286 287 if (af != family) { 288 printf("Address family does not match explicitly set family.\n"); 289 return EINVAL; 290 } 291 274 292 /* Prepare the address buffer */ 275 276 switch (family) { 277 case PF_INET: 278 address_in.sin_family = AF_INET; 279 address_in.sin_port = htons(port); 280 address = (struct sockaddr *) &address_in; 281 addrlen = sizeof(address_in); 282 address_start = (uint8_t *) &address_in.sin_addr.s_addr; 283 break; 284 case PF_INET6: 285 address_in6.sin6_family = AF_INET6; 286 address_in6.sin6_port = htons(port); 287 address = (struct sockaddr *) &address_in6; 288 addrlen = sizeof(address_in6); 289 address_start = (uint8_t *) &address_in6.sin6_addr.s6_addr; 293 294 struct sockaddr *address; 295 socklen_t addrlen; 296 297 switch (af) { 298 case AF_INET: 299 addr.sin_port = htons(port); 300 address = (struct sockaddr *) &addr; 301 addrlen = sizeof(addr); 302 break; 303 case AF_INET6: 304 addr6.sin6_port = htons(port); 305 address = (struct sockaddr *) &addr6; 306 addrlen = sizeof(addr6); 290 307 break; 291 308 default: … … 293 310 return EAFNOSUPPORT; 294 311 } 295 296 /* Parse the last argument which should contain the address. */ 297 rc = inet_pton(family, argv[argc - 1], address_start); 298 if (rc != EOK) { 299 fprintf(stderr, "Address parse error %d\n", rc); 300 return rc; 301 } 302 312 303 313 /* Check data buffer size. */ 304 314 if (size <= 0) { … … 307 317 size = 1024; 308 318 } 309 319 310 320 /* 311 321 * Prepare the buffer. Allocate size bytes plus one for terminating 312 322 * null character. 313 323 */ 314 data = (char *) malloc(size + 1);324 char *data = (char *) malloc(size + 1); 315 325 if (!data) { 316 326 fprintf(stderr, "Failed to allocate data buffer.\n"); 317 327 return ENOMEM; 318 328 } 319 329 320 330 /* Fill buffer with a pattern. */ 321 331 nettest2_fill_buffer(data, size); 322 332 323 333 /* Check socket count. */ 324 334 if (sockets <= 0) { … … 327 337 sockets = 2; 328 338 } 329 339 330 340 /* 331 341 * Prepare the socket buffer. 332 342 * Allocate count entries plus the terminating null (\0) 333 343 */ 334 socket_ids = (int *) malloc(sizeof(int) * (sockets + 1));344 int *socket_ids = (int *) malloc(sizeof(int) * (sockets + 1)); 335 345 if (!socket_ids) { 336 346 fprintf(stderr, "Failed to allocate receive buffer.\n"); 337 347 return ENOMEM; 338 348 } 349 339 350 socket_ids[sockets] = 0; 340 351 341 352 if (verbose) 342 353 printf("Starting tests\n"); 343 354 344 355 rc = sockets_create(verbose, socket_ids, sockets, family, type); 345 356 if (rc != EOK) 346 357 return rc; 347 358 348 359 if (type == SOCK_STREAM) { 349 360 rc = sockets_connect(verbose, socket_ids, sockets, … … 352 363 return rc; 353 364 } 354 365 355 366 if (verbose) 356 367 printf("\n"); 357 368 369 struct timeval time_before; 358 370 rc = gettimeofday(&time_before, NULL); 359 371 if (rc != EOK) { … … 361 373 return rc; 362 374 } 363 375 364 376 rc = sockets_sendto_recvfrom(verbose, socket_ids, sockets, address, 365 &addrlen, data, size, messages );377 &addrlen, data, size, messages, type); 366 378 if (rc != EOK) 367 379 return rc; 368 380 381 struct timeval time_after; 369 382 rc = gettimeofday(&time_after, NULL); 370 383 if (rc != EOK) { … … 372 385 return rc; 373 386 } 374 387 375 388 if (verbose) 376 389 printf("\tOK\n"); 377 390 378 391 printf("sendto + recvfrom tested in %ld microseconds\n", 379 392 tv_sub(&time_after, &time_before)); 380 393 381 394 rc = gettimeofday(&time_before, NULL); 382 395 if (rc != EOK) { … … 384 397 return rc; 385 398 } 386 399 387 400 rc = sockets_sendto(verbose, socket_ids, sockets, address, addrlen, 388 data, size, messages );401 data, size, messages, type); 389 402 if (rc != EOK) 390 403 return rc; 391 404 392 405 rc = sockets_recvfrom(verbose, socket_ids, sockets, address, &addrlen, 393 406 data, size, messages); 394 407 if (rc != EOK) 395 408 return rc; 396 409 397 410 rc = gettimeofday(&time_after, NULL); 398 411 if (rc != EOK) { … … 400 413 return rc; 401 414 } 402 415 403 416 if (verbose) 404 417 printf("\tOK\n"); 405 418 406 419 printf("sendto, recvfrom tested in %ld microseconds\n", 407 420 tv_sub(&time_after, &time_before)); 408 421 409 422 rc = sockets_close(verbose, socket_ids, sockets); 410 423 if (rc != EOK) 411 424 return rc; 412 425 413 426 if (verbose) 414 427 printf("\nExiting\n"); 415 428 416 429 return EOK; 417 430 } -
uspace/app/nettest3/nettest3.c
r52f1882 rdb71e2a 39 39 #include <str.h> 40 40 41 #include <inet/dnsr.h> 41 42 #include <net/in.h> 42 43 #include <net/in6.h> … … 60 61 int fd; 61 62 char *endptr; 63 dnsr_hostinfo_t *hinfo; 62 64 63 65 port = 7; 64 66 65 data = (char *) "Hello World!";67 data = (char *) "Hello World!"; 66 68 size = str_size(data); 67 69 … … 75 77 rc = inet_pton(AF_INET, argv[1], (uint8_t *)&addr.sin_addr.s_addr); 76 78 if (rc != EOK) { 77 fprintf(stderr, "Error parsing address\n"); 78 return 1; 79 /* Try interpreting as a host name */ 80 rc = dnsr_name2host(argv[1], &hinfo, AF_INET); 81 if (rc != EOK) { 82 printf("Error resolving host '%s'.\n", argv[1]); 83 return rc; 84 } 85 86 uint16_t af = inet_addr_sockaddr_in(&hinfo->addr, &addr, NULL); 87 if (af != AF_INET) { 88 printf("Host '%s' not resolved as IPv4 address.\n", argv[1]); 89 return rc; 90 } 79 91 } 80 92 printf("result: rc=%d, family=%d, addr=%x\n", rc, … … 98 110 99 111 printf("connect()\n"); 100 rc = connect(fd, (struct sockaddr *) &addr, sizeof(addr));112 rc = connect(fd, (struct sockaddr *) &addr, sizeof(addr)); 101 113 printf(" -> %d\n", rc); 102 114 if (rc != 0) … … 115 127 } while (rc > 0); 116 128 117 async_usleep(1000 *1000);129 async_usleep(1000 * 1000); 118 130 119 131 printf("closesocket()\n"); … … 124 136 } 125 137 126 127 138 /** @} 128 139 */ -
uspace/app/nterm/conn.c
r52f1882 rdb71e2a 33 33 */ 34 34 35 #include <byteorder.h> 35 36 #include <stdbool.h> 36 37 #include <errno.h> 37 38 #include <fibril.h> 39 #include <inet/dnsr.h> 38 40 #include <net/socket.h> 39 41 #include <stdio.h> … … 73 75 int conn_open(const char *addr_s, const char *port_s) 74 76 { 77 int conn_fd = -1; 78 79 /* Interpret as address */ 80 inet_addr_t addr_addr; 81 int rc = inet_addr_parse(addr_s, &addr_addr); 82 83 if (rc != EOK) { 84 /* Interpret as a host name */ 85 dnsr_hostinfo_t *hinfo = NULL; 86 rc = dnsr_name2host(addr_s, &hinfo, 0); 87 88 if (rc != EOK) { 89 printf("Error resolving host '%s'.\n", addr_s); 90 goto error; 91 } 92 93 addr_addr = hinfo->addr; 94 } 95 75 96 struct sockaddr_in addr; 76 int rc; 97 struct sockaddr_in6 addr6; 98 uint16_t af = inet_addr_sockaddr_in(&addr_addr, &addr, &addr6); 99 77 100 char *endptr; 78 79 addr.sin_family = AF_INET; 80 81 rc = inet_pton(addr.sin_family, addr_s, (uint8_t *)&addr.sin_addr); 82 if (rc != EOK) { 83 printf("Invalid addres %s\n", addr_s); 84 return EINVAL; 85 } 86 87 addr.sin_port = htons(strtol(port_s, &endptr, 10)); 101 uint16_t port = strtol(port_s, &endptr, 10); 88 102 if (*endptr != '\0') { 89 103 printf("Invalid port number %s\n", port_s); 90 return EINVAL;104 goto error; 91 105 } 92 106 107 printf("Connecting to host %s port %u\n", addr_s, port); 108 93 109 conn_fd = socket(PF_INET, SOCK_STREAM, 0); 94 110 if (conn_fd < 0) 95 111 goto error; 96 97 printf("Connecting to address %s port %u\n", addr_s, ntohs(addr.sin_port)); 98 99 rc = connect(conn_fd, (struct sockaddr *)&addr, sizeof(addr)); 112 113 switch (af) { 114 case AF_INET: 115 addr.sin_port = htons(port); 116 rc = connect(conn_fd, (struct sockaddr *) &addr, sizeof(addr)); 117 break; 118 case AF_INET6: 119 addr6.sin6_port = htons(port); 120 rc = connect(conn_fd, (struct sockaddr *) &addr6, sizeof(addr6)); 121 break; 122 default: 123 printf("Unknown address family.\n"); 124 goto error; 125 } 126 100 127 if (rc != EOK) 101 128 goto error; 102 129 103 130 rcv_fid = fibril_create(rcv_fibril, NULL); 104 131 if (rcv_fid == 0) 105 132 goto error; 106 133 107 134 fibril_add_ready(rcv_fid); 108 135 109 136 return EOK; 110 137 111 138 error: 112 139 if (conn_fd >= 0) { … … 114 141 conn_fd = -1; 115 142 } 116 143 117 144 return EIO; 118 145 } … … 120 147 int conn_send(void *data, size_t size) 121 148 { 122 int rc; 123 124 rc = send(conn_fd, data, size, 0); 149 int rc = send(conn_fd, data, size, 0); 125 150 if (rc != EOK) 126 151 return EIO; 127 152 128 153 return EOK; 129 154 } -
uspace/app/nterm/nterm.c
r52f1882 rdb71e2a 104 104 static void print_syntax(void) 105 105 { 106 printf("syntax: nterm < ip-address> <port>\n");106 printf("syntax: nterm <host> <port>\n"); 107 107 } 108 108 109 109 int main(int argc, char *argv[]) 110 110 { 111 kbd_event_t ev;111 cons_event_t ev; 112 112 int rc; 113 113 … … 129 129 done = false; 130 130 while (!done) { 131 console_get_ kbd_event(con, &ev);132 if (ev.type == KEY_PRESS)133 key_handle(&ev );131 console_get_event(con, &ev); 132 if (ev.type == CEV_KEY && ev.ev.key.type == KEY_PRESS) 133 key_handle(&ev.ev.key); 134 134 } 135 135 -
uspace/app/pcc/config.h
r52f1882 rdb71e2a 50 50 51 51 /* Define to 1 if you have the `mkstemp' function. */ 52 //#define HAVE_MKSTEMP 152 #define HAVE_MKSTEMP 1 53 53 54 54 /* Define to 1 if you have the `snprintf' function. */ -
uspace/app/ping/ping.c
r52f1882 rdb71e2a 1 1 /* 2 * Copyright (c) 201 2Jiri Svoboda2 * Copyright (c) 2013 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 37 37 #include <errno.h> 38 38 #include <fibril_synch.h> 39 #include <net/socket_codes.h> 40 #include <inet/dnsr.h> 41 #include <inet/addr.h> 39 42 #include <inet/inetping.h> 40 43 #include <io/console.h> … … 61 64 }; 62 65 63 static inet_addr_t src_addr;64 static inet_addr_t dest_addr;66 static addr32_t src; 67 static addr32_t dest; 65 68 66 69 static bool ping_repeat = false; … … 68 71 static void print_syntax(void) 69 72 { 70 printf("syntax: " NAME " [-r] <addr>\n"); 71 } 72 73 static int addr_parse(const char *text, inet_addr_t *addr) 74 { 75 unsigned long a[4]; 76 char *cp = (char *)text; 77 int i; 78 79 for (i = 0; i < 3; i++) { 80 a[i] = strtoul(cp, &cp, 10); 81 if (*cp != '.') 82 return EINVAL; 83 ++cp; 84 } 85 86 a[3] = strtoul(cp, &cp, 10); 87 if (*cp != '\0') 88 return EINVAL; 89 90 addr->ipv4 = 0; 91 for (i = 0; i < 4; i++) { 92 if (a[i] > 255) 93 return EINVAL; 94 addr->ipv4 = (addr->ipv4 << 8) | a[i]; 95 } 96 97 return EOK; 98 } 99 100 static int addr_format(inet_addr_t *addr, char **bufp) 101 { 102 int rc; 103 104 rc = asprintf(bufp, "%d.%d.%d.%d", addr->ipv4 >> 24, 105 (addr->ipv4 >> 16) & 0xff, (addr->ipv4 >> 8) & 0xff, 106 addr->ipv4 & 0xff); 107 108 if (rc < 0) 109 return ENOMEM; 110 111 return EOK; 73 printf("syntax: " NAME " [-r] <host>\n"); 112 74 } 113 75 … … 122 84 static int ping_ev_recv(inetping_sdu_t *sdu) 123 85 { 124 char *asrc, *adest; 125 int rc; 126 127 rc = addr_format(&sdu->src, &asrc); 86 inet_addr_t src_addr; 87 inet_addr_set(sdu->src, &src_addr); 88 89 inet_addr_t dest_addr; 90 inet_addr_set(sdu->dest, &dest_addr); 91 92 char *asrc; 93 int rc = inet_addr_format(&src_addr, &asrc); 128 94 if (rc != EOK) 129 95 return ENOMEM; 130 131 rc = addr_format(&sdu->dest, &adest); 96 97 char *adest; 98 rc = inet_addr_format(&dest_addr, &adest); 132 99 if (rc != EOK) { 133 100 free(asrc); 134 101 return ENOMEM; 135 102 } 103 136 104 printf("Received ICMP echo reply: from %s to %s, seq. no %u, " 137 105 "payload size %zu\n", asrc, adest, sdu->seq_no, sdu->size); 138 139 if (!ping_repeat) {106 107 if (!ping_repeat) 140 108 ping_signal_done(); 141 } 142 109 143 110 free(asrc); 144 111 free(adest); … … 151 118 int rc; 152 119 153 sdu.src = src _addr;154 sdu.dest = dest _addr;120 sdu.src = src; 121 sdu.dest = dest; 155 122 sdu.seq_no = seq_no; 156 123 sdu.data = (void *) "foo"; … … 188 155 { 189 156 console_ctrl_t *con; 190 kbd_event_t ev;157 cons_event_t ev; 191 158 192 159 con = console_init(stdin, stdout); … … 194 161 195 162 while (true) { 196 if (!console_get_ kbd_event(con, &ev))163 if (!console_get_event(con, &ev)) 197 164 break; 198 165 199 if (ev.type == KEY_PRESS && (ev.mods & (KM_ALT | KM_SHIFT)) == 200 0 && (ev.mods & KM_CTRL) != 0) { 166 if (ev.type == CEV_KEY && ev.ev.key.type == KEY_PRESS && 167 (ev.ev.key.mods & (KM_ALT | KM_SHIFT)) == 168 0 && (ev.ev.key.mods & KM_CTRL) != 0) { 201 169 /* Ctrl+key */ 202 if (ev. key == KC_Q) {170 if (ev.ev.key.key == KC_Q) { 203 171 ping_signal_done(); 204 172 return 0; … … 212 180 int main(int argc, char *argv[]) 213 181 { 182 dnsr_hostinfo_t *hinfo = NULL; 183 char *asrc = NULL; 184 char *adest = NULL; 185 char *sdest = NULL; 214 186 int rc; 215 187 int argi; … … 219 191 printf(NAME ": Failed connecting to internet ping service " 220 192 "(%d).\n", rc); 221 return 1;193 goto error; 222 194 } 223 195 … … 232 204 if (argc - argi != 1) { 233 205 print_syntax(); 234 return 1;206 goto error; 235 207 } 236 208 237 209 /* Parse destination address */ 238 rc = addr_parse(argv[argi], &dest_addr); 239 if (rc != EOK) { 240 printf(NAME ": Invalid address format.\n"); 241 print_syntax(); 242 return 1; 243 } 244 210 inet_addr_t dest_addr; 211 rc = inet_addr_parse(argv[argi], &dest_addr); 212 if (rc != EOK) { 213 /* Try interpreting as a host name */ 214 rc = dnsr_name2host(argv[argi], &hinfo, AF_INET); 215 if (rc != EOK) { 216 printf(NAME ": Error resolving host '%s'.\n", argv[argi]); 217 goto error; 218 } 219 220 dest_addr = hinfo->addr; 221 } 222 223 uint16_t af = inet_addr_get(&dest_addr, &dest, NULL); 224 if (af != AF_INET) { 225 printf(NAME ": Destination '%s' is not an IPv4 address.\n", 226 argv[argi]); 227 goto error; 228 } 229 245 230 /* Determine source address */ 246 rc = inetping_get_srcaddr( &dest_addr, &src_addr);231 rc = inetping_get_srcaddr(dest, &src); 247 232 if (rc != EOK) { 248 233 printf(NAME ": Failed determining source address.\n"); 249 return 1; 250 } 234 goto error; 235 } 236 237 inet_addr_t src_addr; 238 inet_addr_set(src, &src_addr); 239 240 rc = inet_addr_format(&src_addr, &asrc); 241 if (rc != EOK) { 242 printf(NAME ": Out of memory.\n"); 243 goto error; 244 } 245 246 rc = inet_addr_format(&dest_addr, &adest); 247 if (rc != EOK) { 248 printf(NAME ": Out of memory.\n"); 249 goto error; 250 } 251 252 if (hinfo != NULL) { 253 rc = asprintf(&sdest, "%s (%s)", hinfo->cname, adest); 254 if (rc < 0) { 255 printf(NAME ": Out of memory.\n"); 256 goto error; 257 } 258 } else { 259 sdest = adest; 260 adest = NULL; 261 } 262 263 printf("Sending ICMP echo request from %s to %s.\n", 264 asrc, sdest); 251 265 252 266 fid_t fid; … … 256 270 if (fid == 0) { 257 271 printf(NAME ": Failed creating transmit fibril.\n"); 258 return 1;272 goto error; 259 273 } 260 274 … … 264 278 if (fid == 0) { 265 279 printf(NAME ": Failed creating input fibril.\n"); 266 return 1;280 goto error; 267 281 } 268 282 … … 282 296 if (rc == ETIMEOUT) { 283 297 printf(NAME ": Echo request timed out.\n"); 284 return 1; 285 } 286 298 goto error; 299 } 300 301 free(asrc); 302 free(adest); 303 free(sdest); 304 dnsr_hostinfo_destroy(hinfo); 287 305 return 0; 306 307 error: 308 free(asrc); 309 free(adest); 310 free(sdest); 311 dnsr_hostinfo_destroy(hinfo); 312 return 1; 288 313 } 289 314 -
uspace/app/taskdump/symtab.c
r52f1882 rdb71e2a 267 267 continue; 268 268 269 if ( best_name == NULL || (saddr <= addr &&saddr > best_addr)) {269 if (saddr <= addr && (best_name == NULL || saddr > best_addr)) { 270 270 best_name = sname; 271 271 best_addr = saddr; -
uspace/app/tester/ipc/starve.c
r52f1882 rdb71e2a 62 62 break; 63 63 64 kbd_event_t ev;64 cons_event_t ev; 65 65 suseconds_t timeout = 0; 66 bool has_event = console_get_ kbd_event_timeout(console, &ev, &timeout);67 if (has_event && (ev.type == KEY_PRESS)) {68 TPRINTF("Key %d pressed, terminating.\n", ev. key);66 bool has_event = console_get_event_timeout(console, &ev, &timeout); 67 if (has_event && ev.type == CEV_KEY && ev.ev.key.type == KEY_PRESS) { 68 TPRINTF("Key %d pressed, terminating.\n", ev.ev.key.key); 69 69 break; 70 70 } -
uspace/app/tetris/scores.c
r52f1882 rdb71e2a 125 125 int j; 126 126 size_t off; 127 kbd_event_t ev; 127 cons_event_t ev; 128 kbd_event_t *kev; 128 129 129 130 clear_screen(); … … 141 142 while (1) { 142 143 console_flush(console); 143 if (!console_get_ kbd_event(console, &ev))144 if (!console_get_event(console, &ev)) 144 145 exit(1); 145 146 146 if (ev.type == KEY_RELEASE)147 if (ev.type != CEV_KEY || ev.ev.key.type == KEY_RELEASE) 147 148 continue; 148 149 149 if (ev.key == KC_ENTER || ev.key == KC_NENTER) 150 kev = &ev.ev.key; 151 152 if (kev->key == KC_ENTER || kev->key == KC_NENTER) 150 153 break; 151 154 152 if ( ev.key == KC_BACKSPACE) {155 if (kev->key == KC_BACKSPACE) { 153 156 if (i > 0) { 154 157 wchar_t uc; … … 166 169 scores[NUMSPOTS - 1].hs_name[off] = '\0'; 167 170 } 168 } else if ( ev.c != '\0') {171 } else if (kev->c != '\0') { 169 172 if (i < (MAXLOGNAME - 1)) { 170 if (chr_encode( ev.c, scores[NUMSPOTS - 1].hs_name,173 if (chr_encode(kev->c, scores[NUMSPOTS - 1].hs_name, 171 174 &off, STR_BOUNDS(MAXLOGNAME) + 1) == EOK) { 172 175 ++i; -
uspace/app/tetris/screen.c
r52f1882 rdb71e2a 344 344 345 345 while (timeout > 0) { 346 kbd_event_t event;347 348 if (!console_get_ kbd_event_timeout(console, &event, &timeout))346 cons_event_t event; 347 348 if (!console_get_event_timeout(console, &event, &timeout)) 349 349 break; 350 350 } … … 376 376 377 377 while (c == 0) { 378 kbd_event_t event;379 380 if (!console_get_ kbd_event_timeout(console, &event, &timeleft)) {378 cons_event_t event; 379 380 if (!console_get_event_timeout(console, &event, &timeleft)) { 381 381 timeleft = 0; 382 382 return -1; 383 383 } 384 384 385 if (event.type == KEY_PRESS)386 c = event. c;385 if (event.type == CEV_KEY && event.ev.key.type == KEY_PRESS) 386 c = event.ev.key.c; 387 387 } 388 388 … … 398 398 399 399 while (c == 0) { 400 kbd_event_t event;401 402 if (!console_get_ kbd_event(console, &event))400 cons_event_t event; 401 402 if (!console_get_event(console, &event)) 403 403 return -1; 404 404 405 if (event.type == KEY_PRESS)406 c = event. c;405 if (event.type == CEV_KEY && event.ev.key.type == KEY_PRESS) 406 c = event.ev.key.c; 407 407 } 408 408 -
uspace/app/top/screen.c
r52f1882 rdb71e2a 556 556 557 557 while (c == 0) { 558 kbd_event_t event;558 cons_event_t event; 559 559 560 560 warning_timeleft -= timeleft; 561 if (!console_get_ kbd_event_timeout(console, &event, &timeleft)) {561 if (!console_get_event_timeout(console, &event, &timeleft)) { 562 562 timeleft = 0; 563 563 return -1; … … 565 565 warning_timeleft += timeleft; 566 566 567 if (event.type == KEY_PRESS)568 c = event. c;567 if (event.type == CEV_KEY && event.ev.key.type == KEY_PRESS) 568 c = event.ev.key.c; 569 569 } 570 570 -
uspace/app/trace/ipc_desc.c
r52f1882 rdb71e2a 49 49 { IPC_M_DATA_READ, "DATA_READ" }, 50 50 { IPC_M_DEBUG, "DEBUG" }, 51 52 /* Terminating entry */53 { 0, NULL }54 51 }; 52 53 size_t ipc_methods_len = sizeof(ipc_methods) / sizeof(ipc_m_desc_t); 55 54 56 55 /** @} -
uspace/app/trace/ipc_desc.h
r52f1882 rdb71e2a 42 42 43 43 extern ipc_m_desc_t ipc_methods[]; 44 extern size_t ipc_methods_len; 44 45 45 46 #endif -
uspace/app/trace/ipcp.c
r52f1882 rdb71e2a 140 140 void ipcp_init(void) 141 141 { 142 ipc_m_desc_t *desc;143 oper_t *oper;144 145 142 val_type_t arg_def[OPER_MAX_ARGS] = { 146 143 V_INTEGER, … … 162 159 proto_system = proto_new("system"); 163 160 164 desc = ipc_methods; 165 while (desc->number != 0) { 166 oper = oper_new(desc->name, OPER_MAX_ARGS, arg_def, V_INTEGER, 167 OPER_MAX_ARGS, arg_def); 168 proto_add_oper(proto_system, desc->number, oper); 169 170 ++desc; 161 for (size_t i = 0; i < ipc_methods_len; i++) { 162 oper_t *oper = oper_new(ipc_methods[i].name, OPER_MAX_ARGS, 163 arg_def, V_INTEGER, OPER_MAX_ARGS, arg_def); 164 proto_add_oper(proto_system, ipc_methods[i].number, oper); 171 165 } 172 166 -
uspace/app/trace/syscalls.c
r52f1882 rdb71e2a 46 46 47 47 [SYS_TASK_GET_ID] = { "task_get_id", 1, V_ERRNO }, 48 [SYS_TASK_SET_NAME] = { "task_set_name", 2, V_ERRNO }, 48 49 [SYS_FUTEX_SLEEP] = { "futex_sleep_timeout", 3, V_ERRNO }, 49 50 [SYS_FUTEX_WAKEUP] = { "futex_wakeup", 1, V_ERRNO }, … … 82 83 }; 83 84 85 const size_t syscall_desc_len = (sizeof(syscall_desc) / sizeof(sc_desc_t)); 86 84 87 /** @} 85 88 */ -
uspace/app/trace/syscalls.h
r52f1882 rdb71e2a 36 36 #define SYSCALLS_H_ 37 37 38 #include <stdbool.h> 39 #include <unistd.h> 40 38 41 #include "trace.h" 39 42 … … 45 48 46 49 extern const sc_desc_t syscall_desc[]; 50 extern const size_t syscall_desc_len; 51 52 static inline bool syscall_desc_defined(unsigned sc_id) 53 { 54 return (sc_id < syscall_desc_len && syscall_desc[sc_id].name != NULL); 55 } 47 56 48 57 #endif -
uspace/app/trace/trace.c
r52f1882 rdb71e2a 136 136 } 137 137 138 free(task_ldr);139 138 task_ldr = NULL; 140 139 … … 348 347 if ((display_mask & DM_SYSCALL) != 0) { 349 348 /* Print syscall name and arguments */ 350 printf("%s", syscall_desc[sc_id].name); 351 print_sc_args(sc_args, syscall_desc[sc_id].n_args); 349 if (syscall_desc_defined(sc_id)) { 350 printf("%s", syscall_desc[sc_id].name); 351 print_sc_args(sc_args, syscall_desc[sc_id].n_args); 352 } 353 else { 354 printf("unknown_syscall<%d>", sc_id); 355 print_sc_args(sc_args, 6); 356 } 352 357 } 353 358 } … … 372 377 if ((display_mask & DM_SYSCALL) != 0) { 373 378 /* Print syscall return value */ 374 rv_type = syscall_desc[sc_id].rv_type; 379 if (syscall_desc_defined(sc_id)) 380 rv_type = syscall_desc[sc_id].rv_type; 381 else 382 rv_type = V_PTR; 375 383 print_sc_retval(sc_rc, rv_type); 376 384 } … … 497 505 ldr = loader_connect(); 498 506 if (ldr == NULL) 499 return 0;507 return NULL; 500 508 501 509 /* Get task ID. */ … … 557 565 static int cev_fibril(void *arg) 558 566 { 567 cons_event_t event; 568 559 569 (void) arg; 560 570 … … 567 577 fibril_mutex_unlock(&state_lock); 568 578 569 if (!console_get_ kbd_event(console, &cev))579 if (!console_get_event(console, &event)) 570 580 return -1; 571 581 572 fibril_mutex_lock(&state_lock); 573 cev_valid = true; 574 fibril_condvar_broadcast(&state_cv); 575 fibril_mutex_unlock(&state_lock); 582 if (event.type == CEV_KEY) { 583 fibril_mutex_lock(&state_lock); 584 cev = event.ev.key; 585 cev_valid = true; 586 fibril_condvar_broadcast(&state_cv); 587 fibril_mutex_unlock(&state_lock); 588 } 576 589 } 577 590 } -
uspace/app/vdemo/vdemo.c
r52f1882 rdb71e2a 141 141 lbl_action->cancel); 142 142 143 grid->add(grid, &lbl_action->label.widget, 0, 0, 1, 2);144 grid->add(grid, &btn_confirm->widget, 1, 0, 1, 1);143 grid->add(grid, &lbl_action->label.widget, 0, 0, 2, 1); 144 grid->add(grid, &btn_confirm->widget, 0, 1, 1, 1); 145 145 grid->add(grid, &btn_cancel->widget, 1, 1, 1, 1); 146 window_resize(main_window, 200, 7 0);146 window_resize(main_window, 200, 76); 147 147 148 148 window_exec(main_window); -
uspace/app/vlaunch/Makefile
r52f1882 rdb71e2a 35 35 36 36 SOURCES = \ 37 vlaunch.c 37 vlaunch.c \ 38 images.c 39 40 IMAGES = \ 41 gfx/helenos.tga 42 43 PRE_DEPEND = images.c images.h 44 EXTRA_CLEAN = images.c images.h 38 45 39 46 include $(USPACE_PREFIX)/Makefile.common 47 48 images.c images.h: $(IMAGES) 49 $(ROOT_PATH)/tools/mkarray.py images COMPOSITOR_IMAGES $^ -
uspace/app/vlaunch/vlaunch.c
r52f1882 rdb71e2a 46 46 #include <button.h> 47 47 #include <label.h> 48 #include <canvas.h> 48 49 49 #define NAME "vlaunch" 50 #include <surface.h> 51 #include <source.h> 52 #include <drawctx.h> 53 #include <codec/tga.h> 54 55 #include "images.h" 56 57 #define NAME "vlaunch" 58 59 #define LOGO_WIDTH 196 60 #define LOGO_HEIGHT 66 50 61 51 62 static char *winreg = NULL; … … 97 108 } 98 109 110 surface_t *logo = decode_tga((void *) helenos_tga, helenos_tga_size, 0); 111 if (!logo) { 112 printf("Unable to decode logo.\n"); 113 return 1; 114 } 115 99 116 winreg = argv[1]; 100 117 window_t *main_window = window_open(argv[1], true, true, "vlaunch", 0, 0); … … 104 121 } 105 122 106 pixel_t grd_bg = PIXEL(255, 2 40, 240, 240);123 pixel_t grd_bg = PIXEL(255, 255, 255, 255); 107 124 pixel_t btn_bg = PIXEL(255, 0, 0, 0); 108 125 pixel_t btn_fg = PIXEL(255, 240, 240, 240); 109 pixel_t lbl_bg = PIXEL(255, 2 40, 240, 240);126 pixel_t lbl_bg = PIXEL(255, 255, 255, 255); 110 127 pixel_t lbl_fg = PIXEL(255, 0, 0, 0); 111 128 129 canvas_t *logo_canvas = create_canvas(NULL, LOGO_WIDTH, LOGO_HEIGHT, 130 logo); 112 131 label_t *lbl_caption = create_label(NULL, "Launch application:", 16, 113 132 lbl_bg, lbl_fg); … … 118 137 button_t *btn_vlaunch = create_button(NULL, "vlaunch", 16, btn_bg, 119 138 btn_fg); 120 grid_t *grid = create_grid(window_root(main_window), 4, 1, grd_bg);139 grid_t *grid = create_grid(window_root(main_window), 1, 5, grd_bg); 121 140 122 if ((!l bl_caption) || (!btn_vterm) || (!btn_vdemo) ||123 (!btn_v launch) || (!grid)) {141 if ((!logo_canvas) || (!lbl_caption) || (!btn_vterm) || 142 (!btn_vdemo) || (!btn_vlaunch) || (!grid)) { 124 143 window_close(main_window); 125 144 printf("Cannot create widgets.\n"); … … 131 150 sig_connect(&btn_vlaunch->clicked, NULL, on_vlaunch); 132 151 133 grid->add(grid, &lbl_caption->widget, 0, 0, 1, 1); 134 grid->add(grid, &btn_vterm->widget, 1, 0, 1, 1); 135 grid->add(grid, &btn_vdemo->widget, 2, 0, 1, 1); 136 grid->add(grid, &btn_vlaunch->widget, 3, 0, 1, 1); 152 grid->add(grid, &logo_canvas->widget, 0, 0, 1, 1); 153 grid->add(grid, &lbl_caption->widget, 0, 1, 1, 1); 154 grid->add(grid, &btn_vterm->widget, 0, 2, 1, 1); 155 grid->add(grid, &btn_vdemo->widget, 0, 3, 1, 1); 156 grid->add(grid, &btn_vlaunch->widget, 0, 4, 1, 1); 137 157 138 window_resize(main_window, 180, 130);158 window_resize(main_window, 210, 130 + LOGO_HEIGHT); 139 159 window_exec(main_window); 160 140 161 task_retval(0); 141 162 async_manager();
Note:
See TracChangeset
for help on using the changeset viewer.
