Changeset 3dbe4ca2 in mainline for uspace/srv


Ignore:
Timestamp:
2011-04-29T11:10:24Z (14 years ago)
Author:
Oleg Romanenko <romanenko.oleg@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ce8f4f4
Parents:
d260a95 (diff), 933cadf (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:
uspace/srv
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/devman/devman.c

    rd260a95 r3dbe4ca2  
    3939#include <devmap.h>
    4040#include <str_error.h>
     41#include <stdio.h>
    4142
    4243#include "devman.h"
     
    555556}
    556557
    557 /** Remember the driver's phone.
    558  *
    559  * @param driver        The driver.
    560  * @param phone         The phone to the driver.
    561  */
    562 void set_driver_phone(driver_t *driver, sysarg_t phone)
    563 {
    564         fibril_mutex_lock(&driver->driver_mutex);
    565         assert(driver->state == DRIVER_STARTING);
    566         driver->phone = phone;
    567         fibril_mutex_unlock(&driver->driver_mutex);
    568 }
    569 
    570558/** Notify driver about the devices to which it was assigned.
    571559 *
     
    685673        list_initialize(&drv->devices);
    686674        fibril_mutex_initialize(&drv->driver_mutex);
     675        drv->phone = -1;
    687676}
    688677
  • uspace/srv/devman/devman.h

    rd260a95 r3dbe4ca2  
    8888       
    8989        /** Phone asociated with this driver. */
    90         sysarg_t phone;
     90        int phone;
    9191        /** Name of the device driver. */
    9292        char *name;
     
    316316
    317317extern driver_t *find_driver(driver_list_t *, const char *);
    318 extern void set_driver_phone(driver_t *, sysarg_t);
    319318extern void initialize_running_driver(driver_t *, dev_tree_t *);
    320319
  • uspace/srv/devman/main.c

    rd260a95 r3dbe4ca2  
    9595        /* Find driver structure. */
    9696        driver = find_driver(&drivers_list, drv_name);
    97        
    9897        if (driver == NULL) {
    9998                log_msg(LVL_ERROR, "No driver named `%s' was found.", drv_name);
     
    107106        drv_name = NULL;
    108107       
     108        fibril_mutex_lock(&driver->driver_mutex);
     109       
     110        if (driver->phone >= 0) {
     111                /* We already have a connection to the driver. */
     112                log_msg(LVL_ERROR, "Driver '%s' already started.\n",
     113                    driver->name);
     114                fibril_mutex_unlock(&driver->driver_mutex);
     115                async_answer_0(iid, EEXISTS);
     116                return NULL;
     117        }
     118       
     119        switch (driver->state) {
     120        case DRIVER_NOT_STARTED:
     121                /* Somebody started the driver manually. */
     122                log_msg(LVL_NOTE, "Driver '%s' started manually.\n",
     123                    driver->name);
     124                driver->state = DRIVER_STARTING;
     125                break;
     126        case DRIVER_STARTING:
     127                /* The expected case */
     128                break;
     129        case DRIVER_RUNNING:
     130                /* Should not happen since we do not have a connected phone */
     131                assert(false);
     132        }
     133       
    109134        /* Create connection to the driver. */
    110135        log_msg(LVL_DEBUG, "Creating connection to the `%s' driver.",
     
    113138        ipc_callid_t callid = async_get_call(&call);
    114139        if (IPC_GET_IMETHOD(call) != IPC_M_CONNECT_TO_ME) {
     140                fibril_mutex_unlock(&driver->driver_mutex);
    115141                async_answer_0(callid, ENOTSUP);
    116142                async_answer_0(iid, ENOTSUP);
     
    119145       
    120146        /* Remember driver's phone. */
    121         set_driver_phone(driver, IPC_GET_ARG5(call));
     147        driver->phone = IPC_GET_ARG5(call);
     148       
     149        fibril_mutex_unlock(&driver->driver_mutex);
    122150       
    123151        log_msg(LVL_NOTE,
     
    578606                method = DRIVER_CLIENT;
    579607       
    580         if (driver->phone <= 0) {
     608        if (driver->phone < 0) {
    581609                log_msg(LVL_ERROR,
    582610                    "Could not forward to driver `%s' (phone is %d).",
     
    618646        dev = fun->dev;
    619647       
    620         if (dev->state != DEVICE_USABLE || dev->drv->phone <= 0) {
     648        if (dev->state != DEVICE_USABLE || dev->drv->phone < 0) {
    621649                async_answer_0(iid, EINVAL);
    622650                return;
  • uspace/srv/fs/fat/fat_fat.c

    rd260a95 r3dbe4ca2  
    4747#include <assert.h>
    4848#include <fibril_synch.h>
     49#include <malloc.h>
    4950#include <mem.h>
    5051
  • uspace/srv/fs/fat/fat_idx.c

    rd260a95 r3dbe4ca2  
    4444#include <assert.h>
    4545#include <fibril_synch.h>
     46#include <malloc.h>
    4647
    4748/** Each instance of this type describes one interval of freed VFS indices. */
  • uspace/srv/fs/fat/fat_ops.c

    rd260a95 r3dbe4ca2  
    5555#include <sys/mman.h>
    5656#include <align.h>
     57#include <malloc.h>
    5758
    5859#define FAT_NODE(node)  ((node) ? (fat_node_t *) (node)->data : NULL)
     
    724725                    (str_cmp((char *) d->name, FAT_NAME_DOT)) == 0) {
    725726                        memset(d, 0, sizeof(fat_dentry_t));
    726                         str_cpy((char *) d->name, 8, FAT_NAME_DOT);
    727                         str_cpy((char *) d->ext, 3, FAT_EXT_PAD);
     727                        memcpy(d->name, FAT_NAME_DOT, FAT_NAME_LEN);
     728                        memcpy(d->ext, FAT_EXT_PAD, FAT_EXT_LEN);
    728729                        d->attr = FAT_ATTR_SUBDIR;
    729730                        d->firstc = host2uint16_t_le(childp->firstc);
     
    734735                    (str_cmp((char *) d->name, FAT_NAME_DOT_DOT) == 0)) {
    735736                        memset(d, 0, sizeof(fat_dentry_t));
    736                         str_cpy((char *) d->name, 8, FAT_NAME_DOT_DOT);
    737                         str_cpy((char *) d->ext, 3, FAT_EXT_PAD);
     737                        memcpy(d->name, FAT_NAME_DOT_DOT, FAT_NAME_LEN);
     738                        memcpy(d->ext, FAT_EXT_PAD, FAT_EXT_LEN);
    738739                        d->attr = FAT_ATTR_SUBDIR;
    739740                        d->firstc = (parentp->firstc == FAT_CLST_ROOT) ?
     
    10021003        }
    10031004
    1004         /* Determining type of FAT  */
    1005         if (FAT_IS_FAT12(bs)) {
    1006                 printf("Found FAT12 filesystem\n");
    1007         } else if (FAT_IS_FAT16(bs)) {
    1008                 printf("Found FAT16 filesystem\n");
    1009         } else {
    1010                 printf("FAT32 filesystem is not supported by FAT server.\n");
     1005        /* Return NOT SUPPORTED if try to mount FAT32  */
     1006        if (!FAT_IS_FAT12(bs) && !FAT_IS_FAT16(bs)) {
    10111007                block_fini(devmap_handle);
    10121008                async_answer_0(rid, ENOTSUP);
     
    10171013        rc = fat_sanity_check(bs, devmap_handle);
    10181014        if (rc != EOK) {
    1019                 printf("Sanity check failed\n");
    10201015                (void) block_cache_fini(devmap_handle);
    10211016                block_fini(devmap_handle);
  • uspace/srv/hw/netif/ne2000/dp8390.c

    rd260a95 r3dbe4ca2  
    5353#include <byteorder.h>
    5454#include <errno.h>
     55#include <stdio.h>
    5556#include <libarch/ddi.h>
    5657#include <net/packet.h>
  • uspace/srv/loader/arch/ia64/_link.ld.in

    rd260a95 r3dbe4ca2  
    2828       
    2929        .got : {
    30                 _gp = .;
     30                /* Tell the linker where we expect GP to point. */
     31                __gp = .;
    3132                *(.got .got.*);
    3233        } :data
  • uspace/srv/ns/clonable.c

    rd260a95 r3dbe4ca2  
    7878        if (list_empty(&cs_req)) {
    7979                /* There was no pending connection request. */
    80                 printf(NAME ": Unexpected clonable server.\n");
     80                printf("%s: Unexpected clonable server.\n", NAME);
    8181                ipc_answer_0(callid, EBUSY);
    8282                return;
  • uspace/srv/ns/service.c

    rd260a95 r3dbe4ca2  
    3535#include <assert.h>
    3636#include <errno.h>
     37#include <stdio.h>
     38#include <malloc.h>
    3739#include "service.h"
    3840#include "ns.h"
  • uspace/srv/ns/task.c

    rd260a95 r3dbe4ca2  
    3939#include <stdio.h>
    4040#include <macros.h>
     41#include <malloc.h>
    4142#include "task.h"
    4243#include "ns.h"
Note: See TracChangeset for help on using the changeset viewer.