void *comedi_recognize(comedi_driver *driv, const char *name)
{
unsigned i;
- const char **name_ptr = driv->board_name;
+ const char * const *name_ptr = driv->board_name;
for(i = 0; i < driv->num_names; i++)
{
if(strcmp(*name_ptr, name) == 0)
- return name_ptr;
- name_ptr = (const char **)((char *)name_ptr + driv->offset);
+ return (void*)name_ptr;
+ name_ptr = (const char * const *)((const char *)name_ptr + driv->offset);
}
return NULL;
void comedi_report_boards(comedi_driver *driv)
{
unsigned int i;
- const char **name_ptr;
+ const char * const *name_ptr;
printk("comedi: valid board names for %s driver are:\n", driv->driver_name);
static int acl7225b_detach(comedi_device *dev);
typedef struct {
- char *name; // driver name
+ const char *name; // driver name
int io_range; // len of I/O space
} boardtype;
module: THIS_MODULE,
attach: acl7225b_attach,
detach: acl7225b_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype),
};
typedef struct skel_board_struct{
- char *name;
+ const char *name;
int vendor_id;
int device_id;
}adl_pci7296_board;
attach: adl_pci7296_attach,
detach: adl_pci7296_detach,
- board_name: (const char**)adl_pci7296_boards,
+ board_name: &adl_pci7296_boards[0].name,
offset: sizeof(adl_pci7296_board),
num_names: sizeof(adl_pci7296_boards) / sizeof(adl_pci7296_board),
};
#define PCI_DEVICE_ID_PCI7432 0x7432
typedef struct {
- char *name;
+ const char *name;
int vendor_id;
int device_id;
} adl_pci7432_board;
attach: adl_pci7432_attach,
detach: adl_pci7432_detach,
num_names: 1,
- board_name: (const char**)adl_pci7432_boards,
+ board_name: &adl_pci7432_boards[0].name,
offset: sizeof(adl_pci7432_board),
};
#define PCI_DEVICE_ID_PCI8164 0x8164
typedef struct {
- char *name;
+ const char *name;
int vendor_id;
int device_id;
} adl_pci8164_board;
attach: adl_pci8164_attach,
detach: adl_pci8164_detach,
num_names: 1,
- board_name: (const char**)adl_pci8164_boards,
+ board_name: &adl_pci8164_boards[0].name,
offset: sizeof(adl_pci8164_board),
};
//
typedef struct {
- char *name; // driver name
+ const char *name; // driver name
int device_id;
int ai_channel_nbr; // num of A/D chans
int ao_channel_nbr; // num of D/A chans
attach: pci9111_attach,
detach: pci9111_detach,
num_names: pci9111_board_nbr,
- board_name: (const char**)pci9111_boards,
+ board_name: &pci9111_boards[0].name,
offset: sizeof(pci9111_board_struct),
};
COMEDI_INITCLEANUP(pci9111_driver);
static int pci9118_detach(comedi_device *dev);
typedef struct {
- char *name; // driver name
+ const char *name; // board name
int vendor_id; // PCI vendor a device ID of card
int device_id;
int iorange_amcc; // iorange for own S5933 region
attach: pci9118_attach,
detach: pci9118_detach,
num_names: n_boardtypes,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
offset: sizeof(boardtype),
};
COMEDI_INITCLEANUP(driver_pci9118);
static int pci1710_detach(comedi_device *dev);
typedef struct {
- char *name; // driver name
+ const char *name; // board name
int device_id;
int iorange; // I/O range len
char have_irq; // 1=card support IRQ
attach: pci1710_attach,
detach: pci1710_detach,
num_names: n_boardtypes,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
offset: sizeof(boardtype),
};
} diosubd_data;
typedef struct {
- char *name; // driver name
+ const char *name; // board name
int vendor_id; // vendor/device PCI ID
int device_id;
int main_pci_region;// main I/O OCI region
attach: pci_dio_attach,
detach: pci_dio_detach,
num_names: n_boardtypes,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
offset: sizeof(boardtype),
};
typedef struct pci_dio_private_st pci_dio_private;
typedef struct
{
- char *name;
+ const char *name;
} board_type;
static board_type board_types[] =
module: THIS_MODULE,
attach: aio_aio12_8_attach,
detach: aio_aio12_8_detach,
- board_name: (const char**)board_types,
+ board_name: &board_types[0].name,
num_names: 1,
offset: sizeof (board_type),
};
typedef struct aio_iiro_16_board_struct
{
- char *name;
+ const char *name;
int do_;
int di;
} aio_iiro_16_board;
module: THIS_MODULE,
attach: aio_iiro_16_attach,
detach: aio_iiro_16_detach,
- board_name: (const char**)aio_iiro_16_boards,
+ board_name: &aio_iiro_16_boards[0].name,
offset: sizeof (aio_iiro_16_board),
num_names: sizeof (aio_iiro_16_boards) /
sizeof (aio_iiro_16_board),
};
typedef struct dio200_board_struct {
- char *name;
+ const char *name;
enum dio200_bustype bustype;
enum dio200_model model;
enum dio200_layout layout;
module: THIS_MODULE,
attach: dio200_attach,
detach: dio200_detach,
- board_name: (const char**)dio200_boards,
+ board_name: &dio200_boards[0].name,
offset: sizeof(dio200_board),
num_names: sizeof(dio200_boards) / sizeof(dio200_board),
};
enum pc236_model {pc36at_model, pci236_model};
typedef struct pc236_board_struct{
- char *name;
+ const char *name;
char *fancy_name;
enum pc236_bustype bustype;
enum pc236_model model;
module: THIS_MODULE,
attach: pc236_attach,
detach: pc236_detach,
- board_name: (const char**)pc236_boards,
+ board_name: &pc236_boards[0].name,
offset: sizeof(pc236_board),
num_names: sizeof(pc236_boards) / sizeof(pc236_board),
};
enum pc263_model {pc263_model, pci263_model};
typedef struct pc263_board_struct{
- char *name;
+ const char *name;
char *fancy_name;
enum pc263_bustype bustype;
enum pc263_model model;
module: THIS_MODULE,
attach: pc263_attach,
detach: pc263_detach,
- board_name: (const char**)pc263_boards,
+ board_name: &pc263_boards[0].name,
offset: sizeof(pc263_board),
num_names: sizeof(pc263_boards) / sizeof(pc263_board),
};
enum pci224_model { pci224_model, pci234_model };
typedef struct pci224_board_struct {
- char *name;
+ const char *name;
enum pci224_model model;
unsigned int ao_chans;
unsigned int ao_bits;
module: THIS_MODULE,
attach: pci224_attach,
detach: pci224_detach,
- board_name: (const char**)pci224_boards,
+ board_name: &pci224_boards[0].name,
offset: sizeof(pci224_board),
num_names: sizeof(pci224_boards) / sizeof(pci224_board),
};
*/
typedef struct pci230_board_struct{
- char *name;
+ const char *name;
unsigned short id;
int ai_chans;
int ai_bits;
module: THIS_MODULE,
attach: pci230_attach,
detach: pci230_detach,
- board_name: (const char**)pci230_boards,
+ board_name: &pci230_boards[0].name,
offset: sizeof(pci230_boards[0]),
num_names: sizeof(pci230_boards) / sizeof(pci230_boards[0]),
};
*/
struct BondingBoard
{
- char *name;
+ const char *name;
};
typedef struct BondingBoard BondingBoard;
* the type of board in software. ISA PnP, PCI, and PCMCIA
* devices are such boards.
*/
- board_name: (const char**)bondingBoards,
+ board_name: &bondingBoards[0].name,
offset: sizeof(BondingBoard),
num_names: sizeof(bondingBoards) / sizeof(BondingBoard),
};
/* Board descriptions */
typedef struct waveform_board_struct{
- char *name;
+ const char *name;
int ai_chans;
int ai_bits;
int have_dio;
module: THIS_MODULE,
attach: waveform_attach,
detach: waveform_detach,
- board_name: (const char**)waveform_boards,
+ board_name: &waveform_boards[0].name,
offset: sizeof(waveform_board),
num_names: sizeof(waveform_boards) / sizeof(waveform_board),
};
module: THIS_MODULE,
attach: das08_attach,
detach: das08_common_detach,
- board_name: (const char**)(das08_boards),
+ board_name: &das08_boards[0].name,
num_names: sizeof(das08_boards)/sizeof(struct das08_board_struct),
offset: sizeof(struct das08_board_struct),
};
module: THIS_MODULE,
attach: das08_cs_attach,
detach: das08_common_detach,
- board_name: das08_cs_boards,
+ board_name: &das08_cs_boards[0].name,
num_names: sizeof(das08_cs_boards) / sizeof(struct das08_board_struct),
offset: sizeof(struct das08_board_struct),
};
static void reg_dump(comedi_device *dev);
typedef struct das16_board_struct{
- char *name;
+ const char *name;
void *ai;
unsigned int ai_nbits;
unsigned int ai_speed; // max conversion speed in nanosec
module: THIS_MODULE,
attach: das16_attach,
detach: das16_detach,
- board_name: (const char**)das16_boards,
+ board_name: &das16_boards[0].name,
num_names: n_das16_boards,
offset: sizeof(das16_boards[0]),
};
static int das16m1_irq_bits(unsigned int irq);
typedef struct das16m1_board_struct{
- char *name;
+ const char *name;
unsigned int ai_speed;
}das16m1_board;
module: THIS_MODULE,
attach: das16m1_attach,
detach: das16m1_detach,
- board_name: (const char**)das16m1_boards,
+ board_name: &das16m1_boards[0].name,
num_names: das16m1_num_boards,
offset: sizeof(das16m1_boards[0]),
};
};
typedef struct das1800_board_struct{
- char *name;
+ const char *name;
int ai_speed; /* max conversion period in nanoseconds */
int resolution; /* bits of ai resolution */
int qram_len; /* length of card's channel / gain queue */
attach: das1800_attach,
detach: das1800_detach,
num_names: sizeof(das1800_boards) / sizeof(das1800_board),
- board_name: (const char**)das1800_boards,
+ board_name: &das1800_boards[0].name,
offset: sizeof(das1800_board),
};
#define DAS800_ID 7
typedef struct das800_board_struct{
- char *name;
+ const char *name;
int ai_speed;
comedi_lrange *ai_range;
int resolution;
attach: das800_attach,
detach: das800_detach,
num_names: sizeof(das800_boards) / sizeof(das800_board),
- board_name: (const char **)das800_boards,
+ board_name: &das800_boards[0].name,
offset: sizeof(das800_board),
};
* Some drivers use arrays such as this, other do not.
*/
typedef struct dmm32at_board_struct{
- char *name;
+ const char *name;
int ai_chans;
int ai_bits;
comedi_lrange *ai_ranges;
* the type of board in software. ISA PnP, PCI, and PCMCIA
* devices are such boards.
*/
- board_name: (const char**)dmm32at_boards,
+ board_name: &dmm32at_boards[0].name,
offset: sizeof(dmm32at_board),
num_names: sizeof(dmm32at_boards) / sizeof(dmm32at_board),
};
#define DT2811_ADMODE 0x03
typedef struct {
- char *name;
+ const char *name;
comedi_lrange *bip_5;
comedi_lrange *bip_2_5;
comedi_lrange *unip_5;
module: THIS_MODULE,
attach: dt2811_attach,
detach: dt2811_detach,
- board_name: (const char **)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: sizeof(boardtypes)/sizeof(boardtype),
offset: sizeof(boardtype),
};
typedef struct {
- char *name;
+ const char *name;
int adbits;
int adchan_se;
int adchan_di;
module: THIS_MODULE,
attach: dt282x_attach,
detach: dt282x_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype_t),
};
static unsigned short pci_list_builded=0; /*>0 list of card is known */
typedef struct {
- char *name; // driver name
+ const char *name; // driver name
int device_id;
int iorange; // I/O range len
char have_irq; // 1=card support IRQ
attach: icp_multi_attach,
detach: icp_multi_detach,
num_names: n_boardtypes,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
offset: sizeof(boardtype),
};
COMEDI_INITCLEANUP(driver_icp_multi);
typedef struct
{
- char *name; // driver name
+ const char *name; // driver name
int device_id;
int ao_channel_nbr; // DA config
int ao_resolution;
attach: me_attach,
detach: me_detach,
num_names: me_board_nbr,
- board_name: (const char**)me_boards,
+ board_name: &me_boards[0].name,
offset: sizeof(me_board_struct),
};
COMEDI_INITCLEANUP(me_driver);
* Some drivers use arrays such as this, other do not.
*/
typedef struct atao_board_struct{
- char *name;
+ const char *name;
int n_ao_chans;
}atao_board;
static atao_board atao_boards[] = {
module: THIS_MODULE,
attach: atao_attach,
detach: atao_detach,
- board_name: (const char**)atao_boards,
+ board_name: &atao_boards[0].name,
offset: sizeof(atao_board),
num_names: sizeof(atao_boards) / sizeof(atao_board),
};
typedef struct{
- char *name;
+ const char *name;
int has_8255;
}atmio16_board_t;
static atmio16_board_t atmio16_boards[]={
module: THIS_MODULE,
attach: atmio16d_attach,
detach: atmio16d_detach,
- board_name: (const char**)atmio16_boards,
+ board_name: &atmio16_boards[0].name,
num_names: n_atmio16_boards,
offset: sizeof(atmio16_board_t),
};
enum dio24_bustype {pcmcia_bustype};
typedef struct dio24_board_struct{
- char *name;
+ const char *name;
int device_id; // device id for pcmcia board
enum dio24_bustype bustype; // PCMCIA
int have_dio; // have 8255 chip
attach: dio24_attach,
detach: dio24_detach,
num_names: sizeof(dio24_boards) / sizeof(dio24_board),
- board_name: (char **)dio24_boards,
+ board_name: &dio24_boards[0].name,
offset: sizeof(dio24_board),
};
attach: labpc_attach,
detach: labpc_common_detach,
num_names: sizeof(labpc_boards) / sizeof(labpc_board),
- board_name: (const char **)labpc_boards,
+ board_name: &labpc_boards[0].name,
offset: sizeof(labpc_board),
};
enum transfer_type {fifo_not_empty_transfer, fifo_half_full_transfer, isa_dma_transfer};
typedef struct labpc_board_struct{
- char *name;
+ const char *name;
int device_id; // device id for pci and pcmcia boards
int ai_speed; // maximum input speed in nanoseconds
enum labpc_bustype bustype; // ISA/PCI/etc.
.attach = &labpc_attach,
.detach = &labpc_common_detach,
.num_names = sizeof(labpc_cs_boards) / sizeof(labpc_board),
- .board_name = (char **)labpc_cs_boards,
+ .board_name = &labpc_cs_boards[0].name,
.offset = sizeof(labpc_board),
};
//mite_dump_regs(mite);
if(m_status & CHSR_INT){
if(m_status & CHSR_LINKC){
- int retval;
-
writel(CHOR_CLRLC, mite->mite_io_addr + MITE_CHOR(devpriv->di_mite_chan->channel));
mite_sync_input_dma(devpriv->di_mite_chan, s->async);
/* XXX need to byteswap */
static int i8253_osc_base = 500; /* 2 Mhz */
typedef struct {
- char *name;
+ const char *name;
int is_pcl711b;
int is_8112;
int is_dg;
module: THIS_MODULE,
attach: pcl711_attach,
detach: pcl711_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype),
};
static int pcl724_detach(comedi_device *dev);
typedef struct {
- char *name; // driver name
+ const char *name; // board name
int dio; // num of DIO
int numofports; // num of 8255 subdevices
unsigned int IRQbits; // allowed interrupts
module: THIS_MODULE,
attach: pcl724_attach,
detach: pcl724_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype),
};
static int pcl726_detach(comedi_device *dev);
typedef struct {
- char *name; // driver name
+ const char *name; // driver name
int n_aochan; // num of D/A chans
int num_of_ranges; // num of ranges
unsigned int IRQbits; // allowed interrupts
module: THIS_MODULE,
attach: pcl726_attach,
detach: pcl726_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype),
};
static int pcl730_detach(comedi_device *dev);
typedef struct {
- char *name; // driver name
+ const char *name; // board name
unsigned int io_range; // len of I/O space
} boardtype;
module: THIS_MODULE,
attach: pcl730_attach,
detach: pcl730_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype),
};
typedef struct {
- char *name; // driver name
+ const char *name; // board name
int board_type; // type of this board
int n_aichan; // num of AI chans in S.E.
int n_aichan_diff; // DIFF num of chans
module: THIS_MODULE,
attach: pcl812_attach,
detach: pcl812_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype),
};
}
};
typedef struct {
- char *name; // driver name
+ const char *name; // board name
int n_ranges; // len of range list
int n_aichan; // num of A/D chans in diferencial mode
unsigned int ai_ns_min; // minimal alllowed delay between samples (in ns)
module: THIS_MODULE,
attach: pcl816_attach,
detach: pcl816_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype),
};
#endif
typedef struct {
- char *name; // driver name
+ const char *name; // driver name
int n_ranges; // len of range list
int n_aichan_se; // num of A/D chans in single ended mode
int n_aichan_diff; // num of A/D chans in diferencial mode
module: THIS_MODULE,
attach: pcl818_attach,
detach: pcl818_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype),
};
static int pcm3724_detach(comedi_device *dev);
typedef struct {
- char *name; // driver name
+ const char *name; // driver name
int dio; // num of DIO
int numofports; // num of 8255 subdevices
unsigned int IRQbits; // allowed interrupts
module: THIS_MODULE,
attach: pcm3724_attach,
detach: pcm3724_detach,
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
num_names: n_boardtypes,
offset: sizeof(boardtype),
};
#define PCMAD_CONVERT 1
struct pcmad_board_struct{
- char *name;
+ const char *name;
int n_ai_bits;
};
static struct pcmad_board_struct pcmad_boards[]={
module: THIS_MODULE,
attach: pcmad_attach,
detach: pcmad_detach,
- board_name: (const char**)pcmad_boards,
+ board_name: &pcmad_boards[0].name,
num_names: n_pcmad_boards,
offset: sizeof(pcmad_boards[0]),
};
*/
typedef struct pcmda12_board_struct
{
- char * const name;
+ const char * const name;
} pcmda12_board;
/* note these have no effect and are merely here for reference..
* the type of board in software. ISA PnP, PCI, and PCMCIA
* devices are such boards.
*/
- board_name: (const char**)pcmda12_boards,
+ board_name: &pcmda12_boards[0].name,
offset: sizeof(pcmda12_board),
num_names: sizeof(pcmda12_boards) / sizeof(pcmda12_board),
};
*/
typedef struct pcmmio_board_struct
{
- char * const name;
+ const char * const name;
const int dio_num_asics;
const int dio_num_ports;
const int total_iosize;
name: "pcmmio",
dio_num_asics: 1,
dio_num_ports: 6,
- total_iosize: 32,
- ai_bits: 16,
- ao_bits: 16,
- n_ai_chans: 16,
- n_ao_chans: 8,
- ai_range_table: (comedi_lrange *)&ranges_ai,
- ao_range_table: (comedi_lrange *)&ranges_ao,
- ai_rinsn: ai_rinsn,
- ao_rinsn: ao_rinsn,
- ao_winsn: ao_winsn
+ total_iosize: 32,
+ ai_bits: 16,
+ ao_bits: 16,
+ n_ai_chans: 16,
+ n_ao_chans: 8,
+ ai_range_table: (comedi_lrange *)&ranges_ai,
+ ao_range_table: (comedi_lrange *)&ranges_ao,
+ ai_rinsn: ai_rinsn,
+ ao_rinsn: ao_rinsn,
+ ao_winsn: ao_winsn
},
};
* the type of board in software. ISA PnP, PCI, and PCMCIA
* devices are such boards.
*/
- board_name: (const char **)pcmmio_boards,
+ board_name: &pcmmio_boards[0].name,
offset: sizeof(pcmmio_board),
num_names: sizeof(pcmmio_boards) / sizeof(pcmmio_board),
};
*/
typedef struct pcmuio_board_struct
{
- char * const name;
+ const char * const name;
const int num_asics;
const int num_channels_per_port;
const int num_ports;
* the type of board in software. ISA PnP, PCI, and PCMCIA
* devices are such boards.
*/
- board_name: (const char**)pcmuio_boards,
+ board_name: &pcmuio_boards[0].name,
offset: sizeof(pcmuio_board),
num_names: sizeof(pcmuio_boards) / sizeof(pcmuio_board),
};
comedi_insn *insn,lsampl_t *data);
struct boarddef_struct{
- char *name;
+ const char *name;
unsigned int iosize;
int (*setup)(comedi_device *);
int type;
module: THIS_MODULE,
attach: poc_attach,
detach: poc_detach,
- board_name: (const char**)boards,
+ board_name: &boards[0].name,
num_names: n_boards,
offset: sizeof(boards[0]),
};
Board descriptions
*/
typedef struct rtdBoard_struct{
- char *name; /* must be first */
+ const char *name; /* must be first */
int device_id;
int aiChans;
int aiBits;
module: THIS_MODULE,
attach: rtd_attach,
detach: rtd_detach,
- board_name: (const char**)rtd520Boards,
+ board_name: &rtd520Boards[0].name,
offset: sizeof(rtdBoard),
num_names: sizeof(rtd520Boards) / sizeof(rtdBoard),
};
}};
typedef struct{
- char *name;
+ const char *name;
int has_ao;
}boardtype;
static boardtype boardtypes[]={
attach: rti800_attach,
detach: rti800_detach,
num_names: sizeof(boardtypes)/sizeof(boardtype),
- board_name: (const char**)boardtypes,
+ board_name: &boardtypes[0].name,
offset: sizeof(boardtype),
};
COMEDI_INITCLEANUP(driver_rti800);
* Some drivers use arrays such as this, other do not.
*/
typedef struct s526_board_struct{
- char *name;
+ const char *name;
int gpct_chans;
int gpct_bits;
int ad_chans;
* the type of board in software. ISA PnP, PCI, and PCMCIA
* devices are such boards.
*/
- board_name: (const char**)s526_boards,
+ board_name: &s526_boards[0].name,
offset: sizeof(s526_board),
num_names: sizeof(s526_boards) / sizeof(s526_board),
};
* Some drivers use arrays such as this, other do not.
*/
typedef struct skel_board_struct{
- char *name;
+ const char *name;
int ai_chans;
int ai_bits;
int have_dio;
* the type of board in software. ISA PnP, PCI, and PCMCIA
* devices are such boards.
*/
- board_name: (const char**)skel_boards,
+ board_name: &skel_boards[0].name,
offset: sizeof(skel_board),
num_names: sizeof(skel_boards) / sizeof(skel_board),
};
/* This data structure holds information about the supported boards -------- */
typedef struct dnp_board_struct{
- char *name;
+ const char *name;
int ai_chans;
int ai_bits;
int have_dio;
module: THIS_MODULE,
attach: dnp_attach,
detach: dnp_detach,
- board_name: (const char**)dnp_boards, /* only necessary for non-PnP devs */
+ board_name: &dnp_boards[0].name, /* only necessary for non-PnP devs */
offset: sizeof(dnp_board), /* like ISA-PnP, PCI or PCMCIA. */
num_names: sizeof(dnp_boards) / sizeof(dnp_board),
};
/* number of elements in board_name and board_id arrays */
unsigned int num_names;
- const char **board_name;
+ const char * const *board_name;
/* offset in bytes from one board name pointer to the next */
int offset;
};