1132451Sroberto/*********************************************************************** 2132451Sroberto * 3132451Sroberto * Module: ttime_api.h 4132451Sroberto * 5132451Sroberto * Author: SIS 1998 6132451Sroberto * LM NE&SS 2001 7132451Sroberto * 8132451Sroberto * Description 9132451Sroberto * 10132451Sroberto * This header file contains data necessary for the API to the 11132451Sroberto * True Time board. This contains all of the structure definitions 12132451Sroberto * for the individual registers. 13132451Sroberto * 14132451Sroberto ***********************************************************************/ 15132451Sroberto#ifndef TTIME_API_H 16132451Sroberto#define TTIME_API_H 17132451Sroberto 18132451Sroberto#ifdef CPP 19132451Srobertoextern "C" { 20132451Sroberto#endif 21132451Sroberto 22132451Sroberto#include <time.h> 23132451Sroberto 24132451Srobertotypedef struct 25132451Sroberto{ 26132451Sroberto unsigned int micro_sec; 27132451Sroberto unsigned int milli_sec; 28132451Sroberto struct tm gps_tm; 29132451Sroberto} gps_time_t; 30132451Sroberto 31132451Srobertotypedef struct 32132451Sroberto{ 33132451Sroberto unsigned char reserved_1; 34132451Sroberto unsigned unit_ms : 4; 35132451Sroberto unsigned filler_0 : 4; 36132451Sroberto unsigned hun_ms : 4; 37132451Sroberto unsigned tens_ms : 4; 38132451Sroberto unsigned tens_sec : 4; 39132451Sroberto unsigned unit_sec : 4; 40132451Sroberto 41132451Sroberto unsigned tens_min : 4; 42132451Sroberto unsigned unit_min : 4; 43132451Sroberto unsigned tens_hour : 4; 44132451Sroberto unsigned unit_hour : 4; 45132451Sroberto unsigned tens_day : 4; 46132451Sroberto unsigned unit_day : 4; 47132451Sroberto unsigned filler_1 : 4; 48132451Sroberto unsigned hun_day : 4; 49132451Sroberto 50132451Sroberto unsigned tens_year : 4; 51132451Sroberto unsigned unit_year : 4; 52132451Sroberto unsigned thou_year : 4; 53132451Sroberto unsigned hun_year : 4; 54132451Sroberto unsigned char reserved_2[2]; 55132451Sroberto} preset_time_reg_t; 56132451Sroberto 57132451Srobertotypedef struct 58132451Sroberto{ 59132451Sroberto unsigned n_d0 : 2; 60132451Sroberto unsigned antenna_short_stat : 1; /* 0 = fault */ 61132451Sroberto unsigned antenna_open_stat : 1; /* 0 = fault */ 62132451Sroberto unsigned n_d1 : 1; 63132451Sroberto unsigned rate_gen_pulse_stat : 1; 64132451Sroberto unsigned time_cmp_pulse_stat : 1; 65132451Sroberto unsigned ext_event_stat : 1; 66132451Sroberto 67132451Sroberto} hw_stat_reg_t; 68132451Sroberto 69132451Srobertotypedef struct 70132451Sroberto{ 71132451Sroberto unsigned tens_us : 4; 72132451Sroberto unsigned unit_us : 4; 73132451Sroberto unsigned unit_ms : 4; 74132451Sroberto unsigned hun_us : 4; 75132451Sroberto unsigned char hw_stat; /* hw_stat_reg_t hw_stat; */ 76132451Sroberto unsigned char reserved_3; 77132451Sroberto 78132451Sroberto unsigned hun_ms : 4; 79132451Sroberto unsigned tens_ms : 4; 80132451Sroberto unsigned tens_sec : 4; 81132451Sroberto unsigned unit_sec : 4; 82132451Sroberto unsigned tens_min : 4; 83132451Sroberto unsigned unit_min : 4; 84132451Sroberto unsigned tens_hour : 4; 85132451Sroberto unsigned unit_hour : 4; 86132451Sroberto 87132451Sroberto unsigned tens_day : 4; 88132451Sroberto unsigned unit_day : 4; 89132451Sroberto unsigned status : 4; 90132451Sroberto unsigned hun_day : 4; 91132451Sroberto unsigned tens_year : 4; 92132451Sroberto unsigned unit_year : 4; 93132451Sroberto unsigned thou_year : 4; 94132451Sroberto unsigned hun_year : 4; 95132451Sroberto} time_freeze_reg_t; 96132451Sroberto 97132451Srobertotypedef struct 98132451Sroberto{ 99132451Sroberto unsigned char off_low; 100132451Sroberto unsigned char off_high; 101132451Sroberto unsigned char reserved_4[2]; 102132451Sroberto} sync_gen_off_reg_t; 103132451Sroberto 104132451Srobertotypedef struct 105132451Sroberto{ 106132451Sroberto unsigned tens_min : 4; 107132451Sroberto unsigned unit_min : 4; 108132451Sroberto unsigned tens_hour : 4; 109132451Sroberto unsigned unit_hour : 4; 110132451Sroberto unsigned char sign_ascii; /* '+' or '-' */ 111132451Sroberto unsigned char reserved_5; 112132451Sroberto} local_off_t; 113132451Sroberto 114132451Sroberto/* 115132451Sroberto * This structure can be used for both the position freeze 116132451Sroberto * and position preset registers. 117132451Sroberto */ 118132451Srobertotypedef struct 119132451Sroberto{ 120132451Sroberto unsigned lat_tens_degee : 4; 121132451Sroberto unsigned lat_unit_degee : 4; 122132451Sroberto unsigned filler_0 : 4; 123132451Sroberto unsigned lat_hun_degree : 4; 124132451Sroberto unsigned lat_tens_min : 4; 125132451Sroberto unsigned lat_unit_min : 4; 126132451Sroberto unsigned char lat_north_south; /* 'N' or 'S' */ 127132451Sroberto 128132451Sroberto unsigned filler_1 : 4; 129132451Sroberto unsigned lat_tenth_sec : 4; 130132451Sroberto unsigned lat_tens_sec : 4; 131132451Sroberto unsigned lat_unit_sec : 4; 132132451Sroberto unsigned long_tens_degree : 4; 133132451Sroberto unsigned long_unit_degree : 4; 134132451Sroberto unsigned filler_2 : 4; 135132451Sroberto unsigned long_hun_degree : 4; 136132451Sroberto 137132451Sroberto unsigned long_tens_min : 4; 138132451Sroberto unsigned long_unit_min : 4; 139132451Sroberto unsigned char long_east_west; /* 'E' or 'W' */ 140132451Sroberto unsigned filler_3 : 4; 141132451Sroberto unsigned long_tenth_sec : 4; 142132451Sroberto unsigned long_tens_sec : 4; 143132451Sroberto unsigned long_unit_sec : 4; 144132451Sroberto 145132451Sroberto unsigned elv_tens_km : 4; 146132451Sroberto unsigned elv_unit_km : 4; 147132451Sroberto unsigned char elv_sign; /* '+' or '-' */ 148132451Sroberto unsigned elv_unit_m : 4; 149132451Sroberto unsigned elv_tenth_m : 4; 150132451Sroberto unsigned elv_hun_m : 4; 151132451Sroberto unsigned elv_tens_m : 4; 152132451Sroberto} pos_reg_t; 153132451Sroberto 154132451Srobertotypedef struct 155132451Sroberto{ 156132451Sroberto unsigned char prn1_tens_units; 157132451Sroberto unsigned char prn1_reserved; 158132451Sroberto unsigned char lvl1_tenths_hundredths; 159132451Sroberto unsigned char lvl1_tens_units; 160132451Sroberto 161132451Sroberto unsigned char prn2_tens_units; 162132451Sroberto unsigned char prn2_reserved; 163132451Sroberto unsigned char lvl2_tenths_hundredths; 164132451Sroberto unsigned char lvl2_tens_units; 165132451Sroberto 166132451Sroberto unsigned char prn3_tens_units; 167132451Sroberto unsigned char prn3_reserved; 168132451Sroberto unsigned char lvl3_tenths_hundredths; 169132451Sroberto unsigned char lvl3_tens_units; 170132451Sroberto 171132451Sroberto unsigned char prn4_tens_units; 172132451Sroberto unsigned char prn4_reserved; 173132451Sroberto unsigned char lvl4_tenths_hundredths; 174132451Sroberto unsigned char lvl4_tens_units; 175132451Sroberto 176132451Sroberto unsigned char prn5_tens_units; 177132451Sroberto unsigned char prn5_reserved; 178132451Sroberto unsigned char lvl5_tenths_hundredths; 179132451Sroberto unsigned char lvl5_tens_units; 180132451Sroberto 181132451Sroberto unsigned char prn6_tens_units; 182132451Sroberto unsigned char prn6_reserved; 183132451Sroberto unsigned char lvl6_tenths_hundredths; 184132451Sroberto unsigned char lvl6_tens_units; 185132451Sroberto 186132451Sroberto unsigned char flag; 187132451Sroberto unsigned char reserved[3]; 188132451Sroberto} sig_levels_t; 189132451Sroberto 190132451Srobertotypedef struct 191132451Sroberto{ 192132451Sroberto unsigned tens_us : 4; 193132451Sroberto unsigned unit_us : 4; 194132451Sroberto unsigned unit_ms : 4; 195132451Sroberto unsigned hun_us : 4; 196132451Sroberto unsigned hun_ms : 4; 197132451Sroberto unsigned tens_ms : 4; 198132451Sroberto unsigned tens_sec : 4; 199132451Sroberto unsigned unit_sec : 4; 200132451Sroberto 201132451Sroberto unsigned tens_min : 4; 202132451Sroberto unsigned unit_min : 4; 203132451Sroberto unsigned tens_hour : 4; 204132451Sroberto unsigned unit_hour : 4; 205132451Sroberto unsigned tens_day : 4; 206132451Sroberto unsigned unit_day : 4; 207132451Sroberto unsigned stat : 4; 208132451Sroberto unsigned hun_day : 4; 209132451Sroberto 210132451Sroberto unsigned tens_year : 4; 211132451Sroberto unsigned unit_year : 4; 212132451Sroberto unsigned thou_year : 4; 213132451Sroberto unsigned hun_year : 4; 214132451Sroberto unsigned char reserved_5[2]; 215132451Sroberto} ext_time_event_reg_t; 216132451Sroberto 217132451Srobertotypedef struct 218132451Sroberto{ 219132451Sroberto unsigned tens_us : 4; 220132451Sroberto unsigned unit_us : 4; 221132451Sroberto unsigned unit_ms : 4; 222132451Sroberto unsigned hun_us : 4; 223132451Sroberto unsigned hun_ms : 4; 224132451Sroberto unsigned tens_ms : 4; 225132451Sroberto unsigned tens_sec : 4; 226132451Sroberto unsigned unit_sec : 4; 227132451Sroberto 228132451Sroberto unsigned tens_min : 4; 229132451Sroberto unsigned unit_min : 4; 230132451Sroberto unsigned tens_hour : 4; 231132451Sroberto unsigned unit_hour : 4; 232132451Sroberto unsigned tens_day : 4; 233132451Sroberto unsigned unit_day : 4; 234132451Sroberto unsigned mask : 4; 235132451Sroberto unsigned hun_day : 4; 236132451Sroberto} time_cmp_reg_t; 237132451Sroberto 238132451Srobertotypedef struct 239132451Sroberto{ 240132451Sroberto unsigned char err_stat; 241132451Sroberto unsigned char no_def; 242132451Sroberto unsigned char oscillator_stat[2]; 243132451Sroberto} diag_reg_t; 244132451Sroberto 245132451Srobertotypedef struct 246132451Sroberto{ 247132451Sroberto unsigned res :2; 248132451Sroberto unsigned rate_int_mask :1; 249132451Sroberto unsigned cmp_int_mask :1; 250132451Sroberto unsigned ext_int_mask :1; 251132451Sroberto unsigned rate_stat_clr :1; 252132451Sroberto unsigned cmp_stat_clr :1; 253132451Sroberto unsigned ext_stat_clr :1; 254132451Sroberto unsigned char reserved[3]; 255132451Sroberto} hw_ctl_reg_t; 256132451Sroberto 257132451Srobertotypedef struct 258132451Sroberto{ 259132451Sroberto unsigned preset_pos_rdy :1; 260132451Sroberto unsigned sel_pps_ref :1; 261132451Sroberto unsigned sel_gps_ref :1; 262132451Sroberto unsigned sel_time_code :1; 263132451Sroberto unsigned gen_stp_run :1; 264132451Sroberto unsigned preset_time_rdy :1; 265132451Sroberto unsigned dst :1; 266132451Sroberto unsigned mode_sel :1; 267132451Sroberto 268132451Sroberto unsigned ctl_am_dc :1; 269132451Sroberto unsigned reserved :3; 270132451Sroberto unsigned input_code :4; 271132451Sroberto 272132451Sroberto unsigned char rate_reserved; 273132451Sroberto 274132451Sroberto unsigned rate_flag :4; 275132451Sroberto unsigned rate_reserved1 :4; 276132451Sroberto} conf_reg_t; 277132451Sroberto 278132451Srobertotypedef struct 279132451Sroberto{ 280132451Sroberto unsigned char mem_reserved[0xf8]; 281132451Sroberto 282132451Sroberto hw_ctl_reg_t hw_ctl_reg; 283132451Sroberto 284132451Sroberto time_freeze_reg_t time_freeze_reg; 285132451Sroberto 286132451Sroberto pos_reg_t pos_freeze_reg; 287132451Sroberto 288132451Sroberto conf_reg_t conf_reg; 289132451Sroberto 290132451Sroberto diag_reg_t diag_reg; 291132451Sroberto 292132451Sroberto local_off_t local_offset; 293132451Sroberto 294132451Sroberto sync_gen_off_reg_t sync_gen_offset; 295132451Sroberto 296132451Sroberto unsigned char reserved[4]; 297132451Sroberto 298132451Sroberto unsigned char config_reg2_ctl; 299132451Sroberto 300132451Sroberto unsigned char reserved2[11]; 301132451Sroberto 302132451Sroberto time_cmp_reg_t time_compare_reg; 303132451Sroberto 304132451Sroberto unsigned char reserved3[24]; 305132451Sroberto 306132451Sroberto preset_time_reg_t preset_time_reg; 307132451Sroberto 308132451Sroberto pos_reg_t preset_pos_reg; 309132451Sroberto 310132451Sroberto ext_time_event_reg_t extern_time_event_reg; 311132451Sroberto 312132451Sroberto unsigned char reserved4[24]; 313132451Sroberto 314132451Sroberto sig_levels_t signal_levels_reg; 315132451Sroberto 316132451Sroberto unsigned char reserved5[12]; 317132451Sroberto} tt_mem_space_t; 318132451Sroberto 319132451Sroberto#define TTIME_MEMORY_SIZE 0x200 320132451Sroberto 321132451Sroberto/* 322132451Sroberto * Defines for register offsets 323132451Sroberto */ 324132451Sroberto#define HW_CTL_REG 0x0f8 325132451Sroberto#define TIME_FREEZE_REG 0x0fc 326132451Sroberto#define HW_STAT_REG 0x0fe 327132451Sroberto#define POS_FREEZE_REG 0x108 328132451Sroberto#define CONFIG_REG_1 0x118 329132451Sroberto#define DIAG_REG 0x11c 330132451Sroberto#define LOCAL_OFF_REG 0x120 331132451Sroberto#define SYNC_GEN_OFF_REG 0x124 332132451Sroberto#define CONFIG_REG_2 0x12c 333132451Sroberto#define TIME_CMP_REG 0x138 334132451Sroberto#define PRESET_TIME_REG 0x158 335132451Sroberto#define PRESET_POS_REG 0x164 336132451Sroberto#define EXT_EVENT_REG 0x174 337132451Sroberto#define SIG_LVL_PRN1 0x198 338132451Sroberto#define SIG_LVL_PRN2 0x19c 339132451Sroberto#define SIG_LVL_PRN3 0x1a0 340132451Sroberto#define SIG_LVL_PRN4 0x1a4 341132451Sroberto#define SIG_LVL_PRN5 0x1a8 342132451Sroberto#define SIG_LVL_PRN6 0x1ac 343132451Sroberto#define SIG_LVL_FLAG 0x1b0 344132451Sroberto 345132451Sroberto/* 346132451Sroberto * Defines for accessing the hardware status register. 347132451Sroberto */ 348132451Sroberto#define HW_STAT_ANTENNA_SHORT 0 /* access the antenna short bit */ 349132451Sroberto#define HW_STAT_ANTENNA_OPEN 1 /* access the antenna open bit */ 350132451Sroberto#define HW_STAT_RATE_GEN_PULSE_STAT 2 /* access the rate gen pulse bit */ 351132451Sroberto#define HW_STAT_TIME_CMP_PULSE_STAT 3 /* access the time cmp bit */ 352132451Sroberto#define HW_STAT_EXT_EVENT_STAT 4 /* access the external event bit */ 353132451Sroberto 354132451Sroberto/* 355132451Sroberto * Defines for accessing the hardware control register 356132451Sroberto */ 357132451Sroberto 358132451Sroberto#define HW_CTL_RATE_INT_MASK 0 /* access rate generator int mask */ 359132451Sroberto#define HW_CTL_CMP_INT_MASK 1 /* access compare interrupt mask */ 360132451Sroberto#define HW_CTL_EXT_INT_MASK 2 /* access external event interrupt mask */ 361132451Sroberto#define HW_CTL_RATE_GEN_INT_CLEAR 3 /* access rate gen. interrupt clear field */ 362132451Sroberto#define HW_CTL_TIME_CMP_INT_CLEAR 4 /* access time cmp interrupt clear field */ 363132451Sroberto#define HW_CTL_EXT_EVENT_INT_CLEAR 5 /* access external event int clear field */ 364132451Sroberto 365132451Sroberto/* 366132451Sroberto * Defines for configuration register bit fields. 367132451Sroberto */ 368132451Sroberto#define PRESET_POS_RDY_BIT 0 /* access the preset pos. rdy. bit */ 369132451Sroberto#define SEL_1_PPS_REF_BIT 1 /* access the select 1 pps reference bit */ 370132451Sroberto#define SEL_GPS_REF_BIT 2 /* access the select gps reference bit */ 371132451Sroberto#define SEL_TIME_CODE_REF_BIT 3 /* access the select time code reference bit */ 372132451Sroberto#define GEN_STOP_BIT 4 /* access the generator start/stop bit */ 373132451Sroberto#define PRESET_TIME_RDY_BIT 5 /* access the preset time ready bit */ 374132451Sroberto#define DST_BIT 6 /* access the DST bit */ 375132451Sroberto#define MODE_SEL_BIT 7 /* access the mode select bit */ 376132451Sroberto#define AM_DC_BIT 8 /* access the code bits AM/DC bit */ 377132451Sroberto#define IN_CODE_SEL_BIT 9 /* access the input code select bit */ 378132451Sroberto#define FLAG_BIT 10 /* access the flag bit */ 379132451Sroberto 380132451Sroberto/* 381132451Sroberto * The following defines are used to set modes in the 382132451Sroberto * configuration register. 383132451Sroberto */ 384132451Sroberto 385132451Sroberto#define CONF_SET_AM 0 /* Set code to AM */ 386132451Sroberto#define CONF_SET_DC 1 /* Set code to DC */ 387132451Sroberto#define CONF_SET_IRIG_B 0 /* Set code IRIG B */ 388132451Sroberto#define CONF_SET_IRIG_A 1 /* Set code IRIG A */ 389132451Sroberto 390132451Sroberto#define CONF_FLAG_DISABLE 0 /* Disable pulse */ 391132451Sroberto#define CONF_FLAG_10K_PPS 1 /* Set rate to 10k PPS */ 392132451Sroberto#define CONF_FLAG_1K_PPS 2 /* Set rate to 1k PPS */ 393132451Sroberto#define CONF_FLAG_100_PPS 3 /* Set rate to 100 PPS */ 394132451Sroberto#define CONF_FLAG_10_PPS 4 /* Set rate to 10 PPS */ 395132451Sroberto#define CONF_FLAG_1_PPS 5 /* Set rate to 1 PPS */ 396132451Sroberto 397132451Sroberto/* 398132451Sroberto * Defines for read commands 399132451Sroberto */ 400132451Sroberto 401132451Sroberto#define TT_RD_FREEZE_REG 0x01 402132451Sroberto#define TT_RD_HW_CTL_REG 0x02 403132451Sroberto#define TT_RD_CNFG_REG 0x03 404132451Sroberto#define TT_RD_DIAG_REG 0x04 405132451Sroberto#define TT_RD_LCL_OFFSET 0x05 406132451Sroberto#define TT_RD_SYNC_GEN_OFF 0x06 407132451Sroberto#define TT_RD_CNFG_REG_2 0x07 408132451Sroberto#define TT_RD_TIME_CMP_REG 0x08 409132451Sroberto#define TT_RD_PRESET_REG 0x09 410132451Sroberto#define TT_RD_EXT_EVNT_REG 0x0a 411132451Sroberto#define TT_RD_SIG_LVL_REG 0x0b 412132451Sroberto 413132451Sroberto/* 414132451Sroberto * Defines for write commands 415132451Sroberto */ 416132451Sroberto#define TT_WRT_FREEZE_REG 0x0c 417132451Sroberto#define TT_WRT_HW_CTL_REG 0x0d 418132451Sroberto#define TT_WRT_CNFG_REG 0x0e 419132451Sroberto#define TT_WRT_DIAG_REG 0x0f 420132451Sroberto#define TT_WRT_LCL_OFFSET 0x10 421132451Sroberto#define TT_WRT_SYNC_GEN_OFF 0x11 422132451Sroberto#define TT_WRT_CNFG_REG_2 0x12 423132451Sroberto#define TT_WRT_TIME_CMP_REG 0x13 424132451Sroberto#define TT_WRT_PRESET_REG 0x14 425132451Sroberto#define TT_WRT_EXT_EVNT_REG 0x15 426132451Sroberto#define TT_WRT_SIG_LVL_REG 0x16 427132451Sroberto 428132451Sroberto/* 429132451Sroberto * Define the length of the buffers to move (in 32 bit words). 430132451Sroberto */ 431132451Sroberto 432132451Sroberto#define HW_CTL_REG_LEN 1 433132451Sroberto#define CNFG_REG_1_LEN 1 434132451Sroberto#define DIAG_REG_LEN 1 435132451Sroberto#define LCL_OFFSET_LEN 1 436132451Sroberto#define SYNC_GEN_OFF_LEN 1 437132451Sroberto#define CNFG_REG_2_LEN 1 438132451Sroberto 439132451Sroberto#define TIME_CMP_REG_LEN 2 440132451Sroberto#define PRESET_TIME_REG_LEN 3 441132451Sroberto#define PRESET_POS_REG_LEN 4 442132451Sroberto#define PRESET_REG_LEN (PRESET_TIME_REG_LEN+PRESET_POS_REG_LEN) 443132451Sroberto#define TIME_FREEZE_REG_LEN 3 444132451Sroberto#define POSN_FREEZE_REG_LEN 4 445132451Sroberto#define FREEZE_REG_LEN (TIME_FREEZE_REG_LEN+POSN_FREEZE_REG_LEN) 446132451Sroberto#define EXT_EVNT_REG_LEN 3 447132451Sroberto#define SIG_LVL_REG_LEN 7 448132451Sroberto#define GPS_TIME_LEN 7 449132451Sroberto 450132451Sroberto/* 451132451Sroberto * Define BCD - INT - BCD macros. 452132451Sroberto */ 453132451Sroberto 454132451Sroberto#define BCDTOI(a) ( ( ( ( (a) & 0xf0 ) >> 4 ) * 10 ) + ( (a) & 0x0f ) ) 455132451Sroberto#define ITOBCD(a) ( ( ( ( (a) ) / 10) << 4 ) + ( ( (a) ) % 10) ) 456132451Sroberto#define LTOBCD(a) ( ( ( ( (uint64_t)(a) ) / 10) << 4 ) + ( ( (uint64_t)(a) ) % 10) ) 457132451Sroberto 458132451Srobertoextern int init_560 ( ); 459132451Srobertoextern void close_560 ( ); 460132451Srobertoextern int write_hw_ctl_reg (hw_ctl_reg_t *); 461132451Srobertoextern int write_hw_ctl_reg_bitfield (int, int ); 462132451Srobertoextern int read_conf_reg (conf_reg_t *); 463132451Srobertoextern int read_conf_reg_bitfield (int ); 464132451Srobertoextern int write_conf_reg (conf_reg_t *); 465132451Srobertoextern int write_conf_reg_bitfield (int, unsigned char ); 466132451Srobertoextern int read_hw_stat_reg_bitfield (int ); 467132451Srobertoextern int read_local_offset_reg (local_off_t *); 468132451Srobertoextern int write_local_offset_reg (local_off_t *); 469132451Srobertoextern int read_sync_offset_reg (sync_gen_off_reg_t *); 470132451Srobertoextern int write_sync_offset_reg (sync_gen_off_reg_t *); 471132451Srobertoextern int read_time_cmp_reg (time_cmp_reg_t *); 472132451Srobertoextern int write_time_cmp_reg (time_cmp_reg_t *); 473132451Srobertoextern int read_preset_time_reg (preset_time_reg_t *); 474132451Srobertoextern int write_preset_time_reg (preset_time_reg_t *); 475132451Srobertoextern int reset_time ( ); 476132451Srobertoextern int set_new_time (preset_time_reg_t *); 477132451Srobertoextern int read_preset_position_reg (pos_reg_t *); 478132451Srobertoextern int write_preset_position_reg (pos_reg_t *); 479132451Srobertoextern int read_external_event_reg (ext_time_event_reg_t *); 480132451Srobertoextern int read_signal_level_reg (sig_levels_t *); 481132451Srobertoextern int freeze_time ( ); 482132451Srobertoextern int snapshot_time (time_freeze_reg_t *); 483132451Srobertoextern int read_position_freeze_reg (pos_reg_t *); 484132451Srobertoextern int read_diag_reg (diag_reg_t *); 485132451Sroberto 486132451Sroberto#ifdef CPP 487132451Sroberto} 488132451Sroberto#endif 489132451Sroberto#endif 490