Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changes in / [d3e241a:b705ecc] in mainline


Ignore:
Files:
240 added
4 deleted
19 edited

Legend:

Unmodified
Added
Removed
  • HelenOS.config

    rd3e241a rb705ecc  
    554554! CONFIG_WRITE_CORE_FILES (n/y)
    555555
     556% Include development files (headers, libraries)
     557! [RDFMT=tmpfs|RDFMT=ext2fs] CONFIG_DEVEL_FILES (n/y)
     558
    556559% Strip binaries
    557560! CONFIG_STRIP_BINARIES (n/y)
     
    562565% Barebone build with essential binaries only
    563566! CONFIG_BAREBONE (n/y)
     567
     568% Build pcc binaries
     569! CONFIG_PCC (n/y)
    564570
    565571% Build binutils binaries
  • boot/Makefile

    rd3e241a rb705ecc  
    6161                cp "$$file" "$(DIST_PATH)/lib/" ; \
    6262        done
     63ifeq ($(CONFIG_DEVEL_FILES), y)
     64        mkdir "$(DIST_PATH)/inc/c/"
     65        cp -r -L "$(USPACE_PATH)/lib/c/include/." "$(DIST_PATH)/inc/c/"
     66        cat "$(USPACE_PATH)/lib/c/arch/$(UARCH)/_link.ld" | sed 's/^STARTUP(.*)$$//g' > "$(DIST_PATH)/inc/_link.ld"
     67endif
    6368        for file in $(RD_APPS) ; do \
    6469                cp "$$file" "$(DIST_PATH)/app/" ; \
     
    9499        rm -rf $(USPACE_PATH)/dist/drv/*
    95100        rm -f $(USPACE_PATH)/dist/lib/*
     101        rm -rf $(USPACE_PATH)/dist/inc/*
    96102        rm -f $(USPACE_PATH)/dist/app/*
    97103        rm -f $(USPACE_PATH)/dist/cfg/net/*
  • boot/Makefile.common

    rd3e241a rb705ecc  
    126126
    127127RD_LIBS =
     128
     129ifeq ($(CONFIG_DEVEL_FILES), y)
     130        RD_LIBS += \
     131                $(USPACE_PATH)/lib/c/libc.a \
     132                $(USPACE_PATH)/lib/softint/libsoftint.a \
     133                $(USPACE_PATH)/lib/softfloat/libsoftfloat.a
     134endif
    128135
    129136ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
     
    171178        $(USPACE_PATH)/app/websrv/websrv
    172179
     180ifeq ($(CONFIG_PCC),y)
     181RD_APPS_NON_ESSENTIAL += \
     182        $(USPACE_PATH)/app/cc/cc \
     183        $(USPACE_PATH)/app/ccom/ccom \
     184        $(USPACE_PATH)/app/ccom/mkext/cc_mkext \
     185        $(USPACE_PATH)/app/cpp/cpp
     186endif
     187
    173188ifeq ($(CONFIG_BINUTILS),y)
    174189RD_APPS_NON_ESSENTIAL += \
  • uspace/Makefile

    rd3e241a rb705ecc  
    111111        drv/bus/usb/vhc
    112112
     113ifeq ($(CONFIG_PCC),y)
     114DIRS += \
     115        app/cc \
     116        app/ccom \
     117        app/ccom/mkext \
     118        app/cpp
     119endif
     120
    113121ifeq ($(CONFIG_BINUTILS),y)
    114122DIRS += \
  • uspace/app/bdsh/cmds/modules/help/help.c

    rd3e241a rb705ecc  
    4343extern const char *progname;
    4444
     45#define HELP_IS_BATCH           3
    4546#define HELP_IS_COMMANDS        2
    4647#define HELP_IS_MODULE          1
     
    5455{
    5556        int rc = HELP_IS_RUBBISH;
     57
     58        if (str_cmp(cmd, "batch") == 0)
     59                return HELP_IS_BATCH;
    5660
    5761        if (str_cmp(cmd, "commands") == 0)
     
    8791                "\n  If no argument is given to %s, a list of commands are shown\n\n",
    8892                cmdname, cmdname, cmdname, cmdname);
     93        }
     94
     95        return;
     96}
     97
     98static void help_batch(unsigned int level)
     99{
     100        if (level == HELP_SHORT) {
     101                printf(
     102                "\n  batch [filename]\n"
     103                "  Issues commands stored in the file.\n"
     104                "  Each command must correspond to the single line in the file.\n\n");
     105        } else {
     106                printf(
     107                "\n  `batch' - issues a batch of commands\n"
     108                "  Issues commands stored in the file. Each command must correspond\n"
     109                "  to the single line in the file. Empty lines can be used to visually\n"
     110                "  separate groups of commands. There is no support for comments,\n"
     111                "  variables, recursion or other programming constructs - the `batch'\n"
     112                "  command is indeed very trivial.\n\n");
    89113        }
    90114
     
    121145        }
    122146
     147        printf("   %-16s\t%s\n", "batch", "Issue batch of commands");
    123148        printf("\n  Try %s %s for more information on how `%s' works.\n\n",
    124149                cmdname, cmdname, cmdname);
     
    182207                        help_commands();
    183208                        return CMD_SUCCESS;
     209                case HELP_IS_BATCH:
     210                        help_batch(level);
     211                        return CMD_SUCCESS;
    184212                case HELP_IS_MODULE:
    185213                        help_module(mod_switch, level);
  • uspace/app/bdsh/input.c

    rd3e241a rb705ecc  
    169169                new_iostate.stdout = to;
    170170        }
    171        
    172         rc = run_command(actual_cmd, usr, &new_iostate);
     171
     172        if (str_cmp(actual_cmd[0], "batch") == 0 && actual_cmd[1] != NULL) {
     173                FILE *batch = fopen(actual_cmd[1], "r");
     174                if (batch == NULL) {
     175                        printf("Cannot open file %s\n", actual_cmd[1]);
     176                        rc = errno;
     177                } else {
     178                        cliuser_t fusr;
     179                        fusr.name = usr->name;
     180                        fusr.cwd = usr->cwd;
     181                        fusr.prompt = usr->prompt;
     182                        fusr.line = malloc(INPUT_MAX + 1);
     183                        char *cur = fusr.line;
     184                        char *end = fusr.line + INPUT_MAX;
     185                        int c = fgetc(batch);
     186                        while (fusr.line != NULL) {
     187                                if (c == '\n' || c == EOF || cur == end) {
     188                                        *cur = '\0';
     189                                        if (cur == fusr.line) {
     190                                                /* skip empty line */
     191                                                rc = 0;
     192                                                free(cur);
     193                                        } else {
     194                                                printf(">%s\n", fusr.line);
     195                                                rc = process_input(&fusr);
     196                                                /* fusr->line was freed by process_input() */
     197                                        }
     198                                        if (rc == 0 && c != EOF) {
     199                                                fusr.line = malloc(INPUT_MAX + 1);
     200                                                cur = fusr.line;
     201                                                end = fusr.line + INPUT_MAX;
     202                                        } else {
     203                                                break;
     204                                        }
     205                                } else {
     206                                        *cur++ = c;
     207                                }
     208                                c = fgetc(batch);
     209                        }
     210                        fclose(batch);
     211                }
     212        } else {
     213                rc = run_command(actual_cmd, usr, &new_iostate);
     214        }       
    173215       
    174216finit_with_files:
  • uspace/app/tetris/tetris.c

    rd3e241a rb705ecc  
    291291                for (j = i + 1; j <= 5; j++) {
    292292                        if (keys[i] == keys[j])
    293                                 errx(1, "duplicate command keys specified.");
     293                                errx(1, "%s", "duplicate command keys specified.");
    294294                }
    295295               
  • uspace/lib/c/arch/abs32le/include/types.h

    rd3e241a rb705ecc  
    5151typedef uint32_t size_t;
    5252
     53typedef int32_t intptr_t;
    5354typedef uint32_t uintptr_t;
    5455typedef uint32_t atomic_count_t;
  • uspace/lib/c/arch/amd64/include/atomic.h

    rd3e241a rb705ecc  
    4545{
    4646        asm volatile (
    47                 "lock incq %[count]\n"
    48                 : [count] "+m" (val->count)
     47                "lock incq %0\n"
     48                : "+m" (val->count)
    4949        );
    5050}
     
    5353{
    5454        asm volatile (
    55                 "lock decq %[count]\n"
    56                 : [count] "+m" (val->count)
     55                "lock decq %0\n"
     56                : "+m" (val->count)
    5757        );
    5858}
     
    6363       
    6464        asm volatile (
    65                 "lock xaddq %[r], %[count]\n"
    66                 : [count] "+m" (val->count),
    67                   [r] "+r" (r)
     65                "lock xaddq %1, %0\n"
     66                : "+m" (val->count),
     67                  "+r" (r)
    6868        );
    6969       
     
    7676       
    7777        asm volatile (
    78                 "lock xaddq %[r], %[count]\n"
    79                 : [count] "+m" (val->count),
    80                   [r] "+r" (r)
     78                "lock xaddq %1, %0\n"
     79                : "+m" (val->count),
     80                  "+r" (r)
    8181        );
    8282       
  • uspace/lib/c/arch/amd64/include/types.h

    rd3e241a rb705ecc  
    5151typedef uint64_t size_t;
    5252
     53typedef int64_t intptr_t;
    5354typedef uint64_t uintptr_t;
    5455typedef uint64_t atomic_count_t;
  • uspace/lib/c/arch/arm32/include/types.h

    rd3e241a rb705ecc  
    5252typedef uint32_t size_t;
    5353
     54typedef int32_t intptr_t;
    5455typedef uint32_t uintptr_t;
    5556typedef uint32_t atomic_count_t;
  • uspace/lib/c/arch/ia32/include/atomic.h

    rd3e241a rb705ecc  
    4343{
    4444        asm volatile (
    45                 "lock incl %[count]\n"
    46                 : [count] "+m" (val->count)
     45                "lock incl %0\n"
     46                : "+m" (val->count)
    4747        );
    4848}
     
    5151{
    5252        asm volatile (
    53                 "lock decl %[count]\n"
    54                 : [count] "+m" (val->count)
     53                "lock decl %0\n"
     54                : "+m" (val->count)
    5555        );
    5656}
     
    6161       
    6262        asm volatile (
    63                 "lock xaddl %[r], %[count]\n"
    64                 : [count] "+m" (val->count),
    65                   [r] "+r" (r)
     63                "lock xaddl %1, %0\n"
     64                : "+m" (val->count),
     65                  "+r" (r)
    6666        );
    6767       
     
    7474       
    7575        asm volatile (
    76                 "lock xaddl %[r], %[count]\n"
    77                 : [count] "+m" (val->count),
    78                   [r] "+r" (r)
     76                "lock xaddl %1, %0\n"
     77                : "+m" (val->count),
     78                  "+r" (r)
    7979        );
    8080       
  • uspace/lib/c/arch/ia32/include/ddi.h

    rd3e241a rb705ecc  
    4444       
    4545        asm volatile (
    46                 "inb %w[port], %b[val]\n"
    47                 : [val] "=a" (val)
    48                 : [port] "d" (port)
     46                "inb %w1, %b0\n"
     47                : "=a" (val)
     48                : "d" (port)
    4949        );
    5050       
     
    5757       
    5858        asm volatile (
    59                 "inw %w[port], %w[val]\n"
    60                 : [val] "=a" (val)
    61                 : [port] "d" (port)
     59                "inw %w1, %w0\n"
     60                : "=a" (val)
     61                : "d" (port)
    6262        );
    6363       
     
    7070       
    7171        asm volatile (
    72                 "inl %w[port], %[val]\n"
    73                 : [val] "=a" (val)
    74                 : [port] "d" (port)
     72                "inl %w1, %0\n"
     73                : "=a" (val)
     74                : "d" (port)
    7575        );
    7676       
     
    8181{
    8282        asm volatile (
    83                 "outb %b[val], %w[port]\n"
    84                 :: [val] "a" (val), [port] "d" (port)
     83                "outb %b0, %w1\n"
     84                :: "a" (val), "d" (port)
    8585        );
    8686}
     
    8989{
    9090        asm volatile (
    91                 "outw %w[val], %w[port]\n"
    92                 :: [val] "a" (val), [port] "d" (port)
     91                "outw %w0, %w1\n"
     92                :: "a" (val), "d" (port)
    9393        );
    9494}
     
    9797{
    9898        asm volatile (
    99                 "outl %[val], %w[port]\n"
    100                 :: [val] "a" (val), [port] "d" (port)
     99                "outl %0, %w1\n"
     100                :: "a" (val), "d" (port)
    101101        );
    102102}
  • uspace/lib/c/arch/ia32/include/types.h

    rd3e241a rb705ecc  
    5151typedef uint32_t size_t;
    5252
     53typedef int32_t intptr_t;
    5354typedef uint32_t uintptr_t;
    5455typedef uint32_t atomic_count_t;
  • uspace/lib/c/arch/ia64/include/types.h

    rd3e241a rb705ecc  
    6161typedef uint64_t size_t;
    6262
     63typedef int64_t intptr_t;
    6364typedef uint64_t uintptr_t;
    6465typedef uint64_t atomic_count_t;
  • uspace/lib/c/arch/mips32/include/types.h

    rd3e241a rb705ecc  
    5252typedef uint32_t size_t;
    5353
     54typedef int32_t intptr_t;
    5455typedef uint32_t uintptr_t;
    5556typedef uint32_t atomic_count_t;
  • uspace/lib/c/arch/ppc32/include/types.h

    rd3e241a rb705ecc  
    5151typedef uint32_t size_t;
    5252
     53typedef int32_t intptr_t;
    5354typedef uint32_t uintptr_t;
    5455typedef uint32_t atomic_count_t;
  • uspace/lib/c/arch/sparc64/include/types.h

    rd3e241a rb705ecc  
    5151typedef uint64_t size_t;
    5252
     53typedef int64_t intptr_t;
    5354typedef uint64_t uintptr_t;
    5455typedef uint64_t atomic_count_t;
  • uspace/lib/posix/stdio.c

    rd3e241a rb705ecc  
    257257        assert(stream != NULL);
    258258       
    259         /* Retieve the node. */
     259        /* Retrieve the node. */
    260260        struct stat st;
    261261        int rc;
     
    265265        } else {
    266266                rc = stat(filename, &st);
     267                if (-rc == ENOENT) {
     268                        /* file does not exist, create new file */
     269                        FILE* tmp = fopen(filename, mode);
     270                        if (tmp != NULL) {
     271                                fclose(tmp);
     272                                /* try again */
     273                                rc = stat(filename, &st);
     274                        }
     275                }
    267276        }
    268277       
Note: See TracChangeset for help on using the changeset viewer.