Changeset 8cc4ddb in mainline for kernel


Ignore:
Timestamp:
2011-08-28T21:16:54Z (14 years ago)
Author:
Jiri Svoboda <jiri@…>
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.
Message:

Merge mainline changes.

Location:
kernel
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/include/asm.h

    r1a5b252 r8cc4ddb  
    4141#include <trace.h>
    4242
     43#define IO_SPACE_BOUNDARY       ((void *) (64 * 1024))
     44
    4345/** Return base address of current stack.
    4446 *
     
    7779}
    7880
    79 #define IO_SPACE_BOUNDARY       ((void *) (64 * 1024))
    80 
    8181/** Byte from port
    8282 *
     
    9191        if (port < (ioport8_t *) IO_SPACE_BOUNDARY) {
    9292                uint8_t val;
     93               
    9394                asm volatile (
    9495                        "inb %w[port], %b[val]\n"
     
    9697                        : [port] "d" (port)
    9798                );
     99               
    98100                return val;
    99         } else {
     101        } else
    100102                return (uint8_t) *port;
    101         }
    102103}
    103104
     
    114115        if (port < (ioport16_t *) IO_SPACE_BOUNDARY) {
    115116                uint16_t val;
     117               
    116118                asm volatile (
    117119                        "inw %w[port], %w[val]\n"
     
    119121                        : [port] "d" (port)
    120122                );
     123               
    121124                return val;
    122         } else {
     125        } else
    123126                return (uint16_t) *port;
    124         }
    125127}
    126128
     
    137139        if (port < (ioport32_t *) IO_SPACE_BOUNDARY) {
    138140                uint32_t val;
     141               
    139142                asm volatile (
    140143                        "inl %w[port], %[val]\n"
     
    142145                        : [port] "d" (port)
    143146                );
     147               
    144148                return val;
    145         } else {
     149        } else
    146150                return (uint32_t) *port;
    147         }
    148151}
    149152
     
    163166                        :: [val] "a" (val), [port] "d" (port)
    164167                );     
    165         } else {
     168        } else
    166169                *port = val;
    167         }
    168170}
    169171
     
    183185                        :: [val] "a" (val), [port] "d" (port)
    184186                );
    185         } else {
     187        } else
    186188                *port = val;
    187         }
    188189}
    189190
     
    203204                        :: [val] "a" (val), [port] "d" (port)
    204205                );
    205         } else {
     206        } else
    206207                *port = val;
    207         }
    208208}
    209209
  • kernel/arch/ia32/include/asm.h

    r1a5b252 r8cc4ddb  
    118118                        :: [val] "a" (val), [port] "d" (port)
    119119                );     
    120         } else {
     120        } else
    121121                *port = val;
    122         }
    123122}
    124123
     
    138137                        :: [val] "a" (val), [port] "d" (port)
    139138                );
    140         } else {
     139        } else
    141140                *port = val;
    142         }
    143141}
    144142
     
    158156                        :: [val] "a" (val), [port] "d" (port)
    159157                );
    160         } else {
     158        } else
    161159                *port = val;
    162         }
    163160}
    164161
     
    175172        if (((void *)port) < IO_SPACE_BOUNDARY) {
    176173                uint8_t val;
     174               
    177175                asm volatile (
    178176                        "inb %w[port], %b[val]\n"
     
    180178                        : [port] "d" (port)
    181179                );
     180               
    182181                return val;
    183         } else {
     182        } else
    184183                return (uint8_t) *port;
    185         }
    186184}
    187185
     
    198196        if (((void *)port) < IO_SPACE_BOUNDARY) {
    199197                uint16_t val;
     198               
    200199                asm volatile (
    201200                        "inw %w[port], %w[val]\n"
     
    203202                        : [port] "d" (port)
    204203                );
     204               
    205205                return val;
    206         } else {
     206        } else
    207207                return (uint16_t) *port;
    208         }
    209208}
    210209
     
    221220        if (((void *)port) < IO_SPACE_BOUNDARY) {
    222221                uint32_t val;
     222               
    223223                asm volatile (
    224224                        "inl %w[port], %[val]\n"
     
    226226                        : [port] "d" (port)
    227227                );
     228               
    228229                return val;
    229         } else {
     230        } else
    230231                return (uint32_t) *port;
    231         }
    232232}
    233233
  • kernel/generic/include/ipc/ipc.h

    r1a5b252 r8cc4ddb  
    3636#define KERN_IPC_H_
    3737
    38 #include <abi/ipc/ipc.h>
    3938#include <synch/spinlock.h>
    4039#include <synch/mutex.h>
    4140#include <synch/waitq.h>
     41#include <abi/ipc/ipc.h>
     42#include <abi/proc/task.h>
    4243#include <typedefs.h>
    4344
    44 #define IPC_MAX_PHONES  32
     45#define IPC_MAX_PHONES  64
    4546
    4647struct answerbox;
  • kernel/generic/include/sysinfo/sysinfo.h

    r1a5b252 r8cc4ddb  
    3838#include <typedefs.h>
    3939#include <str.h>
     40#include <abi/sysinfo.h>
    4041
    4142/** Framebuffer info exported flags */
    4243extern bool fb_exported;
    43 
    44 /** Item value type
    45  *
    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;
    5444
    5545/** Subtree type
     
    145135extern void sysinfo_dump(sysinfo_item_t *);
    146136
    147 extern sysarg_t sys_sysinfo_get_tag(void *, size_t);
     137extern sysarg_t sys_sysinfo_get_val_type(void *, size_t);
    148138extern sysarg_t sys_sysinfo_get_value(void *, size_t, void *);
    149139extern sysarg_t sys_sysinfo_get_data_size(void *, size_t, void *);
  • kernel/generic/include/typedefs.h

    r1a5b252 r8cc4ddb  
    3939#include <arch/common.h>
    4040#include <arch/types.h>
     41#include <abi/bool.h>
    4142
    4243#define NULL  ((void *) 0)
     
    6162typedef void (* function)();
    6263
    63 typedef uint8_t bool;
    64 typedef uint64_t thread_id_t;
    65 typedef uint64_t task_id_t;
    6664typedef uint32_t container_id_t;
    6765
  • kernel/generic/src/mm/slab.c

    r1a5b252 r8cc4ddb  
    180180    unsigned int flags)
    181181{
    182        
    183        
    184182        size_t zone = 0;
    185183       
  • kernel/generic/src/printf/printf_core.c

    r1a5b252 r8cc4ddb  
    7575#define PRINT_NUMBER_BUFFER_SIZE  (64 + 5)
    7676
     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
    7796/** Enumeration of possible arguments types.
    7897 */
     
    207226        }
    208227       
    209         return (int) (counter + 1);
     228        return (int) (counter);
    210229}
    211230
     
    245264        }
    246265       
    247         return (int) (counter + 1);
     266        return (int) (counter);
    248267}
    249268
     
    832851                        size_t size;
    833852                        uint64_t number;
     853                       
    834854                        switch (qualifier) {
    835855                        case PrintfQualifierByte:
    836856                                size = sizeof(unsigned char);
    837                                 number = (uint64_t) va_arg(ap, unsigned int);
     857                                number = PRINTF_GET_INT_ARGUMENT(int, ap, flags);
    838858                                break;
    839859                        case PrintfQualifierShort:
    840860                                size = sizeof(unsigned short);
    841                                 number = (uint64_t) va_arg(ap, unsigned int);
     861                                number = PRINTF_GET_INT_ARGUMENT(int, ap, flags);
    842862                                break;
    843863                        case PrintfQualifierInt:
    844864                                size = sizeof(unsigned int);
    845                                 number = (uint64_t) va_arg(ap, unsigned int);
     865                                number = PRINTF_GET_INT_ARGUMENT(int, ap, flags);
    846866                                break;
    847867                        case PrintfQualifierLong:
    848868                                size = sizeof(unsigned long);
    849                                 number = (uint64_t) va_arg(ap, unsigned long);
     869                                number = PRINTF_GET_INT_ARGUMENT(long, ap, flags);
    850870                                break;
    851871                        case PrintfQualifierLongLong:
    852872                                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);
    854874                                break;
    855875                        case PrintfQualifierPointer:
     
    866886                                counter = -counter;
    867887                                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                                 }
    884888                        }
    885889                       
  • kernel/generic/src/syscall/syscall.c

    r1a5b252 r8cc4ddb  
    181181       
    182182        /* Sysinfo syscalls. */
    183         (syshandler_t) sys_sysinfo_get_tag,
     183        (syshandler_t) sys_sysinfo_get_val_type,
    184184        (syshandler_t) sys_sysinfo_get_value,
    185185        (syshandler_t) sys_sysinfo_get_data_size,
  • kernel/generic/src/sysinfo/sysinfo.c

    r1a5b252 r8cc4ddb  
    661661 *
    662662 */
    663 sysarg_t sys_sysinfo_get_tag(void *path_ptr, size_t path_size)
     663sysarg_t sys_sysinfo_get_val_type(void *path_ptr, size_t path_size)
    664664{
    665665        /*
  • kernel/test/print/print2.c

    r1a5b252 r8cc4ddb  
    4444        TPRINTF("Real output:     [%d] [%3.2d] [%-3.2d] [%2.3d] [%-2.3d]\n\n", -1, -2, -3, -4, -5);
    4545       
     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       
    4650        TPRINTF("Testing printf(\"%%#x %%5.3#x %%-5.3#x %%3.5#x %%-3.5#x\", 17, 18, 19, 20, 21):\n");
    4751        TPRINTF("Expected output: [0x11] [0x012] [0x013] [0x00014] [0x00015]\n");
Note: See TracChangeset for help on using the changeset viewer.