Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/output/output.c

    r1382446 rd3109ff  
    11/*
     2 * Copyright (c) 2024 Jiri Svoboda
    23 * Copyright (c) 2011 Martin Decky
    34 * All rights reserved.
     
    3940#include <ipc/output.h>
    4041#include <config.h>
     42#include <vt/vt100.h>
    4143#include "port/ega.h"
    4244#include "port/chardev.h"
    4345#include "port/ddev.h"
    4446#include "output.h"
    45 
    46 #define MAX_COLS  128
    47 #define MAX_ROWS  128
    4847
    4948typedef struct {
     
    115114static void srv_get_dimensions(ipc_call_t *icall)
    116115{
    117         sysarg_t cols = MAX_COLS;
    118         sysarg_t rows = MAX_ROWS;
    119 
    120         list_foreach(outdevs, link, outdev_t, dev) {
    121                 cols = min(cols, dev->cols);
    122                 rows = min(rows, dev->rows);
     116        sysarg_t cols = 0;
     117        sysarg_t rows = 0;
     118        bool first;
     119
     120        first = true;
     121        list_foreach(outdevs, link, outdev_t, dev) {
     122                if (first) {
     123                        cols = dev->cols;
     124                        rows = dev->rows;
     125                        first = false;
     126                } else {
     127                        cols = min(cols, dev->cols);
     128                        rows = min(rows, dev->rows);
     129                }
    123130        }
    124131
     
    463470int main(int argc, char *argv[])
    464471{
     472        loc_srv_t *srv;
     473
    465474        if (argc < 2) {
    466475                usage(argv[0]);
     
    472481        /* Register server */
    473482        async_set_fallback_port_handler(client_connection, NULL);
    474         errno_t rc = loc_server_register(NAME);
     483        errno_t rc = loc_server_register(NAME, &srv);
    475484        if (rc != EOK) {
    476485                printf("%s: Unable to register driver\n", NAME);
     
    479488
    480489        service_id_t service_id;
    481         rc = loc_service_register(argv[1], &service_id);
     490        rc = loc_service_register(srv, argv[1], &service_id);
    482491        if (rc != EOK) {
     492                loc_server_unregister(srv);
     493
    483494                printf("%s: Unable to register service %s\n", NAME, argv[1]);
    484495                return rc;
Note: See TracChangeset for help on using the changeset viewer.