Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  ccs-data-defs.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/*
 * CCS static data binary format definitions
 *
 * Copyright 2019--2020 Intel Corporation
 */


#ifndef __CCS_DATA_DEFS_H__
#define __CCS_DATA_DEFS_H__

#include "ccs-data.h"

#define CCS_STATIC_DATA_VERSION 0

enum __ccs_data_length_specifier_id {
 CCS_DATA_LENGTH_SPECIFIER_1 = 0,
 CCS_DATA_LENGTH_SPECIFIER_2 = 1,
 CCS_DATA_LENGTH_SPECIFIER_3 = 2
};

#define CCS_DATA_LENGTH_SPECIFIER_SIZE_SHIFT 6

struct __ccs_data_length_specifier {
 u8 length;
} __packed;

struct __ccs_data_length_specifier2 {
 u8 length[2];
} __packed;

struct __ccs_data_length_specifier3 {
 u8 length[3];
} __packed;

struct __ccs_data_block {
 u8 id;
 struct __ccs_data_length_specifier length;
} __packed;

#define CCS_DATA_BLOCK_HEADER_ID_VERSION_SHIFT 5

struct __ccs_data_block3 {
 u8 id;
 struct __ccs_data_length_specifier2 length;
} __packed;

struct __ccs_data_block4 {
 u8 id;
 struct __ccs_data_length_specifier3 length;
} __packed;

enum __ccs_data_block_id {
 CCS_DATA_BLOCK_ID_DUMMY = 1,
 CCS_DATA_BLOCK_ID_DATA_VERSION = 2,
 CCS_DATA_BLOCK_ID_SENSOR_READ_ONLY_REGS = 3,
 CCS_DATA_BLOCK_ID_MODULE_READ_ONLY_REGS = 4,
 CCS_DATA_BLOCK_ID_SENSOR_MANUFACTURER_REGS = 5,
 CCS_DATA_BLOCK_ID_MODULE_MANUFACTURER_REGS = 6,
 CCS_DATA_BLOCK_ID_SENSOR_RULE_BASED_BLOCK = 32,
 CCS_DATA_BLOCK_ID_MODULE_RULE_BASED_BLOCK = 33,
 CCS_DATA_BLOCK_ID_SENSOR_PDAF_PIXEL_LOCATION = 36,
 CCS_DATA_BLOCK_ID_MODULE_PDAF_PIXEL_LOCATION = 37,
 CCS_DATA_BLOCK_ID_LICENSE = 40,
 CCS_DATA_BLOCK_ID_END = 127,
};

struct __ccs_data_block_version {
 u8 static_data_version_major[2];
 u8 static_data_version_minor[2];
 u8 year[2];
 u8 month;
 u8 day;
} __packed;

struct __ccs_data_block_regs {
 u8 reg_len;
} __packed;

#define CCS_DATA_BLOCK_REGS_ADDR_MASK  0x07
#define CCS_DATA_BLOCK_REGS_LEN_SHIFT  3
#define CCS_DATA_BLOCK_REGS_LEN_MASK  0x38
#define CCS_DATA_BLOCK_REGS_SEL_SHIFT  6

enum ccs_data_block_regs_sel {
 CCS_DATA_BLOCK_REGS_SEL_REGS = 0,
 CCS_DATA_BLOCK_REGS_SEL_REGS2 = 1,
 CCS_DATA_BLOCK_REGS_SEL_REGS3 = 2,
};

struct __ccs_data_block_regs2 {
 u8 reg_len;
 u8 addr;
} __packed;

#define CCS_DATA_BLOCK_REGS_2_ADDR_MASK  0x01
#define CCS_DATA_BLOCK_REGS_2_LEN_SHIFT  1
#define CCS_DATA_BLOCK_REGS_2_LEN_MASK  0x3e

struct __ccs_data_block_regs3 {
 u8 reg_len;
 u8 addr[2];
} __packed;

#define CCS_DATA_BLOCK_REGS_3_LEN_MASK  0x3f

enum __ccs_data_ffd_pixelcode {
 CCS_DATA_BLOCK_FFD_PIXELCODE_EMBEDDED = 1,
 CCS_DATA_BLOCK_FFD_PIXELCODE_DUMMY = 2,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BLACK = 3,
 CCS_DATA_BLOCK_FFD_PIXELCODE_DARK = 4,
 CCS_DATA_BLOCK_FFD_PIXELCODE_VISIBLE = 5,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_0 = 8,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_1 = 9,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_2 = 10,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_3 = 11,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_4 = 12,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_5 = 13,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_6 = 14,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_OB = 16,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_OB = 17,
 CCS_DATA_BLOCK_FFD_PIXELCODE_LEFT_OB = 18,
 CCS_DATA_BLOCK_FFD_PIXELCODE_RIGHT_OB = 19,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_LEFT_OB = 20,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_RIGHT_OB = 21,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_LEFT_OB = 22,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_RIGHT_OB = 23,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOTAL = 24,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_PDAF = 32,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_PDAF = 33,
 CCS_DATA_BLOCK_FFD_PIXELCODE_LEFT_PDAF = 34,
 CCS_DATA_BLOCK_FFD_PIXELCODE_RIGHT_PDAF = 35,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_LEFT_PDAF = 36,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_RIGHT_PDAF = 37,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_LEFT_PDAF = 38,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_RIGHT_PDAF = 39,
 CCS_DATA_BLOCK_FFD_PIXELCODE_SEPARATED_PDAF = 40,
 CCS_DATA_BLOCK_FFD_PIXELCODE_ORIGINAL_ORDER_PDAF = 41,
 CCS_DATA_BLOCK_FFD_PIXELCODE_VENDOR_PDAF = 41,
};

struct __ccs_data_block_ffd_entry {
 u8 pixelcode;
 u8 reserved;
 u8 value[2];
} __packed;

struct __ccs_data_block_ffd {
 u8 num_column_descs;
 u8 num_row_descs;
} __packed;

enum __ccs_data_block_rule_id {
 CCS_DATA_BLOCK_RULE_ID_IF = 1,
 CCS_DATA_BLOCK_RULE_ID_READ_ONLY_REGS = 2,
 CCS_DATA_BLOCK_RULE_ID_FFD = 3,
 CCS_DATA_BLOCK_RULE_ID_MSR = 4,
 CCS_DATA_BLOCK_RULE_ID_PDAF_READOUT = 5,
};

struct __ccs_data_block_rule_if {
 u8 addr[2];
 u8 value;
 u8 mask;
} __packed;

enum __ccs_data_block_pdaf_readout_order {
 CCS_DATA_BLOCK_PDAF_READOUT_ORDER_ORIGINAL = 1,
 CCS_DATA_BLOCK_PDAF_READOUT_ORDER_SEPARATE_WITHIN_LINE = 2,
 CCS_DATA_BLOCK_PDAF_READOUT_ORDER_SEPARATE_TYPES_SEPARATE_LINES = 3,
};

struct __ccs_data_block_pdaf_readout {
 u8 pdaf_readout_info_reserved;
 u8 pdaf_readout_info_order;
} __packed;

struct __ccs_data_block_pdaf_pix_loc_block_desc {
 u8 block_type_id;
 u8 repeat_x[2];
} __packed;

struct __ccs_data_block_pdaf_pix_loc_block_desc_group {
 u8 num_block_descs[2];
 u8 repeat_y;
} __packed;

enum __ccs_data_block_pdaf_pix_loc_pixel_type {
 CCS_DATA_PDAF_PIXEL_TYPE_LEFT_SEPARATED = 0,
 CCS_DATA_PDAF_PIXEL_TYPE_RIGHT_SEPARATED = 1,
 CCS_DATA_PDAF_PIXEL_TYPE_TOP_SEPARATED = 2,
 CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_SEPARATED = 3,
 CCS_DATA_PDAF_PIXEL_TYPE_LEFT_SIDE_BY_SIDE = 4,
 CCS_DATA_PDAF_PIXEL_TYPE_RIGHT_SIDE_BY_SIDE = 5,
 CCS_DATA_PDAF_PIXEL_TYPE_TOP_SIDE_BY_SIDE = 6,
 CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_SIDE_BY_SIDE = 7,
 CCS_DATA_PDAF_PIXEL_TYPE_TOP_LEFT = 8,
 CCS_DATA_PDAF_PIXEL_TYPE_TOP_RIGHT = 9,
 CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_LEFT = 10,
 CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_RIGHT = 11,
};

struct __ccs_data_block_pdaf_pix_loc_pixel_desc {
 u8 pixel_type;
 u8 small_offset_x;
 u8 small_offset_y;
} __packed;

struct __ccs_data_block_pdaf_pix_loc {
 u8 main_offset_x[2];
 u8 main_offset_y[2];
 u8 global_pdaf_type;
 u8 block_width;
 u8 block_height;
 u8 num_block_desc_groups[2];
} __packed;

struct __ccs_data_block_end {
 u8 crc[4];
} __packed;

#endif /* __CCS_DATA_DEFS_H__ */

Messung V0.5
C=96 H=100 G=97

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤

*© 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 und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge