This file is indexed.

/usr/include/dc1394/vendor/pixelink.h is in libdc1394-22-dev 2.2.1-2ubuntu2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
/*
 * 1394-Based Digital Camera Control Library
 *
 * Pixelink (PxL) specific extensions for Multi-camera control.
 * 
 * Written by
 *     Aravind Sundaresan <a.sundaresan@gmail.com>
 *     James Sherman <shermanj@umd.edu>
 *
 * Copyright (C) 2006 Tobii Technology AB, Stockholm Sweden
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef __DC1394_VENDOR_PIXELINK_H__
#define __DC1394_VENDOR_PIXELINK_H__

#include <dc1394/log.h>
#include <dc1394/types.h>

/*! \file dc1394/vendor/pixelink.h
    \brief No docs yet

    More details soon
*/

//#define PIXELINK_DEBUG_LOWEST_LEVEL
//#define PIXELINK_DEBUG_DISPLAY

/*
 * The following deal with the Pixelink specific extensions for cameras
 * PL-A74x. They have been tested on PL-A742 cameras.
 */
#define PxL_MAX_STRING_LENGTH        256

/*
 * Any definition with PxL_ACR prefix refers to the Advanced Feature Control
 * and Status Registers. They are actually offsets from the
 * Advanced_Feature_Inq Value.
 */

/* Camera Info Registers */
#define PxL_ACR_SERIAL_NUM_OFFSET        0x0008U
#define PxL_ACR_SERIAL_NUM_LENGTH        0x000cU
#define PxL_ACR_FPGA_VERSION                0x0010U
#define PxL_ACR_FW_VERSION                0x0014U
#define PxL_ACR_CAMERA_DESC_OFFSET        0x0018U
#define PxL_ACR_CAMERA_DESC_LENGTH        0x001cU

/* Advanced Feature Inquiry Registers */
#define PxL_ACR_NAME_INQUIRY                0x0100U
#define PxL_ACR_NAME_OFFSET                0x0104U
#define PxL_ACR_NAME_LENGTH                0x0108U

/* Advanced Feature Inquiry Registers (GPIO) */
#define PxL_ACR_GPIO_INQ                 0x0128U
#define PxL_ACR_GPIO_PARM1_ABS                0x012CU
#define PxL_ACR_GPIO_PARM2_ABS                0x0130U
#define PxL_ACR_GPIO_PARM3_ABS                0x0134U

#define PxL_ACR_GPIO_0_CFG                0x0300U
#define PxL_ACR_GPIO_1_CFG                0x0304U
#define PxL_ACR_GPIO_2_CFG                0x0308U
#define PxL_ACR_GPIO_3_CFG                0x030CU

/*
 * The following are some of the constants that are register specific.
 */
#define PxL_GPO_CFG_ENABLE                        0x80000000U
#define PxL_GPO_CFG_DISABLE                        0x00000000U
#define PxL_GPO_CFG_POLARITY_HIGH                0x40000000U
#define PxL_GPO_CFG_POLARITY_LOW                0x00000000U
#define PxL_GPO_CFG_MODE_STROBE                        0x00000000U
#define PxL_GPO_CFG_MODE_NORMAL                        0x00000001U
#define PxL_GPO_CFG_MODE_PULSE                        0x00000002U
#define PxL_GPO_CFG_MODE_BUSY                        0x00000003U
#define PxL_GPO_CFG_MODE_FLASH                        0x00000004U

/**
 * No Docs
 */
typedef enum {
    DC1394_PxL_GPIO_POLARITY_NONE=0,
    DC1394_PxL_GPIO_POLARITY_HIGH,
    DC1394_PxL_GPIO_POLARITY_LOW
} dc1394pxl_gpio_polarity_t;

/**
 * No Docs
 */
typedef enum {
    DC1394_PxL_GPIO_MODE_STROBE=0,
    DC1394_PxL_GPIO_MODE_NORMAL,
    DC1394_PxL_GPIO_MODE_PULSE,
    DC1394_PxL_GPIO_MODE_BUSY,
    DC1394_PxL_GPIO_MODE_FLASH
} dc1394pxl_gpio_mode_t;

/* IEEE 32 bit floating point type */
typedef float float32_t;

/**
 * GPIO Information structure
 */
typedef struct __dc1394_pxl_gpio_info_struct {
    uint32_t       number;
    dc1394bool_t presence;
    dc1394bool_t polarity;
    dc1394bool_t mode_strobe;
    dc1394bool_t mode_normal;
    dc1394bool_t mode_pulse;
    dc1394bool_t mode_busy;
    dc1394bool_t mode_flash;
} dc1394_pxl_gpio_info_t;

/**
 * Camera information
 */
typedef struct __dc1394_pxl_camera_info_struct {
    uint32_t fpga_version;
    uint32_t fw_version;
    char serial_number[PxL_MAX_STRING_LENGTH];
    char description[PxL_MAX_STRING_LENGTH];
} dc1394_pxl_camera_info_t;

/**
 * Advanced feature inquiry
 */
typedef struct __dc1394_pxl_adv_feature_info_struct {
    dc1394bool_t name_presence;
    uint32_t name_offset;
    char name[PxL_MAX_STRING_LENGTH];
} dc1394_pxl_adv_feature_info_t;

#ifdef __cplusplus
extern "C" {
#endif

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_convert_float32_to_quadlet(double , uint32_t *);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_convert_uint32_to_float32(uint32_t , double *);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_get_camera_name(dc1394camera_t *, char *, uint32_t);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_get_camera_info(dc1394camera_t *, dc1394_pxl_camera_info_t *);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_get_camera_serial_number(dc1394camera_t *, uint32_t *);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_get_gpo_param(dc1394camera_t *, uint32_t, uint32_t *, uint32_t *, uint32_t *);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_get_gpo_param_min_max(dc1394camera_t *, uint32_t, uint32_t *,
                uint32_t *, uint32_t *, uint32_t *, uint32_t *, uint32_t *,
                uint32_t *, uint32_t *, uint32_t *);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_get_gpo_config(dc1394camera_t *, uint32_t, uint32_t *);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_set_gpo_config(dc1394camera_t *, uint32_t, uint32_t);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_set_gpio_mode_param(dc1394camera_t *, uint32_t ,
        dc1394pxl_gpio_polarity_t, dc1394pxl_gpio_mode_t, double, double, double);

/**
 * No Docs
 */
dc1394error_t
dc1394_pxl_print_camera_info(dc1394camera_t *, FILE *fd);

#ifdef __cplusplus
}
#endif

#endif