EXTERN
#ifdef EXTERN
EXTERN X_chars edchars;
EXTERN Source *source; /* yyparse/yylex source */
EXTERN YYSTYPE yylval; /* result from yylex */
EXTERN struct ioword *heres [HERES], **herep;
EXTERN char ident [IDENT+1];
EXTERN char **histlist; /* saved commands */
EXTERN char **histptr; /* last history item */
EXTERN int histsize; /* history size */
#ifdef EXTERN
EXTERN const char *kshname; /* $0 */
EXTERN pid_t kshpid; /* $$, shell pid */
EXTERN pid_t procpid; /* pid of executing process */
EXTERN uid_t ksheuid; /* effective uid of shell */
EXTERN int exstat; /* exit status */
EXTERN int subst_exstat; /* exit status of last $(..)/`..` */
EXTERN const char *safe_prompt; /* safe prompt if PS1 substitution fails */
EXTERN Area aperm; /* permanent object space */
EXTERN struct env {
EXTERN char shell_flags [FNFLAGS];
EXTERN char null [] I__(""); /* null value for variable */
EXTERN char space [] I__(" ");
EXTERN char newline [] I__("\n");
EXTERN char slash [] I__("/");
EXTERN int shl_stdout_ok;
EXTERN int volatile trap; /* traps pending? */
EXTERN int volatile intrsig; /* pending trap interrupts executing command */
EXTERN int volatile fatal_trap;/* received a fatal signal */
EXTERN unsigned int ksh_tmout;
EXTERN enum tmout_enum ksh_tmout_state I__(TMOUT_EXECUTING);
EXTERN int really_exit;
EXTERN int ifs0 I__(' '); /* for "$*" */
EXTERN Getopt builtin_opt; /* for shell builtin commands */
EXTERN Getopt user_opt; /* parsing state for getopts builtin command */
EXTERN struct coproc coproc;
EXTERN sigset_t sm_default, sm_sigchld;
EXTERN char *builtin_argv0;
EXTERN Tflag builtin_flag; /* flags of called builtin (SPEC_BI, etc.) */
EXTERN char *current_wd;
EXTERN int current_wd_size;
EXTERN int x_cols I__(80); /* tty columns */
EXTERN struct table taliases; /* tracked aliases */
EXTERN struct table builtins; /* built-in commands */
EXTERN struct table aliases; /* aliases */
EXTERN struct table keywords; /* keywords */
EXTERN struct table homedirs; /* homedir() cache */
EXTERN char *path; /* copy of either PATH or def_path */
EXTERN const char *def_path; /* path to use if PATH not set */
EXTERN char *tmpdir; /* TMPDIR value */
EXTERN const char *prompt;
EXTERN int cur_prompt; /* PS1 or PS2 */
EXTERN int current_lineno; /* LINENO value */
#ifdef EXTERN
EXTERN int tty_fd I__(-1); /* dup'd tty file descriptor */
EXTERN int tty_devtty; /* true if tty_fd is from /dev/tty */
EXTERN TTY_state tty_state; /* saved tty state */
EXTERN int bios_read PROTO((void *, u_int, u_int, u_int));
EXTERN int bios_write PROTO((void *, u_int, u_int, u_int));
EXTERN void bios_critic PROTO((void));
EXTERN disk_t * disk_open PROTO((char *));
EXTERN void disk_close PROTO((disk_t *));
EXTERN void * disk_read PROTO((disk_t *, u_int, u_int));
EXTERN int disk_write PROTO((disk_t *, u_int, u_int, void *));
EXTERN int readdisklabel PROTO((disk_t *));
EXTERN u_int ahdi_getparts PROTO((disk_t *, ptable_t *, u_int, u_int));
EXTERN u_int ahdi_getparts PROTO((disk_t *, ptable_t *, u_int, u_int));
EXTERN int bsd_getlabel PROTO((disk_t *, struct disklabel *, u_int));
EXTERN int cclose PROTO((int));
EXTERN off_t clseek PROTO((int, off_t, int));
EXTERN int copen PROTO((const char *, int));
EXTERN size_t cread PROTO((int, void *, size_t));
EXTERN disk_t * disk_open PROTO((char *));
EXTERN void disk_close PROTO((disk_t *));
EXTERN void * disk_read PROTO((disk_t *, u_int, u_int));
EXTERN int disk_write PROTO((disk_t *, u_int, u_int, void *));
EXTERN int bios_read PROTO((void *, u_int, u_int, u_int));
EXTERN int bios_write PROTO((void *, u_int, u_int, u_int));
EXTERN void bios_critic PROTO((void));
EXTERN int aout_load PROTO((int, struct osdsc *, char **, int));
EXTERN void bsd_startup PROTO((struct kparamb *)) NORETURN;
EXTERN int elf_load PROTO((int, struct osdsc *, char **, int));
EXTERN int eprintf PROTO((char *, ...));
EXTERN void error PROTO((int, char *, ...));
EXTERN void fatal PROTO((int, char *, ...)) NORETURN;
EXTERN void init_toslib PROTO((char *));
EXTERN int key_wait PROTO((char *));
EXTERN void press_any_key PROTO((void));
EXTERN void redirect_output PROTO((char *));
EXTERN void set_wait_for_key PROTO((void));
EXTERN void sys_info PROTO((struct osdsc *));
EXTERN int veprintf PROTO((char *, VA_LIST));
EXTERN void xexit PROTO((int)) NORETURN;
EXTERN void * xmalloc PROTO((size_t));
EXTERN void * xrealloc PROTO((void *, size_t));
#ifndef EXTERN
EXTERN enum mailmode_e mailmode; /* mode mail is running in */
EXTERN int sawcom; /* Set after first command */
EXTERN char *Tflag; /* -T temp file for netnews */
EXTERN int senderr; /* An error while checking */
EXTERN int edit; /* Indicates editing a file */
EXTERN int readonly; /* Will be unable to rewrite file */
EXTERN int noreset; /* String resets suspended */
EXTERN int sourcing; /* Currently reading variant file */
EXTERN int loading; /* Loading user definitions */
EXTERN FILE *itf; /* Input temp file buffer */
EXTERN FILE *otf; /* Output temp file buffer */
EXTERN int image; /* File descriptor for image of msg */
EXTERN FILE *input; /* Current command input file */
EXTERN char mailname[PATHSIZE]; /* Name of current file */
EXTERN char displayname[80]; /* Prettyfied for display */
EXTERN char prevfile[PATHSIZE]; /* Name of previous file */
EXTERN char *tmpdir; /* Path name of temp directory */
EXTERN char *homedir; /* Path name of home directory */
EXTERN char *origdir; /* Path name of directory we started in */
EXTERN char *myname; /* My login name */
EXTERN off_t mailsize; /* Size of system mailbox */
EXTERN struct message *dot; /* Pointer to current message */
EXTERN struct var *variables[HSHSIZE]; /* Pointer to active var list */
EXTERN struct grouphead *groups[HSHSIZE];/* Pointer to active groups */
EXTERN struct smopts_s *smoptstbl[HSHSIZE];
EXTERN struct ignoretab ignore[2]; /* ignored and retained fields
EXTERN struct ignoretab saveignore[2]; /* ignored and retained fields
EXTERN struct ignoretab bouncetab[2]; /* special for bounce */
EXTERN struct ignoretab ignoreall[2]; /* special, ignore all headers */
EXTERN struct ignoretab detachall[2]; /* special for detach, do all parts */
EXTERN struct ignoretab forwardtab[2]; /* ignore tab used when forwarding */
EXTERN char **altnames; /* List of alternate names for user */
EXTERN int debug; /* Debug flag set */
EXTERN int screenwidth; /* Screen width, or best guess */
EXTERN int screenheight; /* Screen height, or best guess,
EXTERN int realscreenheight; /* the real screen height */
EXTERN int wait_status; /* wait status set by wait_child() */
EXTERN int cond; /* Current state of conditional exc. */
EXTERN struct cond_stack_s *cond_stack; /* stack for if/else/endif condition */
EXTERN struct name *extra_headers; /* extra header lines */
EXTERN char *prog_name;
EXTERN char *src_name;
EXTERN char *out_name INIT("menu_defs");
EXTERN char *sys_name INIT("menu_sys.def");
EXTERN int do_dynamic INIT(0);
EXTERN int do_msgxlat INIT(0);
EXTERN int do_expands INIT(0);
EXTERN int line_no INIT(1);
EXTERN int had_errors INIT(FALSE);
EXTERN int max_strlen INIT(1);
EXTERN id_rec *root INIT(NULL);
EXTERN struct menu_info default_info;
EXTERN id_rec default_menu;
EXTERN action error_act INIT({NULL});
EXTERN char *prog_name;
EXTERN char *src_name;
EXTERN char *out_name INIT("msg_defs");
EXTERN char *sys_name INIT("msg_sys.def");
EXTERN int line_no INIT(1);
EXTERN int had_errors INIT(FALSE);
EXTERN int max_strlen INIT(1);
EXTERN id_rec *root INIT(NULL);
EXTERN int decode_motor_level(int);
EXTERN int common_clear(struct function_block *, int, bool);
EXTERN int common_identify(struct function_block *, int, bool, int, struct scmd_identify_response *);
EXTERN int common_diag(struct function_block *, int, bool, int, struct scmd_diag_response *);
EXTERN int common_get_motor(struct function_block *, int, bool, int, struct scmd_motor_response *);
EXTERN int common_set_motor(struct function_block *, int, bool, int, char, int8_t);
EXTERN int common_invert_motor(struct function_block *, int, bool, int, char);
EXTERN int common_bridge_motor(struct function_block *, int, bool, int);
EXTERN int common_enable_disable(struct function_block *, int, bool, int);
EXTERN int common_control_1(struct function_block *, int, bool, int);
EXTERN int common_get_update_rate(struct function_block *, int, bool, uint8_t *);
EXTERN int common_set_update_rate(struct function_block *, int, bool, uint8_t);
EXTERN int common_force_update(struct function_block *, int, bool);
EXTERN int common_get_ebus_speed(struct function_block *, int, bool, uint8_t *);
EXTERN int common_set_ebus_speed(struct function_block *, int, bool, uint8_t);
EXTERN int common_get_lock_state(struct function_block *, int, bool, int, uint8_t *);
EXTERN int common_set_lock_state(struct function_block *, int, bool, int, uint8_t);
EXTERN int i2cspi_clear(int, bool);
EXTERN int i2cspi_read_register(int, bool, int, uint8_t, uint8_t, uint8_t *);
EXTERN int i2cspi_write_register(int, bool, int, uint8_t, uint8_t);
EXTERN void print_identify(struct scmd_identify_response *);
EXTERN void print_diag(struct scmd_diag_response *);
EXTERN void print_motor(struct scmd_motor_response *);
EXTERN void uart_set_subtype(int, int);
EXTERN int uart_clear(int, bool);
EXTERN int uart_read_register(int, bool, int, uint8_t, uint8_t, uint8_t *);
EXTERN int uart_write_register(int, bool, int, uint8_t, uint8_t);
EXTERN int uart_ul_spi_read_one(int, bool);
sc = EXTERN;
lint_assert(sc == EXTERN);
lint_assert(sc == EXTERN);
if (sym->s_scl == EXTERN &&
sym->s_scl == EXTERN &&
if (sym->s_scl == EXTERN && sym->s_def == DECL) {
else if ((dcs->d_scl == EXTERN && sc == THREAD_LOCAL)
|| (dcs->d_scl == THREAD_LOCAL && sc == EXTERN))
dcs->d_scl = EXTERN; /* ignore thread_local */
if (rdsym->s_scl == EXTERN && dsym->s_scl == EXTERN)
if (rdsym->s_scl == EXTERN && rdsym->s_def == DEF) {
if (rdsym->s_scl == EXTERN) {
case EXTERN:
if (esym->s_scl != EXTERN && esym->s_scl != STATIC) {
if (esym->s_scl == EXTERN) {
dsym->s_scl = EXTERN;
if (dsym->s_scl == EXTERN)
dsym->s_scl = EXTERN;
} else if (dsym->s_scl != EXTERN && dsym->s_scl != TYPEDEF) {
dsym->s_scl = EXTERN;
if (dcs->d_redeclared_symbol != NULL && dsym->s_scl == EXTERN)
if (dsym->s_scl == EXTERN) {
outsym(dsym, EXTERN, dsym->s_def);
if (!fcall && !szof && sym->s_kind == SK_VCFT && sym->s_scl == EXTERN)
if (sc != EXTERN && sc != STATIC && sc != AUTO && sc != REG)
if (sc == EXTERN) {
if (sc == EXTERN) {
(sym->s_scl == EXTERN && (allow_trad || allow_c99))) {
lint_assert(scl == EXTERN || scl == STATIC);
if (sc != EXTERN && !(sc == STATIC && sym->s_type->t_tspec == FUNC))
fsym->s_scl = EXTERN;
if (dcs->d_scl == EXTERN && funcsym->s_inline)
scl = block_level > 0 ? AUTO : EXTERN;
kwdef_sclass( "extern", EXTERN, 78,0,1),
if (sc != EXTERN && sc != STATIC &&
if (ln->u.sym->s_scl == EXTERN)
sym->s_scl = EXTERN;
EXTERN int output_emcfan_info(int, uint8_t, int, bool, bool);
EXTERN void output_emcfan_register_list(uint8_t, int, bool, bool);
EXTERN int output_emcfan_register_read(int, uint8_t, int, uint8_t, uint8_t, bool, bool);
EXTERN int output_emcfan_minexpected_rpm(int, uint8_t, int, uint8_t, bool, bool);
EXTERN int output_emcfan_edges(int, uint8_t, int, uint8_t, bool, bool);
EXTERN int output_emcfan_drive(int, uint8_t, int, uint8_t, bool, bool);
EXTERN int output_emcfan_divider(int, uint8_t, int, uint8_t, bool, bool);
EXTERN int output_emcfan_pwm_basefreq(int, uint8_t, int, uint8_t, int, bool, bool);
EXTERN int output_emcfan_polarity(int, uint8_t, int, uint8_t, int, bool, bool);
EXTERN int output_emcfan_pwm_output_type(int, uint8_t, int, uint8_t, int, bool, bool);
EXTERN int output_emcfan_fan_status(int, uint8_t, int, uint8_t, uint8_t, int, bool, bool);
EXTERN int output_emcfan_apd(int, uint8_t, int, uint8_t, bool, bool);
EXTERN int output_emcfan_smbusto(int, uint8_t, int, uint8_t, int, bool, bool);
EXTERN int emcfan_read_register(int, uint8_t, uint8_t *, bool);
EXTERN int emcfan_write_register(int, uint8_t, uint8_t, bool);
EXTERN int emcfan_rmw_register(int, uint8_t, uint8_t, const struct emcfan_bits_translate *, long unsigned int, int, bool);
EXTERN int emcfan_product_to_family(uint8_t);
EXTERN char *emcfan_product_to_name(uint8_t);
EXTERN void emcfan_family_to_name(int, char *, int);
EXTERN int emcfan_find_info(uint8_t);
EXTERN bool emcfan_reg_is_real(int, uint8_t);
EXTERN int emcfan_reg_by_name(uint8_t, int, char*);
EXTERN const char *emcfan_regname_by_reg(uint8_t, int, uint8_t);
EXTERN int find_translated_blob_by_bits_instance(const struct emcfan_bits_translate *, long unsigned int, uint8_t, int);
EXTERN int find_translated_bits_by_hint_instance(const struct emcfan_bits_translate *, long unsigned int, int, int);
EXTERN int find_translated_bits_by_hint(const struct emcfan_bits_translate *, long unsigned int, int);
EXTERN int find_translated_bits_by_str(const struct emcfan_bits_translate *,long unsigned int,char *);
EXTERN int find_translated_bits_by_str_instance(const struct emcfan_bits_translate *,long unsigned int,char *, int);
EXTERN int find_human_int(const struct emcfan_bits_translate *, long unsigned int, uint8_t);
EXTERN char *find_human_str(const struct emcfan_bits_translate *, long unsigned int, uint8_t);
EXTERN void print_status(uint8_t *, uint8_t);
EXTERN void print_sram(uint8_t *, int, uint8_t);
EXTERN void print_gpio_cfg(struct mcp2221_get_gpio_cfg_res *);
EXTERN void print_flash(uint8_t *,int, uint8_t);
EXTERN int mcp2221_parse_flash_gp_req(int, struct mcp2221_put_flash_req *, char **, int, int, bool);
EXTERN int mcp2210_parse_flash_gp_req(int, struct mcp2210_set_nvram_req *, char **, int, int, bool);
EXTERN int mcp2210_parse_flash_spi_req(int, struct mcp2210_set_nvram_req *, char **, int, int, bool);
EXTERN int mcp2210_parse_flash_usbkeyparams_req(int, struct mcp2210_set_nvram_req *, char **, int, int, bool);