Changeset 79ae36dd in mainline for uspace/app
- Timestamp:
- 2011-06-08T19:01:55Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0eff68e
- Parents:
- 764d71e
- Location:
- uspace/app
- Files:
-
- 4 deleted
- 34 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/bdsh/cmds/modules/bdd/bdd.c
r764d71e r79ae36dd 102 102 } 103 103 104 rc = block_init( handle, 2048);104 rc = block_init(EXCHANGE_SERIALIZE, handle, 2048); 105 105 if (rc != EOK) { 106 106 printf("%s: Error initializing libblock.\n", cmdname); -
uspace/app/bdsh/cmds/modules/cat/cat.c
r764d71e r79ae36dd 64 64 static sysarg_t console_rows = 0; 65 65 static bool should_quit = false; 66 67 static console_ctrl_t *console = NULL; 66 68 67 69 static struct option const long_options[] = { … … 102 104 static void waitprompt() 103 105 { 104 console_set_pos(fphone(stdout), 0, console_rows-1); 105 console_set_color(fphone(stdout), COLOR_BLUE, COLOR_WHITE, 0); 106 console_set_pos(console, 0, console_rows-1); 107 console_set_color(console, COLOR_BLUE, COLOR_WHITE, 0); 108 106 109 printf("ENTER/SPACE/PAGE DOWN - next page, " 107 110 "ESC/Q - quit, C - continue unpaged"); 108 111 fflush(stdout); 109 console_set_style(fphone(stdout), STYLE_NORMAL); 112 113 console_set_style(console, STYLE_NORMAL); 110 114 } 111 115 112 116 static void waitkey() 113 117 { 114 console_event_t ev;118 kbd_event_t ev; 115 119 116 120 while (true) { 117 if (!console_get_ event(fphone(stdin), &ev)) {121 if (!console_get_kbd_event(console, &ev)) { 118 122 return; 119 123 } … … 138 142 static void newpage() 139 143 { 140 console_clear( fphone(stdout));144 console_clear(console); 141 145 chars_remaining = console_cols; 142 lines_remaining = console_rows -1;146 lines_remaining = console_rows - 1; 143 147 } 144 148 … … 238 242 console_rows = 0; 239 243 should_quit = false; 244 console = console_init(stdin, stdout); 240 245 241 246 argc = cli_count_args(argv); … … 280 285 281 286 if (more) { 282 rc = console_get_size( fphone(stdout), &cols, &rows);287 rc = console_get_size(console, &cols, &rows); 283 288 if (rc != EOK) { 284 289 printf("%s - cannot get console size\n", cmdname); -
uspace/app/bdsh/cmds/modules/kcon/kcon.c
r764d71e r79ae36dd 32 32 #include <stdlib.h> 33 33 #include <io/console.h> 34 #include <vfs/vfs.h>35 34 #include "config.h" 36 35 #include "util.h" … … 42 41 static const char *cmdname = "kcon"; 43 42 44 /* Disp ayshelp for kcon in various levels */43 /* Display help for kcon in various levels */ 45 44 void help_cmd_kcon(unsigned int level) 46 45 { 47 46 printf("`kcon' switches to the kernel debug console.\n"); 48 49 if (level != HELP_SHORT) { 50 printf("Usage: %s\n", cmdname); 51 } 52 47 48 if (level != HELP_SHORT) 49 printf("Usage: %s\n", cmdname); 50 53 51 return; 54 52 } … … 57 55 int cmd_kcon(char **argv) 58 56 { 59 unsigned int argc; 60 61 argc = cli_count_args(argv); 62 57 unsigned int argc = cli_count_args(argv); 58 63 59 if (argc != 1) { 64 60 printf("%s - incorrect number of arguments. Try `%s --help'\n", 65 61 cmdname, cmdname); 66 62 return CMD_FAILURE; 67 63 } 68 69 console_kcon_enable(fphone(stdout)); 70 71 return CMD_SUCCESS; 64 65 if (console_kcon()) 66 return CMD_SUCCESS; 67 else 68 return CMD_FAILURE; 72 69 } 73 -
uspace/app/bdsh/input.c
r764d71e r79ae36dd 110 110 char *str; 111 111 int rc; 112 113 fflush(stdout);114 console_set_style( fphone(stdout), STYLE_EMPHASIS);112 113 console_flush(tinput->console); 114 console_set_style(tinput->console, STYLE_EMPHASIS); 115 115 printf("%s", usr->prompt); 116 fflush(stdout);117 console_set_style( fphone(stdout), STYLE_NORMAL);116 console_flush(tinput->console); 117 console_set_style(tinput->console, STYLE_NORMAL); 118 118 119 119 rc = tinput_read(tinput, &str); -
uspace/app/blkdump/blkdump.c
r764d71e r79ae36dd 134 134 } 135 135 136 rc = block_init( handle, 2048);136 rc = block_init(EXCHANGE_SERIALIZE, handle, 2048); 137 137 if (rc != EOK) { 138 138 printf(NAME ": Error initializing libblock.\n"); -
uspace/app/edit/edit.c
r764d71e r79ae36dd 94 94 } doc_t; 95 95 96 static intcon;96 static console_ctrl_t *con; 97 97 static doc_t doc; 98 98 static bool done; … … 115 115 static void cursor_setvis(bool visible); 116 116 117 static void key_handle_unmod( console_event_t const *ev);118 static void key_handle_ctrl( console_event_t const *ev);119 static void key_handle_shift( console_event_t const *ev);117 static void key_handle_unmod(kbd_event_t const *ev); 118 static void key_handle_ctrl(kbd_event_t const *ev); 119 static void key_handle_shift(kbd_event_t const *ev); 120 120 static void key_handle_movement(unsigned int key, bool shift); 121 121 … … 158 158 int main(int argc, char *argv[]) 159 159 { 160 console_event_t ev;160 kbd_event_t ev; 161 161 coord_t coord; 162 162 bool new_file; … … 164 164 spt_t pt; 165 165 166 con = fphone(stdout);166 con = console_init(stdin, stdout); 167 167 console_clear(con); 168 168 … … 219 219 220 220 while (!done) { 221 console_get_ event(con, &ev);221 console_get_kbd_event(con, &ev); 222 222 pane.rflags = 0; 223 223 … … 277 277 278 278 /** Handle key without modifier. */ 279 static void key_handle_unmod( console_event_t const *ev)279 static void key_handle_unmod(kbd_event_t const *ev) 280 280 { 281 281 switch (ev->key) { … … 320 320 321 321 /** Handle Shift-key combination. */ 322 static void key_handle_shift( console_event_t const *ev)322 static void key_handle_shift(kbd_event_t const *ev) 323 323 { 324 324 switch (ev->key) { … … 344 344 345 345 /** Handle Ctrl-key combination. */ 346 static void key_handle_ctrl( console_event_t const *ev)346 static void key_handle_ctrl(kbd_event_t const *ev) 347 347 { 348 348 switch (ev->key) { … … 497 497 static char *filename_prompt(char const *prompt, char const *init_value) 498 498 { 499 console_event_t ev;499 kbd_event_t ev; 500 500 char *str; 501 501 wchar_t buffer[INFNAME_MAX_LEN + 1]; … … 517 517 518 518 while (!done) { 519 console_get_ event(con, &ev);519 console_get_kbd_event(con, &ev); 520 520 521 521 if (ev.type == KEY_PRESS) { … … 531 531 if (nc > 0) { 532 532 putchar('\b'); 533 fflush(stdout);533 console_flush(con); 534 534 --nc; 535 535 } … … 541 541 if (ev.c >= 32 && nc < max_len) { 542 542 putchar(ev.c); 543 fflush(stdout);543 console_flush(con); 544 544 buffer[nc++] = ev.c; 545 545 } … … 689 689 for (j = 0; j < scr_columns; ++j) 690 690 putchar(' '); 691 fflush(stdout);691 console_flush(con); 692 692 } 693 693 … … 757 757 if (coord_cmp(&csel_start, &rbc) <= 0 && 758 758 coord_cmp(&rbc, &csel_end) < 0) { 759 fflush(stdout);759 console_flush(con); 760 760 console_set_style(con, STYLE_SELECTED); 761 fflush(stdout);761 console_flush(con); 762 762 } 763 763 … … 768 768 while (pos < size) { 769 769 if ((csel_start.row == rbc.row) && (csel_start.column == s_column)) { 770 fflush(stdout);770 console_flush(con); 771 771 console_set_style(con, STYLE_SELECTED); 772 fflush(stdout);772 console_flush(con); 773 773 } 774 774 775 775 if ((csel_end.row == rbc.row) && (csel_end.column == s_column)) { 776 fflush(stdout);776 console_flush(con); 777 777 console_set_style(con, STYLE_NORMAL); 778 fflush(stdout);778 console_flush(con); 779 779 } 780 780 … … 794 794 795 795 if ((csel_end.row == rbc.row) && (csel_end.column == s_column)) { 796 fflush(stdout);796 console_flush(con); 797 797 console_set_style(con, STYLE_NORMAL); 798 fflush(stdout);798 console_flush(con); 799 799 } 800 800 … … 808 808 for (j = 0; j < fill; ++j) 809 809 putchar(' '); 810 fflush(stdout);810 console_flush(con); 811 811 console_set_style(con, STYLE_NORMAL); 812 812 } … … 833 833 int pos = scr_columns - 1 - n; 834 834 printf("%*s", pos, ""); 835 fflush(stdout);835 console_flush(con); 836 836 console_set_style(con, STYLE_NORMAL); 837 837 … … 1158 1158 int pos = -(scr_columns - 3); 1159 1159 printf(" %*s ", pos, str); 1160 fflush(stdout);1160 console_flush(con); 1161 1161 console_set_style(con, STYLE_NORMAL); 1162 1162 -
uspace/app/init/init.c
r764d71e r79ae36dd 176 176 static void console(const char *dev) 177 177 { 178 char hid_in[DEVMAP_NAME_MAXLEN]; 179 int rc; 180 181 snprintf(hid_in, DEVMAP_NAME_MAXLEN, "%s/%s", DEVFS_MOUNT_POINT, dev); 182 183 printf("%s: Spawning %s %s\n", NAME, SRV_CONSOLE, hid_in); 178 printf("%s: Spawning %s %s\n", NAME, SRV_CONSOLE, dev); 184 179 185 180 /* Wait for the input device to be ready */ 186 181 devmap_handle_t handle; 187 rc = devmap_device_get_handle(dev, &handle, IPC_FLAG_BLOCKING);188 if (rc != EOK) { 189 printf("%s: Error waiting on %s (%s)\n", NAME, hid_in,190 str_error(rc)); 191 return; 192 } 193 194 rc = task_spawnl(NULL, SRV_CONSOLE, SRV_CONSOLE, hid_in, NULL);182 int rc = devmap_device_get_handle(dev, &handle, IPC_FLAG_BLOCKING); 183 if (rc != EOK) { 184 printf("%s: Error waiting on %s (%s)\n", NAME, dev, 185 str_error(rc)); 186 return; 187 } 188 189 rc = task_spawnl(NULL, SRV_CONSOLE, SRV_CONSOLE, dev, NULL); 195 190 if (rc != EOK) { 196 191 printf("%s: Error spawning %s %s (%s)\n", NAME, SRV_CONSOLE, 197 hid_in, str_error(rc));192 dev, str_error(rc)); 198 193 } 199 194 } -
uspace/app/mkbd/main.c
r764d71e r79ae36dd 45 45 #include <devmap.h> 46 46 #include <usb/dev/hub.h> 47 //#include <usb/host.h>48 //#include <usb/driver.h>49 47 #include <usb/hid/iface.h> 50 48 #include <usb/dev/pipes.h> … … 58 56 #define NAME "mkbd" 59 57 60 static int dev_phone = -1;61 62 static int initialize_report_parser( int dev_phone, usb_hid_report_t **report)63 { 64 *report = (usb_hid_report_t *)malloc(sizeof(usb_hid_report_t)); 65 if (*report == NULL) {66 return ENOMEM;67 }58 static async_sess_t *dev_sess = NULL; 59 60 static int initialize_report_parser(async_sess_t *dev_sess, 61 usb_hid_report_t **report) 62 { 63 *report = (usb_hid_report_t *) malloc(sizeof(usb_hid_report_t)); 64 if (*report == NULL) 65 return ENOMEM; 68 66 69 67 int rc = usb_hid_report_init(*report); … … 71 69 usb_hid_free_report(*report); 72 70 *report = NULL; 73 //printf("usb_hid_report_init() failed.\n"); 74 return rc; 75 } 76 77 // get the report descriptor length from the device 71 return rc; 72 } 73 74 /* Get the report descriptor length from the device */ 78 75 size_t report_desc_size; 79 rc = usbhid_dev_get_report_descriptor_length( 80 dev_phone, &report_desc_size); 81 if (rc != EOK) { 82 usb_hid_free_report(*report); 83 *report = NULL; 84 //printf("usbhid_dev_get_report_descriptor_length() failed.\n"); 76 rc = usbhid_dev_get_report_descriptor_length(dev_sess, 77 &report_desc_size); 78 if (rc != EOK) { 79 usb_hid_free_report(*report); 80 *report = NULL; 85 81 return rc; 86 82 } … … 89 85 usb_hid_free_report(*report); 90 86 *report = NULL; 91 // printf("usbhid_dev_get_report_descriptor_length() returned 0.\n");92 return EINVAL; // TODO: other error code?93 } 94 95 uint8_t *desc = (uint8_t *) malloc(report_desc_size);87 // TODO: other error code? 88 return EINVAL; 89 } 90 91 uint8_t *desc = (uint8_t *) malloc(report_desc_size); 96 92 if (desc == NULL) { 97 93 usb_hid_free_report(*report); … … 100 96 } 101 97 102 / / get the report descriptor from the device98 /* Get the report descriptor from the device */ 103 99 size_t actual_size; 104 rc = usbhid_dev_get_report_descriptor(dev_ phone, desc, report_desc_size,100 rc = usbhid_dev_get_report_descriptor(dev_sess, desc, report_desc_size, 105 101 &actual_size); 106 102 if (rc != EOK) { … … 108 104 *report = NULL; 109 105 free(desc); 110 //printf("usbhid_dev_get_report_descriptor() failed.\n");111 106 return rc; 112 107 } … … 116 111 *report = NULL; 117 112 free(desc); 118 // printf("usbhid_dev_get_report_descriptor() returned wrong size:" 119 // " %zu, expected: %zu.\n", actual_size, report_desc_size); 120 return EINVAL; // TODO: other error code? 121 } 122 123 // initialize the report parser 113 // TODO: other error code? 114 return EINVAL; 115 } 116 117 /* Initialize the report parser */ 124 118 125 119 rc = usb_hid_parse_report_descriptor(*report, desc, report_desc_size); … … 128 122 if (rc != EOK) { 129 123 free(desc); 130 // printf("usb_hid_parse_report_descriptor() failed.\n");131 124 return rc; 132 125 } … … 140 133 assert(report != NULL); 141 134 142 // printf("Calling usb_hid_parse_report() with size %zu and "143 // "buffer: \n", size);144 // for (size_t i = 0; i < size; ++i) {145 // printf(" %X ", buffer[i]);146 // }147 // printf("\n");148 149 135 uint8_t report_id; 150 136 int rc = usb_hid_parse_report(report, buffer, size, &report_id); 151 if (rc != EOK) { 152 // printf("Error parsing report: %s\n", str_error(rc)); 137 if (rc != EOK) 153 138 return; 154 }155 139 156 140 usb_hid_report_path_t *path = usb_hid_report_path(); … … 164 148 165 149 usb_hid_report_field_t *field = usb_hid_report_get_sibling( 166 report, NULL, path, USB_HID_PATH_COMPARE_END 167 | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 150 report, NULL, path, USB_HID_PATH_COMPARE_END 151 | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 168 152 USB_HID_REPORT_TYPE_INPUT); 169 153 170 // printf("Field: %p\n", field);171 172 154 while (field != NULL) { 173 // printf("Field usage: %u, field value: %d\n", field->usage,174 // field->value);175 155 if (field->value != 0) { 176 156 const char *key_str = … … 183 163 | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 184 164 USB_HID_REPORT_TYPE_INPUT); 185 // printf("Next field: %p\n", field);186 165 } 187 166 … … 194 173 { 195 174 #define _INDENT " " 196 197 printf(NAME ": Print out what multimedia keys were pressed.\n\n"); 198 printf("Usage: %s device\n", app_name); 199 printf(_INDENT "The device is a devman path to the device.\n"); 200 175 printf(NAME ": Print out what multimedia keys were pressed.\n\n"); 176 printf("Usage: %s device\n", app_name); 177 printf(_INDENT "The device is a devman path to the device.\n"); 201 178 #undef _OPTION 202 179 #undef _INDENT … … 223 200 } 224 201 225 rc = devman_device_connect(dev_handle, 0); 226 if (rc < 0) { 202 async_sess_t *sess = devman_device_connect(EXCHANGE_SERIALIZE, 203 dev_handle, 0); 204 if (!sess) { 227 205 printf(NAME ": failed to connect to the device (handle %" 228 PRIun "): %s.\n", dev_handle, str_error(rc)); 229 return rc; 230 } 231 232 dev_phone = rc; 233 // printf("Got phone to the device: %d\n", dev_phone); 206 PRIun "): %s.\n", dev_handle, str_error(errno)); 207 return errno; 208 } 209 210 dev_sess = sess; 234 211 235 212 char path[MAX_PATH_LENGTH]; … … 243 220 244 221 usb_hid_report_t *report = NULL; 245 rc = initialize_report_parser(dev_ phone, &report);222 rc = initialize_report_parser(dev_sess, &report); 246 223 if (rc != EOK) { 247 224 printf("Failed to initialize report parser: %s\n", … … 253 230 254 231 size_t size; 255 rc = usbhid_dev_get_event_length(dev_ phone, &size);232 rc = usbhid_dev_get_event_length(dev_sess, &size); 256 233 if (rc != EOK) { 257 234 printf("Failed to get event length: %s.\n", str_error(rc)); … … 259 236 } 260 237 261 // printf("Event length: %zu\n", size);262 238 uint8_t *event = (uint8_t *)malloc(size); 263 239 if (event == NULL) { 264 // hangup phone? 265 return ENOMEM; 266 } 267 268 // printf("Event length: %zu\n", size); 240 // TODO: hangup phone? 241 return ENOMEM; 242 } 269 243 270 244 size_t actual_size; 271 245 int event_nr; 272 246 273 while (1) { 274 // get event from the driver 275 // printf("Getting event from the driver.\n"); 276 247 while (true) { 277 248 /** @todo Try blocking call. */ 278 rc = usbhid_dev_get_event(dev_ phone, event, size, &actual_size,249 rc = usbhid_dev_get_event(dev_sess, event, size, &actual_size, 279 250 &event_nr, 0); 280 251 if (rc != EOK) { 281 // hangup phone?252 // TODO: hangup phone? 282 253 printf("Error in getting event from the HID driver:" 283 254 "%s.\n", str_error(rc)); … … 285 256 } 286 257 287 // printf("Got buffer: %p, size: %zu, max size: %zu\n", event,288 // actual_size, size);289 290 // printf("Event number: %d, my actual event: %d\n", event_nr,291 // act_event);292 258 if (event_nr > act_event) { 293 259 print_key(event, size, report); … … 301 267 } 302 268 303 304 269 /** @} 305 270 */ -
uspace/app/mkfat/mkfat.c
r764d71e r79ae36dd 144 144 } 145 145 146 rc = block_init( handle, 2048);146 rc = block_init(EXCHANGE_SERIALIZE, handle, 2048); 147 147 if (rc != EOK) { 148 148 printf(NAME ": Error initializing libblock.\n"); -
uspace/app/ping/ping.c
r764d71e r79ae36dd 36 36 37 37 #include <async.h> 38 #include <async_obsolete.h> 38 39 #include <stdio.h> 39 40 #include <str.h> … … 355 356 str_error(ret)); 356 357 357 async_ hangup(icmp_phone);358 async_obsolete_hangup(icmp_phone); 358 359 return ret; 359 360 } … … 370 371 str_error(ret)); 371 372 372 async_ hangup(icmp_phone);373 async_obsolete_hangup(icmp_phone); 373 374 return ret; 374 375 } … … 390 391 } 391 392 392 async_ hangup(icmp_phone);393 async_obsolete_hangup(icmp_phone); 393 394 394 395 return 0; -
uspace/app/taskdump/elf_core.c
r764d71e r79ae36dd 62 62 #include "include/elf_core.h" 63 63 64 static off64_t align_foff_up(off64_t foff, uintptr_t vaddr, size_t page_size);65 static int write_all(int fd, void *data, size_t len);66 static int write_mem_area(int fd, as_area_info_t *area, int phoneid);64 static off64_t align_foff_up(off64_t, uintptr_t, size_t); 65 static int write_all(int, void *, size_t); 66 static int write_mem_area(int, as_area_info_t *, async_sess_t *); 67 67 68 68 #define BUFFER_SIZE 0x1000 … … 71 71 /** Save ELF core file. 72 72 * 73 * @param file_name Name of file to save to. 74 * @param ainfo Array of @a n memory area info structures. 75 * @param n Number of memory areas. 76 * @param phoneid Debugging phone. 77 * 78 * @return EOK on sucess, ENOENT if file cannot be created, 79 * ENOMEM on out of memory, EIO on write error. 80 */ 81 int elf_core_save(const char *file_name, as_area_info_t *ainfo, unsigned int n, int phoneid) 73 * @param file_name Name of file to save to. 74 * @param ainfo Array of @a n memory area info structures. 75 * @param n Number of memory areas. 76 * @param sess Debugging session. 77 * 78 * @return EOK on sucess. 79 * @return ENOENT if file cannot be created. 80 * @return ENOMEM on out of memory. 81 * @return EIO on write error. 82 * 83 */ 84 int elf_core_save(const char *file_name, as_area_info_t *ainfo, unsigned int n, 85 async_sess_t *sess) 82 86 { 83 87 elf_header_t elf_hdr; … … 189 193 return EIO; 190 194 } 191 if (write_mem_area(fd, &ainfo[i], phoneid) != EOK) {195 if (write_mem_area(fd, &ainfo[i], sess) != EOK) { 192 196 printf("Failed writing memory data.\n"); 193 197 free(p_hdr); … … 215 219 /** Write memory area from application to core file. 216 220 * 217 * @param fd File to write to. 218 * @param area Memory area info structure. 219 * @param phoneid Debugging phone. 220 * 221 * @return EOK on success, EIO on failure. 222 */ 223 static int write_mem_area(int fd, as_area_info_t *area, int phoneid) 221 * @param fd File to write to. 222 * @param area Memory area info structure. 223 * @param sess Debugging session. 224 * 225 * @return EOK on success, EIO on failure. 226 * 227 */ 228 static int write_mem_area(int fd, as_area_info_t *area, async_sess_t *sess) 224 229 { 225 230 size_t to_copy; … … 233 238 while (total < area->size) { 234 239 to_copy = min(area->size - total, BUFFER_SIZE); 235 rc = udebug_mem_read( phoneid, buffer, addr, to_copy);240 rc = udebug_mem_read(sess, buffer, addr, to_copy); 236 241 if (rc < 0) { 237 242 printf("Failed reading task memory.\n"); -
uspace/app/taskdump/include/elf_core.h
r764d71e r79ae36dd 36 36 #define ELF_CORE_H_ 37 37 38 int elf_core_save(const char *file_name, as_area_info_t *ainfo, unsigned int n, int phoneid); 38 #include <async.h> 39 40 extern int elf_core_save(const char *, as_area_info_t *, unsigned int, 41 async_sess_t *); 39 42 40 43 #endif -
uspace/app/taskdump/taskdump.c
r764d71e r79ae36dd 54 54 #define LINE_BYTES 16 55 55 56 static int phoneid;56 static async_sess_t *sess; 57 57 static task_id_t task_id; 58 58 static bool write_core_file; … … 104 104 printf("Failed dumping address space areas.\n"); 105 105 106 udebug_end( phoneid);107 async_hangup( phoneid);106 udebug_end(sess); 107 async_hangup(sess); 108 108 109 109 return 0; … … 112 112 static int connect_task(task_id_t task_id) 113 113 { 114 int rc; 115 116 rc = async_connect_kbox(task_id); 117 118 if (rc == ENOTSUP) { 119 printf("You do not have userspace debugging support " 120 "compiled in the kernel.\n"); 121 printf("Compile kernel with 'Support for userspace debuggers' " 122 "(CONFIG_UDEBUG) enabled.\n"); 123 return rc; 124 } 125 126 if (rc < 0) { 114 async_sess_t *ksess = async_connect_kbox(task_id); 115 116 if (!ksess) { 117 if (errno == ENOTSUP) { 118 printf("You do not have userspace debugging support " 119 "compiled in the kernel.\n"); 120 printf("Compile kernel with 'Support for userspace debuggers' " 121 "(CONFIG_UDEBUG) enabled.\n"); 122 return errno; 123 } 124 127 125 printf("Error connecting\n"); 128 printf("async_connect_kbox(%" PRIu64 ") -> %d ", task_id, rc); 129 return rc; 130 } 131 132 phoneid = rc; 133 134 rc = udebug_begin(phoneid); 126 printf("async_connect_kbox(%" PRIu64 ") -> %d ", task_id, errno); 127 return errno; 128 } 129 130 int rc = udebug_begin(ksess); 135 131 if (rc < 0) { 136 132 printf("udebug_begin() -> %d\n", rc); 137 133 return rc; 138 134 } 139 135 136 sess = ksess; 140 137 return 0; 141 138 } … … 213 210 214 211 /* TODO: See why NULL does not work. */ 215 rc = udebug_thread_read( phoneid, &dummy_buf, 0, &copied, &needed);212 rc = udebug_thread_read(sess, &dummy_buf, 0, &copied, &needed); 216 213 if (rc < 0) { 217 214 printf("udebug_thread_read() -> %d\n", rc); … … 227 224 thash_buf = malloc(buf_size); 228 225 229 rc = udebug_thread_read( phoneid, thash_buf, buf_size, &copied, &needed);226 rc = udebug_thread_read(sess, thash_buf, buf_size, &copied, &needed); 230 227 if (rc < 0) { 231 228 printf("udebug_thread_read() -> %d\n", rc); … … 262 259 int rc; 263 260 264 rc = udebug_areas_read( phoneid, &dummy_buf, 0, &copied, &needed);261 rc = udebug_areas_read(sess, &dummy_buf, 0, &copied, &needed); 265 262 if (rc < 0) { 266 263 printf("udebug_areas_read() -> %d\n", rc); … … 271 268 ainfo_buf = malloc(buf_size); 272 269 273 rc = udebug_areas_read( phoneid, ainfo_buf, buf_size, &copied, &needed);270 rc = udebug_areas_read(sess, ainfo_buf, buf_size, &copied, &needed); 274 271 if (rc < 0) { 275 272 printf("udebug_areas_read() -> %d\n", rc); … … 296 293 if (write_core_file) { 297 294 printf("Writing core file '%s'\n", core_file_name); 298 rc = elf_core_save(core_file_name, ainfo_buf, n_areas, phoneid);295 rc = elf_core_save(core_file_name, ainfo_buf, n_areas, sess); 299 296 if (rc != EOK) { 300 297 printf("Failed writing core file.\n"); … … 316 313 int rc; 317 314 318 rc = udebug_regs_read( phoneid, thash, &istate);315 rc = udebug_regs_read(sess, thash, &istate); 319 316 if (rc < 0) { 320 317 printf("Failed reading registers (%d).\n", rc); … … 359 356 (void) arg; 360 357 361 rc = udebug_mem_read( phoneid, &data, addr, sizeof(data));358 rc = udebug_mem_read(sess, &data, addr, sizeof(data)); 362 359 if (rc < 0) { 363 360 printf("Warning: udebug_mem_read() failed.\n"); … … 430 427 int rc; 431 428 432 rc = udebug_name_read( phoneid, &dummy_buf, 0, &copied, &needed);429 rc = udebug_name_read(sess, &dummy_buf, 0, &copied, &needed); 433 430 if (rc < 0) 434 431 return NULL; … … 436 433 name_size = needed; 437 434 name = malloc(name_size + 1); 438 rc = udebug_name_read( phoneid, name, name_size, &copied, &needed);435 rc = udebug_name_read(sess, name, name_size, &copied, &needed); 439 436 if (rc < 0) { 440 437 free(name); -
uspace/app/tester/console/console1.c
r764d71e r79ae36dd 50 50 { 51 51 if (!test_quiet) { 52 console_ctrl_t *console = console_init(stdin, stdout); 53 52 54 printf("Style test: "); 53 fflush(stdout);54 console_set_style( fphone(stdout), STYLE_NORMAL);55 console_flush(console); 56 console_set_style(console, STYLE_NORMAL); 55 57 printf(" normal "); 56 fflush(stdout);57 console_set_style( fphone(stdout), STYLE_EMPHASIS);58 console_flush(console); 59 console_set_style(console, STYLE_EMPHASIS); 58 60 printf(" emphasized "); 59 fflush(stdout);60 console_set_style( fphone(stdout), STYLE_INVERTED);61 console_flush(console); 62 console_set_style(console, STYLE_INVERTED); 61 63 printf(" inverted "); 62 fflush(stdout);63 console_set_style( fphone(stdout), STYLE_SELECTED);64 console_flush(console); 65 console_set_style(console, STYLE_SELECTED); 64 66 printf(" selected "); 65 fflush(stdout);66 console_set_style( fphone(stdout), STYLE_NORMAL);67 console_flush(console); 68 console_set_style(console, STYLE_NORMAL); 67 69 printf("\n"); 68 70 … … 73 75 for (j = 0; j < 2; j++) { 74 76 for (i = COLOR_BLACK; i <= COLOR_WHITE; i++) { 75 fflush(stdout);76 console_set_color( fphone(stdout), i, COLOR_WHITE,77 console_flush(console); 78 console_set_color(console, i, COLOR_WHITE, 77 79 j ? CATTR_BRIGHT : 0); 78 80 printf(" %s ", color_name[i]); 79 81 } 80 fflush(stdout);81 console_set_style( fphone(stdout), STYLE_NORMAL);82 console_flush(console); 83 console_set_style(console, STYLE_NORMAL); 82 84 putchar('\n'); 83 85 } … … 86 88 for (j = 0; j < 2; j++) { 87 89 for (i = COLOR_BLACK; i <= COLOR_WHITE; i++) { 88 fflush(stdout);89 console_set_color( fphone(stdout), COLOR_WHITE, i,90 console_flush(console); 91 console_set_color(console, COLOR_WHITE, i, 90 92 j ? CATTR_BRIGHT : 0); 91 93 printf(" %s ", color_name[i]); 92 94 } 93 fflush(stdout);94 console_set_style( fphone(stdout), STYLE_NORMAL);95 console_flush(console); 96 console_set_style(console, STYLE_NORMAL); 95 97 putchar('\n'); 96 98 } … … 99 101 100 102 for (i = 0; i < 255; i += 16) { 101 fflush(stdout);102 console_set_rgb_color( fphone(stdout), (255 - i) << 16, i << 16);103 console_flush(console); 104 console_set_rgb_color(console, (255 - i) << 16, i << 16); 103 105 putchar('X'); 104 106 } 105 fflush(stdout);106 console_set_color( fphone(stdout), COLOR_BLACK, COLOR_WHITE, 0);107 console_flush(console); 108 console_set_color(console, COLOR_BLACK, COLOR_WHITE, 0); 107 109 putchar('\n'); 108 110 109 111 for (i = 0; i < 255; i += 16) { 110 fflush(stdout);111 console_set_rgb_color( fphone(stdout), (255 - i) << 8, i << 8);112 console_flush(console); 113 console_set_rgb_color(console, (255 - i) << 8, i << 8); 112 114 putchar('X'); 113 115 } 114 fflush(stdout);115 console_set_color( fphone(stdout), COLOR_BLACK, COLOR_WHITE, 0);116 console_flush(console); 117 console_set_color(console, COLOR_BLACK, COLOR_WHITE, 0); 116 118 putchar('\n'); 117 119 118 120 for (i = 0; i < 255; i += 16) { 119 fflush(stdout);120 console_set_rgb_color( fphone(stdout), 255 - i, i);121 console_flush(console); 122 console_set_rgb_color(console, 255 - i, i); 121 123 putchar('X'); 122 124 } 123 fflush(stdout);124 console_set_style( fphone(stdout), STYLE_NORMAL);125 console_flush(console); 126 console_set_style(console, STYLE_NORMAL); 125 127 putchar('\n'); 126 128 } -
uspace/app/tester/devs/devman2.c
r764d71e r79ae36dd 42 42 #include <devman.h> 43 43 #include <str.h> 44 #include <async.h> 44 45 #include <vfs/vfs.h> 46 #include <vfs/vfs_sess.h> 45 47 #include <sys/stat.h> 46 48 #include <fcntl.h> … … 68 70 continue; 69 71 } 70 int phone = fd_phone(fd);72 async_sess_t *sess = fd_session(EXCHANGE_SERIALIZE, fd); 71 73 close(fd); 72 if ( phone < 0) {73 TPRINTF("Failed opening phone: %s.\n", str_error( phone));74 rc = phone;74 if (sess == NULL) { 75 TPRINTF("Failed opening phone: %s.\n", str_error(errno)); 76 rc = errno; 75 77 err_msg = "Failed opening file descriptor phone"; 76 78 continue; 77 79 } 78 async_hangup( phone);80 async_hangup(sess); 79 81 TPRINTF("Path `%s' okay.\n", path); 80 82 free(path); … … 83 85 } 84 86 85 if (path != NULL) {87 if (path != NULL) 86 88 free(path); 87 } 88 89 89 90 return err_msg; 90 91 } -
uspace/app/tester/hw/misc/virtchar1.c
r764d71e r79ae36dd 43 43 #include <str.h> 44 44 #include <vfs/vfs.h> 45 #include <vfs/vfs_sess.h> 45 46 #include <sys/stat.h> 46 47 #include <fcntl.h> … … 66 67 TPRINTF(" ...file handle %d\n", fd); 67 68 68 TPRINTF(" Asking for phone...\n");69 int phone = fd_phone(fd);70 if ( phone < 0) {69 TPRINTF(" Asking for session...\n"); 70 async_sess_t *sess = fd_session(EXCHANGE_SERIALIZE, fd); 71 if (!sess) { 71 72 close(fd); 72 TPRINTF(" ...error: %s\n", str_error( phone));73 return "Failed to get phoneto device";73 TPRINTF(" ...error: %s\n", str_error(errno)); 74 return "Failed to get session to device"; 74 75 } 75 TPRINTF(" ... phone is %d\n", phone);76 TPRINTF(" ...session is %p\n", sess); 76 77 77 78 TPRINTF(" Will try to read...\n"); 78 79 size_t i; 79 80 char buffer[BUFFER_SIZE]; 80 char_dev_read( phone, buffer, BUFFER_SIZE);81 char_dev_read(sess, buffer, BUFFER_SIZE); 81 82 TPRINTF(" ...verifying that we read zeroes only...\n"); 82 83 for (i = 0; i < BUFFER_SIZE; i++) { … … 88 89 89 90 /* Clean-up. */ 90 TPRINTF(" Closing phones and file descriptors\n");91 async_hangup( phone);91 TPRINTF(" Closing session and file descriptor\n"); 92 async_hangup(sess); 92 93 close(fd); 93 94 -
uspace/app/tester/hw/serial/serial1.c
r764d71e r79ae36dd 71 71 } 72 72 73 int res = devman_get_phone(DEVMAN_CLIENT, IPC_FLAG_BLOCKING);74 75 73 devman_handle_t handle; 76 res = devman_device_get_handle("/hw/pci0/00:01.0/com1/a", &handle,74 int res = devman_device_get_handle("/hw/pci0/00:01.0/com1/a", &handle, 77 75 IPC_FLAG_BLOCKING); 78 76 if (res != EOK) 79 77 return "Could not get serial device handle"; 80 78 81 int phone = devman_device_connect(handle, IPC_FLAG_BLOCKING);82 if (phone < 0) {83 devman_hangup_phone(DEVMAN_CLIENT);79 async_sess_t *sess = devman_device_connect(EXCHANGE_SERIALIZE, handle, 80 IPC_FLAG_BLOCKING); 81 if (!sess) 84 82 return "Unable to connect to serial device"; 85 }86 83 87 84 char *buf = (char *) malloc(cnt + 1); 88 85 if (buf == NULL) { 89 async_hangup(phone); 90 devman_hangup_phone(DEVMAN_CLIENT); 86 async_hangup(sess); 91 87 return "Failed to allocate input buffer"; 92 88 } … … 97 93 sysarg_t old_word_size; 98 94 99 res = async_req_0_4(phone, SERIAL_GET_COM_PROPS, &old_baud, 95 async_exch_t *exch = async_exchange_begin(sess); 96 res = async_req_0_4(exch, SERIAL_GET_COM_PROPS, &old_baud, 100 97 &old_par, &old_word_size, &old_stop); 98 async_exchange_end(exch); 99 101 100 if (res != EOK) { 102 101 free(buf); 103 async_hangup(phone); 104 devman_hangup_phone(DEVMAN_CLIENT); 102 async_hangup(sess); 105 103 return "Failed to get old serial communication parameters"; 106 104 } 107 105 108 res = async_req_4_0(phone, SERIAL_SET_COM_PROPS, 1200, 106 exch = async_exchange_begin(sess); 107 res = async_req_4_0(exch, SERIAL_SET_COM_PROPS, 1200, 109 108 SERIAL_NO_PARITY, 8, 1); 109 async_exchange_end(exch); 110 110 111 if (EOK != res) { 111 112 free(buf); 112 async_hangup(phone); 113 devman_hangup_phone(DEVMAN_CLIENT); 113 async_hangup(sess); 114 114 return "Failed to set serial communication parameters"; 115 115 } … … 120 120 size_t total = 0; 121 121 while (total < cnt) { 122 ssize_t read = char_dev_read( phone, buf, cnt - total);122 ssize_t read = char_dev_read(sess, buf, cnt - total); 123 123 124 124 if (read < 0) { 125 async_req_4_0(phone, SERIAL_SET_COM_PROPS, old_baud, 125 exch = async_exchange_begin(sess); 126 async_req_4_0(exch, SERIAL_SET_COM_PROPS, old_baud, 126 127 old_par, old_word_size, old_stop); 128 async_exchange_end(exch); 129 127 130 free(buf); 128 async_hangup(phone); 129 devman_hangup_phone(DEVMAN_CLIENT); 131 async_hangup(sess); 130 132 return "Failed read from serial device"; 131 133 } 132 134 133 135 if ((size_t) read > cnt - total) { 134 async_req_4_0(phone, SERIAL_SET_COM_PROPS, old_baud, 136 exch = async_exchange_begin(sess); 137 async_req_4_0(exch, SERIAL_SET_COM_PROPS, old_baud, 135 138 old_par, old_word_size, old_stop); 139 async_exchange_end(exch); 140 136 141 free(buf); 137 async_hangup(phone); 138 devman_hangup_phone(DEVMAN_CLIENT); 142 async_hangup(sess); 139 143 return "Read more data than expected"; 140 144 } … … 151 155 * direction of data transfer. 152 156 */ 153 ssize_t written = char_dev_write( phone, buf, read);157 ssize_t written = char_dev_write(sess, buf, read); 154 158 155 159 if (written < 0) { 156 async_req_4_0(phone, SERIAL_SET_COM_PROPS, old_baud, 160 exch = async_exchange_begin(sess); 161 async_req_4_0(exch, SERIAL_SET_COM_PROPS, old_baud, 157 162 old_par, old_word_size, old_stop); 163 async_exchange_end(exch); 164 158 165 free(buf); 159 async_hangup(phone); 160 devman_hangup_phone(DEVMAN_CLIENT); 166 async_hangup(sess); 161 167 return "Failed write to serial device"; 162 168 } 163 169 164 170 if (written != read) { 165 async_req_4_0(phone, SERIAL_SET_COM_PROPS, old_baud, 171 exch = async_exchange_begin(sess); 172 async_req_4_0(exch, SERIAL_SET_COM_PROPS, old_baud, 166 173 old_par, old_word_size, old_stop); 174 async_exchange_end(exch); 175 167 176 free(buf); 168 async_hangup(phone); 169 devman_hangup_phone(DEVMAN_CLIENT); 177 async_hangup(sess); 170 178 return "Written less data than read from serial device"; 171 179 } … … 180 188 181 189 size_t eot_size = str_size(EOT); 182 ssize_t written = char_dev_write(phone, (void *) EOT, eot_size); 183 184 async_req_4_0(phone, SERIAL_SET_COM_PROPS, old_baud, 190 ssize_t written = char_dev_write(sess, (void *) EOT, eot_size); 191 192 exch = async_exchange_begin(sess); 193 async_req_4_0(exch, SERIAL_SET_COM_PROPS, old_baud, 185 194 old_par, old_word_size, old_stop); 195 async_exchange_end(exch); 196 186 197 free(buf); 187 async_hangup(phone); 188 devman_hangup_phone(DEVMAN_CLIENT); 198 async_hangup(sess); 189 199 190 200 if (written < 0) -
uspace/app/tester/ipc/ping_pong.c
r764d71e r79ae36dd 30 30 #include <stdlib.h> 31 31 #include <sys/time.h> 32 #include < ipc/ns.h>32 #include <ns.h> 33 33 #include <async.h> 34 34 #include <errno.h> … … 61 61 size_t i; 62 62 for (i = 0; i < COUNT_GRANULARITY; i++) { 63 int retval = async_req_0_0(PHONE_NS, NS_PING);63 int retval = ns_ping(); 64 64 65 65 if (retval != EOK) { -
uspace/app/tetris/Makefile
r764d71e r79ae36dd 34 34 shapes.c \ 35 35 scores.c \ 36 input.c \37 36 tetris.c \ 38 37 screen.c -
uspace/app/tetris/scores.c
r764d71e r79ae36dd 1 /* $OpenBSD: scores.c,v 1.11 2006/04/20 03:25:36 ray Exp $ */ 2 /* $NetBSD: scores.c,v 1.2 1995/04/22 07:42:38 cgd Exp $ */ 3 4 /*- 5 * Copyright (c) 1992, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * This code is derived from software contributed to Berkeley by 9 * Chris Torek and Darren F. Provine. 1 /* 2 * Copyright (c) 2011 Martin Decky 3 * All rights reserved. 10 4 * 11 5 * Redistribution and use in source and binary forms, with or without 12 6 * modification, are permitted provided that the following conditions 13 7 * are met: 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions and the following disclaimer. 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in the 18 * documentation and/or other materials provided with the distribution. 19 * 3. Neither the name of the University nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * 35 * @(#)scores.c 8.1 (Berkeley) 5/31/93 8 * 9 * - Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * - Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * - The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 /** Attributations 30 * 31 * scores.c 8.1 (Berkeley) 5/31/93 32 * NetBSD: scores.c,v 1.2 1995/04/22 07:42:38 cgd 33 * OpenBSD: scores.c,v 1.11 2006/04/20 03:25:36 ray 34 * 35 * Based upon BSD Tetris 36 * 37 * Copyright (c) 1992, 1993 38 * The Regents of the University of California. 39 * Distributed under BSD license. 40 * 41 * This code is derived from software contributed to Berkeley by 42 * Chris Torek and Darren F. Provine. 43 * 36 44 */ 37 45 … … 60 68 #include <err.h> 61 69 #include <time.h> 62 63 70 #include "screen.h" 64 71 #include "tetris.h" … … 118 125 int j; 119 126 size_t off; 120 console_event_t ev;127 kbd_event_t ev; 121 128 122 129 clear_screen(); … … 133 140 134 141 while (1) { 135 fflush(stdout);136 if (!console_get_ event(fphone(stdin), &ev))142 console_flush(console); 143 if (!console_get_kbd_event(console, &ev)) 137 144 exit(1); 138 145 -
uspace/app/tetris/scores.h
r764d71e r79ae36dd 1 /* $OpenBSD: scores.h,v 1.5 2003/06/03 03:01:41 millert Exp $ */ 2 /* $NetBSD: scores.h,v 1.2 1995/04/22 07:42:40 cgd Exp $ */ 1 /* 2 * Copyright (c) 2011 Martin Decky 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * - Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * - Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * - The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 3 28 4 /*- 29 /** Attributations 30 * 31 * scores.h 8.1 (Berkeley) 5/31/93 32 * NetBSD: scores.h,v 1.2 1995/04/22 07:42:40 cgd 33 * OpenBSD: scores.h,v 1.5 2003/06/03 03:01:41 millert 34 * 35 * Based upon BSD Tetris 36 * 5 37 * Copyright (c) 1992, 1993 6 * The Regents of the University of California. All rights reserved. 38 * The Regents of the University of California. 39 * Distributed under BSD license. 7 40 * 8 41 * This code is derived from software contributed to Berkeley by 9 42 * Chris Torek and Darren F. Provine. 10 43 * 11 * Redistribution and use in source and binary forms, with or without12 * modification, are permitted provided that the following conditions13 * are met:14 * 1. Redistributions of source code must retain the above copyright15 * notice, this list of conditions and the following disclaimer.16 * 2. Redistributions in binary form must reproduce the above copyright17 * notice, this list of conditions and the following disclaimer in the18 * documentation and/or other materials provided with the distribution.19 * 3. Neither the name of the University nor the names of its contributors20 * may be used to endorse or promote products derived from this software21 * without specific prior written permission.22 *23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF33 * SUCH DAMAGE.34 *35 * @(#)scores.h 8.1 (Berkeley) 5/31/9336 44 */ 37 45 … … 41 49 /** @file 42 50 */ 43 44 51 45 52 /* -
uspace/app/tetris/screen.c
r764d71e r79ae36dd 1 /* $OpenBSD: screen.c,v 1.13 2006/04/20 03:25:36 ray Exp $ */ 2 /* $NetBSD: screen.c,v 1.4 1995/04/29 01:11:36 mycroft Exp $ */ 3 4 /*- 5 * Copyright (c) 1992, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * This code is derived from software contributed to Berkeley by 9 * Chris Torek and Darren F. Provine. 1 /* 2 * Copyright (c) 2011 Martin Decky 3 * All rights reserved. 10 4 * 11 5 * Redistribution and use in source and binary forms, with or without 12 6 * modification, are permitted provided that the following conditions 13 7 * are met: 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions and the following disclaimer. 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in the 18 * documentation and/or other materials provided with the distribution. 19 * 3. Neither the name of the University nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * 35 * @(#)screen.c 8.1 (Berkeley) 5/31/93 8 * 9 * - Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * - Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * - The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 /** Attributations 30 * 31 * screen.c 8.1 (Berkeley) 5/31/93 32 * NetBSD: screen.c,v 1.4 1995/04/29 01:11:36 mycroft 33 * OpenBSD: screen.c,v 1.13 2006/04/20 03:25:36 ray 34 * 35 * Based upon BSD Tetris 36 * 37 * Copyright (c) 1992, 1993 38 * The Regents of the University of California. 39 * Distributed under BSD license. 40 * 41 * This code is derived from software contributed to Berkeley by 42 * Chris Torek and Darren F. Provine. 43 * 36 44 */ 37 45 … … 69 77 static const struct shape *lastshape; 70 78 79 static suseconds_t timeleft = 0; 80 81 console_ctrl_t *console; 82 71 83 72 84 /* … … 82 94 static void start_standout(uint32_t color) 83 95 { 84 fflush(stdout);85 console_set_rgb_color( fphone(stdout), 0xffffff,96 console_flush(console); 97 console_set_rgb_color(console, 0xffffff, 86 98 use_color ? color : 0x000000); 87 99 } … … 89 101 static void resume_normal(void) 90 102 { 91 fflush(stdout);92 console_set_style( fphone(stdout), STYLE_NORMAL);103 console_flush(console); 104 console_set_style(console, STYLE_NORMAL); 93 105 } 94 106 95 107 void clear_screen(void) 96 108 { 97 console_clear( fphone(stdout));109 console_clear(console); 98 110 moveto(0, 0); 99 111 } … … 105 117 { 106 118 resume_normal(); 107 console_clear( fphone(stdout));119 console_clear(console); 108 120 curscore = -1; 109 121 memset(curscreen, 0, sizeof(curscreen)); … … 115 127 void scr_init(void) 116 128 { 117 console_cursor_visibility( fphone(stdout), 0);129 console_cursor_visibility(console, 0); 118 130 resume_normal(); 119 131 scr_clear(); … … 122 134 void moveto(sysarg_t r, sysarg_t c) 123 135 { 124 fflush(stdout);125 console_set_pos( fphone(stdout), c, r);136 console_flush(console); 137 console_set_pos(console, c, r); 126 138 } 127 139 … … 130 142 static int get_display_size(winsize_t *ws) 131 143 { 132 return console_get_size( fphone(stdout), &ws->ws_col, &ws->ws_row);144 return console_get_size(console, &ws->ws_col, &ws->ws_row); 133 145 } 134 146 … … 136 148 { 137 149 sysarg_t ccap; 138 int rc = console_get_color_cap( fphone(stdout), &ccap);150 int rc = console_get_color_cap(console, &ccap); 139 151 140 152 if (rc != 0) … … 179 191 void scr_end(void) 180 192 { 181 console_cursor_visibility( fphone(stdout), 1);193 console_cursor_visibility(console, 1); 182 194 } 183 195 … … 302 314 resume_normal(); 303 315 304 fflush(stdout);316 console_flush(console); 305 317 } 306 318 … … 322 334 } 323 335 336 /** Sleep for the current turn time 337 * 338 * Eat any input that might be available. 339 * 340 */ 341 void tsleep(void) 342 { 343 suseconds_t timeout = fallrate; 344 345 while (timeout > 0) { 346 kbd_event_t event; 347 348 if (!console_get_kbd_event_timeout(console, &event, &timeout)) 349 break; 350 } 351 } 352 353 /** Get char with timeout 354 * 355 */ 356 int tgetchar(void) 357 { 358 /* 359 * Reset timeleft to fallrate whenever it is not positive 360 * and increase speed. 361 */ 362 363 if (timeleft <= 0) { 364 faster(); 365 timeleft = fallrate; 366 } 367 368 /* 369 * Wait to see if there is any input. If so, take it and 370 * update timeleft so that the next call to tgetchar() 371 * will not wait as long. If there is no input, 372 * make timeleft zero and return -1. 373 */ 374 375 wchar_t c = 0; 376 377 while (c == 0) { 378 kbd_event_t event; 379 380 if (!console_get_kbd_event_timeout(console, &event, &timeleft)) { 381 timeleft = 0; 382 return -1; 383 } 384 385 if (event.type == KEY_PRESS) 386 c = event.c; 387 } 388 389 return (int) c; 390 } 391 392 /** Get char without timeout 393 * 394 */ 395 int twait(void) 396 { 397 wchar_t c = 0; 398 399 while (c == 0) { 400 kbd_event_t event; 401 402 if (!console_get_kbd_event(console, &event)) 403 return -1; 404 405 if (event.type == KEY_PRESS) 406 c = event.c; 407 } 408 409 return (int) c; 410 } 411 324 412 /** @} 325 413 */ -
uspace/app/tetris/screen.h
r764d71e r79ae36dd 1 /* $OpenBSD: screen.h,v 1.5 2003/06/03 03:01:41 millert Exp $ */ 2 /* $NetBSD: screen.h,v 1.2 1995/04/22 07:42:42 cgd Exp $ */ 1 /* 2 * Copyright (c) 2011 Martin Decky 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * - Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * - Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * - The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 3 28 4 /*- 29 /** Attributations 30 * 31 * screen.h 8.1 (Berkeley) 5/31/93 32 * NetBSD: screen.h,v 1.2 1995/04/22 07:42:42 cgd 33 * OpenBSD: screen.h,v 1.5 2003/06/03 03:01:41 millert 34 * 35 * Based upon BSD Tetris 36 * 5 37 * Copyright (c) 1992, 1993 6 * The Regents of the University of California. All rights reserved. 38 * The Regents of the University of California. 39 * Distributed under BSD license. 7 40 * 8 41 * This code is derived from software contributed to Berkeley by 9 42 * Chris Torek and Darren F. Provine. 10 43 * 11 * Redistribution and use in source and binary forms, with or without12 * modification, are permitted provided that the following conditions13 * are met:14 * 1. Redistributions of source code must retain the above copyright15 * notice, this list of conditions and the following disclaimer.16 * 2. Redistributions in binary form must reproduce the above copyright17 * notice, this list of conditions and the following disclaimer in the18 * documentation and/or other materials provided with the distribution.19 * 3. Neither the name of the University nor the names of its contributors20 * may be used to endorse or promote products derived from this software21 * without specific prior written permission.22 *23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF33 * SUCH DAMAGE.34 *35 * @(#)screen.h 8.1 (Berkeley) 5/31/9336 44 */ 37 45 … … 48 56 49 57 #include <sys/types.h> 58 #include <io/console.h> 50 59 #include <async.h> 51 60 #include <bool.h> … … 56 65 } winsize_t; 57 66 67 extern console_ctrl_t *console; 58 68 extern winsize_t winsize; 59 69 … … 61 71 extern void clear_screen(void); 62 72 63 /* just calls putchar; for tputs */64 73 extern int put(int); 65 74 extern void scr_clear(void); … … 70 79 extern void scr_update(void); 71 80 81 extern void tsleep(void); 82 extern int tgetchar(void); 83 extern int twait(void); 84 72 85 /** @} 73 86 */ -
uspace/app/tetris/shapes.c
r764d71e r79ae36dd 1 /* $OpenBSD: shapes.c,v 1.8 2004/07/10 07:26:24 deraadt Exp $ */ 2 /* $NetBSD: shapes.c,v 1.2 1995/04/22 07:42:44 cgd Exp $ */ 1 /* 2 * Copyright (c) 2011 Martin Decky 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * - Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * - Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * - The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 3 28 4 /*- 29 /** Attributations 30 * 31 * shapes.c 8.1 (Berkeley) 5/31/93 32 * NetBSD: shapes.c,v 1.2 1995/04/22 07:42:44 cgd 33 * OpenBSD: shapes.c,v 1.8 2004/07/10 07:26:24 deraadt 34 * 35 * Based upon BSD Tetris 36 * 5 37 * Copyright (c) 1992, 1993 6 * The Regents of the University of California. All rights reserved. 38 * The Regents of the University of California. 39 * Distributed under BSD license. 7 40 * 8 41 * This code is derived from software contributed to Berkeley by 9 42 * Chris Torek and Darren F. Provine. 10 43 * 11 * Redistribution and use in source and binary forms, with or without12 * modification, are permitted provided that the following conditions13 * are met:14 * 1. Redistributions of source code must retain the above copyright15 * notice, this list of conditions and the following disclaimer.16 * 2. Redistributions in binary form must reproduce the above copyright17 * notice, this list of conditions and the following disclaimer in the18 * documentation and/or other materials provided with the distribution.19 * 3. Neither the name of the University nor the names of its contributors20 * may be used to endorse or promote products derived from this software21 * without specific prior written permission.22 *23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF33 * SUCH DAMAGE.34 *35 * @(#)shapes.c 8.1 (Berkeley) 5/31/9336 44 */ 37 45 -
uspace/app/tetris/tetris.c
r764d71e r79ae36dd 1 /* $OpenBSD: tetris.c,v 1.21 2006/04/20 03:24:12 ray Exp $ */ 2 /* $NetBSD: tetris.c,v 1.2 1995/04/22 07:42:47 cgd Exp $ */ 3 4 /*- 5 * Copyright (c) 1992, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * This code is derived from software contributed to Berkeley by 9 * Chris Torek and Darren F. Provine. 1 /* 2 * Copyright (c) 2011 Martin Decky 3 * All rights reserved. 10 4 * 11 5 * Redistribution and use in source and binary forms, with or without 12 6 * modification, are permitted provided that the following conditions 13 7 * are met: 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions and the following disclaimer. 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in the 18 * documentation and/or other materials provided with the distribution. 19 * 3. Neither the name of the University nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * 35 * @(#)tetris.c 8.1 (Berkeley) 5/31/93 8 * 9 * - Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * - Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * - The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 /** Attributations 30 * 31 * tetris.c 8.1 (Berkeley) 5/31/93 32 * NetBSD: tetris.c,v 1.2 1995/04/22 07:42:47 cgd 33 * OpenBSD: tetris.c,v 1.21 2006/04/20 03:24:12 ray 34 * 35 * Based upon BSD Tetris 36 * 37 * Copyright (c) 1992, 1993 38 * The Regents of the University of California. 39 * Distributed under BSD license. 40 * 41 * This code is derived from software contributed to Berkeley by 42 * Chris Torek and Darren F. Provine. 43 * 36 44 */ 37 45 … … 56 64 #include <unistd.h> 57 65 #include <getopt.h> 58 59 #include "input.h"60 66 #include "scores.h" 61 67 #include "screen.h" … … 245 251 int ch; 246 252 253 console = console_init(stdin, stdout); 254 247 255 keys = "jkl pq"; 248 256 249 257 classic = 0; 250 showpreview = 1; 258 showpreview = 1; 251 259 252 260 while ((ch = getopt(argc, argv, "ck:ps")) != -1) … … 371 379 scr_msg(key_msg, 0); 372 380 scr_msg(msg, 1); 373 (void) fflush(stdout);374 } while ( rwait((struct timeval *) NULL) == -1);381 console_flush(console); 382 } while (!twait()); 375 383 376 384 scr_msg(msg, 0); -
uspace/app/tetris/tetris.h
r764d71e r79ae36dd 1 /* $OpenBSD: tetris.h,v 1.9 2003/06/03 03:01:41 millert Exp $ */ 2 /* $NetBSD: tetris.h,v 1.2 1995/04/22 07:42:48 cgd Exp $ */ 1 /* 2 * Copyright (c) 2011 Martin Decky 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * - Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * - Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * - The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 3 28 4 /*- 29 /** Attributations 30 * 31 * tetris.h 8.1 (Berkeley) 5/31/93 32 * NetBSD: tetris.h,v 1.2 1995/04/22 07:42:48 cgd 33 * OpenBSD: tetris.h,v 1.9 2003/06/03 03:01:41 millert 34 * 35 * Based upon BSD Tetris 36 * 5 37 * Copyright (c) 1992, 1993 6 * The Regents of the University of California. All rights reserved. 38 * The Regents of the University of California. 39 * Distributed under BSD license. 7 40 * 8 41 * This code is derived from software contributed to Berkeley by 9 42 * Chris Torek and Darren F. Provine. 10 43 * 11 * Redistribution and use in source and binary forms, with or without12 * modification, are permitted provided that the following conditions13 * are met:14 * 1. Redistributions of source code must retain the above copyright15 * notice, this list of conditions and the following disclaimer.16 * 2. Redistributions in binary form must reproduce the above copyright17 * notice, this list of conditions and the following disclaimer in the18 * documentation and/or other materials provided with the distribution.19 * 3. Neither the name of the University nor the names of its contributors20 * may be used to endorse or promote products derived from this software21 * without specific prior written permission.22 *23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF33 * SUCH DAMAGE.34 *35 * @(#)tetris.h 8.1 (Berkeley) 5/31/9336 44 */ 37 45 -
uspace/app/top/Makefile
r764d71e r79ae36dd 33 33 SOURCES = \ 34 34 top.c \ 35 screen.c \ 36 input.c 35 screen.c 37 36 38 37 include $(USPACE_PREFIX)/Makefile.common -
uspace/app/top/screen.c
r764d71e r79ae36dd 46 46 #include "top.h" 47 47 48 #define USEC_COUNT 1000000 49 48 50 static sysarg_t warn_col = 0; 49 51 static sysarg_t warn_row = 0; 52 static suseconds_t timeleft = 0; 53 54 console_ctrl_t *console; 50 55 51 56 static void screen_style_normal(void) 52 57 { 53 fflush(stdout);54 console_set_style( fphone(stdout), STYLE_NORMAL);58 console_flush(console); 59 console_set_style(console, STYLE_NORMAL); 55 60 } 56 61 57 62 static void screen_style_inverted(void) 58 63 { 59 fflush(stdout);60 console_set_style( fphone(stdout), STYLE_INVERTED);64 console_flush(console); 65 console_set_style(console, STYLE_INVERTED); 61 66 } 62 67 63 68 static void screen_moveto(sysarg_t col, sysarg_t row) 64 69 { 65 fflush(stdout);66 console_set_pos( fphone(stdout), col, row);70 console_flush(console); 71 console_set_pos(console, col, row); 67 72 } 68 73 69 74 static void screen_get_pos(sysarg_t *col, sysarg_t *row) 70 75 { 71 fflush(stdout);72 console_get_pos( fphone(stdout), col, row);76 console_flush(console); 77 console_get_pos(console, col, row); 73 78 } 74 79 75 80 static void screen_get_size(sysarg_t *col, sysarg_t *row) 76 81 { 77 fflush(stdout);78 console_get_size( fphone(stdout), col, row);82 console_flush(console); 83 console_get_size(console, col, row); 79 84 } 80 85 … … 84 89 85 90 if (clear) { 86 fflush(stdout);87 console_clear( fphone(stdout));91 console_flush(console); 92 console_clear(console); 88 93 } 89 94 … … 111 116 void screen_init(void) 112 117 { 113 fflush(stdout); 114 console_cursor_visibility(fphone(stdout), false); 118 console = console_init(stdin, stdout); 119 120 console_flush(console); 121 console_cursor_visibility(console, false); 115 122 116 123 screen_restart(true); … … 121 128 screen_restart(true); 122 129 123 fflush(stdout);124 console_cursor_visibility( fphone(stdout), true);130 console_flush(console); 131 console_cursor_visibility(console, true); 125 132 } 126 133 … … 508 515 } 509 516 510 fflush(stdout);517 console_flush(console); 511 518 } 512 519 … … 521 528 522 529 screen_newline(); 523 fflush(stdout); 530 console_flush(console); 531 } 532 533 /** Get char with timeout 534 * 535 */ 536 int tgetchar(unsigned int sec) 537 { 538 /* 539 * Reset timeleft whenever it is not positive. 540 */ 541 542 if (timeleft <= 0) 543 timeleft = sec * USEC_COUNT; 544 545 /* 546 * Wait to see if there is any input. If so, take it and 547 * update timeleft so that the next call to tgetchar() 548 * will not wait as long. If there is no input, 549 * make timeleft zero and return -1. 550 */ 551 552 wchar_t c = 0; 553 554 while (c == 0) { 555 kbd_event_t event; 556 557 if (!console_get_kbd_event_timeout(console, &event, &timeleft)) { 558 timeleft = 0; 559 return -1; 560 } 561 562 if (event.type == KEY_PRESS) 563 c = event.c; 564 } 565 566 return (int) c; 524 567 } 525 568 -
uspace/app/top/screen.h
r764d71e r79ae36dd 35 35 #define TOP_SCREEN_H_ 36 36 37 #include <io/console.h> 37 38 #include "top.h" 39 40 extern console_ctrl_t *console; 38 41 39 42 extern void screen_init(void); … … 42 45 extern void print_warning(const char *, ...); 43 46 47 extern int tgetchar(unsigned int); 48 44 49 #endif 45 50 -
uspace/app/top/top.c
r764d71e r79ae36dd 46 46 #include <sort.h> 47 47 #include "screen.h" 48 #include "input.h"49 48 #include "top.h" 50 49 -
uspace/app/trace/ipc_desc.c
r764d71e r79ae36dd 33 33 */ 34 34 35 #include <ipc/common.h> 35 #include <kernel/ipc/ipc.h> 36 #include <kernel/ipc/ipc_methods.h> 36 37 #include <stdlib.h> 37 38 #include "ipc_desc.h" … … 39 40 ipc_m_desc_t ipc_methods[] = { 40 41 /* System methods */ 41 { IPC_M_CONNECT_TO_ME, "CONNECT_TO_ME" }, 42 { IPC_M_CONNECT_ME_TO, "CONNECT_ME_TO" }, 43 { IPC_M_PHONE_HUNGUP, "PHONE_HUNGUP" }, 44 { IPC_M_SHARE_OUT, "SHARE_OUT" }, 45 { IPC_M_SHARE_IN, "SHARE_IN" }, 46 { IPC_M_DATA_WRITE, "DATA_WRITE" }, 47 { IPC_M_DATA_READ, "DATA_READ" }, 48 { IPC_M_DEBUG_ALL, "DEBUG_ALL" }, 49 50 /* Well-known methods */ 51 { IPC_M_PING, "PING" }, 52 42 { IPC_M_PHONE_HUNGUP, "PHONE_HUNGUP" }, 43 { IPC_M_CONNECT_ME, "CONNECT_ME" }, 44 { IPC_M_CONNECT_ME_TO, "CONNECT_ME_TO" }, 45 { IPC_M_CONNECT_TO_ME, "CONNECT_TO_ME" }, 46 { IPC_M_SHARE_OUT, "SHARE_OUT" }, 47 { IPC_M_SHARE_IN, "SHARE_IN" }, 48 { IPC_M_DATA_WRITE, "DATA_WRITE" }, 49 { IPC_M_DATA_READ, "DATA_READ" }, 50 { IPC_M_DEBUG, "DEBUG" }, 51 53 52 /* Terminating entry */ 54 53 { 0, NULL } -
uspace/app/trace/ipcp.c
r764d71e r79ae36dd 37 37 #include <adt/hash_table.h> 38 38 #include <sys/typefmt.h> 39 39 #include <kernel/ipc/ipc_methods.h> 40 40 #include "ipc_desc.h" 41 41 #include "proto.h" … … 268 268 proto_t *proto; 269 269 int cphone; 270 270 271 271 sysarg_t *resp; 272 272 oper_t *oper; 273 273 int i; 274 275 // printf("parse_answer\n"); 276 274 277 275 phone = pcall->phone_hash; 278 276 method = IPC_GET_IMETHOD(pcall->question); 279 277 retval = IPC_GET_RETVAL(*answer); 280 278 281 279 resp = answer->args; 282 280 283 281 if ((display_mask & DM_IPC) != 0) { 284 282 printf("Response to %p: retval=%" PRIdn ", args = (%" PRIun ", " … … 288 286 IPC_GET_ARG4(*answer), IPC_GET_ARG5(*answer)); 289 287 } 290 288 291 289 if ((display_mask & DM_USER) != 0) { 292 290 oper = pcall->oper; 293 294 if (oper != NULL && (oper->rv_type != V_VOID || oper->respc > 0)) { 291 292 if ((oper != NULL) && 293 ((oper->rv_type != V_VOID) || (oper->respc > 0))) { 295 294 printf("->"); 296 295 297 296 if (oper->rv_type != V_VOID) { 298 297 putchar(' '); … … 304 303 putchar('('); 305 304 for (i = 1; i <= oper->respc; ++i) { 306 if (i > 1) printf(", "); 305 if (i > 1) 306 printf(", "); 307 307 val_print(resp[i], oper->resp_type[i - 1]); 308 308 } 309 309 putchar(')'); 310 310 } 311 311 312 312 putchar('\n'); 313 313 } 314 314 } 315 316 if (phone == 0 && method == IPC_M_CONNECT_ME_TO && retval == 0) { 315 316 if ((phone == PHONE_NS) && (method == IPC_M_CONNECT_ME_TO) && 317 (retval == 0)) { 317 318 /* Connected to a service (through NS) */ 318 319 service = IPC_GET_ARG1(pcall->question); 319 320 proto = proto_get_by_srv(service); 320 if (proto == NULL) proto = proto_unknown; 321 321 if (proto == NULL) 322 proto = proto_unknown; 323 322 324 cphone = IPC_GET_ARG5(*answer); 323 325 if ((display_mask & DM_SYSTEM) != 0) { 324 326 printf("Registering connection (phone %d, protocol: %s)\n", cphone, 325 proto->name); 326 } 327 proto->name); 328 } 329 327 330 ipcp_connection_set(cphone, 0, proto); 328 331 } … … 334 337 pending_call_t *pcall; 335 338 unsigned long key[1]; 336 337 // printf("ipcp_call_in()\n"); 338 339 339 340 if ((hash & IPC_CALLID_ANSWERED) == 0 && hash != IPCP_CALLID_SYNC) { 340 341 /* Not a response */ … … 344 345 return; 345 346 } 346 347 347 348 hash = hash & ~IPC_CALLID_ANSWERED; 348 349 key[0] = hash; 349 350 350 351 item = hash_table_find(&pending_calls, key); 351 if (item == NULL) return; // No matching question found 352 352 if (item == NULL) 353 return; /* No matching question found */ 354 353 355 /* 354 356 * Response matched to question. … … 357 359 pcall = hash_table_get_instance(item, pending_call_t, link); 358 360 hash_table_remove(&pending_calls, key, 1); 359 361 360 362 parse_answer(hash, pcall, call); 361 363 free(pcall); -
uspace/app/trace/syscalls.c
r764d71e r79ae36dd 40 40 [SYS_KLOG] ={ "klog", 3, V_INT_ERRNO }, 41 41 [SYS_TLS_SET] = { "tls_set", 1, V_ERRNO }, 42 42 43 [SYS_THREAD_CREATE] = { "thread_create", 3, V_ERRNO }, 43 44 [SYS_THREAD_EXIT] = { "thread_exit", 1, V_ERRNO }, -
uspace/app/trace/trace.c
r764d71e r79ae36dd 72 72 ipc_call_t thread_ipc_req[THBUF_SIZE]; 73 73 74 int phoneid;74 async_sess_t *sess; 75 75 bool abort_trace; 76 76 … … 81 81 82 82 static bool cev_valid; 83 static console_event_t cev;83 static kbd_event_t cev; 84 84 85 85 void thread_trace_start(uintptr_t thread_hash); … … 146 146 static int connect_task(task_id_t task_id) 147 147 { 148 int rc; 149 150 rc = async_connect_kbox(task_id); 151 152 if (rc == ENOTSUP) { 153 printf("You do not have userspace debugging support " 154 "compiled in the kernel.\n"); 155 printf("Compile kernel with 'Support for userspace debuggers' " 156 "(CONFIG_UDEBUG) enabled.\n"); 157 return rc; 158 } 159 160 if (rc < 0) { 148 async_sess_t *ksess = async_connect_kbox(task_id); 149 150 if (!ksess) { 151 if (errno == ENOTSUP) { 152 printf("You do not have userspace debugging support " 153 "compiled in the kernel.\n"); 154 printf("Compile kernel with 'Support for userspace debuggers' " 155 "(CONFIG_UDEBUG) enabled.\n"); 156 return errno; 157 } 158 161 159 printf("Error connecting\n"); 162 printf("ipc_connect_task(%" PRIu64 ") -> %d ", task_id, rc); 163 return rc; 164 } 165 166 phoneid = rc; 167 168 rc = udebug_begin(phoneid); 160 printf("ipc_connect_task(%" PRIu64 ") -> %d ", task_id, errno); 161 return errno; 162 } 163 164 int rc = udebug_begin(ksess); 169 165 if (rc < 0) { 170 166 printf("udebug_begin() -> %d\n", rc); 171 167 return rc; 172 168 } 173 174 rc = udebug_set_evmask( phoneid, UDEBUG_EM_ALL);169 170 rc = udebug_set_evmask(ksess, UDEBUG_EM_ALL); 175 171 if (rc < 0) { 176 172 printf("udebug_set_evmask(0x%x) -> %d\n ", UDEBUG_EM_ALL, rc); 177 173 return rc; 178 174 } 179 175 176 sess = ksess; 180 177 return 0; 181 178 } … … 188 185 int i; 189 186 190 rc = udebug_thread_read( phoneid, thread_hash_buf,187 rc = udebug_thread_read(sess, thread_hash_buf, 191 188 THBUF_SIZE*sizeof(unsigned), &tb_copied, &tb_needed); 192 189 if (rc < 0) { … … 314 311 315 312 memset(&call, 0, sizeof(call)); 316 rc = udebug_mem_read( phoneid, &call.args, sc_args[1], sizeof(call.args));313 rc = udebug_mem_read(sess, &call.args, sc_args[1], sizeof(call.args)); 317 314 318 315 if (rc >= 0) { … … 325 322 ipc_call_t question, reply; 326 323 int rc; 327 int phoneidx; 328 329 // printf("sc_ipc_call_sync_fast()\n"); 330 phoneidx = sc_args[0]; 324 int phoneid; 325 326 phoneid = sc_args[0]; 331 327 332 328 IPC_SET_IMETHOD(question, sc_args[1]); … … 337 333 IPC_SET_ARG5(question, 0); 338 334 339 // printf("memset\n");340 335 memset(&reply, 0, sizeof(reply)); 341 // printf("udebug_mem_read(phone=%d, buffer_ptr=%u, src_addr=%d, n=%d\n", 342 // phoneid, &reply.args, sc_args[5], sizeof(reply.args)); 343 rc = udebug_mem_read(phoneid, &reply.args, sc_args[5], sizeof(reply.args)); 344 // printf("dmr->%d\n", rc); 345 if (rc < 0) return; 346 347 // printf("call ipc_call_sync\n"); 348 ipcp_call_sync(phoneidx, &question, &reply); 336 rc = udebug_mem_read(sess, &reply.args, sc_args[5], sizeof(reply.args)); 337 if (rc < 0) 338 return; 339 340 ipcp_call_sync(phoneid, &question, &reply); 349 341 } 350 342 … … 355 347 356 348 memset(&question, 0, sizeof(question)); 357 rc = udebug_mem_read( phoneid, &question.args, sc_args[1],349 rc = udebug_mem_read(sess, &question.args, sc_args[1], 358 350 sizeof(question.args)); 359 351 … … 372 364 373 365 memset(&reply, 0, sizeof(reply)); 374 rc = udebug_mem_read( phoneid, &reply.args, sc_args[2],366 rc = udebug_mem_read(sess, &reply.args, sc_args[2], 375 367 sizeof(reply.args)); 376 368 … … 391 383 392 384 memset(&call, 0, sizeof(call)); 393 rc = udebug_mem_read(phoneid, &call, sc_args[0], sizeof(call)); 394 // printf("udebug_mem_read(phone %d, dest %d, app-mem src %d, size %d -> %d\n", 395 // phoneid, (int)&call, sc_args[0], sizeof(call), rc); 396 397 if (rc >= 0) { 385 rc = udebug_mem_read(sess, &call, sc_args[0], sizeof(call)); 386 387 if (rc >= 0) 398 388 ipcp_call_in(&call, sc_rc); 399 }400 389 } 401 390 … … 407 396 408 397 /* Read syscall arguments */ 409 rc = udebug_args_read(phoneid, thread_hash, sc_args); 410 411 async_serialize_start(); 412 413 // printf("[%d] ", thread_id); 398 rc = udebug_args_read(sess, thread_hash, sc_args); 414 399 415 400 if (rc < 0) { 416 401 printf("error\n"); 417 async_serialize_end();418 402 return; 419 403 } … … 432 416 break; 433 417 } 434 435 async_serialize_end();436 418 } 437 419 … … 444 426 445 427 /* Read syscall arguments */ 446 rc = udebug_args_read(phoneid, thread_hash, sc_args); 447 448 async_serialize_start(); 428 rc = udebug_args_read(sess, thread_hash, sc_args); 449 429 450 430 // printf("[%d] ", thread_id); … … 452 432 if (rc < 0) { 453 433 printf("error\n"); 454 async_serialize_end();455 434 return; 456 435 } … … 481 460 break; 482 461 } 483 484 async_serialize_end();485 462 } 486 463 487 464 static void event_thread_b(uintptr_t hash) 488 465 { 489 async_serialize_start();490 466 printf("New thread, hash %p\n", (void *) hash); 491 async_serialize_end();492 493 467 thread_trace_start(hash); 494 468 } … … 527 501 528 502 /* Run thread until an event occurs */ 529 rc = udebug_go( phoneid, thread_hash,503 rc = udebug_go(sess, thread_hash, 530 504 &ev_type, &val0, &val1); 531 505 … … 656 630 { 657 631 (void) arg; 658 632 633 console_ctrl_t *console = console_init(stdin, stdout); 634 659 635 while (true) { 660 636 fibril_mutex_lock(&state_lock); … … 662 638 fibril_condvar_wait(&state_cv, &state_lock); 663 639 fibril_mutex_unlock(&state_lock); 664 665 if (!console_get_ event(fphone(stdin), &cev))640 641 if (!console_get_kbd_event(console, &cev)) 666 642 return -1; 667 643 668 644 fibril_mutex_lock(&state_lock); 669 645 cev_valid = true; 670 646 fibril_condvar_broadcast(&state_cv); 671 fibril_mutex_unlock(&state_lock); 647 fibril_mutex_unlock(&state_lock); 672 648 } 673 649 } … … 675 651 static void trace_task(task_id_t task_id) 676 652 { 677 console_event_t ev;653 kbd_event_t ev; 678 654 bool done; 679 655 int i; … … 727 703 case KC_P: 728 704 printf("Pause...\n"); 729 rc = udebug_stop( phoneid, thash);705 rc = udebug_stop(sess, thash); 730 706 if (rc != EOK) 731 707 printf("Error: stop -> %d\n", rc); … … 743 719 printf("\nTerminate debugging session...\n"); 744 720 abort_trace = true; 745 udebug_end( phoneid);746 async_hangup( phoneid);721 udebug_end(sess); 722 async_hangup(sess); 747 723 748 724 ipcp_cleanup();
Note:
See TracChangeset
for help on using the changeset viewer.