/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos72Q src/bos/usr/include/asl.h 1.32.2.1 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 1989,2019 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)63 1.32.2.1 src/bos/usr/include/asl.h, libasl, bos72Q, q2019_13A4 2/5/19 03:07:20 */ #ifndef _H_ASL #define _H_ASL /* * COMPONENT_NAME: (libasl) ASL -- AIX Screen Library * * FUNCTIONS: include file definitions. * * ORIGINS: 27 * * (C) COPYRIGHT International Business Machines Corp. 1989, 1995 * All Rights Reserved * Licensed Materials - Property of IBM * * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ #if ! defined(_IBM5A) #include #endif #ifdef __cplusplus extern "C" { #endif extern int asl_use_back_key; /* TRUE = use "F10=Back nn" key on */ /* main screens */ /* default setting = FALSE */ extern int asl_list_return_help; /* TRUE = return ASL_HELP on non- */ /* diag list screens */ /* default setting = FALSE */ extern int from_list_help; #define ASL_MIN_LINES 24 #define ASL_MIN_COLS 80 /*---------------------------------------------------------------------------*/ /* ASL_RC ASL function-key/return codes */ /*---------------------------------------------------------------------------*/ typedef enum { /* -------- normal return codes ----- */ ASL_CANCEL = 0, /* ESC maps here ("pseudo pfkey") */ ASL_HELP = 1, ASL_REDRAW = 2, /* processed internally, not returned */ ASL_EXIT = 3, ASL_LIST = 4, ASL_DEFAULT = 5, /* processed internally, not returned */ ASL_COMMAND = 6, ASL_COMMIT = 7, /* actually select in most cases */ ASL_PRINT = 8, /* processed internally, not returned */ ASL_SHELL = 9, /* processed internally, not returned */ ASL_EDIT = 10, /* processed internally, not returned */ /* we map ESC+0 to same code as PF10 */ ASL_BACK = 11, /* returned if asl_use_back_key = TRUE */ ASL_ENTER = 12, /* ENTER maps here ("pseudo pfkey") */ ASL_ENTER_DO = 13, /* pseudo key, not returned */ ASL_REAL_COMMIT = 14, /* pseudo key, not returned */ /* otherwise ASL_CANCEL is returned */ ASL_FIND = 15, ASL_FIND_NEXT = 16, /* ------ DSMIT specific keys -------- */ ASL_MACHINE = 17, ASL_FIELD = 18, ASL_COLLECTIVE = 19, ASL_SCHEDULER = 20, /* added in dsmit-scheduler */ ASL_PREVIOUS = 21, /* goto previous menu (DIAG) */ ASL_SHOW_LIST = 22, /* show supported task/resource (DIAG) */ ASL_OK = 1000, /* "OK"; no error or no other special action */ /* -------- error return codes --------- */ ASL_FAIL = (-1), /* unspecified err. or FALSE */ ASL_ERR_NO_SUCH_TERM = (-1000), /* no entry for TERM */ ASL_ERR_TERMINFO_GET = (-1001), /* couldn't access terminfo */ ASL_ERR_NO_TERM = (-1002), /* no tty on stdout */ ASL_ERR_INITSCR = (-1004), /* libcur initscr() failed */ ASL_ERR_SCREEN_SIZE = (-1005), /* need min. 24 X 80 screen */ ASL_ERR_TERM_TYPE = (-1006) /* need vi class terminal */ } ASL_RC; /* #define ASL_NUM_PFKEYS 16 */ #define ASL_NUM_PFKEYS 23 /* ---- DSMIT imposed */ /*---------------------------------------------------------------------------*/ /* ASL_NOTE parameter constants */ /*---------------------------------------------------------------------------*/ typedef enum { /* ---- asl_note() status values */ ASL_MSG = 0, /* popup message, waits for user ack. */ ASL_ERR_MSG = 1, /* popup error message, waits for user ack. */ ASL_NO_MSG = 2, /* no popup */ ASL_INFORM_MSG = 3, /* transient popup informative message */ ASL_CANCEL_MSG = 4, /* invoke cancel popup */ ASL_EXIT_MSG = 5, /* invoke exit popup */ ASL_COMMIT_MSG = 6, /* invoke ask popup */ ASL_SHELL_MSG = 7, /* invoke shell popup */ ASL_PRINT_MSG = 8, /* invoke print popup */ ASL_COMMAND_MSG = 9, /* invoke ask popup */ ASL_HELP_MSG =10, /* invoke help popup */ ASL_MSG_CONTINUE =11, /* popup message, waits for user ack. */ ASL_SYS_ERR_MSG =12, /* popup error message, waits for user ack. */ /* user refered to log (if it exists) for */ /* full error message. */ /* ------ DSMIT specific messages */ ASL_DSMIT_INTERRUPT_MSG= 13, /* invoke interrupt popup */ ASL_DSMIT_WHEEL= 14, /* spin the wheel */ ASL_PREVIOUS_MSG=15, /* previous menu for diags. */ ASL_SHOW_LIST_MSG=16 /* show task/resource list for diags. */ } ASL_STATUS_CODE; typedef enum { /* ---- asl_note() record values */ ASL_LOG = 0, /* make a log file entry */ ASL_NO_LOG = 1, /* no logging of any kind */ ASL_VERBOSE = 2, /* log if asl_init() verbose option selected */ ASL_TRACE = 3, /* log if asl_init() trace option selected */ ASL_DEBUG = 4 /* log if asl_init() debug option selected */ } ASL_RECORD_CODE; /*---------------------------------------------------------------------------*/ /* ASL_SCREEN screen_codes (menu/popup types) */ /*---------------------------------------------------------------------------*/ typedef enum { ASL_SINGLE_MENU_SC = 0, /* single selection full screen panel */ ASL_DIALOGUE_SC = 1, /* full screen dialogue panel */ ASL_SINGLE_LIST_SC = 2, /* single selection popup */ ASL_CONTEXT_HELP_SC = 3, /* contextual help popup */ ASL_OUTPUT_SC = 4, /* output full screen panel */ ASL_ACK_MSG_SC = 5, /* user acknowleged message popup */ ASL_EDIT_SC = 6, /* long value field edit popup */ ASL_MULTI_LIST_SC = 7, /* multiple selection popup */ ASL_COMMAND_SC = 8, /* show command popup */ ASL_PRINT_LIST_SC = 9, /* print screen popup */ ASL_INFORM_MSG_SC = 10, /* information only message popup */ ASL_OUTPUT_LEAVE_SC = 11, /* output full screen panel and leave (it up)*/ ASL_EXIT_SC = 12, /* exit system popup */ ASL_CANCEL_SC = 13, /* cancel dialogue popup */ /* output full screen panel and leave (it up)*/ ASL_DIAG_OUTPUT_LEAVE_SC = 14, /* output screen w/o showing active pf keys */ ASL_DIAG_NO_KEYS_ENTER_SC = 15, ASL_DIAG_ENTER_SC = 16, /* output a non-selection full screen panel */ ASL_DIAG_DIALOGUE_SC = 17, /* dialogue panel for diagnostics */ /* help popup for diagnostics dialogue */ ASL_DIAG_DIALOGUE_HELP_SC = 18, /* list popup for dialogue list type items */ ASL_DIAG_DIALOGUE_LIST_SC = 19, /* selection panel for diagnostics */ ASL_DIAG_LIST_CANCEL_EXIT_SC = 20, /* multi selection panel for diagnostics */ ASL_DIAG_LIST_COMMIT_SC = 21, /* accept cancel, exit, or enter full screen */ ASL_DIAG_KEYS_ENTER_SC = 22, ASL_GENERAL_HELP_SC = 23, /* general help panel */ ASL_COLOR_LIST_SC = 24, /* single selection popup for HFT attributes */ /* output full screen panel and leave (it up)*/ ASL_OUTPUT_LEAVE_NO_SCROLL_SC = 25, /* output dialogue panel & leave (it up) */ ASL_DIALOGUE_LEAVE_SC = 26, /* output full screen panel and leave (it up)*/ ASL_DIAG_LEAVE_NO_KEYS_SC = 27, /* next 3 SC's add HELP key to the equivalent*/ /* ASL_DIAG SC's */ ASL_DIAG_LIST_CANCEL_EXIT_HELP_SC = 28, ASL_DIAG_ENTER_HELP_SC = 29, ASL_DIAG_LIST_COMMIT_HELP_SC = 30, /* ------- DSMIT specific screen types ------*/ ASL_DSMIT_DIALOGUE_SC = 31, ASL_DSMIT_DIALOGUE_FIELD_SC = 32, ASL_DSMIT_SINGLE_MENU_SC = 33, ASL_DSMIT_INFORM_SC = 34, /* user acknowledged popup */ ASL_DSMIT_OUTPUT_SC = 35, ASL_SEARCH_SC = 36, ASL_DSMIT_WHEEL_SC = 37, ASL_DIAG_LST_PREV_EXIT_HLP_SC = 38, /* DIAG with help.previous,exit */ ASL_DIAG_LST_SELECT_COMMIT_HLP_SC = 39, /* DIAG with commit,previous,help */ ASL_DIAG_LST_SELECT_PREV_HLP_SC = 40 /* DIAG with previous,help,select */ } ASL_SCREEN_CODE; #define ASL_IS_DIAG_SC_CODE(it) ( \ (it) == ASL_DIAG_OUTPUT_LEAVE_SC \ || (it) == ASL_DIAG_NO_KEYS_ENTER_SC \ || (it) == ASL_DIAG_ENTER_SC \ || (it) == ASL_DIAG_DIALOGUE_SC \ || (it) == ASL_DIAG_DIALOGUE_HELP_SC \ || (it) == ASL_DIAG_DIALOGUE_LIST_SC \ || (it) == ASL_DIAG_LIST_CANCEL_EXIT_SC \ || (it) == ASL_DIAG_LIST_COMMIT_SC \ || (it) == ASL_DIAG_KEYS_ENTER_SC \ || (it) == ASL_DIAG_LEAVE_NO_KEYS_SC \ || (it) == ASL_DIAG_LIST_CANCEL_EXIT_HELP_SC \ || (it) == ASL_DIAG_ENTER_HELP_SC \ || (it) == ASL_DIAG_LIST_COMMIT_HELP_SC \ || (it) == ASL_DIAG_LST_PREV_EXIT_HLP_SC \ || (it) == ASL_DIAG_LST_SELECT_COMMIT_HLP_SC \ || (it) == ASL_DIAG_LST_SELECT_PREV_HLP_SC \ ) /*---------------------------------------------------------------------------*/ /* Public ASL routines */ /*---------------------------------------------------------------------------*/ extern void asl_beep(); /* rings the bell */ extern ASL_RC asl_check_file_entries(); /* -- DSMIT use only */ extern ASL_RC asl_clear_screen(); /* clear screen */ extern ASL_RC asl_execute(); /* ---- Diagnostics use only */ extern ASL_RC asl_get_list(); /* convert string to list structure */ extern ASL_RC asl_init(); /* Initial setup of curses & signals */ extern ASL_RC asl_quit(); /* Closeout curses */ extern ASL_RC asl_read(); /* ---- Diagnostics use only */ extern void asl_redraw(); /* refresh screen using curscr */ extern void asl_reset(); /* ---- SMIT use only */ extern void asl_restore(); /* ---- SMIT use only */ extern ASL_RC asl_restore_tty(); /* ---- SMIT use only */ extern ASL_RC asl_restore_tty_colors(); /* -- SMIT use only */ extern ASL_RC asl_ring(); /* copies subfield from ring */ extern ASL_RC asl_save_tty(); /* ---- SMIT use only */ extern ASL_RC asl_screen(); /* screen displays */ extern void asl_set_changed(); /* ---- SMIT use only */ #if defined(_IBM5A) extern ASL_RC asl_note(); /* send messages to popups/log file */ extern ASL_RC asl_vnote(); /* ---- Diagnostics use only */ #else extern ASL_RC asl_note( ASL_STATUS_CODE status, /* error/message status */ ASL_RECORD_CODE record, /* where to record note */ char *format, /* NLprintf() style format */ ... ); extern ASL_RC asl_vnote ( ASL_STATUS_CODE status, /* error/message status */ ASL_RECORD_CODE record, /* where to record note */ char *format, /* NLprintf() style format */ va_list arg /* vsprint() style argument list */ ); #endif /*--------------------------------------------------------------------------*/ #define ASL_DIAG_LINES 24 #define ASL_DIAG_COLS 80 /*--------------------------------------------------------------------------*/ /* asl parameter binary switch values */ #define ASL_YES ((char) ('y')) #define ASL_NO ((char) ('n')) #define ASL_READ_BUF_SIZE 100 #define ASL_MSG_MAX_STRLEN 32000 #define ASL_MAX_VALUE_SIZE 32760 /*#define ASL_MAX_INPUT_BUF 2048*/ /* Defect 150763. Increased the maximum size */ /* of the input value. This may cause problems*/ /* because it may make the command too long. */ #define ASL_MAX_INPUT_BUF (ASL_MAX_VALUE_SIZE / 2) /*---------------------------------------------------------------------------*/ /* These are the (header) "type" parameters for asl displays */ /*---------------------------------------------------------------------------*/ typedef struct { /* ---- generally "universal" parameters --- */ /* ASL_SINGLE_MENU_SC, ASL_DIALOGUE_SC, */ /* ASL_SINGLE_LIST_SC, ASL_OUTPUT_SC */ ASL_SCREEN_CODE screen_code; long max_index; /* 0 orig. max index for array of asl_scr_info items */ /* current index for item that cursor "points" to; init. as 1*/ long cur_index; /* current offset for scroll window position; init. as 0 */ long cur_win_offset; /* current index for scroll window position; init. as 0 */ long cur_win_index; /* ---- generally "menu" related parameters ---- */ /* ASL_YES, ASL_NO = default; allow mult. selects for list */ char multi_select; /* ---- generally "dialogue" related parameters ---- */ long text_size; /* size of display field to use for discriptive text,*/ /* set to 0 for default */ char ask; /* ask user if they really want to execute command */ } ASL_SCR_TYPE; #define ASL_DIALOGUE_TEXT_SIZE 50 #define ASL_DEFAULT_TEXT_SIZE 50 #define ASL_DEFAULT_LIST_TEXT_SIZE 70 #define ASL_DIAG_DIALOGUE_TEXT_SIZE 50 /* Changed from 30 to 50 to */ /* match with ASL_DIALOGUE_TEXT_SIZE as recommended per defect 213822 */ /*---------------------------------------------------------------------------*/ /* array element for each display item, first entry is for title, */ /* last entry is for message line */ /*---------------------------------------------------------------------------*/ typedef struct { /* ---- generally "universal" parameters ---- */ /* [keep the text field the first field in this struct.] */ char *text; /* the text line(s) to be displayed */ long line_num; /* asl's internal screen line number */ /* ---- generally "menu" related parameters ---- */ /* ASL_YES, ASL_NO; for info., can't be selected */ char non_select; char item_flag; /* leading flag char */ /* ASL_YES/ASL_NO = default; item has been selected by user */ char multi_select_flag; /* ---- generally "dialogue" related parameters ---- */ char op_type; /* type of operations allowed on this field */ char entry_type; /* type of (user) entry allowed in the field */ /* ASL_YES, ASL_YES_NON_EMPTY, ASL_EXCEPT_WHEN_EMPTY */ /* ASL_NO = default; */ /* ASL_YES or ASL_YES_NON_EMPTY means display required flag */ char required; /* ASL_YES, ASL_NO = default; field changed from def. value */ char changed; /* disp. text of allowed/default choice(s, seperated by ",") */ char *disp_values; /* MUST point to string (buffer) of size (entry_size + 1) if */ /* there is ANY way values may be changed (typein/list/ring) */ /* Also used to hold ASL_DIAG_..._SC title-line screen num. */ char *data_value; /* maximum size of (entered_)value that can be entered OR */ /* returned (incl. a "return" of anything from disp_values) */ long entry_size; /* ASL_YES, ASL_NO = default; multiselect allowed for list */ char multi_select; /* current index of def. value, -1 if entered_value active */ long cur_value_index; long default_value_index; /* 0 origin index of default value */ } ASL_SCR_INFO; /* asl_cmd_info.required (+ ASL_YES, ASL_NO) */ #define ASL_YES_NON_EMPTY ((char) ('+')) #define ASL_EXCEPT_WHEN_EMPTY ((char) ('?')) /* asl_scr_info.disp_values */ #define ASL_RING_SEP ((char) (',')) /* asl_scr_info.op_type (field operations) */ #define ASL_NOOP_ENTRY ((char) ('n')) #define ASL_RING_ENTRY ((char) ('r')) #define ASL_LIST_ENTRY ((char) ('l')) /* asl_scr_info.entry_type (entry types) */ #define ASL_TEXT_ENTRY ((char) ('t')) #define ASL_RAW_TEXT_ENTRY ((char) ('r')) #define ASL_NUM_ENTRY ((char) ('#')) #define ASL_SIGNED_NUM_ENTRY ((char) ('-')) #define ASL_HEX_ENTRY ((char) ('x')) #define ASL_FILE_ENTRY ((char) ('f')) #define ASL_NO_ENTRY ((char) ('n')) #define ASL_INVISIBLE_ENTRY ((char) ('i')) #define ASL_SEMI_COLON_ENTRY ((char) (';')) #ifdef DEBUG #define ASL_TRACER(msg) \ asl_note(ASL_NO_MSG, ASL_DEBUG, "## %14.14s:%4.4d %s", __FILE__, __LINE__, msg) #else #define ASL_TRACER(msg) #endif #ifdef __cplusplus } #endif #endif /* _H_ASL */