Landfall

pkg/devices/cpm/src/server/cpm-server.cc

31:bab304c3775e
2018-05-30 Paul Boddie Fixed copyright notices to actually use the word "Copyright".
     1 /*     2  * Common CPM server functionality.     3  *     4  * Copyright (C) 2018 Paul Boddie <paul@boddie.org.uk>     5  *     6  * This program is free software; you can redistribute it and/or     7  * modify it under the terms of the GNU General Public License as     8  * published by the Free Software Foundation; either version 2 of     9  * the License, or (at your option) any later version.    10  *    11  * This program is distributed in the hope that it will be useful,    12  * but WITHOUT ANY WARRANTY; without even the implied warranty of    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    14  * GNU General Public License for more details.    15  *    16  * You should have received a copy of the GNU General Public License    17  * along with this program; if not, write to the Free Software    18  * Foundation, Inc., 51 Franklin Street, Fifth Floor,    19  * Boston, MA  02110-1301, USA    20  */    21     22 #include "cpm-client.h"    23 #include "cpm-server.h"    24 #include "cpm-ops.h"    25     26 #include <l4/cxx/ipc_server>    27 #include <l4/re/env>    28 #include <l4/sys/typeinfo_svr>    29 #include <l4/util/util.h>    30     31 /* Handle invocations. */    32     33 int    34 Cpm_server::dispatch(l4_umword_t obj, L4::Ipc::Iostream &ios)    35 {    36   l4_msgtag_t tag;    37     38   (void) obj;    39   ios >> tag;    40     41   switch (tag.label())    42   {    43     case L4::Meta::Protocol:    44       return L4::Util::handle_meta_request<Cpm_device_interface>(ios);    45     46     case Cpm_op_set_lcd_frequencies:    47       uint32_t pclk;    48       int multiplier;    49       ios >> pclk;    50       ios >> multiplier;    51       _chip->set_lcd_frequencies(pclk, multiplier);    52       return L4_EOK;    53     54     case Cpm_op_start_lcd:    55       _chip->start_lcd();    56       return L4_EOK;    57     58     case Cpm_op_stop_lcd:    59       _chip->stop_lcd();    60       return L4_EOK;    61     62     case Cpm_op_update_output_frequency:    63       _chip->update_output_frequency();    64       return L4_EOK;    65     66     default:    67       return -L4_EBADPROTO;    68   }    69 }