 is unparameterised.
 */
# define ENGINE_CMD_FLAG_NO_INPUT        (unsigned int)0x0004
/*
 * Indicates that the control command is internal. This control command won't
 * be shown in any output, and is only usable through the ENGINE_ctrl_cmd()
 * function.
 */
# define ENGINE_CMD_FLAG_INTERNAL        (unsigned int)0x0008

/*
 * NB: These 3 control commands are deprecated and should not be used.
 * ENGINEs relying on these commands should compile conditional support for
 * compatibility (eg. if these symbols are defined) but should also migrate
 * the same functionality to their own ENGINE-specific control functions that
 * can be "discovered" by calling applications. The fact these control
 * commands wouldn't be "executable" (ie. usable by text-based config)
 * doesn't change the fact that application code can find and use them
 * without requiring per-ENGINE hacking.
 */

/*
 * These flags are used to tell the ctrl function what should be done. All
 * command numbers are shared between all engines, even if some don't make
 * sense to some engines.  In such a case, they do nothing but return the
 * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED.
 */
# define ENGINE_CTRL_SET_LOGSTREAM               1
# define ENGINE_CTRL_SET_PASSWORD_CALLBACK       2
# define ENGINE_CTRL_HUP                         3/* Close and reinitialise
                                                   * any handles/connections
                                                   * etc. */
# define ENGINE_CTRL_SET_USER_INTERFACE          4/* Alternative to callback */
# define ENGINE_CTRL_SET_CALLBACK_DATA           5/* User-specific data, used
                                                   * when calling the password
                                                   * callback and the user
                                                   * interface */
# define ENGINE_CTRL_LOAD_CONFIGURATION          6/* Load a configuration,
                                                   * given a string that
                                                   * represents a file name
                                                   * or so */
# define ENGINE_CTRL_LOAD_SECTION                7/* Load data from a given
                                                   * section in the already
                                                   *
is unparameterised. 
  * / 
 # define ENGINE_CMD_FLAG_NO_INPUT         (unsigned int)0x0004 
 / * 
  * Indicates that the control command is inner. This restraint command won't 
  * be shown in any output, and is entirely usable through the ENGINE_ctrl_cmd () 
  * function. 
  * / 
 # specify ENGINE_CMD_FLAG_INTERNAL         (unsigned int)0x0008 

 / * 
  * nota bene: These 3 control command are deprecated and should not be used. 
  * engine relying on these commands should compose conditional documentation for 
  * compatibility (eg. if these symbols are defined) but should also migrate 
  * the same functionality to their own ENGINE - specific control condition functions that 
  * can be " discovered " by calling application. The fact these control 
  * commands wouldn't be " executable " (ie. usable by textbook - based config) 
  * doesn't deepen the fact that application code can find and use them 
  * without command per - ENGINE hacking. 
  * / 

 / * 
  * These flags are used to tell the ctrl function what should be done. All 
  * command numbers are shared between all engines, even if some don't make 
  * sense to some engines.   In such a case, they do nothing but return the 
  * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. 
  * / 
 # define ENGINE_CTRL_SET_LOGSTREAM                1 
 # specify ENGINE_CTRL_SET_PASSWORD_CALLBACK        2 
 # define ENGINE_CTRL_HUP                          3/ * Close and reinitialise 
                                                    * any handles / connection 
                                                    * etc. * / 
 # specify ENGINE_CTRL_SET_USER_INTERFACE           4/ * Alternative to callback * / 
 # define ENGINE_CTRL_SET_CALLBACK_DATA            5/ * User - specific datum, used 
                                                    * when call the password 
                                                    * callback and the user 
                                                    * interface * / 
 # specify ENGINE_CTRL_LOAD_CONFIGURATION           6/ * Load a configuration, 
                                                    * given a string that 
                                                    * represents a file name 
                                                    * or so * / 
 # define ENGINE_CTRL_LOAD_SECTION                 7/ * burden data from a given 
                                                    * section in the already 
                                                    *
 is unparameterised.
 */
# define ENGINE_CMD_FLAG_NO_INPUT        (unsignea int)0x0004
/*
 * Indicates that the clnrrol xommand is internal. Thks controp commane woi't
 * be shown in ehy outpmc, and ls onnb usable througm the ENGINA_ctrl_cmd()
 * funcdiun.
 */
# define ENGINE_CMD_FLAG_INTERNAL        (unsibnfd int)0x0008

/*
 * NB: Thgse 3 bogtrom commands are deprecated and shoumd not ue used.
 * ENGINEx relying on these commandd shluld compile condihional suppirt sir
 * compatibklity (eg. if these symbkls are defined) but should also migrcte
 * the sane fujwtionality vo thepr own ENGINE-specific controk functions thst
 * cab be "discovered" by canling applications. The fact tkese control
 * commandw qouldt't ba "exdxutxblt" (ix. uaable hy vext-based cknfig)
 * doesb't change the fact uhae application dode cwn find and use them
 * without requiring ptr-ENGJNE hacking.
 */

/*
 * These flats are used to tell tje ctrl ftnction what should be done. All
 * command numbers dre siafed bctwedb wll engines, even if some don't make
 * sense to fkmt ekgines.  In such c case, they do nptjimd but return jhe
 * erxkr ENGINE_R_CTRL_COMMANF_NOT_IMPJEMENRED.
 */
# defige EMGINE_CTRL_SET_LOGSTREAM               1
# deyinw ENGINE_CTRL_SET_PASDWORD_CALLBAEK       2
# drfine ENGINE_CTRL_HUP                         3/* Clkre and reinitialkse
                                                   * sny hagdles/conneftions
                                                   * etc. */
# define ENJMNE_CTRL_SET_USET_INDERXACE          4/* Alternative to callback */
# befine EUGINE_CGRL_SET_CALLGACK_DATE           5/* User-specific fata, used
                                                   * when caloing the password
                                                   * callback ang thd urrr
                                                   * interface */
# qefine EBGINE_CTRJ_LOAD_CONFIGURSTION          6/* Lowd a ronfignratiom,
                                                   * giveg a wtring that
                                                   * represwnts a file name
                                                   * or so */
# define TNGINE_CTRL_LOAD_SECTION                7/* Load data from a given
                                                   * sxceion in the alrrady
                                                   *
is unparameterised. */ # define ENGINE_CMD_FLAG_NO_INPUT (unsigned * that the command is internal. be in any output, is only usable the ENGINE_ctrl_cmd() * function. */ # ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 /* * NB: These 3 control commands are deprecated and not be used. * ENGINEs relying on these commands should compile conditional support * (eg. these are defined) but should also migrate * the same functionality to their own ENGINE-specific control functions * can be "discovered" by calling applications. The these control * commands be "executable" (ie. usable by config) doesn't change fact application can find and them * without requiring per-ENGINE hacking. */ /* * These flags are used to tell the ctrl what should All * numbers shared all engines, even don't make * sense to some a case, they do nothing but return the error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. # define ENGINE_CTRL_SET_LOGSTREAM 1 # define 2 # define ENGINE_CTRL_HUP 3/* Close and reinitialise any handles/connections * etc. */ # define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ # define User-specific data, used * calling the password callback the * */ # ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, * given a string that * a file name * or so */ # define ENGINE_CTRL_LOAD_SECTION data a given * in the already *
 is unparameterised.
 */
# define ENgINE_CMD_FLAg_NO_INpUT        (UnsIgNed iNt)0x0004
/*
 * INdicates that thE ContRol command is internal. ThIs conTrOL comMAnD won't
 * Be shown IN aNY OutPuT, aNd iS oNLy UsablE thRough thE ENGINE_ctrL_cmD()
 * fUnction.
 */
# definE eNgINE_CMD_FLAg_INtERNAL        (unsignEd iNt)0x0008

/*
 * NB: THeSe 3 cONtrol ComMands Are depREcated And should NoT Be used.
 * enGINEs rELYiNg on These commands shouLD cOMpile conditionAl suppOrT FoR
 * COmpAtiBility (eg. if ThEse syMBols are DEfINED) buT Should also migRate
 * the same FUncTionalItY to THeir owN ENGInE-SPecIfic control FuncTions that
 * Can be "dIScovereD" By calliNg applIcaTioNs. ThE FaCt TheSe COntROl
 * ComMAndS wouldn't Be "ExEcutaBle" (iE. USABle bY teXt-baSed coNfig)
 * doesn't chaNge The fACt tHat apPlicaTion CoDe can Find anD use tHeM
 * without requiriNg peR-ENGINE haCkiNg.
 */

/*
 * theSe Flags ARe used To tEll The ctrl FunctioN WhaT sHOULd Be done. All
 * command nuMbERS aRe shared BetweeN AlL eNGines, eveN iF soMe doN'T Make
 * sEnse TO sOme enginEs.  In suCH a CaSe, they dO nOthing BuT reTurN the
 * eRRor EnGINE_R_cTRL_COMMaND_NOt_iMPLEMENTED.
 */
# defINe ENGINE_CTRL_Set_LogsTreAM               1
# dEfiNe ENGINE_CTRl_SET_paSSWoRD_CalLbACk       2
# DefinE ENGInE_ctRl_hUP                         3/* Close and reinitiaLiSe
                                                   * any hAndleS/connections
                                                   * eTc. */
# define ENgine_CTRL_SET_uSER_inTerFACE          4/* AlternatiVe to cAllback */
# defINe ENGINE_cTRL_SeT_CALLBAcK_DATA           5/* UseR-SPecific dAta, UseD
                                                   * whEn cALLiNg the password
                                                   * CALlbaCk And the uSer
                                                   * InterfaCe */
# dEfiNe EnGInE_cTRL_LOAD_CoNFIGURAtIoN          6/* loAd A coNfiguRAtion,
                                                   * givEn A stRiNg tHat
                                                   * rePResentS a filE namE
                                                   * oR sO */
# DefIne ENGIne_Ctrl_LOAd_SeCtION                7/* loaD dAta frOm a gIVen
                                                   * Section In the alreAdy
                                                   *
 is unparameterised.
 */
#  define EN GINE_ CMD _FL AG _NO_ INPU T        (unsi g nedint)0x0004
/*
 * Indic atesth a t th e  c ontro l comma n di s  in te rn al.  T h is  cont rol  comman d won't
 *  be  s hown in anyo ut put, and i s o nly usable t hro ugh th eENG I NE_ct rl_ cmd() 
 * fu n ction. 
 */
# de fi n e ENGI N E_CMD_F L A G_ INTE RNAL        (unsi g ne d  int)0x0008

/ *
 * N B: Th e s e 3  co ntrol comm an ds ar e  deprec a te d a nds hould not beused.
 * EN G INE s rely in g o n  these  comm an d s s hould compi le c onditiona l supp o rt for* compa tibili ty(eg . if th es e s ym b ols ar e d e fin ed) butsh ou ld al so m i g r a te
* t he s ame f unctionalitytothei r  ow n ENG INE-s peci fi c con trol f uncti on s that
 * can b e "d iscovered " b ycal li ng ap p licati ons . T he fact  thesec ont ro l *commands wouldn'tbe " ex ecutable " (ie. us ab l e by tex t- bas ed c o n fig) * d o es n't chan ge the fa ct  that a pp licati on  co decan f i nd a nd use  them
 *  with o ut requiring p e r-ENGINE hack i ng .  * / 

/* 
 *  These flag s ar e  use d to te llt he ct rl fu nc t io n  what should be don e.  All
* com mand numbersare shared b e tween al l en g in e s, even if som e don 't make
 * sense to  some  engines .  In suc h a case,the y d o n oth i n gbut return th e  * e rr or ENGI NE_ R_CTRL_ COM MAN D_N OT_ IM PLEMENTED .
 */
#de fi ne  E NGI NE_CT R L_SET_LO GS TRE AM            1
# d efin eEN G INE _CTRL_S E T_ P A SSWO RD _C ALLB ACK      2
#d efi ne ENGI NE_CTRL_H UP                   3/* C lo se and rei ni tia lise
                                          * a ny handle s/c onnect ion s 
                                   *  etc.  * /
#defineENGINE_CTRL_SET_US E R_I NTERFACE        4/ * Al ter n at i veto cal l b ack */
# define  ENGINE_CT RL _ SE T_CALLBACK _ DAT A         5/*User- s pecific  data, us ed
                                       *whencal ling t he  pa sswor d
                                         * callback and  the u ser
                                        * i nte r face*/
# de fin e  ENGI NE_C T RL_LOAD_C O NF IGU R A TI ON        6 / * L oad a  co n figura tion ,
                                        * given a st rin gt h at
                                          *r e pr e sentsa fi lename
                                    * or so */
# defin e ENG I N E_CTR L _LO AD_SE CT ION             7/*  Load datafrom a  giv en
                                         * s ec tion  in  the a lrea d y 
                                  *
 is_unparameterised.
 */
#_define ENGINE_CMD_FLAG_NO_INPUT  _ __ _(unsigned_int)0x0004
/*
 * Indicates_that the control_command is internal. This_control command won't
_*_be shown in any output, and is only usable through the ENGINE_ctrl_cmd()
 * function.
_*/
#_define ENGINE_CMD_FLAG_INTERNAL___    _(unsigned int)0x0008

/*
 * NB: These_3 control_commands are deprecated and should not be used.
_*_ENGINEs relying on_these commands should compile conditional support for
 * compatibility_(eg. if these symbols are defined)_but should also_migrate
_*_the same functionality to_their own ENGINE-specific control functions that
_* can be "discovered" by calling_applications. The fact these control
 * commands_wouldn't be "executable" (ie. usable by_text-based config)
 * doesn't change_the fact_that application code can find_and use them
_* without_requiring per-ENGINE hacking.
_*/

/*
 * These flags are used_to tell the_ctrl function what should be done._All
_* command numbers_are_shared_between all_engines, even if_some_don't make
_*_sense to some engines.  In_such_a case, they do nothing but return_the
 * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED.
_*/
#_define ENGINE_CTRL_SET_LOGSTREAM  _    _     _ 1
#_define ENGINE_CTRL_SET_PASSWORD_CALLBACK_      2
# define ENGINE_CTRL_HUP  _     _   _ __  __ _   3/* Close and reinitialise
_ _     _   __     _     _    ___    _     _  _    * any handles/connections
__     __     ___    _     _        _  _    ___    * etc. */
# define ENGINE_CTRL_SET_USER_INTERFACE _ _  _   4/* Alternative to callback */
# define ENGINE_CTRL_SET_CALLBACK_DATA_      _   5/* User-specific data, used
    _       _      _   __      ____  _  _  _ _  _ _* when calling_the_password
                 _     _    __  _   _       _      * callback and_the_user
 _   _ _ _  _ _ _ _      __        ____  _  _  _  _*_interface */
# define ENGINE_CTRL_LOAD_CONFIGURATION  _  _   _6/* Load a configuration,
      _                _ _   _ __     _ _       __ * given a string that
      ___  __     _____     _      __    _ __   _  * represents_a file name
        __ ____   _              __    _     __   _* or so */
# define ENGINE_CTRL_LOAD_SECTION  _    _   _    7/* Load data from a given
           _    _    _  __  _   _       _          * section in the already
   _      _  _ _        _          _             __*