Changeset f9d0a86 in mainline for uspace/drv


Ignore:
Timestamp:
2017-11-14T12:24:42Z (8 years ago)
Author:
Aearsis <Hlavaty.Ondrej@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6cad776
Parents:
887c9de (diff), d2d142a (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.
git-author:
Aearsis <Hlavaty.Ondrej@…> (2017-11-14 01:04:19)
git-committer:
Aearsis <Hlavaty.Ondrej@…> (2017-11-14 12:24:42)
Message:

Merge tag '0.7.1'

The merge wasn't clean, because of changes in build system. The most
significant change was partial revert of usbhc callback refactoring,
which now does not take usb transfer batch, but few named fields again.

Location:
uspace/drv
Files:
22 added
1 deleted
45 edited
52 moved

Legend:

Unmodified
Added
Removed
  • uspace/drv/audio/hdaudio/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBPCM_PREFIX)/include
     30LIBS = drv pcm
    3231BINARY = hdaudio
    3332
  • uspace/drv/audio/sb16/Makefile

    r887c9de rf9d0a86  
    2929USPACE_PREFIX = ../../..
    3030
    31 LIBS = \
    32         $(LIBDRV_PREFIX)/libdrv.a
    33 
    34 EXTRA_CFLAGS += \
    35         -I$(LIBDRV_PREFIX)/include -I$(LIBPCM_PREFIX)/include
     31LIBS = drv pcm
    3632
    3733BINARY = sb16
  • uspace/drv/block/ahci/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = ahci
    3332
  • uspace/drv/block/ata_bd/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a $(LIBSCSI_PREFIX)/libscsi.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBSCSI_PREFIX)/include
     30LIBS = drv scsi
    3231BINARY = ata_bd
    3332
  • uspace/drv/block/ddisk/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a $(LIBSCSI_PREFIX)/libscsi.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBSCSI_PREFIX)/include
     30LIBS = drv scsi
    3231BINARY = ddisk
    3332
  • uspace/drv/bus/adb/cuda_adb/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = cuda_adb
    3332
  • uspace/drv/bus/isa/Makefile

    r887c9de rf9d0a86  
    2929
    3030USPACE_PREFIX = ../../..
    31 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    32 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     31LIBS = drv
    3332BINARY = isa
    3433
  • uspace/drv/bus/pci/pciintel/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = pciintel
    3332
  • uspace/drv/bus/usb/ehci/Makefile

    r887c9de rf9d0a86  
    2929USPACE_PREFIX = ../../../..
    3030
    31 LIBS = \
    32         $(LIBUSBHOST_PREFIX)/libusbhost.a \
    33         $(LIBUSBVIRT_PREFIX)/libusbvirt.a \
    34         $(LIBUSB_PREFIX)/libusb.a \
    35         $(LIBDRV_PREFIX)/libdrv.a
    36 
    37 EXTRA_CFLAGS += \
    38         -I$(LIBUSB_PREFIX)/include \
    39         -I$(LIBUSBDEV_PREFIX)/include \
    40         -I$(LIBUSBHOST_PREFIX)/include \
    41         -I$(LIBUSBVIRT_PREFIX)/include \
    42         -I$(LIBDRV_PREFIX)/include
     31LIBS = usbhost usbvirt usb drv usbdev
    4332
    4433BINARY = ehci
  • uspace/drv/bus/usb/ohci/Makefile

    r887c9de rf9d0a86  
    2929USPACE_PREFIX = ../../../..
    3030
    31 LIBS = \
    32         $(LIBUSBHOST_PREFIX)/libusbhost.a \
    33         $(LIBUSBVIRT_PREFIX)/libusbvirt.a \
    34         $(LIBUSB_PREFIX)/libusb.a \
    35         $(LIBDRV_PREFIX)/libdrv.a
    36 
    37 EXTRA_CFLAGS += \
    38         -I$(LIBUSB_PREFIX)/include \
    39         -I$(LIBUSBDEV_PREFIX)/include \
    40         -I$(LIBUSBHOST_PREFIX)/include \
    41         -I$(LIBUSBVIRT_PREFIX)/include \
    42         -I$(LIBDRV_PREFIX)/include
     31LIBS = usbhost usbvirt usb drv usbdev
    4332
    4433BINARY = ohci
  • uspace/drv/bus/usb/uhci/Makefile

    r887c9de rf9d0a86  
    2929USPACE_PREFIX = ../../../..
    3030
    31 LIBS = \
    32         $(LIBUSBHOST_PREFIX)/libusbhost.a \
    33         $(LIBUSBVIRT_PREFIX)/libusbvirt.a \
    34         $(LIBUSB_PREFIX)/libusb.a \
    35         $(LIBDRV_PREFIX)/libdrv.a
    36 
    37 EXTRA_CFLAGS += \
    38         -I$(LIBUSB_PREFIX)/include \
    39         -I$(LIBUSBDEV_PREFIX)/include \
    40         -I$(LIBUSBHOST_PREFIX)/include \
    41         -I$(LIBUSBVIRT_PREFIX)/include \
    42         -I$(LIBDRV_PREFIX)/include
     31LIBS = usbhost usbvirt usb drv usbdev
    4332
    4433BINARY = uhci
  • uspace/drv/bus/usb/usbflbk/Makefile

    r887c9de rf9d0a86  
    2929USPACE_PREFIX = ../../../..
    3030
    31 LIBS = \
    32         $(LIBUSBDEV_PREFIX)/libusbdev.a \
    33         $(LIBUSB_PREFIX)/libusb.a \
    34         $(LIBDRV_PREFIX)/libdrv.a
    35 
    36 EXTRA_CFLAGS += \
    37         -I$(LIBUSB_PREFIX)/include \
    38         -I$(LIBUSBDEV_PREFIX)/include \
    39         -I$(LIBDRV_PREFIX)/include
     31LIBS = usbdev usb drv
    4032
    4133BINARY = usbflbk
  • uspace/drv/bus/usb/usbhub/Makefile

    r887c9de rf9d0a86  
    3030USPACE_PREFIX = ../../../..
    3131
    32 LIBS = \
    33         $(LIBUSBDEV_PREFIX)/libusbdev.a \
    34         $(LIBUSB_PREFIX)/libusb.a \
    35         $(LIBDRV_PREFIX)/libdrv.a
    36 
    37 EXTRA_CFLAGS += \
    38         -I$(LIBUSB_PREFIX)/include \
    39         -I$(LIBUSBDEV_PREFIX)/include \
    40         -I$(LIBDRV_PREFIX)/include
     32LIBS = usbdev usb drv
    4133
    4234BINARY = usbhub
  • uspace/drv/bus/usb/usbmid/Makefile

    r887c9de rf9d0a86  
    2929USPACE_PREFIX = ../../../..
    3030
    31 LIBS = \
    32         $(LIBUSBDEV_PREFIX)/libusbdev.a \
    33         $(LIBUSB_PREFIX)/libusb.a \
    34         $(LIBDRV_PREFIX)/libdrv.a
    35 
    36 EXTRA_CFLAGS += \
    37         -I$(LIBUSB_PREFIX)/include \
    38         -I$(LIBUSBDEV_PREFIX)/include \
    39         -I$(LIBDRV_PREFIX)/include
     31LIBS = usbdev usb drv
    4032
    4133BINARY = usbmid
  • uspace/drv/bus/usb/vhc/Makefile

    r887c9de rf9d0a86  
    2929USPACE_PREFIX = ../../../..
    3030
    31 LIBS = \
    32         $(LIBUSBDEV_PREFIX)/libusbdev.a \
    33         $(LIBUSBHOST_PREFIX)/libusbhost.a \
    34         $(LIBUSBVIRT_PREFIX)/libusbvirt.a \
    35         $(LIBUSB_PREFIX)/libusb.a \
    36         $(LIBDRV_PREFIX)/libdrv.a
     31LIBS = usbdev usbhost usbvirt usb drv
    3732
    38 EXTRA_CFLAGS += \
    39         -I$(LIBUSBVIRT_PREFIX)/include \
    40         -I$(LIBUSBDEV_PREFIX)/include \
    41         -I$(LIBUSBHOST_PREFIX)/include \
    42         -I$(LIBUSB_PREFIX)/include \
    43         -I$(LIBDRV_PREFIX)/include
    4433BINARY = vhc
    4534
  • uspace/drv/bus/usb/xhci/Makefile

    r887c9de rf9d0a86  
    2929USPACE_PREFIX = ../../../..
    3030
    31 LIBS = \
    32         $(LIBUSBHOST_PREFIX)/libusbhost.a \
    33         $(LIBUSBVIRT_PREFIX)/libusbvirt.a \
    34         $(LIBUSB_PREFIX)/libusb.a \
    35         $(LIBDRV_PREFIX)/libdrv.a
    36 
    37 EXTRA_CFLAGS += \
    38         -I$(LIBUSB_PREFIX)/include \
    39         -I$(LIBUSBDEV_PREFIX)/include \
    40         -I$(LIBUSBHOST_PREFIX)/include \
    41         -I$(LIBUSBVIRT_PREFIX)/include \
    42         -I$(LIBDRV_PREFIX)/include
     31LIBS = usbhost usbvirt usb drv
    4332
    4433BINARY = xhci
  • uspace/drv/char/i8042/Makefile

    r887c9de rf9d0a86  
    2929
    3030USPACE_PREFIX = ../../..
    31 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    32 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     31LIBS = drv
    3332BINARY = i8042
    3433
  • uspace/drv/char/msim-con/msim-con.h

    r887c9de rf9d0a86  
    11/*
    2  * Copyright (c) 2006 Ondrej Palkovsky
     2 * Copyright (c) 2017 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    2727 */
    2828
    29 /** @addtogroup libcia64
     29/** @addtogroup genarch
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef LIBC_ia64_TYPES_H_
    36 #define LIBC_ia64_TYPES_H_
     35#ifndef MSIM_CON_H
     36#define MSIM_CON_H
    3737
    38 #include <libarch/common.h>
    39 #include <libarch/stddef.h>
    40 #include <libarch/stdint.h>
     38#include <async.h>
     39#include <ddf/driver.h>
     40#include <loc.h>
     41#include <stdint.h>
    4142
    42 #define __64_BITS__
     43/** MSIM console */
     44typedef struct {
     45        async_sess_t *client_sess;
     46        ddf_dev_t *dev;
     47} msim_con_t;
    4348
    44 #define SSIZE_MIN  INT64_MIN
    45 #define SSIZE_MAX  INT64_MAX
     49extern int msim_con_init(msim_con_t *);
     50extern void msim_con_write(uint8_t data);
    4651
    47 typedef uint64_t sysarg_t;
    48 typedef int64_t native_t;
    4952
    50 typedef uint64_t atomic_count_t;
    51 typedef int64_t atomic_signed_t;
    52 
    53 typedef struct {
    54         uintptr_t fnc;
    55         uintptr_t gp;
    56 } __attribute__((may_alias)) fncptr_t;
     53extern int msim_con_add(msim_con_t *);
     54extern int msim_con_remove(msim_con_t *);
     55extern int msim_con_gone(msim_con_t *);
    5756
    5857#endif
  • uspace/drv/char/ns8250/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = ns8250
    3332
  • uspace/drv/char/pl050/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = pl050
    3332
  • uspace/drv/char/sun4v-con/sun4v-con.h

    r887c9de rf9d0a86  
    11/*
    2  * Copyright (c) 2006 Ondrej Palkovsky
     2 * Copyright (c) 2017 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    2727 */
    2828
    29 /** @addtogroup libcamd64
     29/** @addtogroup genarch
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef LIBC_amd64_STDINT_H_
    36 #define LIBC_amd64_STDINT_H_
     35#ifndef SUN4V_CON_H
     36#define SUN4V_CON_H
    3737
    38 #include <libarch/common.h>
     38#include <async.h>
     39#include <ddf/driver.h>
     40#include <loc.h>
     41#include <stdint.h>
    3942
    40 #define SIZE_MIN  UINT64_MIN
    41 #define SIZE_MAX  UINT64_MAX
     43/** Sun4v console */
     44typedef struct {
     45        async_sess_t *client_sess;
     46        ddf_dev_t *dev;
     47} sun4v_con_t;
    4248
    43 #define UINTPTR_MAX UINT64_MAX
    44 typedef uint64_t uintptr_t;
     49extern int sun4v_con_init(sun4v_con_t *);
     50extern void sun4v_con_write(uint8_t data);
    4551
    46 #define INTPTR_MIN INT64_MIN
    47 #define INTPTR_MAX INT64_MAX
    48 typedef int64_t intptr_t;
    4952
    50 #define UINTMAX_MAX UINT64_MAX
    51 typedef uint64_t uintmax_t;
    52 
    53 #define INTMAX_MAX INT64_MAX
    54 typedef int64_t intmax_t;
     53extern int sun4v_con_add(sun4v_con_t *);
     54extern int sun4v_con_remove(sun4v_con_t *);
     55extern int sun4v_con_gone(sun4v_con_t *);
    5556
    5657#endif
  • uspace/drv/fb/amdm37x_dispc/Makefile

    r887c9de rf9d0a86  
    3131USPACE_PREFIX = ../../..
    3232
    33 LIBS = \
    34         $(LIBDRV_PREFIX)/libdrv.a \
    35         $(LIBGRAPH_PREFIX)/libgraph.a \
    36         $(LIBSOFTREND_PREFIX)/libsoftrend.a
    37 
    38 EXTRA_CFLAGS += \
    39         -I$(LIBDRV_PREFIX)/include \
    40         -I$(LIBGRAPH_PREFIX) \
    41         -I$(LIBSOFTREND_PREFIX)
     33LIBS = drv graph softrend
    4234
    4335BINARY = amdm37x_dispc
  • uspace/drv/fb/kfb/Makefile

    r887c9de rf9d0a86  
    3030
    3131USPACE_PREFIX = ../../..
    32 LIBS = $(LIBDRV_PREFIX)/libdrv.a $(LIBGRAPH_PREFIX)/libgraph.a $(LIBSOFTREND_PREFIX)/libsoftrend.a
    33 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBGRAPH_PREFIX) -I$(LIBSOFTREND_PREFIX)
     32LIBS = drv graph softrend
    3433BINARY = kfb
    3534
  • uspace/drv/hid/atkbd/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = atkbd
    3332
  • uspace/drv/hid/ps2mouse/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = ps2mouse
    3332
  • uspace/drv/hid/usbhid/Makefile

    r887c9de rf9d0a86  
    2727#
    2828
    29 USPACE_PREFIX = ../../../..
     29USPACE_PREFIX = ../../..
    3030
    31 LIBS = \
    32         $(LIBUSBHID_PREFIX)/libusbhid.a \
    33         $(LIBUSBDEV_PREFIX)/libusbdev.a \
    34         $(LIBUSB_PREFIX)/libusb.a \
    35         $(LIBDRV_PREFIX)/libdrv.a
     31LIBS = usbhid usbdev usb drv
    3632
    37 EXTRA_CFLAGS += \
    38         -I. \
    39         -I$(LIBUSB_PREFIX)/include \
    40         -I$(LIBUSBDEV_PREFIX)/include \
    41         -I$(LIBUSBHID_PREFIX)/include \
    42         -I$(LIBDRV_PREFIX)/include
     33EXTRA_CFLAGS += -I.
    4334
    4435BINARY = usbhid
  • uspace/drv/hid/xtkbd/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = xtkbd
    3332
  • uspace/drv/intctl/apic/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = apic
    3332
  • uspace/drv/intctl/i8259/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = i8259
    3332
  • uspace/drv/intctl/icp-ic/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = icp-ic
    3332
  • uspace/drv/intctl/obio/Makefile

    r887c9de rf9d0a86  
    2828#
    2929
    30 USPACE_PREFIX = ../../../..
     30USPACE_PREFIX = ../../..
     31LIBS = drv
    3132BINARY = obio
    3233
    3334SOURCES = \
     35        main.c \
    3436        obio.c
    3537
  • uspace/drv/intctl/obio/obio.c

    r887c9de rf9d0a86  
    4242 */
    4343
     44#include <align.h>
     45#include <as.h>
     46#include <async.h>
     47#include <ddf/driver.h>
     48#include <ddf/log.h>
     49#include <ddi.h>
     50#include <errno.h>
     51#include <inttypes.h>
    4452#include <ipc/irc.h>
    45 #include <loc.h>
    46 #include <as.h>
    47 #include <ddi.h>
    48 #include <align.h>
    49 #include <inttypes.h>
    5053#include <stdbool.h>
    51 #include <errno.h>
    52 #include <async.h>
    53 #include <align.h>
    54 #include <async.h>
    5554#include <stdio.h>
     55
     56#include "obio.h"
    5657
    5758#define NAME "obio"
     
    6768#define INO_MASK        0x1f
    6869
    69 static uintptr_t base_phys;
    70 static volatile uint64_t *base_virt = (volatile uint64_t *) AS_AREA_ANY;
    71 
    7270/** Handle one connection to obio.
    7371 *
     
    8078        ipc_callid_t callid;
    8179        ipc_call_t call;
     80        obio_t *obio;
    8281
    8382        /*
     
    8685        async_answer_0(iid, EOK);
    8786
     87        obio = (obio_t *)ddf_dev_data_get(ddf_fun_get_dev((ddf_fun_t *)arg));
     88
    8889        while (1) {
    8990                int inr;
    90        
     91
    9192                callid = async_get_call(&call);
    9293                switch (IPC_GET_IMETHOD(call)) {
    9394                case IRC_ENABLE_INTERRUPT:
    9495                        inr = IPC_GET_ARG1(call);
    95                         base_virt[OBIO_IMR(inr & INO_MASK)] |= (1UL << 31);
     96                        pio_set_64(&obio->regs[OBIO_IMR(inr & INO_MASK)],
     97                            1UL << 31, 0);
    9698                        async_answer_0(callid, EOK);
    9799                        break;
     
    102104                case IRC_CLEAR_INTERRUPT:
    103105                        inr = IPC_GET_ARG1(call);
    104                         base_virt[OBIO_CIR(inr & INO_MASK)] = 0;
     106                        pio_write_64(&obio->regs[OBIO_CIR(inr & INO_MASK)], 0);
    105107                        async_answer_0(callid, EOK);
    106108                        break;
     
    112114}
    113115
    114 /** Initialize the OBIO driver.
    115  *
    116  * In the future, the OBIO driver should be integrated with the sun4u platform driver.
    117  */
    118 static bool obio_init(void)
     116/** Add OBIO device. */
     117int obio_add(obio_t *obio, obio_res_t *res)
    119118{
    120         category_id_t irc_cat;
    121         service_id_t svc_id;
     119        ddf_fun_t *fun_a = NULL;
     120        int flags;
     121        int retval;
    122122        int rc;
    123        
    124         base_phys = (uintptr_t) 0x1fe00000000ULL;
    125        
    126         int flags = AS_AREA_READ | AS_AREA_WRITE;
    127         int retval = physmem_map(base_phys,
     123
     124        flags = AS_AREA_READ | AS_AREA_WRITE;
     125        obio->regs = (ioport64_t *)AS_AREA_ANY;
     126        retval = physmem_map(res->base,
    128127            ALIGN_UP(OBIO_SIZE, PAGE_SIZE) >> PAGE_WIDTH, flags,
    129             (void *) &base_virt);
    130        
     128            (void *) &obio->regs);
     129
    131130        if (retval < 0) {
    132                 printf("%s: Error mapping OBIO registers\n", NAME);
    133                 return false;
     131                ddf_msg(LVL_ERROR, "Error mapping OBIO registers");
     132                rc = EIO;
     133                goto error;
    134134        }
    135        
    136         printf("%s: OBIO registers with base at 0x%" PRIun "\n", NAME, base_phys);
    137        
    138         async_set_fallback_port_handler(obio_connection, NULL);
    139        
    140         rc = loc_server_register(NAME);
     135
     136        ddf_msg(LVL_NOTE, "OBIO registers with base at 0x%" PRIun, res->base);
     137
     138        fun_a = ddf_fun_create(obio->dev, fun_exposed, "a");
     139        if (fun_a == NULL) {
     140                ddf_msg(LVL_ERROR, "Failed creating function 'a'.");
     141                rc = ENOMEM;
     142                goto error;
     143        }
     144
     145        ddf_fun_set_conn_handler(fun_a, obio_connection);
     146
     147        rc = ddf_fun_bind(fun_a);
    141148        if (rc != EOK) {
    142                 printf("%s: Failed registering server. (%d)\n", NAME, rc);
    143                 return false;
     149                ddf_msg(LVL_ERROR, "Failed binding function 'a'. (%d)", rc);
     150                goto error;
    144151        }
    145        
    146         rc = loc_service_register("irc/" NAME, &svc_id);
    147         if (rc != EOK) {
    148                 printf("%s: Failed registering service. (%d)\n", NAME, rc);
    149                 return false;
    150         }
    151        
    152         rc = loc_category_get_id("irc", &irc_cat, IPC_FLAG_BLOCKING);
    153         if (rc != EOK) {
    154                 printf("%s: Failed resolving category 'iplink' (%d).\n", NAME,
    155                     rc);
    156                 return false;
    157         }
    158        
    159         rc = loc_service_add_to_cat(svc_id, irc_cat);
    160         if (rc != EOK) {
    161                 printf("%s: Failed adding service to category (%d).\n", NAME,
    162                     rc);
    163                 return false;
    164         }
    165        
    166         return true;
     152
     153        rc = ddf_fun_add_to_category(fun_a, "irc");
     154        if (rc != EOK)
     155                goto error;
     156
     157        return EOK;
     158error:
     159        if (fun_a != NULL)
     160                ddf_fun_destroy(fun_a);
     161        return rc;
    167162}
    168163
    169 int main(int argc, char **argv)
     164/** Remove OBIO device */
     165int obio_remove(obio_t *obio)
    170166{
    171         printf("%s: HelenOS OBIO driver\n", NAME);
    172        
    173         if (!obio_init())
    174                 return -1;
    175        
    176         printf("%s: Accepting connections\n", NAME);
    177         task_retval(0);
    178         async_manager();
    179        
    180         /* Never reached */
    181         return 0;
     167        return ENOTSUP;
    182168}
     169
     170/** OBIO device gone */
     171int obio_gone(obio_t *obio)
     172{
     173        return ENOTSUP;
     174}
     175
    183176
    184177/**
  • uspace/drv/intctl/obio/obio.h

    r887c9de rf9d0a86  
    11/*
    2  * Copyright (c) 2005 Martin Decky
     2 * Copyright (c) 2017 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    2727 */
    2828
    29 /** @addtogroup libcia32
     29/** @addtogroup genarch
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef LIBC_ia32_TYPES_H_
    36 #define LIBC_ia32_TYPES_H_
     35#ifndef OBIO_H_
     36#define OBIO_H_
    3737
    38 #include <libarch/common.h>
    39 #include <libarch/stddef.h>
    40 #include <libarch/stdint.h>
     38#include <ddf/driver.h>
     39#include <ddi.h>
     40#include <loc.h>
     41#include <stdint.h>
    4142
    42 #define __32_BITS__
     43typedef struct {
     44        uintptr_t base;
     45} obio_res_t;
    4346
    44 #define SSIZE_MIN  INT32_MIN
    45 #define SSIZE_MAX  INT32_MAX
     47/** OBIO */
     48typedef struct {
     49        ioport64_t *regs;
     50        uintptr_t phys_base;
     51        ddf_dev_t *dev;
     52} obio_t;
    4653
    47 typedef uint32_t sysarg_t;
    48 typedef int32_t native_t;
    49 
    50 typedef uint32_t atomic_count_t;
    51 typedef int32_t atomic_signed_t;
     54extern int obio_add(obio_t *, obio_res_t *);
     55extern int obio_remove(obio_t *);
     56extern int obio_gone(obio_t *);
    5257
    5358#endif
  • uspace/drv/nic/ar9271/Makefile

    r887c9de rf9d0a86  
    2929USPACE_PREFIX = ../../..
    3030
    31 LIBS = \
    32         $(LIBUSBDEV_PREFIX)/libusbdev.a \
    33         $(LIBUSB_PREFIX)/libusb.a \
    34         $(LIBDRV_PREFIX)/libdrv.a \
    35         $(LIBNIC_PREFIX)/libnic.a \
    36         $(LIBIEEE80211_PREFIX)/libieee80211.a \
    37         $(LIBCRYPTO_PREFIX)/libcrypto.a
     31LIBS = usbdev usb drv nic ieee80211 crypto
    3832
    39 EXTRA_CFLAGS += \
    40         -I. \
    41         -I$(LIBUSB_PREFIX)/include \
    42         -I$(LIBUSBDEV_PREFIX)/include \
    43         -I$(LIBDRV_PREFIX)/include \
    44         -I$(LIBNIC_PREFIX)/include \
    45         -I$(LIBIEEE80211_PREFIX)/include \
    46         -I$(LIBCRYPTO_PREFIX)
     33EXTRA_CFLAGS += -I.
    4734
    4835BINARY = ar9271
  • uspace/drv/nic/e1k/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a $(LIBNIC_PREFIX)/libnic.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBNIC_PREFIX)/include
     30LIBS = drv nic
    3231BINARY = e1k
    3332
  • uspace/drv/nic/ne2k/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a $(LIBNIC_PREFIX)/libnic.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBNIC_PREFIX)/include
     30LIBS = drv nic
    3231BINARY = ne2k
    3332
  • uspace/drv/nic/rtl8139/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a $(LIBNIC_PREFIX)/libnic.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBNIC_PREFIX)/include
     30LIBS = drv nic
    3231BINARY = rtl8139
    3332
  • uspace/drv/nic/rtl8169/Makefile

    r887c9de rf9d0a86  
    2929
    3030USPACE_PREFIX = ../../..
    31 LIBS = $(LIBDRV_PREFIX)/libdrv.a $(LIBNIC_PREFIX)/libnic.a
    32 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBNIC_PREFIX)/include
     31LIBS = drv nic
    3332BINARY = rtl8169
    3433
  • uspace/drv/platform/amdm37x/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = amdm37x
    3332
  • uspace/drv/platform/amdm37x/amdm37x.c

    r887c9de rf9d0a86  
    4444#include <stdio.h>
    4545
    46 static void log(const volatile void *place, uint32_t val, volatile void* base, size_t size, void *data, bool write)
     46static void
     47log(const volatile void *place, uint64_t val, volatile void *base, size_t size,
     48    void *data, bool write)
    4749{
    48         printf("PIO %s: %p(%p) %#"PRIx32"\n", write ? "WRITE" : "READ",
     50        printf("PIO %s: %p(%p) %#"PRIx64"\n", write ? "WRITE" : "READ",
    4951            (place - base) + data, place, val);
    5052}
  • uspace/drv/platform/icp/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = icp
    3332
  • uspace/drv/platform/mac/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = mac
    3332
  • uspace/drv/platform/malta/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = malta
    3332
  • uspace/drv/platform/msim/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = msim
    3332
  • uspace/drv/platform/msim/msim.c

    r887c9de rf9d0a86  
    192192static bool msim_add_functions(ddf_dev_t *dev)
    193193{
    194         return msim_add_fun(dev, "disk0", "msim/ddisk", &disk_data);
     194        if (!msim_add_fun(dev, "disk0", "msim/ddisk", &disk_data))
     195                return false;
     196        if (!msim_add_fun(dev, "console", "msim/console", &disk_data))
     197                return false;
     198        return true;
    195199}
    196200
  • uspace/drv/platform/pc/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = pc
    3332
  • uspace/drv/platform/sun4u/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = sun4u
    3332
  • uspace/drv/platform/sun4u/sun4u.c

    r887c9de rf9d0a86  
    6868#define PBM_PCI_MEM_SIZE        UINT64_C(0x00100000000)
    6969
     70#define PBM_OBIO_BASE           UINT64_C(0)
     71#define PBM_OBIO_SIZE           UINT64_C(0x1898)
     72
     73
    7074typedef struct sun4u_fun {
    7175        hw_resource_list_t hw_resources;
     
    8589        .name = NAME,
    8690        .driver_ops = &sun4u_ops
     91};
     92
     93static hw_resource_t obio_res[] = {
     94        {
     95                .type = MEM_RANGE,
     96                .res.mem_range = {
     97                        .address = PBM_BASE + PBM_OBIO_BASE,
     98                        .size = PBM_OBIO_SIZE,
     99                        .relative = false,
     100                        .endianness = LITTLE_ENDIAN
     101                }
     102        }
     103};
     104
     105static sun4u_fun_t obio_data = {
     106        .hw_resources = {
     107                .count = sizeof(obio_res) / sizeof(obio_res[0]),
     108                .resources = obio_res
     109        },
     110        .pio_window = {
     111                .mem = {
     112                        .base = PBM_BASE + PBM_OBIO_BASE,
     113                        .size = PBM_OBIO_SIZE
     114                }
     115        }
    87116};
    88117
     
    201230static bool sun4u_add_functions(ddf_dev_t *dev)
    202231{
     232        if (!sun4u_add_fun(dev, "obio", "ebus/obio", &obio_data))
     233                return false;
     234
    203235        return sun4u_add_fun(dev, "pci0", "intel_pci", &pci_data);
    204236}
  • uspace/drv/root/root/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = root
    3332
  • uspace/drv/root/virt/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = virt
    3332
  • uspace/drv/test/test1/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = test1
    3332
  • uspace/drv/test/test2/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = test2
    3332
  • uspace/drv/test/test3/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = test3
    3332
  • uspace/drv/time/cmos-rtc/Makefile

    r887c9de rf9d0a86  
    2828
    2929USPACE_PREFIX = ../../..
    30 LIBS = $(LIBDRV_PREFIX)/libdrv.a
    31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include
     30LIBS = drv
    3231BINARY = cmos-rtc
    3332
Note: See TracChangeset for help on using the changeset viewer.