⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sty.h

📁 wm PNE 3.3 source code, running at more than vxworks6.x version.
💻 H
字号:
/* $Header: /usr/cvsroot/target/h/wrn/wm/demo/sty.h,v 1.1.1.1 2001/11/05 17:47:37 tneale Exp $ *//* * Copyright (C) 1999-2005 Wind River Systems, Inc. * All rights reserved.  Provided under license only. * Distribution or other use of this software is only * permitted pursuant to the terms of a license agreement * from Wind River Systems (and is otherwise prohibited). * Refer to that license agreement for terms of use. *//**************************************************************************** *  Copyright 2000-2001 Wind River Systems, Inc. *  Copyright 1993-1997 Epilogue Technology Corporation. *  Copyright 1998 Integrated Systems, Inc. *  All rights reserved. ****************************************************************************//* * $Log: sty.h,v $ * Revision 1.1.1.1  2001/11/05 17:47:37  tneale * Tornado shuffle * * Revision 2.8  2001/01/19 22:23:37  paul * Update copyright. * * Revision 2.7  2000/03/17 00:12:14  meister * Update copyright message * * Revision 2.6  1998/11/23 20:47:29  wes * If building with GCC, use a gcc extension to declare sty_printf() as * being printf-like so sty_printf args can be sanity-checked at build * time.  Most visible with stuff relating to the BUG macro.. * * Revision 2.5  1998/02/25 04:57:18  sra * Update copyrights. * * Revision 2.4  1997/03/20 06:53:24  sra * DFARS-safe copyright text.  Zap! * * Revision 2.3  1997/02/25 10:58:16  sra * Update copyright notice, dust under the bed. * * Revision 2.2  1997/02/19 08:10:29  sra * More fun merging snmptalk into snark, general snark cleanup. * * Revision 2.1  1996/03/22 10:05:39  sra * Update copyrights prior to Attache 3.2 release. * * Revision 2.0  1995/05/10  22:38:15  sra * Attache release 3.0. * * Revision 1.3  1995/01/06  00:52:48  sra * Update copyright notice for 2.1 release. * * Revision 1.2  1994/09/04  23:55:50  sra * Get rid of most of the ancient NO_PP cruft. * * Revision 1.1  1993/07/05  21:53:06  sra * Initial revision * *//* * Software terminal definitions for Snark. * Based on ideas in Bridgham's doskbd code. * Keymaps not implemented yet, maybe some day. *//* [clearcase]modification history-------------------01b,10may05,job  increase maximum input line size01a,20apr05,job  update copyright notices*/#ifndef	_SNARK_STY_H_#define	_SNARK_STY_H_/* * GCC has a mode which lets it catch a number of common errors * made involving printf-like format strings. * It also has a language extension which lets you declare a function as * taking a printf-like format string. * If we're using a suitably new version of GCC (2.5 or newer), use * this extension. */#if !defined(__GNUC__) || __GNUC__ < 2 || \	(__GNUC__ == 2 && __GNUC_MINOR__ < 5)#define	STY_ATTRIBUTE(x)	/* delete __attribute__ if non-gcc or gcc1 */#else#define STY_ATTRIBUTE(x) __attribute__(x)#endif#define	STY_RING_SIZE		1024#define	STY_LINE_SIZE		2048#define	STY_HISTORY_SIZE	20struct sty;struct sty_driver;struct sty {  unsigned flags;			/* state flags */  unsigned char ring_buf[STY_RING_SIZE]; /* input character ring buffer */  unsigned ring_start, ring_end;	/* portion of ring buffer in use */  char line_buf[STY_LINE_SIZE];		/* input line buffer */  unsigned line_len;			/* length of current line */  char *history[STY_HISTORY_SIZE];	/* command line history */  fastint_t history_ptr;		/* current command history line */  struct sty_driver *driver;		/* device driver */  void *driver_cookie;			/* cookie for driver code */  void *app_cookie;			/* cookie for application */  void (*app_receiver)(struct sty *, char *, void *);  char *prompt;				/* prompt string, null ok if none */};#define	STY_FLAG_ECHOING	0x1#define	STY_FLAG_BLOCKED	0x2#define	STY_FLAG_ABORTED	0x4#define	STY_FLAG_INTERRUPTED	0x8#define	STY_FLAG_RAWMODE	0x10struct sty_driver {  void (*write)(struct sty *, unsigned char *, size_t, void *);  void (*close)(struct sty *, void *);};/* * The "console", which might be a keyboard/display pair, a log file, * a null sty driver, a telnet session, a serial line, or something weirder. * * In general, it is NOT a good idea to just assume that the cty is the * right sty to use for interactive commands.  The cty is primarily for * use by code which has no sty context (eg, the BUG() macros), and for * the initial startup code. * * By default, the cty is a keyboard/display pair. */extern struct sty *cty;#ifndef CTY_SETUP#define	CTY_SETUP() stykb_open()#endif/* * Declare listener to catch newly opened stys. * Returns old listener. */typedef void (*sty_listener_t)(struct sty *);extern sty_listener_t sty_listen(sty_listener_t);/* * Open an sty.  Caller provides memory. * Installs driver, flags, and cookie, then calls sty listener, if any. */extern void sty_open(struct sty *, struct sty_driver *, unsigned, void *);/* * Close an sty.  Calls driver close routine, clears driver. */extern void sty_close(struct sty *);/* * Initialize sty system. */extern void sty_init(void);/* * Request a "line" of text from the sty.  At the moment a "line" * really is a line, because EOL is the only break sequence. * This could change if/when keymaps are implemented. */extern void sty_read  (struct sty *, void (*)(struct sty *, char *, void *), char *, void *);/* * Output routines. */extern void sty_write (struct sty *, char *, size_t);extern void sty_putc (struct sty *, int);extern void sty_puts (struct sty *, char *);extern int sty_printf (struct sty *, char *, ...)     STY_ATTRIBUTE((__format__(__printf__, 2, 3)));/* * Hand some text from driver to low-level sty code. */extern void sty_receive (struct sty *, unsigned char *, unsigned);/* * Ask how much buffer space this sty has left (for TELNET, mostly). */extern unsigned sty_window (struct sty *);/* * Clear sty input buffer. */extern void sty_discard (struct sty *);/* * Install a new cty. */extern void cty_set(struct sty *sty);/* * This should really go somewhere else, no good place for it though. */extern void stykb_open (void);#endif /* _SNARK_STY_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -