- Timestamp:
- 2011-08-28T21:16:54Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0f0f8bc
- Parents:
- 1a5b252 (diff), 36e2b55 (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:
- kernel
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/include/asm.h
r1a5b252 r8cc4ddb 41 41 #include <trace.h> 42 42 43 #define IO_SPACE_BOUNDARY ((void *) (64 * 1024)) 44 43 45 /** Return base address of current stack. 44 46 * … … 77 79 } 78 80 79 #define IO_SPACE_BOUNDARY ((void *) (64 * 1024))80 81 81 /** Byte from port 82 82 * … … 91 91 if (port < (ioport8_t *) IO_SPACE_BOUNDARY) { 92 92 uint8_t val; 93 93 94 asm volatile ( 94 95 "inb %w[port], %b[val]\n" … … 96 97 : [port] "d" (port) 97 98 ); 99 98 100 return val; 99 } else {101 } else 100 102 return (uint8_t) *port; 101 }102 103 } 103 104 … … 114 115 if (port < (ioport16_t *) IO_SPACE_BOUNDARY) { 115 116 uint16_t val; 117 116 118 asm volatile ( 117 119 "inw %w[port], %w[val]\n" … … 119 121 : [port] "d" (port) 120 122 ); 123 121 124 return val; 122 } else {125 } else 123 126 return (uint16_t) *port; 124 }125 127 } 126 128 … … 137 139 if (port < (ioport32_t *) IO_SPACE_BOUNDARY) { 138 140 uint32_t val; 141 139 142 asm volatile ( 140 143 "inl %w[port], %[val]\n" … … 142 145 : [port] "d" (port) 143 146 ); 147 144 148 return val; 145 } else {149 } else 146 150 return (uint32_t) *port; 147 }148 151 } 149 152 … … 163 166 :: [val] "a" (val), [port] "d" (port) 164 167 ); 165 } else {168 } else 166 169 *port = val; 167 }168 170 } 169 171 … … 183 185 :: [val] "a" (val), [port] "d" (port) 184 186 ); 185 } else {187 } else 186 188 *port = val; 187 }188 189 } 189 190 … … 203 204 :: [val] "a" (val), [port] "d" (port) 204 205 ); 205 } else {206 } else 206 207 *port = val; 207 }208 208 } 209 209 -
kernel/arch/ia32/include/asm.h
r1a5b252 r8cc4ddb 118 118 :: [val] "a" (val), [port] "d" (port) 119 119 ); 120 } else {120 } else 121 121 *port = val; 122 }123 122 } 124 123 … … 138 137 :: [val] "a" (val), [port] "d" (port) 139 138 ); 140 } else {139 } else 141 140 *port = val; 142 }143 141 } 144 142 … … 158 156 :: [val] "a" (val), [port] "d" (port) 159 157 ); 160 } else {158 } else 161 159 *port = val; 162 }163 160 } 164 161 … … 175 172 if (((void *)port) < IO_SPACE_BOUNDARY) { 176 173 uint8_t val; 174 177 175 asm volatile ( 178 176 "inb %w[port], %b[val]\n" … … 180 178 : [port] "d" (port) 181 179 ); 180 182 181 return val; 183 } else {182 } else 184 183 return (uint8_t) *port; 185 }186 184 } 187 185 … … 198 196 if (((void *)port) < IO_SPACE_BOUNDARY) { 199 197 uint16_t val; 198 200 199 asm volatile ( 201 200 "inw %w[port], %w[val]\n" … … 203 202 : [port] "d" (port) 204 203 ); 204 205 205 return val; 206 } else {206 } else 207 207 return (uint16_t) *port; 208 }209 208 } 210 209 … … 221 220 if (((void *)port) < IO_SPACE_BOUNDARY) { 222 221 uint32_t val; 222 223 223 asm volatile ( 224 224 "inl %w[port], %[val]\n" … … 226 226 : [port] "d" (port) 227 227 ); 228 228 229 return val; 229 } else {230 } else 230 231 return (uint32_t) *port; 231 }232 232 } 233 233 -
kernel/generic/include/ipc/ipc.h
r1a5b252 r8cc4ddb 36 36 #define KERN_IPC_H_ 37 37 38 #include <abi/ipc/ipc.h>39 38 #include <synch/spinlock.h> 40 39 #include <synch/mutex.h> 41 40 #include <synch/waitq.h> 41 #include <abi/ipc/ipc.h> 42 #include <abi/proc/task.h> 42 43 #include <typedefs.h> 43 44 44 #define IPC_MAX_PHONES 3245 #define IPC_MAX_PHONES 64 45 46 46 47 struct answerbox; -
kernel/generic/include/sysinfo/sysinfo.h
r1a5b252 r8cc4ddb 38 38 #include <typedefs.h> 39 39 #include <str.h> 40 #include <abi/sysinfo.h> 40 41 41 42 /** Framebuffer info exported flags */ 42 43 extern bool fb_exported; 43 44 /** Item value type45 *46 */47 typedef enum {48 SYSINFO_VAL_UNDEFINED = 0, /**< Undefined value */49 SYSINFO_VAL_VAL = 1, /**< Constant numeric value */50 SYSINFO_VAL_DATA = 2, /**< Constant binary data */51 SYSINFO_VAL_FUNCTION_VAL = 3, /**< Generated numeric value */52 SYSINFO_VAL_FUNCTION_DATA = 4 /**< Generated binary data */53 } sysinfo_item_val_type_t;54 44 55 45 /** Subtree type … … 145 135 extern void sysinfo_dump(sysinfo_item_t *); 146 136 147 extern sysarg_t sys_sysinfo_get_ tag(void *, size_t);137 extern sysarg_t sys_sysinfo_get_val_type(void *, size_t); 148 138 extern sysarg_t sys_sysinfo_get_value(void *, size_t, void *); 149 139 extern sysarg_t sys_sysinfo_get_data_size(void *, size_t, void *); -
kernel/generic/include/typedefs.h
r1a5b252 r8cc4ddb 39 39 #include <arch/common.h> 40 40 #include <arch/types.h> 41 #include <abi/bool.h> 41 42 42 43 #define NULL ((void *) 0) … … 61 62 typedef void (* function)(); 62 63 63 typedef uint8_t bool;64 typedef uint64_t thread_id_t;65 typedef uint64_t task_id_t;66 64 typedef uint32_t container_id_t; 67 65 -
kernel/generic/src/mm/slab.c
r1a5b252 r8cc4ddb 180 180 unsigned int flags) 181 181 { 182 183 184 182 size_t zone = 0; 185 183 -
kernel/generic/src/printf/printf_core.c
r1a5b252 r8cc4ddb 75 75 #define PRINT_NUMBER_BUFFER_SIZE (64 + 5) 76 76 77 /** Get signed or unsigned integer argument */ 78 #define PRINTF_GET_INT_ARGUMENT(type, ap, flags) \ 79 ({ \ 80 unsigned type res; \ 81 \ 82 if ((flags) & __PRINTF_FLAG_SIGNED) { \ 83 signed type arg = va_arg((ap), signed type); \ 84 \ 85 if (arg < 0) { \ 86 res = -arg; \ 87 (flags) |= __PRINTF_FLAG_NEGATIVE; \ 88 } else \ 89 res = arg; \ 90 } else \ 91 res = va_arg((ap), unsigned type); \ 92 \ 93 res; \ 94 }) 95 77 96 /** Enumeration of possible arguments types. 78 97 */ … … 207 226 } 208 227 209 return (int) (counter + 1);228 return (int) (counter); 210 229 } 211 230 … … 245 264 } 246 265 247 return (int) (counter + 1);266 return (int) (counter); 248 267 } 249 268 … … 832 851 size_t size; 833 852 uint64_t number; 853 834 854 switch (qualifier) { 835 855 case PrintfQualifierByte: 836 856 size = sizeof(unsigned char); 837 number = (uint64_t) va_arg(ap, unsigned int);857 number = PRINTF_GET_INT_ARGUMENT(int, ap, flags); 838 858 break; 839 859 case PrintfQualifierShort: 840 860 size = sizeof(unsigned short); 841 number = (uint64_t) va_arg(ap, unsigned int);861 number = PRINTF_GET_INT_ARGUMENT(int, ap, flags); 842 862 break; 843 863 case PrintfQualifierInt: 844 864 size = sizeof(unsigned int); 845 number = (uint64_t) va_arg(ap, unsigned int);865 number = PRINTF_GET_INT_ARGUMENT(int, ap, flags); 846 866 break; 847 867 case PrintfQualifierLong: 848 868 size = sizeof(unsigned long); 849 number = (uint64_t) va_arg(ap, unsigned long);869 number = PRINTF_GET_INT_ARGUMENT(long, ap, flags); 850 870 break; 851 871 case PrintfQualifierLongLong: 852 872 size = sizeof(unsigned long long); 853 number = (uint64_t) va_arg(ap, unsigned long long);873 number = PRINTF_GET_INT_ARGUMENT(long long, ap, flags); 854 874 break; 855 875 case PrintfQualifierPointer: … … 866 886 counter = -counter; 867 887 goto out; 868 }869 870 if (flags & __PRINTF_FLAG_SIGNED) {871 if (number & (0x1 << (size * 8 - 1))) {872 flags |= __PRINTF_FLAG_NEGATIVE;873 874 if (size == sizeof(uint64_t)) {875 number = -((int64_t) number);876 } else {877 number = ~number;878 number &=879 ~(0xFFFFFFFFFFFFFFFFll <<880 (size * 8));881 number++;882 }883 }884 888 } 885 889 -
kernel/generic/src/syscall/syscall.c
r1a5b252 r8cc4ddb 181 181 182 182 /* Sysinfo syscalls. */ 183 (syshandler_t) sys_sysinfo_get_ tag,183 (syshandler_t) sys_sysinfo_get_val_type, 184 184 (syshandler_t) sys_sysinfo_get_value, 185 185 (syshandler_t) sys_sysinfo_get_data_size, -
kernel/generic/src/sysinfo/sysinfo.c
r1a5b252 r8cc4ddb 661 661 * 662 662 */ 663 sysarg_t sys_sysinfo_get_ tag(void *path_ptr, size_t path_size)663 sysarg_t sys_sysinfo_get_val_type(void *path_ptr, size_t path_size) 664 664 { 665 665 /* -
kernel/test/print/print2.c
r1a5b252 r8cc4ddb 44 44 TPRINTF("Real output: [%d] [%3.2d] [%-3.2d] [%2.3d] [%-2.3d]\n\n", -1, -2, -3, -4, -5); 45 45 46 TPRINTF("Testing printf(\"%%lld %%3.2lld %%-3.2lld %%2.3lld %%-2.3lld\", (long long) -1, (long long) -2, (long long) -3, (long long) -4, (long long) -5):\n"); 47 TPRINTF("Expected output: [-1] [-02] [-03] [-004] [-005]\n"); 48 TPRINTF("Real output: [%lld] [%3.2lld] [%-3.2lld] [%2.3lld] [%-2.3lld]\n\n", (long long) -1, (long long) -2, (long long) -3, (long long) -4, (long long) -5); 49 46 50 TPRINTF("Testing printf(\"%%#x %%5.3#x %%-5.3#x %%3.5#x %%-3.5#x\", 17, 18, 19, 20, 21):\n"); 47 51 TPRINTF("Expected output: [0x11] [0x012] [0x013] [0x00014] [0x00015]\n");
Note:
See TracChangeset
for help on using the changeset viewer.