Changes in / [c5ebb59:1adbf90] in mainline


Ignore:
Location:
uspace
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/ddi.c

    rc5ebb59 r1adbf90  
    5353}
    5454
    55 /** Map a piece of physical memory to task.
     55/** Map piece of physical memory to task.
    5656 *
    5757 * Caller of this function must have the CAP_MEM_MANAGER capability.
    5858 *
    59  * @param pf    Physical address of the starting frame.
    60  * @param vp    Virtual address of the starting page.
    61  * @param pages Number of pages to map.
    62  * @param flags Flags for the new address space area.
     59 * @param pf            Physical address of the starting frame.
     60 * @param vp            Virtual address of the starting page.
     61 * @param pages         Number of pages to map.
     62 * @param flags         Flags for the new address space area.
    6363 *
    64  * @return EOK on success
    65  * @return EPERM if the caller lacks the CAP_MEM_MANAGER capability
    66  * @return ENOENT if there is no task with specified ID
    67  * @return ENOMEM if there was some problem in creating
    68  *         the address space area.
    69  *
     64 * @return              0 on success, EPERM if the caller lacks the
     65 *                      CAP_MEM_MANAGER capability, ENOENT if there is no task
     66 *                      with specified ID and ENOMEM if there was some problem
     67 *                      in creating address space area.
    7068 */
    71 int physmem_map(void *pf, void *vp, size_t pages, unsigned int flags)
     69int physmem_map(void *pf, void *vp, unsigned long pages, int flags)
    7270{
    73         return __SYSCALL4(SYS_PHYSMEM_MAP, (sysarg_t) pf, (sysarg_t) vp,
    74             pages, flags);
     71        return __SYSCALL4(SYS_PHYSMEM_MAP, (sysarg_t) pf, (sysarg_t) vp, pages,
     72            flags);
    7573}
    7674
  • uspace/lib/c/include/ddi.h

    rc5ebb59 r1adbf90  
    4141
    4242extern int device_assign_devno(void);
    43 extern int physmem_map(void *, void *, size_t, unsigned int);
     43extern int physmem_map(void *, void *, unsigned long, int);
    4444extern int iospace_enable(task_id_t, void *, unsigned long);
    4545extern int pio_enable(void *, size_t, void **);
  • uspace/srv/bd/rd/rd.c

    rc5ebb59 r1adbf90  
    5555#include <ipc/bd.h>
    5656#include <macros.h>
    57 #include <inttypes.h>
    58 
    59 #define NAME  "rd"
     57
     58#define NAME "rd"
    6059
    6160/** Pointer to the ramdisk's image */
     
    209208static bool rd_init(void)
    210209{
    211         sysarg_t size;
    212         int ret = sysinfo_get_value("rd.size", &size);
    213         if ((ret != EOK) || (size == 0)) {
     210        int ret = sysinfo_get_value("rd.size", &rd_size);
     211        if ((ret != EOK) || (rd_size == 0)) {
    214212                printf("%s: No RAM disk found\n", NAME);
    215213                return false;
    216214        }
    217215       
    218         sysarg_t addr_phys;
    219         ret = sysinfo_get_value("rd.address.physical", &addr_phys);
    220         if ((ret != EOK) || (addr_phys == 0)) {
     216        sysarg_t rd_ph_addr;
     217        ret = sysinfo_get_value("rd.address.physical", &rd_ph_addr);
     218        if ((ret != EOK) || (rd_ph_addr == 0)) {
    221219                printf("%s: Invalid RAM disk physical address\n", NAME);
    222220                return false;
    223221        }
    224222       
    225         rd_size = ALIGN_UP(size, block_size);
    226223        rd_addr = as_get_mappable_page(rd_size);
    227224       
    228         unsigned int flags =
    229             AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE;
    230         ret = physmem_map((void *) addr_phys, rd_addr,
     225        int flags = AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE;
     226        int retval = physmem_map((void *) rd_ph_addr, rd_addr,
    231227            ALIGN_UP(rd_size, PAGE_SIZE) >> PAGE_WIDTH, flags);
    232         if (ret < 0) {
     228       
     229        if (retval < 0) {
    233230                printf("%s: Error mapping RAM disk\n", NAME);
    234231                return false;
    235232        }
    236233       
    237         printf("%s: Found RAM disk at %p, %" PRIun " bytes\n", NAME,
    238             (void *) addr_phys, size);
    239        
    240         ret = loc_server_register(NAME, rd_connection);
    241         if (ret < 0) {
    242                 printf("%s: Unable to register driver (%d)\n", NAME, ret);
     234        printf("%s: Found RAM disk at %p, %zu bytes\n", NAME,
     235            (void *) rd_ph_addr, rd_size);
     236       
     237        int rc = loc_server_register(NAME, rd_connection);
     238        if (rc < 0) {
     239                printf("%s: Unable to register driver (%d)\n", NAME, rc);
    243240                return false;
    244241        }
    245242       
    246243        service_id_t service_id;
    247         ret = loc_service_register("bd/initrd", &service_id);
    248         if (ret != EOK) {
     244        if (loc_service_register("bd/initrd", &service_id) != EOK) {
    249245                printf("%s: Unable to register device service\n", NAME);
    250246                return false;
Note: See TracChangeset for help on using the changeset viewer.