Пример #1
0
int IDL_Load(void) {
  /*
     These tables contain information on the functions and procedures
     that make up the cmdline_tools DLM. The information contained in these
     tables must be identical to that contained in cmdline_tools.dlm.
  */
  static IDL_SYSFUN_DEF2 function_addr[] = {
    { IDL_mg_zlib_version,     "MG_ZLIB_VERSION",     0, 0, 0, 0 },
  };

  static IDL_SYSFUN_DEF2 procedure_addr[] = {
    { (IDL_SYSRTN_GENERIC) IDL_mg_compress,    "MG_COMPRESS",    2, 2, 0, 0 },
    { (IDL_SYSRTN_GENERIC) IDL_mg_decompress,  "MG_DECOMPRESS",    2, 2, 0, 0 },
  };

  if (!(msg_block = IDL_MessageDefineBlock("mg_zlib_dlm",
                                           IDL_CARRAY_ELTS(msg_arr),
                                           msg_arr))) return IDL_FALSE;

  /*
     Register our routines. The routines must be specified exactly the same
     as in cmdline_tools.dlm.
  */
  return IDL_SysRtnAdd(procedure_addr, FALSE, IDL_CARRAY_ELTS(procedure_addr))
      && IDL_SysRtnAdd(function_addr, TRUE, IDL_CARRAY_ELTS(function_addr));
}
Пример #2
0
int IDL_Load(void) {
    IDL_StructDefPtr mg_mysql_field_sdef;

    /*
       These tables contain information on the functions and procedures
       that make up the MySQL DLM. The information contained in these
       tables must be identical to that contained in mg_mysql.dlm.
    */
    static IDL_SYSFUN_DEF2 function_addr[] = {
        { IDL_mg_mysql_get_client_info,    "MG_MYSQL_GET_CLIENT_INFO",    0, 0, 0, 0 },
        { IDL_mg_mysql_get_client_version, "MG_MYSQL_GET_CLIENT_VERSION", 0, 0, 0, 0 },
        { IDL_mg_mysql_get_proto_info,     "MG_MYSQL_GET_PROTO_INFO",     1, 1, 0, 0 },
        { IDL_mg_mysql_get_host_info,      "MG_MYSQL_GET_HOST_INFO",      1, 1, 0, 0 },
        { IDL_mg_mysql_get_server_info,    "MG_MYSQL_GET_SERVER_INFO",    1, 1, 0, 0 },
        { IDL_mg_mysql_get_server_version, "MG_MYSQL_GET_SERVER_VERSION", 1, 1, 0, 0 },
        { IDL_mg_mysql_info,               "MG_MYSQL_INFO",               1, 1, 0, 0 },
        { IDL_mg_mysql_init,               "MG_MYSQL_INIT",               0, 0, 0, 0 },
        { IDL_mg_mysql_options,            "MG_MYSQL_OPTIONS",            3, 3, 0, 0 },
        { IDL_mg_mysql_list_tables,        "MG_MYSQL_LIST_TABLES",        1, 2, 0, 0 },
        { IDL_mg_mysql_list_dbs,           "MG_MYSQL_LIST_DBS",           1, 2, 0, 0 },
        { IDL_mg_mysql_real_connect,       "MG_MYSQL_REAL_CONNECT",       8, 8, 0, 0 },
        { IDL_mg_mysql_select_db,          "MG_MYSQL_SELECT_DB",          2, 2, 0, 0 },
        { IDL_mg_mysql_query,              "MG_MYSQL_QUERY",              2, 2, 0, 0 },
        { IDL_mg_mysql_error,              "MG_MYSQL_ERROR",              1, 1, 0, 0 },
        { IDL_mg_mysql_errno,              "MG_MYSQL_ERRNO",              1, 1, 0, 0 },
        { IDL_mg_mysql_store_result,       "MG_MYSQL_STORE_RESULT",       1, 1, 0, 0 },
        { IDL_mg_mysql_num_fields,         "MG_MYSQL_NUM_FIELDS",         1, 1, 0, 0 },
        { IDL_mg_mysql_num_rows,           "MG_MYSQL_NUM_ROWS",           1, 1, 0, 0 },
        { IDL_mg_mysql_fetch_row,          "MG_MYSQL_FETCH_ROW",          1, 1, 0, 0 },
        { IDL_mg_mysql_field_count,        "MG_MYSQL_FIELD_COUNT",        1, 1, 0, 0 },
        { IDL_mg_mysql_get_field,          "MG_MYSQL_GET_FIELD",          2, 2, 0, 0 },
        { IDL_mg_mysql_get_blobfield,      "MG_MYSQL_GET_BLOBFIELD",      3, 3, 0, 0 },
        { IDL_mg_mysql_insert_id,          "MG_MYSQL_INSERT_ID",          1, 1, 0, 0 },
        { IDL_mg_mysql_fetch_field,        "MG_MYSQL_FETCH_FIELD",        1, 1, 0, 0 },
        { IDL_mg_mysql_fetch_lengths,      "MG_MYSQL_FETCH_LENGTHS",      1, 1, 0, 0 },
        { IDL_mg_mysql_next_result,        "MG_MYSQL_NEXT_RESULT",        1, 1, 0, 0 },
        { IDL_mg_mysql_real_escape_string, "MG_MYSQL_REAL_ESCAPE_STRING", 4, 4, 0, 0 },
        { IDL_mg_mysql_real_query,         "MG_MYSQL_REAL_QUERY",         3, 3, 0, 0 },
    };

    static IDL_SYSFUN_DEF2 procedure_addr[] = {
        { (IDL_SYSRTN_GENERIC) IDL_mg_mysql_close,       "MG_MYSQL_CLOSE",        1, 1, 0, 0 },
        { (IDL_SYSRTN_GENERIC) IDL_mg_mysql_free_result, "MG_MYSQL_FREE_RESULT",  1, 1, 0, 0 },
    };

    mg_mysql_field_sdef = IDL_MakeStruct("MG_MYSQL_FIELD", mg_mysql_field);

    /*
       Register our routines. The routines must be specified exactly the same
       as in mg_mysql.dlm.
    */
    return IDL_SysRtnAdd(procedure_addr, FALSE, IDL_CARRAY_ELTS(procedure_addr))
           && IDL_SysRtnAdd(function_addr, TRUE, IDL_CARRAY_ELTS(function_addr));
}
Пример #3
0
//
// IDL_Load
//
int IDL_Load (void)
{
  int status;
  int nmsgs, nfcns, npros;

  static IDL_SYSFUN_DEF2 function_addr[] = {
    { idlpgr_CreateContext,      "IDLPGR_CREATECONTEXT",      0, 0, 0, 0 },
    { idlpgr_GetNumOfCameras,    "IDLPGR_GETNUMOFCAMERAS",    1, 1, 0, 0 },
    { idlpgr_GetCameraFromIndex, "IDLPGR_GETCAMERAFROMINDEX", 1, 2, 0, 0 },
    { idlpgr_GetCameraInfo,      "IDLPGR_GETCAMERAINFO",      1, 1, 0, 0 },
    { idlpgr_CreateImage,        "IDLPGR_CREATEIMAGE",        0, 0, 0, 0 },
    { idlpgr_AllocateImage,      "IDLPGR_ALLOCATEIMAGE",      1, 1, 0, 0 },
    { idlpgr_ReadRegister,       "IDLPGR_READREGISTER",       2, 2, 0, 0 },
    { idlpgr_GetPropertyInfo,    "IDLPGR_GETPROPERTYINFO",    2, 2, 0, 0 },
    { idlpgr_GetProperty,        "IDLPGR_GETPROPERTY",        2, 2, 0, 0 },
  };

  static IDL_SYSFUN_DEF2 procedure_addr[] = {
    { (IDL_SYSRTN_GENERIC)
      idlpgr_DestroyContext, "IDLPGR_DESTROYCONTEXT", 1, 1, 0, 0 },
    { (IDL_SYSRTN_GENERIC)
      idlpgr_Connect,        "IDLPGR_CONNECT",        2, 2, 0, 0 },
    { (IDL_SYSRTN_GENERIC)
      idlpgr_StartCapture,   "IDLPGR_STARTCAPTURE",   1, 1, 0, 0 },
    { (IDL_SYSRTN_GENERIC)
      idlpgr_StopCapture,    "IDLPGR_STOPCAPTURE",    1, 1, 0, 0 },
    { (IDL_SYSRTN_GENERIC)
      idlpgr_DestroyImage,   "IDLPGR_DESTROYIMAGE",   1, 1, 0, 0 },
    { (IDL_SYSRTN_GENERIC)
      idlpgr_RetrieveBuffer, "IDLPGR_RETRIEVEBUFFER", 2, 2, 0, 0 },
    { (IDL_SYSRTN_GENERIC)
      idlpgr_GetImage,       "IDLPGR_GETIMAGE",       2, 2, 0, 0 },
    { (IDL_SYSRTN_GENERIC)
      idlpgr_WriteRegister,  "IDLPGR_WRITEREGISTER",  3, 3, 0, 0 },
    { (IDL_SYSRTN_GENERIC)
      idlpgr_SetProperty,    "IDLPGR_SETPROPERTY",    2, 2, 0, 0 },
  };

  nmsgs = IDL_CARRAY_ELTS(msg_arr);
  msgs = IDL_MessageDefineBlock("idlpgr", nmsgs, msg_arr);
  if (!msgs)
    return IDL_FALSE;

  nfcns = IDL_CARRAY_ELTS(function_addr);
  status = IDL_SysRtnAdd(function_addr, TRUE, nfcns);

  npros = IDL_CARRAY_ELTS(procedure_addr);
  status |= IDL_SysRtnAdd(procedure_addr, FALSE, npros);

  return status;
}
Пример #4
0
int readwu_startup(void) {
  if (!IDL_SysRtnAdd(readwu_fns,TRUE,ARRLEN(readwu_fns))) {
    return NULL;
  }
  IDL_ExitRegister(readwu_exit_handler);
  return IDL_TRUE;
}
Пример #5
0
/*
  Register the routines available for IDL; they must be specified exactly as
  in mg_lineplots.dlm.
  */
int IDL_Load(void) {

  // functions to register
  static IDL_SYSFUN_DEF2 function_addr[] = {
    { IDL_mg_rasterpolyline,     "MG_RASTERPOLYLINE",     6, 6, 0, 0 },
  };

  return IDL_SysRtnAdd(function_addr, TRUE, IDL_CARRAY_ELTS(function_addr));
}
Пример #6
0
int IDL_Load(void) {
  /*
     These tables contain information on the functions and procedures
     that make up the cmdline_tools DLM. The information contained in these
     tables must be identical to that contained in cmdline_tools.dlm.
  */
  static IDL_SYSFUN_DEF2 function_addr[] = {
    { IDL_mg_termlines,            "MG_TERMLINES",            0, 0, 0, 0 },
    { IDL_mg_termcolumns,          "MG_TERMCOLUMNS",          0, 0, 0, 0 },
    { IDL_mg_termistty,            "MG_TERMISTTY",            0, 0, 0, 0 },
    { IDL_mg_heapid,               "MG_HEAPID",               1, 1, 0, 0 },
    { IDL_mg_tout_pop,             "MG_TOUT_POP",             0, 0, 0, 0 },
    { IDL_IDL_OutputFormatFunc,    "MG_OUTPUTFORMATFUNC",     1, 1, 0, 0 },
    { IDL_IDL_OutputFormatLenFunc, "MG_OUTPUTFORMATLENFUNC",  1, 1, 0, 0 },
    { IDL_IDL_TypeSizeFunc,        "MG_TYPESIZEFUNC",         1, 1, 0, 0 },
    { IDL_IDL_TypeNameFunc,        "MG_TYPENAMEFUNC",         1, 1, 0, 0 },
    { IDL_IDL_SysRtnNumEnabled,    "MG_SYSRTNNUMENABLED",     2, 2, 0, 0 },
  };

  static IDL_SYSFUN_DEF2 procedure_addr[] = {
    { (IDL_SYSRTN_GENERIC) IDL_mg_print,     "MG_PRINT",     0, IDL_MAXPARAMS, IDL_SYSFUN_DEF_F_KEYWORDS, 0 },
    { (IDL_SYSRTN_GENERIC) IDL_mg_tout_push, "MG_TOUT_PUSH", 0, 1, 0, 0 },
    { (IDL_SYSRTN_GENERIC) IDL_IDL_TTYReset, "MG_TTYRESET",  0, 0, 0, 0 },
  };

  if (!(msg_block = IDL_MessageDefineBlock("MG_Cmdline_tools_DLM",
                                           IDL_CARRAY_ELTS(msg_arr),
                                           msg_arr))) return IDL_FALSE;

  /*
     Register our routines. The routines must be specified exactly the same
     as in cmdline_tools.dlm.
  */
  return IDL_SysRtnAdd(procedure_addr, FALSE, IDL_CARRAY_ELTS(procedure_addr))
      && IDL_SysRtnAdd(function_addr, TRUE, IDL_CARRAY_ELTS(function_addr));
}
Пример #7
0
int IDL_Load(void) {
  /*
   * These tables contain information on the functions and procedures
   * that make up the cmdline_tools DLM. The information contained in these
   * tables must be identical to that contained in mg_introspection.dlm.
   */
  static IDL_SYSFUN_DEF2 function_addr[] = {
    { IDL_mg_sizeof,     "MG_SIZEOF",     1, 1, 0, 0 },
  };

  /*
   * Register our routines. The routines must be specified exactly the same
   * as in mg_introspection.dlm.
   */
  return IDL_SysRtnAdd(function_addr, TRUE, IDL_CARRAY_ELTS(function_addr));
}
Пример #8
0
int IDL_Load(void) {
  /*
   * These tables contain information on the functions and procedures
   * that make up the analysis DLM. The information contained in these
   * tables must be identical to that contained in mg_analysis.dlm.
   */
  static IDL_SYSFUN_DEF2 function_addr[] = {
    { IDL_mg_nc_isncdf,     "MG_NC_ISNCDF",     1, 1, 0, 0 },
    { IDL_mg_nc_inq_format, "MG_NC_INQ_FORMAT", 1, 1, 0, 0 },
  };

  /*
   * Register our routines. The routines must be specified exactly the same
   * as in mg_netcdf.dlm.
   */
  return IDL_SysRtnAdd(function_addr, TRUE, IDL_CARRAY_ELTS(function_addr));
}
Пример #9
0
int IDL_Load(void)
{

  /* This must be static. It is a struct. */
  /* The name in strings is the name by which it will be called from IDL and
     MUST BE CAPITALIZED 
     5th parameter will say if it accepts keywords and some other flags 
     For more info see page 325 of external dev. guide */
  static IDL_SYSFUN_DEF2 procedure_addr[] = {
    { (IDL_SYSRTN_GENERIC) rdAtlas, "RDATLAS", 0, IDL_MAXPARAMS, 
      IDL_SYSFUN_DEF_F_KEYWORDS, 0},
  };

  /* False means it is not a function */
  return IDL_SysRtnAdd(procedure_addr, IDL_FALSE, ARRLEN(procedure_addr));

}
Пример #10
0
int IDL_Load(void) {
  /*
   * These tables contain information on the functions and procedures
   * that make up the analysis DLM. The information contained in these
   * tables must be identical to that contained in mg_analysis.dlm.
   */
  static IDL_SYSFUN_DEF2 function_addr[] = {
    { IDL_mg_fdtrc,       "MG_FDTR",        3, 3, 0, 0 },
    { IDL_mg_fdtrc,       "MG_FDTRC",       3, 3, 0, 0 },
    { IDL_mg_fdtrc,       "MG_FDTRI",       3, 3, 0, 0 },
  };

  /*
   * Register our routines. The routines must be specified exactly the same
   * as in mg_analysis.dlm.
   */
  return IDL_SysRtnAdd(function_addr, TRUE, IDL_CARRAY_ELTS(function_addr));
}
Пример #11
0
int IDL_Load(void) {

  static IDL_SYSFUN_DEF2 fnaddr[]={
    { IDLOldCnvMapRead,"OLDCNVMAPREAD",7,7,0,0},
    { IDLOldCnvMapWrite,"OLDCNVMAPWRITE",7,7,0,0},
    { IDLOldCnvMapLoadInx,"OLDCNVMAPLOADINX",2,2,0,0},
    { IDLOldCnvMapSeek,"OLDCNVMAPSEEK",7,8,IDL_SYSFUN_DEF_F_KEYWORDS,0},
    { IDLOldCnvMapOpen,"OLDCNVMAPOPEN",1,1,IDL_SYSFUN_DEF_F_KEYWORDS,0},
    { IDLOldCnvMapClose,"OLDCNVMAPCLOSE",1,1,0,0},
  };


  if (!(msg_block = IDL_MessageDefineBlock("oldcnvmap",
                    IDL_CARRAY_ELTS(msg_arr), msg_arr)))
    return IDL_FALSE;

  return IDL_SysRtnAdd(fnaddr,TRUE,IDL_CARRAY_ELTS(fnaddr));

}
Пример #12
0
int IDL_Load(void) {

  static IDL_SYSFUN_DEF2 fnaddr[]={
    { IDLOldRawRead,"OLDRAWREAD",3,3,0,0},
    { IDLOldRawSeek,"OLDRAWSEEK",7,7,IDL_SYSFUN_DEF_F_KEYWORDS,0},
    { IDLOldRawWrite,"OLDRAWWRITE",4,4,0,0},
    { IDLOldRawOpen,"OLDRAWOPEN",1,2,0,0},
    { IDLOldRawClose,"OLDRAWCLOSE",1,1,0,0},
    { IDLOldRawWriteHeader,"OLDRAWWRITEHEADER",3,3,0,0},
  };


  if (!(msg_block = IDL_MessageDefineBlock("oldraw",
                    IDL_CARRAY_ELTS(msg_arr), msg_arr)))
    return IDL_FALSE;

  return IDL_SysRtnAdd(fnaddr,TRUE,IDL_CARRAY_ELTS(fnaddr));

}
Пример #13
0
int IDL_Load(void) {

  static IDL_SYSFUN_DEF2 fnaddr[]={
    { IDLOldGridRead,"OLDGRIDREAD",4,4,0,0},
    { IDLOldGridWrite,"OLDGRIDWRITE",4,4,0,0},
    { IDLOldGridLoadInx,"OLDGRIDLOADINX",2,2,0,0},
    { IDLOldGridSeek,"OLDGRIDSEEK",7,8,IDL_SYSFUN_DEF_F_KEYWORDS,0},
    { IDLOldGridOpen,"OLDGRIDOPEN",1,1,IDL_SYSFUN_DEF_F_KEYWORDS,0},
    { IDLOldGridClose,"OLDGRIDCLOSE",1,1,0,0},
  };


  if (!(msg_block = IDL_MessageDefineBlock("grd",
                    IDL_CARRAY_ELTS(msg_arr), msg_arr)))
    return IDL_FALSE;

  return IDL_SysRtnAdd(fnaddr,TRUE,IDL_CARRAY_ELTS(fnaddr));

}
Пример #14
0
int IDL_Load(void) {
#ifdef WIN32
  WORD wVersionRequested;
  WSADATA wsaData;
  int err;

  wVersionRequested = MAKEWORD(2, 0);
  err = WSAStartup(wVersionRequested, &wsaData);
  if (!err) iInitW2 = 1;
#endif

  if (!(msg_block = IDL_MessageDefineBlock("mg_net", IDL_CARRAY_ELTS(msg_arr), msg_arr))) {
    return IDL_FALSE;
  }

  if (!IDL_SysRtnAdd(net_functions, TRUE, IDL_CARRAY_ELTS(net_functions))) {
    IDL_Message(IDL_M_GENERIC, IDL_MSG_RET, "Error adding MG_NET system routines");
    return IDL_FALSE;
  }

  IDL_ExitRegister(mg_net_exit_handler);

  return IDL_TRUE;
}
Пример #15
0
bool addLayerCommands()
{
   int funcCnt = -1;
   while (func_definitions[++funcCnt].name != NULL); // do nothing in the loop body
   return IDL_SysRtnAdd(func_definitions, IDL_TRUE, funcCnt) != 0;
}
Пример #16
0
extern "C" int IDL_Load(void) {
	if (!(bam_cxc_msg_block = IDL_MessageDefineBlock("BAM_CXC", ARRLEN(bam_cxc_msg_arr), bam_cxc_msg_arr))) {
		return IDL_FALSE;
	}
	return IDL_SysRtnAdd(idl_bam_cxc_functions, TRUE, IDL_CARRAY_ELTS(idl_bam_cxc_functions));
}
Пример #17
0
int IDL_Load(void)
{
  /*Call the startup function to add the routines to IDL.*/

	//functions in the strings are recognized by IDL and must be in all caps
	static IDL_SYSFUN_DEF2 PVCAM_functions[] = {

		{(IDL_FUN_RET)pvcam_get_size, "PVCAM_GET_SIZE", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    
		{(IDL_FUN_RET)pvcam_exp_check_status, "PVCAM_EXP_CHECK_STATUS", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_FUN_RET)pvcam_get_ccs_status, "PVCAM_GET_CCS_STATUS", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    {(IDL_FUN_RET)pvcam_get_frame_capable, "PVCAM_GET_FRAME_CAPABLE", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},

    {(IDL_FUN_RET)pvcam_cont_check_status, "PVCAM_CONT_CHECK_STATUS", 3, 3, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		
    {(IDL_FUN_RET)pvcam_get_shtr_status, "PVCAM_GET_SHTR_STATUS", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_FUN_RET)pvcam_get_shtr_open_dly, "PVCAM_GET_SHTR_OPEN_DLY", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_FUN_RET)pvcam_get_shtr_close_dly, "PVCAM_GET_SHTR_CLOSE_DLY", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_FUN_RET)pvcam_get_clear_cycles, "PVCAM_GET_CLEAR_CYCLES", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		
		{(IDL_FUN_RET)pvcam_get_tmp, "PVCAM_GET_TMP", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_FUN_RET)pvcam_get_tmp_setpoint, "PVCAM_GET_TMP_SETPOINT", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		
		{(IDL_FUN_RET)pvcam_get_max_gain, "PVCAM_GET_MAX_GAIN", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_FUN_RET)pvcam_get_gain, "PVCAM_GET_GAIN", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		
		{(IDL_FUN_RET)pvcam_get_speed, "PVCAM_GET_SPEED", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_FUN_RET)pvcam_get_speed_entries, "PVCAM_GET_SPEED_ENTRIES", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_FUN_RET)pvcam_get_speed_mode, "PVCAM_GET_SPEED_MODE", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		
		{(IDL_FUN_RET)pvcam_get_bits, "PVCAM_GET_BITS", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},

		{(IDL_FUN_RET)pvcam_get_retries, "PVCAM_GET_RETRIES", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_FUN_RET)pvcam_get_timeout, "PVCAM_GET_TIMEOUT", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
	};

  static IDL_SYSFUN_DEF2 PVCAM_procedures[] = {
		{(IDL_SYSRTN_GENERIC)pvcam_init, "PVCAM_INIT", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_SYSRTN_GENERIC)pvcam_uninit, "PVCAM_UNINIT", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		
    {(IDL_SYSRTN_GENERIC)pvcam_exp_setup, "PVCAM_EXP_SETUP", 9, 9, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_SYSRTN_GENERIC)pvcam_exp_start, "PVCAM_EXP_START", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    {(IDL_SYSRTN_GENERIC)pvcam_exp_halt, "PVCAM_EXP_HALT", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},

    {(IDL_SYSRTN_GENERIC)pvcam_cont_start, "PVCAM_CONT_START", 9, 9, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    {(IDL_SYSRTN_GENERIC)pvcam_cont_get_frame, "PVCAM_CONT_GET_FRAME", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    {(IDL_SYSRTN_GENERIC)pvcam_cont_halt, "PVCAM_CONT_HALT", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		
    {(IDL_SYSRTN_GENERIC)pvcam_shtr_open_never, "PVCAM_SHTR_OPEN_NEVER", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_SYSRTN_GENERIC)pvcam_shtr_open_normal, "PVCAM_SHTR_OPEN_NORMAL", 1, 1, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		{(IDL_SYSRTN_GENERIC)pvcam_set_shtr_open_dly, "PVCAM_SET_SHTR_OPEN_DLY", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    {(IDL_SYSRTN_GENERIC)pvcam_set_shtr_close_dly, "PVCAM_SET_SHTR_CLOSE_DLY", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    {(IDL_SYSRTN_GENERIC)pvcam_set_clear_cycles, "PVCAM_SET_CLEAR_CYCLES", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    
    {(IDL_SYSRTN_GENERIC)pvcam_set_tmp_setpoint, "PVCAM_SET_TMP_SETPOINT", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    
    {(IDL_SYSRTN_GENERIC)pvcam_set_gain, "PVCAM_SET_GAIN", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    {(IDL_SYSRTN_GENERIC)pvcam_set_speed_mode, "PVCAM_SET_SPEED_MODE", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},

    {(IDL_SYSRTN_GENERIC)pvcam_set_retries, "PVCAM_SET_RETRIES", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
    {(IDL_SYSRTN_GENERIC)pvcam_set_timeout, "PVCAM_SET_TIMEOUT", 2, 2, IDL_SYSFUN_DEF_F_KEYWORDS, 0},
		
	};

	return IDL_SysRtnAdd(PVCAM_functions, IDL_TRUE, ARRLEN(PVCAM_functions)) &&
		IDL_SysRtnAdd(PVCAM_procedures, IDL_FALSE, ARRLEN(PVCAM_procedures));
}