Changeset ec7f8b1 in mainline for uspace/lib/c
- Timestamp:
- 2011-08-21T15:35:03Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- bb74dabe
- Parents:
- c4a8e4a (diff), 5935c079 (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/lib/c
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ia32/include/ddi.h
rc4a8e4a rec7f8b1 43 43 if (port < (ioport8_t *) IO_SPACE_BOUNDARY) { 44 44 uint8_t val; 45 45 46 asm volatile ( 46 47 "inb %w[port], %b[val]\n" … … 48 49 : [port] "d" (port) 49 50 ); 51 50 52 return val; 51 } else {53 } else 52 54 return (uint8_t) *port; 53 }54 55 } 55 56 … … 58 59 if (port < (ioport16_t *) IO_SPACE_BOUNDARY) { 59 60 uint16_t val; 61 60 62 asm volatile ( 61 63 "inw %w[port], %w[val]\n" … … 63 65 : [port] "d" (port) 64 66 ); 67 65 68 return val; 66 } else {69 } else 67 70 return (uint16_t) *port; 68 }69 71 } 70 72 … … 73 75 if (port < (ioport32_t *) IO_SPACE_BOUNDARY) { 74 76 uint32_t val; 77 75 78 asm volatile ( 76 79 "inl %w[port], %[val]\n" … … 78 81 : [port] "d" (port) 79 82 ); 83 80 84 return val; 81 } else {85 } else 82 86 return (uint32_t) *port; 83 }84 87 } 85 88 … … 91 94 :: [val] "a" (val), [port] "d" (port) 92 95 ); 93 } else {96 } else 94 97 *port = val; 95 }96 98 } 97 99 … … 103 105 :: [val] "a" (val), [port] "d" (port) 104 106 ); 105 } else {107 } else 106 108 *port = val; 107 }108 109 } 109 110 … … 115 116 :: [val] "a" (val), [port] "d" (port) 116 117 ); 117 } else {118 } else 118 119 *port = val; 119 }120 120 } 121 121 -
uspace/lib/c/generic/async.c
rc4a8e4a rec7f8b1 1656 1656 1657 1657 return sess; 1658 } 1659 1660 /** Set arguments for new connections. 1661 * 1662 * FIXME This is an ugly hack to work around the problem that parallel 1663 * exchanges are implemented using parallel connections. When we create 1664 * a callback session, the framework does not know arguments for the new 1665 * connections. 1666 * 1667 * The proper solution seems to be to implement parallel exchanges using 1668 * tagging. 1669 */ 1670 void async_sess_args_set(async_sess_t *sess, sysarg_t arg1, sysarg_t arg2, 1671 sysarg_t arg3) 1672 { 1673 sess->arg1 = arg1; 1674 sess->arg2 = arg2; 1675 sess->arg3 = arg3; 1658 1676 } 1659 1677 -
uspace/lib/c/generic/devman.c
rc4a8e4a rec7f8b1 89 89 if (devman_driver_block_sess == NULL) 90 90 devman_driver_block_sess = 91 service_connect_blocking(EXCHANGE_ SERIALIZE,91 service_connect_blocking(EXCHANGE_PARALLEL, 92 92 SERVICE_DEVMAN, DEVMAN_DRIVER, 0); 93 93 } … … 138 138 if (devman_driver_sess == NULL) 139 139 devman_driver_sess = 140 service_connect(EXCHANGE_ SERIALIZE, SERVICE_DEVMAN,140 service_connect(EXCHANGE_PARALLEL, SERVICE_DEVMAN, 141 141 DEVMAN_DRIVER, 0); 142 142 -
uspace/lib/c/generic/ns.c
rc4a8e4a rec7f8b1 56 56 async_exchange_end(exch); 57 57 58 /* 59 * FIXME Ugly hack to work around limitation of implementing 60 * parallel exchanges using multiple connections. Shift out 61 * first argument for non-initial connections. 62 */ 63 async_sess_args_set(sess, arg2, arg3, 0); 64 58 65 return sess; 59 66 } … … 66 73 async_connect_me_to_blocking(mgmt, exch, service, arg2, arg3); 67 74 async_exchange_end(exch); 75 76 /* 77 * FIXME Ugly hack to work around limitation of implementing 78 * parallel exchanges using multiple connections. Shift out 79 * first argument for non-initial connections. 80 */ 81 async_sess_args_set(sess, arg2, arg3, 0); 68 82 69 83 return sess; -
uspace/lib/c/generic/str.c
rc4a8e4a rec7f8b1 2 2 * Copyright (c) 2005 Martin Decky 3 3 * Copyright (c) 2008 Jiri Svoboda 4 * Copyright (c) 2011 Martin Sucha 4 5 * All rights reserved. 5 6 * … … 718 719 719 720 dest[dlen - 1] = '\0'; 721 } 722 723 /** Convert string to wide string. 724 * 725 * Convert string @a src to wide string. A new wide NULL-terminated 726 * string will be allocated on the heap. 727 * 728 * @param src Source string. 729 */ 730 wchar_t *str_to_awstr(const char *str) 731 { 732 size_t len = str_length(str); 733 734 wchar_t *wstr = calloc(len+1, sizeof(wchar_t)); 735 if (wstr == NULL) 736 return NULL; 737 738 str_to_wstr(wstr, len + 1, str); 739 return wstr; 720 740 } 721 741 -
uspace/lib/c/include/async.h
rc4a8e4a rec7f8b1 337 337 338 338 /* 339 * FIXME These functions just work around problems with parallel exchange 340 * management. Proper solution needs to be implemented. 341 */ 342 void async_sess_args_set(async_sess_t *sess, sysarg_t, sysarg_t, sysarg_t); 343 344 /* 339 345 * User-friendly wrappers for async_share_in_start(). 340 346 */ -
uspace/lib/c/include/str.h
rc4a8e4a rec7f8b1 83 83 extern char *wstr_to_astr(const wchar_t *src); 84 84 extern void str_to_wstr(wchar_t *dest, size_t dlen, const char *src); 85 extern wchar_t *str_to_awstr(const char *src); 85 86 86 87 extern char *str_chr(const char *str, wchar_t ch);
Note:
See TracChangeset
for help on using the changeset viewer.