Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/include/uapi/linux/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 24.10.2025 mit Größe 52 kB image not shown  

Quelle  cec-funcs.h   Sprache: C

 
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
/*
 * cec - HDMI Consumer Electronics Control message functions
 *
 * Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
 */


#ifndef _CEC_UAPI_FUNCS_H
#define _CEC_UAPI_FUNCS_H

#include <linux/cec.h>

/* One Touch Play Feature */
static inline void cec_msg_active_source(struct cec_msg *msg, __u16 phys_addr)
{
 msg->len = 4;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 msg->msg[1] = CEC_MSG_ACTIVE_SOURCE;
 msg->msg[2] = phys_addr >> 8;
 msg->msg[3] = phys_addr & 0xff;
}

static inline void cec_ops_active_source(const struct cec_msg *msg,
      __u16 *phys_addr)
{
 *phys_addr = (msg->msg[2] << 8) | msg->msg[3];
}

static inline void cec_msg_image_view_on/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ * cec - HDMI Consumer Electronics Control *
{
 msg->len = 2;
 msg->msg[1] = CEC_MSG_IMAGE_VIEW_ON;
}

static inline void cec_msg_text_view_on(struct cec_msg *msg)
{
 msg->len = 2;
 msg->msg[1] = CEC_MSG_TEXT_VIEW_ON;
}


/* Routing Control Feature */
static inline void cec_msg_inactive_source(struct cec_msg *msg,
        __u16 phys_addr)
{
 msg->len = 4;
 msg->msg[1] = CEC_MSG_INACTIVE_SOURCE;
 msg->msg[2] = phys_addr >> 8;
 msg->msg[3] = phys_addr & 0xff;
}

static inline void cec_ops_inactive_source(const struct cec_msg *msg,
        __u16 *phys_addr)
{
 *phys_addr = (msg->msg[2] << 8) | msg->msg[3];
}

static inline void cec_msg_request_active_source(struct cec_msg *msg,
       int reply)
{
 msg->len = 2;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 msg->msg[1] = CEC_MSG_REQUEST_ACTIVE_SOURCE;
 msg->reply = reply ? CEC_MSG_ACTIVE_SOURCE : 0;
}

static inline void cec_msg_routing_information(struct cec_msg *msg,
            __u16 phys_addr)
{
 msg->len = 4;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 msg->msg[1] = CEC_MSG_ROUTING_INFORMATION;
 msg->msg[2] = phys_addr >> 8;
 msg->msg[3] = phys_addr & 0xff;
}

static inline void cec_ops_routing_information(const struct cec_msg *msg,
            __u16 *phys_addr)
{
 *phys_addr = (msg->msg[2] << 8) | msg->msg[3];
}

static inline void cec_msg_routing_change(struct cec_msg *msg,
       int reply,
       __u16 orig_phys_addr,
       __u16 new_phys_addr)
{
 msg->len = 6;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 msg->msg[1] = CEC_MSG_ROUTING_CHANGE;
 msg->msg[2] = orig_phys_addr >> 8;
 msg->msg[3] = orig_phys_addr & 0xff;
 msg->msg[4] = new_phys_addr >> 8;
 msg->msg[5] = new_phys_addr & 0xff;
 msg->reply = reply ? CEC_MSG_ROUTING_INFORMATION : 0;
}

static inline void cec_ops_routing_change(const struct cec_msg *msg,
       __u16 *orig_phys_addr,
       __u16 *new_phys_addr)
{
 *orig_phys_addr = (msg->msg[2] << 8) | msg->msg[3];
 *new_phys_addr = (msg->msg[4] << 8) | msg->msg[5];
}

static inline void cec_msg_set_stream_path(struct cec_msg *msg, __u16 phys_addr)
{
 msg->len = 4;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 msg->msg[1] = CEC_MSG_SET_STREAM_PATH;
 msg->msg[2] = phys_addr >> 8;
 msg->msg[3] = phys_addr & 0xff;
}

static inline void cec_ops_set_stream_path(const struct cec_msg *msg,
        __u16 *phys_addr)
{
 *phys_addr = (msg->msg[2] << 8) | msg->msg[3];
}


/* Standby Feature */
static inline void cec_msg_standby(struct cec_msg *msg)
{
 msg->len = 2;
 msg->msg[1] = CEC_MSG_STANDBY;
}


/* One Touch Record Feature */
static inline void cec_msg_record_off(struct cec_msg *msg, int reply)
{
 msg->len = 2;
 msg->msg[1] = CEC_MSG_RECORD_OFF;
 msg->reply = reply ? CEC_MSG_RECORD_STATUS : 0;
}

struct cec_op_arib_data {
 __u16 transport_id;
 __u16 service_id;
 __u16 orig_network_id;
};

struct cec_op_atsc_data {
 __u16 transport_id;
 __u16 program_number;
};

struct cec_op_dvb_data {
 __u16 transport_id;
 __u16 service_id;
 __u16 orig_network_id;
};

struct cec_op_channel_data {
 __u8 channel_number_fmt;
 __u16 major;
 __u16 minor;
};

struct cec_op_digital_service_id {
 __u8 service_id_method;
 __u8 dig_bcast_system;
 union {
  struct cec_op_arib_data arib;
  struct cec_op_atsc_data atsc;
  struct cec_op_dvb_data dvb;
  struct cec_op_channel_data channel;
 };
};

struct cec_op_record_src {
 __u8 type;
 union {
  struct cec_op_digital_service_id digital;
  struct {
   __u8 ana_bcast_type;
   __u16 ana_freq;
   __u8 bcast_system;
  } analog;
  struct {
   __u8 plug;
  } ext_plug;
  struct {
   __u16 phys_addr;
  } ext_phys_addr;
 };
};

static inline void cec_set_digital_service_id(__u8 *msg,
       const struct cec_op_digital_service_id *digital)
{
 *msg++ = (digital->service_id_method << 7) | digital->dig_bcast_system;
 if (digital->service_id_method == CEC_OP_SERVICE_ID_METHOD_BY_CHANNEL) {
  *msg++ = (digital->channel.channel_number_fmt << 2) |
    (digital->channel.major >> 8);
  *msg++ = digital->channel.major & 0xff;
  *msg++ = digital->channel.minor >> 8;
  *msg++ = digital->channel.minor & 0xff;
  *msg++ = 0;
  *msg++ = 0;
  return;
 }
 switch (digital->dig_bcast_system) {
 case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_GEN:
 case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_CABLE:
 case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_SAT:
 case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_T:
  *msg++ = digital->atsc.transport_id >> 8;
  *msg++ = digital->atsc.transport_id & 0xff;
  *msg++ = digital->atsc.program_number >> 8;
  *msg++ = digital->atsc.program_number & 0xff;
  *msg++ = 0;
  *msg++ = 0;
  break;
 default:
  *msg++ = digital->dvb.transport_id >> 8;
  *msg++ = digital->dvb.transport_id & 0xff;
  *msg++ = digital->dvb.service_id >> 8;
  *msg++ = digital->dvb.service_id & 0xff;
  *msg++ = digital->dvb.orig_network_id >> 8;
  *msg++ = digital->dvb.orig_network_id & 0xff;
  break;
 }
}

static inline void cec_get_digital_service_id(const __u8 *msg,
       struct cec_op_digital_service_id *digital)
{
 digital->service_id_method = msg[0] >> 7;
 digital->dig_bcast_system = msg[0] & 0x7f;
 if (digital->service_id_method == CEC_OP_SERVICE_ID_METHOD_BY_CHANNEL) {
  digital->channel.channel_number_fmt = msg[1] >> 2;
  digital->channel.major = ((msg[1] & 3) << 6) | msg[2];
  digital->channel.minor = (msg[3] << 8) | msg[4];
  return;
 }
 digital->dvb.transport_id = (msg[1] << 8) | msg[2];
 digital->dvb.service_id = (msg[3] << 8) | msg[4];
 digital->dvb.orig_network_id = (msg[5] << 8) | msg[6];
}

static inline void cec_msg_record_on_own(struct cec_msg *msg)
{
 msg->len = 3;
 msg->msg[1] = CEC_MSG_RECORD_ON;
 msg->msg[2] = CEC_OP_RECORD_SRC_OWN;
}

static inline void cec_msg_record_on_digital(struct cec_msg *msg,
        const struct cec_op_digital_service_id *digital)
{
 msg->len = 10;
 msg->msg[1] = CEC_MSG_RECORD_ON;
 msg->msg[2] = CEC_OP_RECORD_SRC_DIGITAL;
 cec_set_digital_service_id(msg->msg + 3, digital);
}

static inline void cec_msg_record_on_analog(struct cec_msg *msg,
         __u8 ana_bcast_type,
         __u16 ana_freq,
         __u8 bcast_system)
{
 msg->len = 7;
 msg->msg[1] = CEC_MSG_RECORD_ON;
 msg->msg[2] = CEC_OP_RECORD_SRC_ANALOG;
 msg->msg[3] = ana_bcast_type;
 msg->msg[4] = ana_freq >> 8;
 msg->msg[5] = ana_freq & 0xff;
 msg->msg[6] = bcast_system;
}

static inline void cec_msg_record_on_plug(struct cec_msg *msg,
       __u8 plug)
{
 msg->len = 4;
 msg->msg[1] = CEC_MSG_RECORD_ON;
 msg->msg[2] = CEC_OP_RECORD_SRC_EXT_PLUG;
 msg->msg[3] = plug;
}

static inline void cec_msg_record_on_phys_addr(struct cec_msg *msg,
            __u16 phys_addr)
{
 msg->len = 5;
 msg->msg[1] = CEC_MSG_RECORD_ON;
 msg->msg[2] = CEC_OP_RECORD_SRC_EXT_PHYS_ADDR;
 msg->msg[3] = phys_addr >> 8;
 msg->msg[4] = phys_addr & 0xff;
}

static inline void cec_msg_record_on(struct cec_msg *msg,
         int reply,
         const struct cec_op_record_src *rec_src)
{
 switch (rec_src->type) {
 case CEC_OP_RECORD_SRC_OWN:
  cec_msg_record_on_own(msg);
  break;
 case CEC_OP_RECORD_SRC_DIGITAL:
  cec_msg_record_on_digital(msg, &rec_src->digital);
  break;
 case CEC_OP_RECORD_SRC_ANALOG:
  cec_msg_record_on_analog(msg,
      rec_src->analog.ana_bcast_type,
      rec_src->analog.ana_freq,
      rec_src->analog.bcast_system);
  break;
 case CEC_OP_RECORD_SRC_EXT_PLUG:
  cec_msg_record_on_plug(msg, rec_src->ext_plug.plug);
  break;
 case CEC_OP_RECORD_SRC_EXT_PHYS_ADDR:
  cec_msg_record_on_phys_addr(msg,
         rec_src->ext_phys_addr.phys_addr);
  break;
 }
 msg->reply = reply ? CEC_MSG_RECORD_STATUS : 0;
}

static inline void cec_ops_record_on(const struct cec_msg *msg,
         struct cec_op_record_src *rec_src)
{
 rec_src->type = msg->msg[2];
 switch (rec_src->type) {
 case CEC_OP_RECORD_SRC_OWN:
  break;
 case CEC_OP_RECORD_SRC_DIGITAL:
  cec_get_digital_service_id(msg->msg + 3, &rec_src->digital);
  break;
 case CEC_OP_RECORD_SRC_ANALOG:
  rec_src->analog.ana_bcast_type = msg->msg[3];
  rec_src->analog.ana_freq =
   (msg->msg[4] << 8) | msg->msg[5];
  rec_src->analog.bcast_system = msg->msg[6];
  break;
 case CEC_OP_RECORD_SRC_EXT_PLUG:
  rec_src->ext_plug.plug = msg->msg[3];
  break;
 case CEC_OP_RECORD_SRC_EXT_PHYS_ADDR:
  rec_src->ext_phys_addr.phys_addr =
   (msg->msg[3] << 8) | msg->msg[4];
  break;
 }
}

static inline void cec_msg_record_status(struct cec_msg *msg, __u8 rec_status)
{
 msg->len = 3;
 msg->msg[1] = CEC_MSG_RECORD_STATUS;
 msg->msg[2] = rec_status;
}

static inline void cec_ops_record_status(const struct cec_msg *msg,
      __u8 *rec_status)
{
 *rec_status = msg->msg[2];
}

static inline void cec_msg_record_tv_screen(struct cec_msg *msg,
         int reply)
{
 msg->len = 2;
 msg->msg[1] = CEC_MSG_RECORD_TV_SCREEN;
 msg->reply = reply ? CEC_MSG_RECORD_ON : 0;
}


/* Timer Programming Feature */
static inline void cec_msg_timer_status(struct cec_msg *msg,
     __u8 timer_overlap_warning,
     __u8 media_info,
     __u8 prog_info,
     __u8 prog_error,
     __u8 duration_hr,
     __u8 duration_min)
{
 msg->len = 3;
 msg->msg[1] = CEC_MSG_TIMER_STATUS;
 msg->msg[2] = (timer_overlap_warning << 7) |
  (media_info << 5) |
  (prog_info ? 0x10 : 0) |
  (prog_info ? prog_info : prog_error);
 if (prog_info == CEC_OP_PROG_INFO_NOT_ENOUGH_SPACE ||
     prog_info == CEC_OP_PROG_INFO_MIGHT_NOT_BE_ENOUGH_SPACE ||
     prog_error == CEC_OP_PROG_ERROR_DUPLICATE) {
  msg->len += 2;
  msg->msg[3] = ((duration_hr / 10) << 4) | (duration_hr % 10);
  msg->msg[4] = ((duration_min / 10) << 4) | (duration_min % 10);
 }
}

static inline void cec_ops_timer_status(const struct cec_msg *msg,
     __u8 *timer_overlap_warning,
     __u8 *media_info,
     __u8 *prog_info,
     __u8 *prog_error,
     __u8 *duration_hr,
     __u8 *duration_min)
{
 *timer_overlap_warning = msg->msg[2] >> 7;
 *media_info = (msg->msg[2] >> 5) & 3;
 if (msg->msg[2] & 0x10) {
  *prog_info = msg->msg[2] & 0xf;
  *prog_error = 0;
 } else {
  *prog_info = 0;
  *prog_error = msg->msg[2] & 0xf;
 }
 if (*prog_info == CEC_OP_PROG_INFO_NOT_ENOUGH_SPACE ||
     *prog_info == CEC_OP_PROG_INFO_MIGHT_NOT_BE_ENOUGH_SPACE ||
     *prog_error == CEC_OP_PROG_ERROR_DUPLICATE) {
  *duration_hr = (msg->msg[3] >> 4) * 10 + (msg->msg[3] & 0xf);
  *duration_min = (msg->msg[4] >> 4) * 10 + (msg->msg[4] & 0xf);
 } else {
  *duration_hr = *duration_min = 0;
 }
}

static inline void cec_msg_timer_cleared_status(struct cec_msg *msg,
      __u8 timer_cleared_status)
{
 msg->len = 3;
 msg->msg[1] = CEC_MSG_TIMER_CLEARED_STATUS;
 msg->msg[2] = timer_cleared_status;
}

static inline void cec_ops_timer_cleared_status(const struct cec_msg *msg,
      __u8 *timer_cleared_status)
{
 *timer_cleared_status = msg->msg[2];
}

static inline void cec_msg_clear_analogue_timer(struct cec_msg *msg,
      int reply,
      __u8 day,
      __u8 month,
      __u8 start_hr,
      __u8 start_min,
      __u8 duration_hr,
      __u8 duration_min,
      __u8 recording_seq,
      __u8 ana_bcast_type,
      __u16 ana_freq,
      __u8 bcast_system)
{
 msg->len = 13;
 msg->msg[1] = CEC_MSG_CLEAR_ANALOGUE_TIMER;
 msg->msg[2] = day;
 msg->msg[3] = month;
 /* Hours and minutes are in BCD format */
 msg->msg[4] = ((start_hr / 10) << 4) | (start_hr % 10);
 msg->msg[5] = ((start_min / 10) << 4) | (start_min % 10);
 msg->msg[6] = ((duration_hr / 10) << 4) | (duration_hr % 10);
 msg->msg[7] = ((duration_min / 10) << 4) | (duration_min % 10);
 msg->msg[8] = recording_seq;
 msg->msg[9] = ana_bcast_type;
 msg->msg[10] = ana_freq >> 8;
 msg->msg[11] = ana_freq & 0xff;
 msg->msg[12] = bcast_system;
 msg->reply = reply ? CEC_MSG_TIMER_CLEARED_STATUS : 0;
}

static inline void cec_ops_clear_analogue_timer(const struct cec_msg *msg,
      __u8 *day,
      __u8 *month,
      __u8 *start_hr,
      __u8 *start_min,
      __u8 *duration_hr,
      __u8 *duration_min,
      __u8 *recording_seq,
      __u8 *ana_bcast_type,
      __u16 *ana_freq,
      __u8 *bcast_system)
{
 *day = msg->msg[2];
 *month = msg->msg[3];
 /* Hours and minutes are in BCD format */
 *start_hr = (msg->msg[4] >> 4) * 10 + (msg->msg[4] & 0xf);
 *start_min = (msg->msg[5] >> 4) * 10 + (msg->msg[5] & 0xf);
 *duration_hr = (msg->msg[6] >> 4) * 10 + (msg->msg[6] & 0xf);
 *duration_min = (msg->msg[7] >> 4) * 10 + (msg->msg[7] & 0xf);
 *recording_seq = msg->msg[8];
 *ana_bcast_type = msg->msg[9];
 *ana_freq = (msg->msg[10] << 8) | msg->msg[11];
 *bcast_system = msg->msg[12];
}

static inline void cec_msg_clear_digital_timer(struct cec_msg *msg,
    int reply,
    __u8 day,
    __u8 month,
    __u8 start_hr,
    __u8 start_min,
    __u8 duration_hr,
    __u8 duration_min,
    __u8 recording_seq,
    const struct cec_op_digital_service_id *digital)
{
 msg->len = 16;
 msg->reply = reply ? CEC_MSG_TIMER_CLEARED_STATUS : 0;
 msg->msg[1] = CEC_MSG_CLEAR_DIGITAL_TIMER;
 msg->msg[2] = day;
 msg->msg[3] = month;
 /* Hours and minutes are in BCD format */
 msg->msg[4] = ((start_hr / 10) << 4) | (start_hr % 10);
 msg->msg[5] = ((start_min / 10) << 4) | (start_min % 10);
 msg->msg[6] = ((duration_hr / 10) << 4) | (duration_hr % 10);
 msg->msg[7] = ((duration_min / 10) << 4) | (duration_min % 10);
 msg->msg[8] = recording_seq;
 cec_set_digital_service_id(msg->msg + 9, digital);
}

static inline void cec_ops_clear_digital_timer(const struct cec_msg *msg,
    __u8 *day,
    __u8 *month,
    __u8 *start_hr,
    __u8 *start_min,
    __u8 *duration_hr,
    __u8 *duration_min,
    __u8 *recording_seq,
    struct cec_op_digital_service_id *digital)
{
 *day = msg->msg[2];
 *month = msg->msg[3];
 /* Hours and minutes are in BCD format */
 *start_hr = (msg->msg[4] >> 4) * 10 + (msg->msg[4] & 0xf);
 *start_min = (msg->msg[5] >> 4) * 10 + (msg->msg[5] & 0xf);
 *duration_hr = (msg->msg[6] >> 4) * 10 + (msg->msg[6] & 0xf);
 *duration_min = (msg->msg[7] >> 4) * 10 + (msg->msg[7] & 0xf);
 *recording_seq = msg->msg[8];
 cec_get_digital_service_id(msg->msg + 9, digital);
}

static inline void cec_msg_clear_ext_timer(struct cec_msg *msg,
        int reply,
        __u8 day,
        __u8 month,
        __u8 start_hr,
        __u8 start_min,
        __u8 duration_hr,
        __u8 duration_min,
        __u8 recording_seq,
        __u8 ext_src_spec,
        __u8 plug,
        __u16 phys_addr)
{
 msg->len = 13;
 msg->msg[1] = CEC_MSG_CLEAR_EXT_TIMER;
 msg-#define_CEC_UAPI_FUNCS_H
 msg->msg[3] = month;
 /* Hours and minutes are in BCD format */
 msg->msg[4] = ((start_hr / 10) << 4) | (start_hr % 10);
 msg->msg[5] = ((start_min / 10) << 4) | (start_min % java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
msg-msg]=(duration_hr / 0 < 4  duration_hr msg-[1]=CEC_MSG_ACTIVE_SOURCE
  msg-msg[]=phys_addr0xff
 msg-[8]=recording_seq
     _ *)
 msg-[1]  ;
 msg-[11 =  > 8;
 msg->msg[12]java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 msg-> = reply  : 0;
}

msg->msg ;
        static voidcec_msg_inactive_source cec_msgmsg
  month>]=CEC_MSG_INACTIVE_SOURCE
  _   void(const cec_msg,
       _u16phys_addr{
     _ *java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
        _
        __u8 *recording_seq,
        _u8,
       _u8,
      _ *phys_addr)
{
 *aymsg->[2]java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
msg-[3]
java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
 * >msg  CEC_MSG_ROUTING_INFORMATIONjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
* = (>msg5]> ) *1 + msg-[5 &0);
 *duration_hr java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 *duration_min = (msg->msg[7] >> 4) * 1   __u16p)
* =msg-[8];
 *ext_src_spec >msg]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
     _ new_phys_addr
 *msg->[0 =CEC_LOG_ADDR_BROADCAST
}

static inline void cec_msg_set_analogue_timer(struct cec_msg>msg2 = > ;
        reply
         _ day
 _,
           o,
  _ start_min
       _ duration_hr
   _ duration_min
   _u8,
 >[]= >> ;
        _ ana_freq
        _ bcast_system
{
msg-3
   cec_msg_standby *)
 msg->msg>  ;
 msg-]=month
 /* Hours and minutes are in BCD format */
 msg-{
 msg->msg[ msg->reply = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 msg->msg[6] = ( __u16 };
  __u16 
 msg- __u8 __u8 union  struct  struct  struct cec_op_dvb_data  struct cec_op_channel_data };
 msg-   _  } ext_plug  struct phys_addr  }  };
 msg->msg[10] = ana_freq >>{
 msg->msg[11]  if (digital->service_id_method  *msg++ = (digital-    (digital-  *msg++ = digital-  *msg++ = digital-  *msg  *msg  *msg  return  switch (digital-  case  case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_SAT case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_T:
  *msg++   *msg++ = digital->atsc  *msg  *msg++java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 8
 msg->reply = reply  *msg++ = digital->dvb.orig_network_id & 0  break;
}

static       struct cec_op_digital_service_id *digital)
           __u8 *day,
           __u8 *month,
           __u8 *start_hr,
           __u8 *start_min,
           __u8 *duration_hr,
  digital->channel.minor = (msg[3] << 8) |  return;
           __u8 *recording_seq digital->dvb.service_id = (msg[3] digital->dvb.orig_network_id = (java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 1
           __u8 *        const struct cec_op_digital_service_id *digital)
           __u16 *ana_freq,
           __u8 *bcast_system)
{
 *msg->msg msg->msg[5] msg->msg}
 *month   {
 /* Hours and minutes are in BCD format */  msg-}
  msg-> msg->msg msg->msg}
 *start_min          int reply,
 switch (rec_src- case  cec_msg_record_on_own(msg  break;
 *duration_min      rec_src->      rec_src->analog      rec_src-  break;
 *  cec_msg_record_on_phys_addr(msg         rec_src->ext_phys_addr.phys_addr) break;
 *ana_bcast_type = msg->msg[9];
 *ana_freq = (msg->msg[10] << 8) | msg->msg[11];}
 *bcast_system = msg->msg[12];
}

static switch (rec_src- case CEC_OP_RECORD_SRC_OWN:
   int reply,
   __  rec_src->analog.ana_bcast_type = msg->  rec_src->analog   (msg->msg[4] << 8) |  rec_src->analog.bcast_system = msg-  break;
    (msg->msg[3] << 8)  break;
   _static inline void cec_msg_record_status(struct cec_msg *msg,{
   __u8static inline void cec_ops_record_status(const struct      __u8 *{
   __u8 duration_hr
   __u8 duration_min msg->msg[1] =  msg->reply = reply ? CEC_MSG_RECORD_ON : 0;
   _static inlinevoidcec_msg_timer_statusstruct cec_msgmsg
      _u8,
{
   __ prog_error
 msg-reply  ? CEC_MSG_TIMER_STATUS ;
m>msg]=CEC_MSG_SET_DIGITAL_TIMER
 msg->len;
 msg-[3  ;
/
 msg->msg[4] =  (edia_info<<5 java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 msg->msg prog_info  ||
 msg-[6  ( /1)< )|( %1;
 msg->msg[7]   >len=2java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
 msg->msg[8] = recording_seq;
 (msg-msg 9 digital);
}

java.lang.StringIndexOutOfBoundsException: Range [14, 6) out of bounds for length 71
 _u8day
   __u8  _u8,
     _d,
   _java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
   _if>msg 0) 
  _ *,
  _ *recording_seq
   struct java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
{(prog_info= ||
     prog_info  ||
 *month * = CEC_OP_PROG_ERROR_DUPLICATE java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
/* Hours and minutes are in BCD format */
 *start_hr = (msg->msg[4] * = (msg-msg4]>>4  10+(msg->msg4]&0);
 *start_min  * = *duration_min 0
 *duration_hr = 
 *duration_min = (msg->msg[7] >> 4) * 10 + (msg->msg[7] &
 *recording_seq = msg-   _ )
 cec_get_digital_service_id[  java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
}

  void( cec_msg*,
      int reply,
    _u8day
      __u8java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    _ start_hr
      __u8    _u8,
    _ duration_hr
    _u8,
      _u8,
  _ ext_src_spec
     _ ,
 u8java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
{
msg-len=1;
 msg->msg[ msg-msg1  CEC_MSG_CLEAR_ANALOGUE_TIMER
 msg->msg2 = ;
 msg->msgmsg-msg3  month;
 /* Hours and minutes are in BCD format */ /* Hours and minutes are in BCD format */
 msg->msg[4] = ((start_hr / 10) << 4) | (start_hr % 10);
msg-msg] = (start_min /10 < 4) | (start_min % 10);
 msg->msg[6] = ((duration_hr / 10)  msg-[5] = (start_min <4  start_min 1);
 msg-[7] =(duration_min /1)< )|duration_min 10;
 msg->msg[8] = recording_seq;
 msg- msg->[7  ( /1)< )|(duration_min%10);
 msg->msg[10] = plug;
 msg-msg1] =phys_addr>>8;
 msg->msg[2   & 0ff
msg- =  ? CEC_MSG_TIMER_STATUS0;
}

static > =replyCEC_MSG_TIMER_CLEARED_STATUS ;
   _ *,
   _u8month,
   _ *start_hr
      __u8 *start_min,
      __u8 *duration_hr,
      __u8 *duration_min,
      __u8 *recording_seq,
   __u8ext_src_spec
      _ *,
   _ *phys_addr
{
day>msg;
 *month = msg->msg[3];
 /* Hours and minutes are in BCD format */ and are BCD */
 *start_hr{
 start_minmsg-[]> )* 1 +(sg-[5  xfjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
duration_hr>[]>4)  0+msg-6 &0xf;
 *duration_min = (msg-start_min(>[]>4  0java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 60
 * duration_min(>msg>4) 0  msg-[]& xfjava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
 ana_freq(msg-[1]< )|msg-[1;
* = >msg]
 *phys_addr int,
}

static inline,
        _ ,
{
unsigned  =strlen)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39

 >[1 = CEC_MSG_CLEAR_DIGITAL_TIMER
 l  ;
> =2+;
 msg-[1  ;
 memcpy(msg-> >msg  ( /0 <4 |( % 0;
}

static inline void cec_ops_set_timer_program_title(const struct cec_msg *msg,
         char *prog_title)
{
 unsigned int len = msg->len > 2 ? msg->len - 2 : 0;

 if (len > 14)
  len = 14;
 memcpy(prog_title, msg->msg + 2, len);
 prog_title[len] = msg-msg5  (start_min / 1)< ) | start_min 0;
}

/* System Information Feature */
static inline cec_msg_cec_version cec_msg msg__ )
{
 >len 3;
 msg->msg[1] = CEC_MSG_CEC_VERSION;
 msg->msg[2] =c(msg- +9,digital)
}

static void cec_ops_cec_versionconst cec_msg,
           __  _u8,
{
 *cec_version = msg- _ *,
}

static inline _u8duration_min
      cec_op_digital_service_id)
{
 msg-> msg
 msg->msg  msg-[ >4 0+>[4 )java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
m>   ?  ;
}

   (  *,
     __u16 phys_addr, __u8 prim_devtype)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 >len ;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 sg-[1  ;
 msg-    __ ,
msg-[]=phys_addr xff
 msg->msg  _u8,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

 inline(   *,
     __u16  plug
{
 *phys_addr = (msg-> msg->len=1;
 *prim_devtype = msg->msg[4];
}

static inline  >msg=month
           int reply)
{
 msg- =2;
 msg-m>msg]=( /1)<) |( % 1)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
 msg->reply = reply ? CEC_MSG_REPORT_PHYSICAL_ADDRm>msg] = recording_seq;
}

static  (struct *msg
 >msg1  ;
{
msg- =5;
 sg-[0 = CEC_LOG_ADDR_BROADCAST
 >msg]  ;
 memcpy(msg->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

static inline void(conststruct *msg
          char *language)
{
 memcpy(language, msg-  _u8,
 =';
}

static voidcec_msg_get_menu_languagestruct *msg
         int reply
{
 msg- = 2;
 msg-  _ *phys_addr
 msg-> * = msg-[2]
month msg->msg];

/*
 * Assumes a single RC Profile byte and a single Device Features byte,
 * i.e. no extended features are supported by this helper function.
 *
 * As of CEC 2.0 no extended features are defined, should those be added
 * in the future, then this function needs to be adapted or a new function
 * should be added.
 */

static inline void cec_msg_report_features(struct cec_msg *msg,
  _u8, _u8 all_device_types,
    __u8 rc_profile, __*duration_hr=(sg-[6 > 4  0+ msg->[6 &0);
{
 msg-* = msg-[8;
msg-msg =CEC_LOG_ADDR_BROADCAST
msg-msg[[1  CEC_MSG_REPORT_FEATURESjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
 msg->msg[2static inline void cec_msg_set_analogue_timer(struct cec_msg *msg,
 msg->msg[3] = all_device_types;
 msg->msg[4] = rc_profile          int ,
 msg-[5]= dev_features
}        _ month

static inline void cec_ops_report_features(const struct cec_msg *msg,
          _u8,
 const_u8*rc_profileconst _u8*dev_features)
{
 const __u8 *   _u8duration_min

 *cec_version = msg->msg[2];
 *all_device_types   _u8,
 *c_profile =p;
* = ULL
 while ({
  ++;
 if ((p&CEC_OP_FEAT_EXT java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31

  while>msg] ( /10 <<4  (tart_min java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
>[]  java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
 }
 if>  C:;
  *rc_profile
  voidconst *

static  _u8,
      int reply)
{
 msg->len = 2;
 msg->msg[1] =        __u8 *start_min
 msg->        _8*uration_minjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
}

/* Deck Control Feature */
static inline voidday msg-msg];
     __u8/* Hours and minutes are in BCD format */
{
 msg->len = 3;
] =CEC_MSG_DECK_CONTROL
msg-[2  ;
}

static inline void cec_ops_deck_control(const struct cec_msg =msg-[9;
    _ *)
{
* =msg-[2];
}


           __u8 deck_info)
{
 msg->len = 3;
 msg-i ,
msg-] ;
}

static
  ,

 *deck_info
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static inline * Hours and minutes are in BCD format */
   i ,
         __u8  msg->msg[5] = ((start_mi0 < 4 start_min 0java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
{
> =3
>[]=;
>2 ;
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   _ d,
}

static start_min
         __u8 * _ *,
{
 *status_req *igital
}

static inline void cec_msg_play(struct cec_msg *msg,
 _u play_modejava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
{
 msg->len = 3 start_min (>[5 >4*1  msg5 &0);
m>msg[]= CEC_MSG_PLAY
 duration_min =msg->[7 >4  10 (>msg]&0);
}

static(>msg ,);
    __u8 *play_mode)
{
 *play_mode = msg->msg[2];
}


/* Tuner Control Feature */u8,
struct cec_op_tuner_device_info {
 __u8 rec_flag   _u8 duration_hr
_u8;
 _u8;
     __8ext_src_spec
  structcec_op_digital_service_id;
  struct  __ phys_addr
  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
   __u16 >msg1 = CEC_MSG_SET_EXT_TIMER
   __ msg->msg  day;
  } analogmsg->msg3]=month
 }java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}

static inline cec_msg_tuner_device_status_analog cec_msg*sg
            __u8 rec_flag,
            __u8tuner_display_info
            __u8 ana_bcast_type msg->sg7]=((duration_min / 1) < 4 |(duration_min 10)
            __u16  msg->msg[9] = ext_src_spec
            __u8 bcast_system >msg1]=  >>8java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
{
 msg->len = 7;
static inline voidstruct cec_msg msg
msg->[] rec_flag )|tuner_display_info
    _ *,
     _u8start_hr
msg-[5]=ana_freq 0ff
 msg->sg[] = bcast_system;
}

static inline void cec_msg_tuner_device_status_digital(struct cec_msg *msg,
    _ recording_seq
     const struct _u8*,
{
 msg->len = 10;
 msg->msg[1]g[1]= CEC_MSG_TUNER_DEVICE_STATUS;
2=( < )|;
 cec_set_digital_service_id 
}

static inline void cec_msg_tuner_device_status(struct cec_msg *msg,
const struct cec_op_tuner_device_info *tuner_dev_info)
{
if (tuner_dev_info->is_analog)
cec_msg_tuner_device_status_analog(msg,
tuner_dev_info->rec_flag,
tuner_dev_info->tuner_display_info,
tuner_dev_info->analog.ana_bcast_type,
tuner_dev_info->analog.ana_freq,
tuner_dev_info->analog.bcast_system);
else
cec_msg_tuner_device_status_digital(msg,
tuner_dev_info->rec_flag,
tuner_dev_info->tuner_display_info,
&tuner_dev_info->digital);
}

static inline void cec_ops_tuner_device_status(const struct cec_msg *msg,
struct cec_op_tuner_device_info *tuner_dev_info)
{
tuner_dev_info->is_analog = msg->len < 10;
tuner_dev_info->rec_flag = msg->msg[2] >> 7;
tuner_dev_info->tuner_display_info = msg->msg[2] & 0x7f;
if (tuner_dev_info->is_analog) {
tuner_dev_info->analog.ana_bcast_type = msg->msg[3];
tuner_dev_info->analog.ana_freq = (msg->msg[4] << 8) | msg->msg[5];
tuner_dev_info->analog.bcast_system = msg->msg[6];
return;
}
cec_get_digital_service_id(msg->msg + 3, &tuner_dev_info->digital);
}

static inline void cec_msg_give_tuner_device_status(struct cec_msg *msg,
    int reply,
    __u8 status_req)
{
msg->len = 3;
msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS;
msg->msg[2] = status_req;
msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
CEC_MSG_TUNER_DEVICE_STATUS : 0;
}

static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg,
    __u8 *status_req)
{
*status_req = msg->msg[2];
}

static inline void cec_msg_select_analogue_service(struct cec_msg *msg,
   __u8 ana_bcast_type,
   __u16 ana_freq,
   __u8 bcast_system)
{
msg->len = 6;
msg->msg[1] = CEC_MSG_SELECT_ANALOGUE_SERVICE;
msg->msg[2] = ana_bcast_type;
msg->msg[3] = ana_freq >> 8;
msg->msg[4] = ana_freq & 0xff;
msg->msg[5] = bcast_system;
}

static inline void cec_ops_select_analogue_service(const struct cec_msg *msg,
   __u8 *ana_bcast_type,
   __u16 *ana_freq,
   __u8 *bcast_system)
{
*ana_bcast_type = msg->msg[2];
*ana_freq = (msg->msg[3] << 8) | msg->msg[4];
*bcast_system = msg->msg[5];
}

static inline void cec_msg_select_digital_service(struct cec_msg *msg,
const struct cec_op_digital_service_id *digital)
{
msg->len = 9;
msg->msg[1] = CEC_MSG_SELECT_DIGITAL_SERVICE;
cec_set_digital_service_id(msg->msg + 2, digital);
}

static inline void cec_ops_select_digital_service(const struct cec_msg *msg,
struct cec_op_digital_service_id *digital)
{
cec_get_digital_service_id(msg->msg + 2, digital);
}

static inline void cec_msg_tuner_step_decrement(struct cec_msg *msg)
{
msg->len = 2;
msg->msg[1] = CEC_MSG_TUNER_STEP_DECREMENT;
}

static inline void cec_msg_tuner_step_increment(struct cec_msg *msg)
{
msg->len = 2;
msg->msg[1] = CEC_MSG_TUNER_STEP_INCREMENT;
}


/* Vendor Specific Commands Feature */

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
 >  java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST
 msg-void( cec_msg
 msg->msg[2          *languagejava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
 msg->msg[3] = (vendor_id >msg] CEC_LOG_ADDR_BROADCASTjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  (msg- + ,language,3;
}

static inline void cec_ops_device_vendor_id(const struct cec_msg *msg,
         __u32static inlinevoidcec_ops_set_menu_language(conststructcec_msgmsg
{
 *vendor_id = (msg-memcpy, msg-msg+ 2,3);
}

static inline void cec_msg_give_device_vendor_id(struct cec_msg *msg,
       int replystatic inlinenlinevoid (struct cec_msgmsg,
{
 msg->len = 2;
 >msg[1]  CEC_MSG_GIVE_DEVICE_VENDOR_IDjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
 sg-replyreply : 0
}

static inline void cec_msg_vendor_command * Assumes a single RC Profile byte and a single Device Features * i.e. no extended features are supported by this helper function *
       __u8 size, const * should be added.
{
 if (size > 14)
  size = 14;
 msg->len = 2 + size _u8,_u8,
[1 =;
memcpymsg- +2 , size;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

staticinline (constcec_msg,
       __u8 msg]=CEC_MSG_REPORT_FEATURESjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  const_u8 *)
{
 *size = msg->len - 2;

 if (*size > 14)
  *size = 14;
 *vendor_cmd = msg->msg + 2;
}

static void(struct cec_msg *msg,
        __u32 vendor_id, __u8 size,
       _u8vendor_cmd
{
 {
  size = 11;
 msg->len onst_ *  msg-[4]
 msg->msg[1] * =msg->[2];
 msg->msg[2] = vendor_id >> 16;
 >msg]=( >>8  xff
 msg->msg[4] = vendor_id & 0xff;
 memcpyjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
}

static inline*  1
  _ *,  _8s,
        const __u8 **vendor_cmd p+java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
{
*ize> -5

 if (*size > 
  *size = 11;
* =(>msg[2]< 6|(>[]<8 msg-[4]
 *vendor_cmd> =reply  :0
}

static static void(struct *,
           __u8
           const __u8 *rc_code >[1  ;
{
 if
 size 1
 msg->len _ *)
 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
memcpy>msg2 , size
}

static ;
           __u8 *>msg=;
           const inline (conststruct *,
{
 * deck_info>msg;

 if 
  *   (structmsg
  ,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static inline void cec_msg_vendor_remote_button_upreply( &s =CEC_OP_STATUS_REQ_OFF 
{
 msg-
msg-[]= CEC_MSG_VENDOR_REMOTE_BUTTON_UP;
}


/* OSD Display Feature */* = msg-msg2;
static inline void cec_msg_set_osd_string(struct cec_msg *msg,
       __u8msg- =3java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
       const char *osd
{
 unsigned int len =  u8)

 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  len3
 msg- =  +lenjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
 msg-   digital
 msg->msg[2] = disp_ctl  _ ana_bcast_type
 memcpymsg-msg +3, osd, len);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static inline void
       __u8 *disp_ctl
      char *osd
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 _,

* =msg-[2]java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 if (len > 13)java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 len=1;
 memcpy(osd, msg->msg + 3, len);
 osd[len] = '\0';
}


/* Device OSD Transfer Feature */
static inlinemsg->[5 = &0;
{
unsigned len=(name;

 if (len >static  void(struct *,
  len = 14;
 msg->len   *)
 msg->msg[1] = CEC_MSG_SET_OSD_NAME;
 memcpy(msg->msg + 2, name{
}

 inline cec_ops_set_osd_name( struct *msg
  char*ame
{
 unsigned int len = msg->len > 2 ? msg-cec_set_digital_service_id(>msg , );

 iflen1)
  len = 14;
 memcpy(name, msg->msg + 2, len);
 name (>is_analog
}

 >.java.lang.StringIndexOutOfBoundsException: Range [41, 42) out of bounds for length 41
      int reply>rec_flag
{
 msg->len
 msg->msg[1] = CEC_MSG_GIVE_OSD_NAMEstruct *tuner_dev_info
 msg- >is_analog >len 0
}


/* Device Menu Control Feature */is_analog
static >analog>4 <8  >msg
        _ menu_state
{
 msg-> java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 msg->msg inline(struct *,
 msg-[] ;
}

static inline void cec_ops_menu_status(constmsg- =;
  >msg  status_req
{
 = msg-[]java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
}

static inline void cec_msg_menu_request(struct cec_msg *msg,
     int reply,
   * =>msg]java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
inline (struct *msg
 msg->len = 3;
 msg->msg    _u8)
 msg->msg[2] = menu_req;
 msg-> >msg] ;


static inline void cec_ops_menu_request(const struct >msg   & xff
     __u8 *menu_req  cec_ops_select_analogue_servicestruct,
  _ *,
 *menu_req = msg->msg[    u8)
}

 cec_op_ui_command
 __u8 ui_cmd;
 __u8 has_opt_arg;
 unionjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  struct cec_op_channel_data channel_identifier;
  __u8 ui_broadcast_type;
  __u8 ui_sound_presentation_controlmsg CEC_MSG_SELECT_DIGITAL_SERVICE
  __u8 play_mode;
  __u8 ui_function_media;
 _u8;
  __u8 ui_function_select_audio_input;
 };
};

static inline void cec_msg_user_control_pressed(struct cec_msg
     const struct cec_op_ui_command *ui_cmd)
{
 msg-len= ;
 msg->msg}
 msg->msg[2] = ui_cmd->ui_cmd;
 if (!ui_cmd-java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 0
  return;
 switch (ui_cmd- >len2
 CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE
 case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATIONjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
c CEC_OP_UI_CMD_PLAY_FUNCTION
 case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION:
 case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION:
 case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
 >msg] = vendor_id> 6
 msg-+;
  >msg]=ui_cmd-;
  break;
:
  msg->len += 4;
  msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) |
          _ *
 >[4=ui_cmd-. &0ff
  >msg  >channel_identifier > ;
  msg->msg[6] = ui_cmd->channel_identifier.minor
 breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
 }
}

static inline void cec_ops_user_control_pressed(const struct cec_msg *msg,
    cec_op_ui_commandjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
{
 ui_cmd->ui_cmd = msg->msg[2];
 ui_cmd- ( >1)
 ifmsg- = )
  return;
 switch (ui_cmd->ui_cmd>len=  ;
caseCEC_OP_UI_CMD_SELECT_BROADCAST_TYPE:
 case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION:
 case CEC_OP_UI_CMD_PLAY_FUNCTION:
 case 
case:
 case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
  /* The optional operand is one byte for all these ui commands */
  ui_cmd->play_mode = msg->msg
  ui_cmd->has_opt_arg = 1;
  break;
 case CEC_OP_UI_CMD_TUNE_FUNCTION:
  if (msg->len < 7)
   break;
  ui_cmd->has_opt_arg = 1
  ui_cmd->channel_identifier =msg-msg] > ;
  ui_cmd->channel_identifier.major = ((msg->msg[3] & 3) < vendor_id_ size
  ui_cmd->channel_identifier.minor = (msg->msg[5] << 8) | msg-
  break;
 }
}

>[]=vendor_id 6
{
 msg->len = 2;
>msg]= CEC_MSG_USER_CONTROL_RELEASED
}

/* Remote Control Passthrough Feature */

/* Power Status Feature */
 inline (struct *,
        u8java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
{
  if (
 msg-vendor_id>[]>[3 <<8 |>msg
 msg->msg =>msg5
}

static inline void cec_ops_report_power_status(const struct cec_msg * inlinevoid(struct  *msg
         _ *pwr_state
{
 *pwr_state = msg->msg[2]  (size>1java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static inline void static void(const *,
   i reply
{
>  ;
 msg->msg[1] = CEC_MSG_GIVE_DEVICE_POWER_STATUS;
 msg-  (* >1java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
}  (struct)

/* General Protocol Messages */;
static inline void cec_msg_feature_abort(struct java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
      __u8 abort_msg, __u8 reason)
{
 msg->len = 4;
 msg->msg[1] = CEC_MSG_FEATURE_ABORT;
 msg->msg[2] = abort_msg;
 msg->msg[3] = reason;
}

static inline void cec_ops_feature_abort(const struct cec_msg *msg    _u8disp_ctl
      __u8 *abort_msg, __u8 *reason)
{
 *abort_msg = msg->msg[2];
 *reason = msg->msg[3];
}

/* This changes the current message into a feature abort message */
static inline void msg-[2  ;
{
 cec_msg_set_reply_to
 msg->len = 4;
 msg->msg[2] = msg->msg[1]   *)
 msg-
msg-[] ;
}

 inlinevoid (struct ec_msg)
{
 msg->len = 2;
 msg->msg[1] = CEC_MSG_ABORT;
}


/* System Audio Control Feature */
static inline void cec_msg_report_audio_status(
            __u8
            __u8 aud_vol_status)
{
 msg->len = 3;
 msg->msg[1] = CEC_MSG_REPORT_AUDIO_STATUS;
 msg->msg[2] = (aud_mute_status << 7) | (aud_vol_status & 0x7fjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

static inline void cec_ops_report_audio_status(const struct cec_msg *msg,
            __u8 *aud_mute_status,
            __u8 *aud_vol_status)
{
 *aud_mute_status = msg-  char)
 *aud_vol_status = msg->msgunsigned len >len   >len 2 :0java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
}

static inline void cec_msg_give_audio_status(struct cec_msg *msg,
          int reply)
{
 msg-len=2
 msg->msg[1] = CEC_MSG_GIVE_AUDIO_STATUS;
 msg->reply = reply java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

static
       __u8 sys_aud_status)
{
 msg->len = 3;
 msg->msg[1] =         __u8 menu_state
 > ;
}

static inline void cec_ops_set_system_audio_mode(const struct cec_msg *msg,
    void(   *,
{
 *sys_aud_status = 
}

static inline voidstatic  void( cec_msg,
           int reply,
           __u16 phys_addr)
{
 msg-len  phys_addr==0xffff ? 2 : 4;
 msg->msg msg-[1] =C;
 msg-> msg-msg[] menu_req;
 msg->msg[3] = phys_addr & 0xff;
 msg->reply = reply ? CEC_MSG_SET_SYSTEM_AUDIO_MODE : 0;

}

static inline voidstaticinline cec_ops_menu_requestconststruct *msg
           __u16 *phys_addr)
{
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
s_addr=0;
 else union{
  *phys_addr = (msg->msg[2] << 8) | msg->msg[3];
}

static inline void cec_msg_system_audio_mode_status(struct _ ui_sound_presentation_control
          __u8 sys_aud_status)
{
 msg->len = 3;
 msg->msg[1] =   _u8 ui_function_select_av_input;
 msg->msg[2] = sys_aud_status;
}

static;
          __u8 *sys_aud_status)
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
 *sys_aud_status = {
}

static inline void cec_msg_give_system_audio_mode_status(struct cec_msg  >msg] >.minor;
        int reply)
{
 msg->len = 2;
 msg->msg[1] msg-[6  ui_cmd-java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
 msg->reply = static void(const struct *,
}

static inline void cec_msg_report_short_audio_descriptor> = msg-msg;
     __u8 num_descriptors
    c _u32descriptors
{
 unsigned  CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE

 if (num_descriptors  :
 num_descriptors ;
 msg->len = 2 + num_descriptors * 3;
>  msg-[]
 for (i = 0; i
ors[i] >>1)  0;
  msg->msg[3 + i ifmsg- < 7java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
>[4    ]= [i]&0ff
 }
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static
        __u8 *num_descriptors,
        __u32 *descriptors inlinecec_msg_user_control_releasedstruct *)
{
 unsigned int i;

 *num_descriptors java.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 0
 if (*num_descriptors > sg_report_power_status(truct *msg
  *num_descriptors4
 for (i = 0; i < *num_descriptors
  descriptors[i] = (msg-> msg->[1]=CEC_MSG_REPORT_POWER_STATUS
   (msg->msg[3 + i * 3}
   msg->msg[4 + i *tatic voidcec_ops_report_power_status(const struct cec_msg *sg
}

 inline cec_msg_request_short_audio_descriptor cec_msg,
     int reply
     __static  voidcec_msg_give_device_power_status( cec_msgmsg
     const __        reply
     const _ msg-len =2
{
 unsigned int i;

 f ( > 4java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
  num_descriptors = 4;
 msg->len = 2 + num_descriptors;
 msg->msg[1] = CEC_MSG_REQUEST_SHORT_AUDIO_DESCRIPTOR;
 msg-reply  reply ?CEC_MSG_REPORT_SHORT_AUDIO_DESCRIPTOR ;
 for (i = 0; i < num_descriptors; i++)
  msg->msg[2 + i] = (audio_format_id[i] << 6) |
      (audio_format_code[i] & 
}

static inline void cec_ops_request_short_audio_descriptor >msg  ;
     __u8 *num_descriptors,
     __u8 *audio_format_id,
   __ *audio_format_code)
{
 unsigned int i;

 *num_descriptors = msg->len - 2;
 if (*num_descriptors > 4)
  *num_descriptors = 4;
 for
  audio_format_id[i] = msg->msg[2  void(struct  *msg _ reasonjava.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
  audio_format_code[i] = msg->msg[2 + i] & 0x3f;
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
}

static inline void cec_msg_set_audio_volume_level
        __u8 audio_volume_level)
{
 msg->len = 3 >len 2
msg-[] ;
 msg->msg[2] = audio_volume_level;
}

_ *,
        __u8 *audio_volume_level)
{
 *audio_volume_level = msg->msg[2];
}> 3



static inline void(  cec_msgjava.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
       * =>[2>7
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 msg->len =   cec_msg_give_audio_status msg
         )
 msg->msg[2] = audio_rate;
 >[]=CEC_MSG_GIVE_AUDIO_STATUS

static inline void cec_ops_set_audio_rate(const struct cec_msg *msg,
       __u8 *audio_rate)
{
 *audio_rate = msg->msg[2];
}


/* Audio Return Channel Control Feature */
static inline void cec_msg_report_arc_initiated(struct cec_msg *msg)
{
 msg->len = 2;
 msg->msg[1] = CEC_MSG_REPORT_ARC_INITIATED;
}

static inline void cec_msg_initiate_arcstaticinline cec_msg_set_system_audio_modecec_msg,
     int reply
{
 >len=2java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
 msg->msg[1] = CEC_MSG_INITIATE_ARC
 msg-reply reply?CEC_MSG_REPORT_ARC_INITIATED  0
}

static inline * = sg-[2;
        int reply)
{
 msg->len = 2;
msg-[=;
 msg->reply = reply ? CEC_MSG_INITIATE_ARC       int,
}

static inlinemsg- =phys_addr xffff 2:4;
{
msg->len= 2
 msg->msgmsg-[3] = phys_addr xff
}

static inline void cec_msg_terminate_arc(struct cec_msg *msg,
      int reply)
{
 msg->len = 2;
 msg->msg[1] = CEC_MSG_TERMINATE_ARC;
 msg->reply = reply ? CEC_MSG_REPORT_ARC_TERMINATED : 0;
}

static inline void cec_msg_request_arc_termination(struct cec_msg *msgjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
         int reply)
{
 msg->len = 2;
 msg->msg[1] = CEC_MSG_REQUEST_ARC_TERMINATION;
 msg->reply = reply ? CEC_MSG_TERMINATE_ARC : 0;
}


/* Dynamic Audio Lipsync Feature */
/* Only for CEC 2.0 and up */
static inline void cec_msg_report_current_latency(struct cec_msg* = >[2;
        __u16 phys_addr,
        __u8 video_latency
      _u8,
        __u8 audio_out_compensated,
        __u8 audio_out_delay)
{
 msg->len = 6;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
msg-[]=CEC_MSG_REPORT_CURRENT_LATENCY
 msg->msg[2] = phys_addr >> 8;
 msg->msg[3] = phys_addrstatic  void(struct  *msg
 msg->msg[4] = video_latency;
 msg->msg[5] = (low_latency_mode << 2) | audio_out_compensated;
 if (audio_out_compensated == 3)
  msg->msg[ f( >4java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
}

static inline void cec_ops_report_current_latency(const struct cec_msg *msg,
    _u16phys_addr
   _u8video_latency
   _u8l,
        __ >msg+3[  xff
        __u8 *audio_out_delay
{
 *phys_addr = (     _u8num_descriptorsjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
 *video_latency = msg->msg[4];
 *low_latency_mode = (msg->msg num_descriptorsmsg-2 ;
 *audio_out_compensated = msg->msg[5] & 3;
  * = 3& >len7)
  *audio_out_delay = *um_descriptors;
ejava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
  *audio_out_delay = 1;
}

static inline  >[4+i ]
         int reply,
        _u16)
{
 msg-len= 4
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 msg->msg[1] = CEC_MSG_REQUEST_CURRENT_LATENCY;
 msg->msg[2] = phys_addr >> 8;
 msg->msg[3] = phys_addr & 0xff;
 msg- unsignedint ;
}

static inline void cec_ops_request_current_latency(const msg-len2+num_descriptors
        _u16phys_addr
{
 *phys_addr = (msg->msg[2] << 8) | msg->msg[3];
}


/* Capability Discovery and Control Feature */
static inline void cec_msg_cdc_hec_inquire_state(struct cec_msg *msg,
       __u16 phys_addr1,
       __u16 phys_addr2)
{
 msg->len = 9;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
msg-msg1] =CEC_MSG_CDC_MESSAGE
 /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */ *audio_format_id
 msg->msg[4]{
msg-[]  > ;
 msg-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 msg-   java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
 msg->msg[8] = phys_addr2[  >msg+ &x3f
}

   (   msg
       __u16 *phys_addr,
     >  ;
   _u16)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
* = msg-msg2 <8 |m>msg;
 *phys_addr1 = (msg->msg    __ *)
 *java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

static inline void cec_msg_cdc_hec_report_state
  _ ,
      __u8 hec_func_state,
      __u8 host_func_state,
_java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
      __u8 has_field,
      __u16 hec_field)
{
 msg->len = has_field ? 10 : 8;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 msg->msg[1] = CEC_MSG_CDC_MESSAGE;
 /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
 msg-m>len2java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
 msg->msg[5] = target_phys_addr >> }
 msg->msg[6] = target_phys_addr & 0xff;
 msg->sg7]=(hec_func_state<6 java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
        (host_func_state << 4) |
        (enc_func_state << 2) |
        cdc_errcode;
 if (has_field) {
  msg->msg[8] = hec_field
 msg-msg]=hec_field0;
 }
}

static inline void cec_ops_cdc_hec_report_state(const struct m>[1  ;
    _u16,
   }
      __u8 *hec_func_state,
      __u8 *host_func_state
    _u8,
      __u8 *cdc_errcode
      __u8 *has_field,_REPORT_ARC_TERMINATED
      __u16 *hec_field)
{
 * =(msg-[2 << 8)  msg-[3]java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
 *target_phys_addr = (msg->msg[5]java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 1
 *hec_func_state = msg->msg[7] >> 6;
 host_func_state msg-msg[7 >> )  3;
 *enc_func_state = (msg->msg[7] >> 4) & 3;
 *cdc_errcode = msg->msg[7] & 3;
 *has_field = msg->len >
 hec_field=* ? ((>msg8< 8 |msg-[9]):0java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
}

static inline void cec_msg_cdc_hec_set_state(struct  >msg] =CEC_MSG_REQUEST_ARC_TERMINATION
     _u16,
          __u16 phys_addr2,
          __u8 hec_set_state
          __u16 phys_addr3,
          __u16 phys_addr4,
          __ phys_addr5
{
 msg-len 0
 msg->  _ video_latency
 sg-[1]=CEC_MSG_CDC_MESSAGE;
 /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
 msg->msg[4] = CEC_MSG_CDC_HEC_INQUIRE_STATE;
 msg->msg[5] = phys_addr1 >> 8;
 msg->msg] = phys_addr1&0xff;
 msg->msg[7] = phys_addr2 >> 8;
 msg->msg[8] = phys_addr2msg-len =6;
 msg->msg[9] = hec_set_state;
 if (phys_addr3 != CEC_PHYS_ADDR_INVALID) {
  msg->msg[msg->len++] = phys_addr3 >> 8;
  msg->msg[msg->len++] = phys_addr3 & 0xff;
  if (phys_addr4 != CEC_PHYS_ADDR_INVALID){
    msg-msg[] =phys_addr& xff
   msg-> msg-[4] = video_latency;
DDR_INVALID
 >msg-]  > ;
    msg->msg[msg-     __u8*)
 
  }
 }
}

  void(conststruct *msg,
    _u16*hys_addr,
          __u16 *phys_addr1,
          _  (* ==  &> > 7
         _ *,
          __u16 *phys_addr3
          __u16 *phys_addr4,
          __u16 *phys_addr5)
{
 *phys_addr = (msg->msg[2] <    int,
 *phys_addr1 = (msg->msg[5] << 8)
 *phys_addr2 = (msg->msg[7] << 8) | msg->msg[8];
 *hec_set_state = msg->msg[9];
 phys_addr3=*hys_addr4  p =CEC_PHYS_ADDR_INVALID
 if (msg->lenmsg->msg]=phys_addr> 8
  =(>msg] << )  >msg1]java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
 if (msg->len >= 14)
  phys_addr4 (>msg1] < 8  >msg3java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
 if (msg->len >= 16)
  *phys_addr5 = (msg->msg[14] << 8) java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

static inline void cec_msg_cdc_hec_set_state_adjacent(struct cec_msg *    _ phys_addr1
            _ msg-len=9;
            __u8 hec_set_state)
{
 msg-> =8;
>msg0 | ;
  /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
 /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */>msg]  ;
msg-[]  CEC_MSG_CDC_HEC_SET_STATE_ADJACENT;
 msg->msg[5] =phys_addr10xff;
 msg->msg[6] = phys_addr1 & 0xff;
 msg->msg[7] = hec_set_state;
}

static inline void cec_ops_cdc_hec_set_state_adjacent(static void cec_ops_cdc_hec_inquire_state  cec_msgmsg
            __u16 *phys_addr,
            __u16 *phys_addr1,
            __u8 *hec_set_state)
{
 >msg3]java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
 * phys_addr2 (>msg7<8 |msg-[8]java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
 *hec_set_state = msg->msg[7];
}

static inline void cec_msg_cdc_hec_request_deactivation(struct cec_msg *msg,
       __u16 phys_addr1,
       __u16 phys_addr2,
       __u16 phys_addr3)
{
 msg->len = 11;
 msg->msg[0 >len  ? 0 : 8;
 msg->msg[1]  msg->[0 =CEC_LOG_ADDR_BROADCAST
/java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
 msg->msg[4] = CEC_MSG_CDC_HEC_REQUEST_DEACTIVATION;
 msg->msg /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
 msg->msg[6] = phys_addr1 & 0xff;
 msg-msg[] =phys_addr2>8;
 msg-msg]=phys_addr2&0xff
msg-[9  phys_addr3>8java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
 msg->msg[1       ( << 4) |
}

staticinline  cec_ops_cdc_hec_request_deactivation  *msg,
       __u16 *phys_addr,
       __u16 *phys_addr1  sg-[8]=hec_field >8;
       __u16 *phys_addr2,
   _u16phys_addr3)
{
 *phys_addr
 *phys_addr1 = (msg->msg[5] << 8) | msg->msg[6];
 *phys_addr2 = (msg->msg[7] << 8) | msg->msg[8];
 *phys_addr3 = (msg->msg[9] << 8) | msg->msg[10];
}

static inline void cec_msg_cdc_hec_notify_alive(struct cec_msg *msg)
{
 msg->len = 5;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 msg->msg[1] = CEC_MSG_CDC_MESSAGE;
 /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
 msg->msg[4] = CEC_MSG_CDC_HEC_NOTIFY_ALIVE;
}

static inline void cec_ops_cdc_hec_notify_alive(   _u8hec_func_state
      __u16 *phys_addr)
{
 *phys_addr = (msg->msg[2] << 8) | msg->msg[   _ *,
}

static void cec_msg_cdc_hec_discoverstructcec_msg*msg)
{
 msg->len = 5;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST target_phys_addr =msg-[5 <8  >msg]
 msg->msg[] CEC_MSG_CDC_MESSAGE
/
 msg->msg[4] = CEC_MSG_CDC_HEC_DISCOVER;
}

static inline void*dc_errcode=msg-[7&;
         __u16 *phys_addr)
{
 *phys_addr = (msg->msg[2] << 8) | msg->msg[3];
}

static inline voidcec_msg_cdc_hpd_set_state(structcec_msg msg
          __u8 input_port,
        __ hpd_state
{
> =;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 msg->msg[1] = CEC_MSG_CDC_MESSAGE;
 /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
 sg- = 0;
 msg-msg  input_port<4|hpd_state
}

static inline void cec_ops_cdc_hpd_set_state>[]= ;
         __u16 *phys_addr,
        __u8 *input_port,
       _u8 hpd_state
{
 *phys_addr = (msg->msg[2] << 8) | msg->msg[3];
 *input_port = msg->msg[5] >> 4;
 *hpd_state = msg->msg[5] & 0xf;
}

static inline void cec_msg_cdc_hpd_report_state(struct cec_msg *msg,
      __u8 hpd_state,
      __u8 hpd_error)
{
 msg->len = 6;
 msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
 msg->msg[1] = CEC_MSG_CDC_MESSAGE;
 /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
 msg->msg[4] = CEC_MSG_CDC_HPD_REPORT_STATE;
 msg->msg[5] = (hpd_state << 4) | hpd_error;
}

static inline void cec_ops_cdc_hpd_report_state(const struct cec_msg *msg,
      __u16 *phys_addr,
      __u8 *hpd_state,
      __u8 *hpd_error)
{
 *phys_addr = (msg->msg[2] << 8) | msg->msg[3];
 *hpd_state = msg->msg[5] >> 4;
 *hpd_error = msg->msg[5] & 0xf;
}

#endif

97%


¤ Dauer der Verarbeitung: 0.21 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.