svn commit: r199172 - in user/ed/newcons: . contrib/ee crypto/openssh lib/libc/net lib/libc/nls lib/libc/stdio lib/libc/string sbin/camcontrol sbin/reboot secure/lib/libssh share/man/man5 share/zon...

Ed Schouten ed at FreeBSD.org
Wed Nov 11 08:27:10 UTC 2009


Author: ed
Date: Wed Nov 11 08:27:09 2009
New Revision: 199172
URL: http://svn.freebsd.org/changeset/base/199172

Log:
  MFC.

Added:
  user/ed/newcons/lib/libc/nls/ja_JP.UTF-8.msg
     - copied unchanged from r199171, head/lib/libc/nls/ja_JP.UTF-8.msg
  user/ed/newcons/lib/libc/nls/ja_JP.eucJP.msg
     - copied unchanged from r199171, head/lib/libc/nls/ja_JP.eucJP.msg
  user/ed/newcons/sys/dev/usb/input/atp.c
     - copied unchanged from r199171, head/sys/dev/usb/input/atp.c
  user/ed/newcons/sys/modules/usb/atp/
     - copied from r199171, head/sys/modules/usb/atp/
Deleted:
  user/ed/newcons/usr.sbin/sysinstall/acpi.c
  user/ed/newcons/usr.sbin/sysinstall/acpidump.h
  user/ed/newcons/usr.sbin/sysinstall/biosmptable.c
Modified:
  user/ed/newcons/UPDATING
  user/ed/newcons/contrib/ee/ee.c
  user/ed/newcons/crypto/openssh/ssh_namespace.h
  user/ed/newcons/lib/libc/net/gai_strerror.c
  user/ed/newcons/lib/libc/nls/C.msg
  user/ed/newcons/lib/libc/nls/Makefile.inc
  user/ed/newcons/sbin/camcontrol/camcontrol.8
  user/ed/newcons/sbin/camcontrol/camcontrol.c
  user/ed/newcons/sbin/reboot/reboot.c
  user/ed/newcons/secure/lib/libssh/Makefile
  user/ed/newcons/share/man/man5/rc.conf.5
  user/ed/newcons/share/zoneinfo/antarctica
  user/ed/newcons/sys/amd64/amd64/trap.c
  user/ed/newcons/sys/amd64/amd64/vm_machdep.c
  user/ed/newcons/sys/amd64/isa/isa_dma.c
  user/ed/newcons/sys/arm/arm/trap.c
  user/ed/newcons/sys/arm/arm/vm_machdep.c
  user/ed/newcons/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c
  user/ed/newcons/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
  user/ed/newcons/sys/conf/NOTES
  user/ed/newcons/sys/conf/files
  user/ed/newcons/sys/dev/an/if_an.c
  user/ed/newcons/sys/dev/an/if_anreg.h
  user/ed/newcons/sys/dev/ata/ata-pci.h
  user/ed/newcons/sys/dev/ata/chipsets/ata-intel.c
  user/ed/newcons/sys/dev/bge/if_bge.c
  user/ed/newcons/sys/dev/fdc/fdc.c
  user/ed/newcons/sys/dev/ieee488/ibfoo.c
  user/ed/newcons/sys/dev/siis/siis.c
  user/ed/newcons/sys/dev/siis/siis.h
  user/ed/newcons/sys/dev/usb/input/uhid.c
  user/ed/newcons/sys/dev/usb/input/ukbd.c
  user/ed/newcons/sys/dev/usb/input/ums.c
  user/ed/newcons/sys/i386/i386/trap.c
  user/ed/newcons/sys/i386/i386/vm_machdep.c
  user/ed/newcons/sys/i386/isa/isa_dma.c
  user/ed/newcons/sys/ia64/ia64/trap.c
  user/ed/newcons/sys/ia64/ia64/vm_machdep.c
  user/ed/newcons/sys/kern/kern_sig.c
  user/ed/newcons/sys/kern/vfs_lookup.c
  user/ed/newcons/sys/mips/include/pcb.h
  user/ed/newcons/sys/mips/mips/machdep.c
  user/ed/newcons/sys/mips/mips/pmap.c
  user/ed/newcons/sys/mips/mips/trap.c
  user/ed/newcons/sys/mips/mips/vm_machdep.c
  user/ed/newcons/sys/modules/usb/Makefile
  user/ed/newcons/sys/net80211/ieee80211_ioctl.h
  user/ed/newcons/sys/netinet/ip_ipsec.c
  user/ed/newcons/sys/netinet/ip_ipsec.h
  user/ed/newcons/sys/netinet/ip_output.c
  user/ed/newcons/sys/netinet/ipfw/ip_dummynet.c
  user/ed/newcons/sys/powerpc/aim/mmu_oea64.c
  user/ed/newcons/sys/powerpc/aim/trap.c
  user/ed/newcons/sys/powerpc/aim/vm_machdep.c
  user/ed/newcons/sys/powerpc/booke/trap.c
  user/ed/newcons/sys/powerpc/booke/vm_machdep.c
  user/ed/newcons/sys/sparc64/include/pcb.h
  user/ed/newcons/sys/sparc64/sparc64/trap.c
  user/ed/newcons/sys/sparc64/sparc64/vm_machdep.c
  user/ed/newcons/sys/sun4v/sun4v/trap.c
  user/ed/newcons/sys/sun4v/sun4v/vm_machdep.c
  user/ed/newcons/sys/sys/proc.h
  user/ed/newcons/sys/sys/signalvar.h
  user/ed/newcons/sys/teken/teken_subr.h
  user/ed/newcons/tools/regression/lib/libutil/test-flopen.c
  user/ed/newcons/usr.sbin/sysinstall/Makefile
  user/ed/newcons/usr.sbin/sysinstall/dist.c
  user/ed/newcons/usr.sbin/sysinstall/install.c
  user/ed/newcons/usr.sbin/sysinstall/menus.c
  user/ed/newcons/usr.sbin/sysinstall/sysinstall.8
Directory Properties:
  user/ed/newcons/   (props changed)
  user/ed/newcons/lib/libc/stdio/asprintf.c   (props changed)
  user/ed/newcons/lib/libc/string/ffsll.c   (props changed)
  user/ed/newcons/lib/libc/string/flsll.c   (props changed)
  user/ed/newcons/lib/libc/string/wcpcpy.c   (props changed)
  user/ed/newcons/lib/libc/string/wcpncpy.c   (props changed)
  user/ed/newcons/share/zoneinfo/   (props changed)
  user/ed/newcons/tools/regression/usr.bin/pkill/pgrep-_g.t   (props changed)
  user/ed/newcons/tools/regression/usr.bin/pkill/pgrep-_s.t   (props changed)
  user/ed/newcons/tools/regression/usr.bin/pkill/pkill-_g.t   (props changed)
  user/ed/newcons/tools/tools/termcap/termcap.pl   (props changed)
  user/ed/newcons/usr.sbin/dumpcis/cardinfo.h   (props changed)
  user/ed/newcons/usr.sbin/dumpcis/cis.h   (props changed)

Modified: user/ed/newcons/UPDATING
==============================================================================
--- user/ed/newcons/UPDATING	Wed Nov 11 08:20:19 2009	(r199171)
+++ user/ed/newcons/UPDATING	Wed Nov 11 08:27:09 2009	(r199172)
@@ -22,6 +22,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.
 	machines to maximize performance.  (To disable malloc debugging, run
 	ln -s aj /etc/malloc.conf.)
 
+20091109:
+	The layout of the structure ieee80211req_scan_result has changed.
+	Applications that require wireless scan results (e.g. ifconfig(8))
+	from net80211 need to be recompiled.
+
 20091025:
 	The iwn(4) driver has been updated to support the 5000 and 5150 series.
 	There's one kernel module for each firmware. Adding "device iwnfw"

Modified: user/ed/newcons/contrib/ee/ee.c
==============================================================================
--- user/ed/newcons/contrib/ee/ee.c	Wed Nov 11 08:20:19 2009	(r199171)
+++ user/ed/newcons/contrib/ee/ee.c	Wed Nov 11 08:27:09 2009	(r199172)
@@ -1989,7 +1989,7 @@ char *cmd_str;
 	int number;
 	int i;
 	char *ptr;
-	char *direction = NULL;
+	char *direction = "d";
 	struct text *t_line;
 
 	ptr = cmd_str;

Modified: user/ed/newcons/crypto/openssh/ssh_namespace.h
==============================================================================
--- user/ed/newcons/crypto/openssh/ssh_namespace.h	Wed Nov 11 08:20:19 2009	(r199171)
+++ user/ed/newcons/crypto/openssh/ssh_namespace.h	Wed Nov 11 08:27:09 2009	(r199172)
@@ -223,6 +223,8 @@
 #define get_u32					ssh_get_u32
 #define get_u64					ssh_get_u64
 #define getrrsetbyname				ssh_getrrsetbyname
+#define glob					ssh_glob
+#define globfree				ssh_globfree
 #define host_hash				ssh_host_hash
 #define hostfile_read_key			ssh_hostfile_read_key
 #define hpdelim					ssh_hpdelim

Modified: user/ed/newcons/lib/libc/net/gai_strerror.c
==============================================================================
--- user/ed/newcons/lib/libc/net/gai_strerror.c	Wed Nov 11 08:20:19 2009	(r199171)
+++ user/ed/newcons/lib/libc/net/gai_strerror.c	Wed Nov 11 08:27:09 2009	(r199172)
@@ -30,7 +30,17 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include "namespace.h"
 #include <netdb.h>
+#if defined(NLS)
+#include <nl_types.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <string.h>
+#include "reentrant.h"
+#endif
+#include "un-namespace.h"
 
 /* Entries EAI_ADDRFAMILY (1) and EAI_NODATA (7) are obsoleted, but left */
 /* for backward compatibility with userland code prior to 2553bis-02 */
@@ -52,9 +62,57 @@ static const char *ai_errlist[] = {
 	"Argument buffer overflow"			/* EAI_OVERFLOW */
 };
 
+#if defined(NLS)
+static char		gai_buf[NL_TEXTMAX];
+static once_t		gai_init_once = ONCE_INITIALIZER;
+static thread_key_t	gai_key;
+static int		gai_keycreated = 0;
+
+static void
+gai_keycreate(void)
+{
+	gai_keycreated = (thr_keycreate(&gai_key, free) == 0);
+}
+#endif
+
 const char *
 gai_strerror(int ecode)
 {
+#if defined(NLS)
+	nl_catd catd;
+	char *buf;
+
+	if (thr_main() != 0)
+		buf = gai_buf;
+	else {
+		if (thr_once(&gai_init_once, gai_keycreate) != 0 ||
+		    !gai_keycreated)
+			goto thr_err;
+		if ((buf = thr_getspecific(gai_key)) == NULL) {
+			if ((buf = malloc(sizeof(gai_buf))) == NULL)
+				goto thr_err;
+			if (thr_setspecific(gai_key, buf) != 0) {
+				free(buf);
+				goto thr_err;
+			}
+		}
+	}
+
+	catd = catopen("libc", NL_CAT_LOCALE);
+	if (ecode > 0 && ecode < EAI_MAX)
+		strlcpy(buf, catgets(catd, 3, ecode, ai_errlist[ecode]),
+		    sizeof(gai_buf));
+	else if (ecode == 0)
+		strlcpy(buf, catgets(catd, 3, NL_MSGMAX - 1, "Success"),
+		    sizeof(gai_buf));
+	else
+		strlcpy(buf, catgets(catd, 3, NL_MSGMAX, "Unknown error"),
+		    sizeof(gai_buf));
+	catclose(catd);
+	return buf;
+
+thr_err:
+#endif
 	if (ecode >= 0 && ecode < EAI_MAX)
 		return ai_errlist[ecode];
 	return "Unknown error";

Modified: user/ed/newcons/lib/libc/nls/C.msg
==============================================================================
--- user/ed/newcons/lib/libc/nls/C.msg	Wed Nov 11 08:20:19 2009	(r199171)
+++ user/ed/newcons/lib/libc/nls/C.msg	Wed Nov 11 08:27:09 2009	(r199172)
@@ -257,3 +257,39 @@ $ SIGUSR1
 30 User defined signal 1
 $ SIGUSR2
 31 User defined signal 2
+$
+$ gai_strerror() support catalog
+$
+$set 3
+$ 1 (obsolete)
+1 Address family for hostname not supported
+$ EAI_AGAIN
+2 Temporary failure in name resolution
+$ EAI_BADFLAGS
+3 Invalid value for ai_flags
+$ EAI_FAIL
+4 Non-recoverable failure in name resolution
+$ EAI_FAMILY
+5 ai_family not supported
+$ EAI_MEMORY
+6 Memory allocation failure
+$ 7 (obsolete)
+7 No address associated with hostname
+$ EAI_NONAME
+8 hostname nor servname provided, or not known
+$ EAI_SERVICE
+9 servname not supported for ai_socktype
+$ EAI_SOCKTYPE
+10 ai_socktype not supported
+$ EAI_SYSTEM
+11 System error returned in errno
+$ EAI_BADHINTS
+12 Invalid value for hints
+$ EAI_PROTOCOL
+13 Resolved protocol is unknown
+$ EAI_OVERFLOW
+14 Argument buffer overflow
+$ 0
+32766 Success
+$ NL_MSGMAX
+32767 Unknown error

Modified: user/ed/newcons/lib/libc/nls/Makefile.inc
==============================================================================
--- user/ed/newcons/lib/libc/nls/Makefile.inc	Wed Nov 11 08:20:19 2009	(r199171)
+++ user/ed/newcons/lib/libc/nls/Makefile.inc	Wed Nov 11 08:27:09 2009	(r199172)
@@ -23,6 +23,8 @@ NLS+=	fr_FR.ISO8859-1
 NLS+=	gl_ES.ISO8859-1
 NLS+=	hu_HU.ISO8859-2
 NLS+=	it_IT.ISO8859-15
+NLS+=	ja_JP.UTF-8
+NLS+=	ja_JP.eucJP
 NLS+=	ko_KR.UTF-8
 NLS+=	ko_KR.eucKR
 NLS+=	mn_MN.UTF-8

Copied: user/ed/newcons/lib/libc/nls/ja_JP.UTF-8.msg (from r199171, head/lib/libc/nls/ja_JP.UTF-8.msg)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/ed/newcons/lib/libc/nls/ja_JP.UTF-8.msg	Wed Nov 11 08:27:09 2009	(r199172, copy of r199171, head/lib/libc/nls/ja_JP.UTF-8.msg)
@@ -0,0 +1,295 @@
+$ $FreeBSD$
+$
+$ Message catalog for ja_JP.UTF-8 locale
+$
+$ strerror() support catalog
+$
+$set 1
+$ EPERM
+1 許可されていない操作です
+$ ENOENT
+2 そのようなファイルまたはディレクトリはありません
+$ ESRCH
+3 そのようなプロセスはありません
+$ EINTR
+4 システムコールが中断されました
+$ EIO
+5 入出力エラーです
+$ ENXIO
+6 デバイスが準備されていません
+$ E2BIG
+7 引数のリストが長すぎます
+$ ENOEXEC
+8 無効な実行形式です
+$ EBADF
+9 無効なファイル記述子です
+$ ECHILD
+10 子プロセスがありません
+$ EDEADLK
+11 リソースデッドロックを回避しました
+$ ENOMEM
+12 メモリの割り当てができません
+$ EACCES
+13 パーミッションが拒絶されました
+$ EFAULT
+14 無効なアドレスです
+$ ENOTBLK
+15 ブロックデバイスが要求されています
+$ EBUSY
+16 デバイスがビジー状態です
+$ EEXIST
+17 ファイルが存在します
+$ EXDEV
+18 デバイスをまたぐリンクです
+$ ENODEV
+19 デバイスが対応してない操作です
+$ ENOTDIR
+20 ディレクトリではありません
+$ EISDIR
+21 ディレクトリです
+$ EINVAL
+22 無効な引数です
+$ ENFILE
+23 システム内でオープンされているファイルが多すぎます
+$ EMFILE
+24 オープンしているファイルが多すぎます
+$ ENOTTY
+25 デバイスが対応していない ioctl です
+$ ETXTBSY
+26 テキストファイルがビジー状態です
+$ EFBIG
+27 ファイルが大きすぎます
+$ ENOSPC
+28 デバイスの空き領域不足です
+$ ESPIPE
+29 無効なシークです
+$ EROFS
+30 読み込み専用ファイルシステムです
+$ EMLINK
+31 リンク数が多すぎます
+$ EPIPE
+32 パイプが破壊されてました
+$ EDOM
+33 数値引数が範囲外です
+$ ERANGE
+34 結果が大き過ぎます
+$ EAGAIN, EWOULDBLOCK
+35 リソースが一時的に利用できません
+$ EINPROGRESS
+36 操作が現在進行中です
+$ EALREADY
+37 操作は既に進行中です
+$ ENOTSOCK
+38 ソケットでないものについてソケット操作を行いました
+$ EDESTADDRREQ
+39 宛先アドレスが要求されています
+$ EMSGSIZE
+40 メッセージが長すぎます
+$ EPROTOTYPE
+41 ソケットが対応していないプロトコルタイプです
+$ ENOPROTOOPT
+42 利用できないプロトコルです
+$ EPROTONOSUPPORT
+43 対応していないプロトコルです
+$ ESOCKTNOSUPPORT
+44 対応していないソケットタイプです
+$ EOPNOTSUPP
+45 対応していない操作です
+$ EPFNOSUPPORT
+46 対応していないプロトコルファミリです
+$ EAFNOSUPPORT
+47 プロトコルファミリが対応していないアドレスファミリが指定されました
+$ EADDRINUSE
+48 アドレスが既に使用中です
+$ EADDRNOTAVAIL
+49 要求されたアドレスを割り当てできません
+$ ENETDOWN
+50 ネットワークがダウンしています
+$ ENETUNREACH
+51 ネットワークに到達できません
+$ ENETRESET
+52 リセットによりネットワークの接続が失われました
+$ ECONNABORTED
+53 ソフトウェアによって接続が切断されました
+$ ECONNRESET
+54 接続が通信相手によってリセットされました
+$ ENOBUFS
+55 バッファの容量不足です
+$ EISCONN
+56 ソケットは既に接続されています
+$ ENOTCONN
+57 ソケットは接続されていません
+$ ESHUTDOWN
+58 ソケットのシャットダウンの後で送信ができません
+$ ETOOMANYREFS
+59 処理限界を超える多重参照です
+$ ETIMEDOUT
+60 操作がタイムアウトしました
+$ ECONNREFUSED
+61 接続が拒絶されました
+$ ELOOP
+62 処理限界を超えるシンボリックリンクレベルです
+$ ENAMETOOLONG
+63 ファイル名が長すぎます
+$ EHOSTDOWN
+64 ホストがダウンしています
+$ EHOSTUNREACH
+65 ホストへの経路がありません
+$ ENOTEMPTY
+66 ディレクトリが空ではありません
+$ EPROCLIM
+67 プロセスが多すぎます
+$ EUSERS
+68 ユーザが多すぎます
+$ EDQUOT
+69 ディスククォータが超過しました
+$ ESTALE
+70 失効した NFS ファイルハンドルです
+$ EREMOTE
+71 パス中のリモートのレベルが多すぎます
+$ EBADRPC
+72 無効な RPC 構造体です
+$ ERPCMISMATCH
+73 RPC バージョンが間違っています
+$ EPROGUNAVAIL
+74 RPC プログラムが利用できません
+$ EPROGMISMATCH
+75 プログラムのバージョンが合っていません
+$ EPROCUNAVAIL
+76 プログラムでは利用できない procedure です
+$ ENOLCK
+77 ロックが利用できません
+$ ENOSYS
+78 関数が実装されていません
+$ EFTYPE
+79 ファイルの型または形式が不適切です
+$ EAUTH
+80 認証エラーです
+$ ENEEDAUTH
+81 認証物が必要です
+$ EIDRM
+82 識別子は削除されました
+$ ENOMSG
+83 要求された型のメッセージがありません
+$ EOVERFLOW
+84 データ型に格納するには大きすぎる値です
+$ ECANCELED
+85 処理がキャンセルされました
+$ EILSEQ
+86 不正なバイト列です
+$ ENOATTR
+87 そのような属性はありません
+$ EDOOFUS
+88 プログラミングエラーです
+$ EBADMSG
+89 無効なメッセージです
+$ EMULTIHOP
+90 マルチホップが試みられました
+$ ENOLINK
+91 リンクが切断されています
+$ EPROTO
+92 プロトコルエラーです
+$ ENOTCAPABLE
+93 ケーパビリティが不足です
+$
+$ strsignal() support catalog
+$
+$set 2
+$ SIGHUP
+1 ハングアップ
+$ SIGINT
+2 割り込み
+$ SIGQUIT
+3 中断
+$ SIGILL
+4 不正命令
+$ SIGTRAP
+5 トレース/BPT トラップ
+$ SIGABRT
+6 アボートトラップ
+$ SIGEMT
+7 EMT トラップ
+$ SIGFPE
+8 浮動小数点例外
+$ SIGKILL
+9 Kill された
+$ SIGBUS
+10 バスエラー
+$ SIGSEGV
+11 セグメンテーション違反
+$ SIGSYS
+12 存在しないシステムコール
+$ SIGPIPE
+13 パイプ破壊
+$ SIGALRM
+14 アラームクロック
+$ SIGTERM
+15 終了
+$ SIGURG
+16 緊急入出力状況
+$ SIGSTOP
+17 一時停止 (シグナル)
+$ SIGTSTP
+18 一時停止
+$ SIGCONT
+19 継続
+$ SIGCHLD
+20 子プロセスの終了
+$ SIGTTIN
+21 一時停止 (tty 入力)
+$ SIGTTOU
+22 一時停止 (tty 出力)
+$ SIGIO
+23 入出力可能
+$ SIGXCPU
+24 CPU 時間の制限超過
+$ SIGXFSZ
+25 ファイルサイズの制限超過
+$ SIGVTALRM
+26 仮想タイマの期限超過
+$ SIGPROF
+27 プロファイルタイマの期限超過
+$ SIGWINCH
+28 ウィンドウサイズの変化
+$ SIGINFO
+29 情報要求
+$ SIGUSR1
+30 ユーザ定義シグナル 1
+$ SIGUSR2
+31 ユーザ定義シグナル 2
+$
+$ gai_strerror() support catalog
+$
+$set 3
+$ 1 (obsolete)
+1 ホスト名のアドレスファミリーはサポートされません
+$ EAI_AGAIN
+2 名前解決での一時的な失敗
+$ EAI_BADFLAGS
+3 ai_flags の値が無効
+$ EAI_FAIL
+4 名前解決での回復不能な失敗
+$ EAI_FAMILY
+5 ai_family はサポートされません
+$ EAI_MEMORY
+6 メモリ割り当て失敗
+$ 7 (obsolete)
+7 ホスト名に対応するアドレスはありません
+$ EAI_NONAME
+8 ホスト名かサービス名が指定されない、または不明
+$ EAI_SERVICE
+9 サービス名は ai_socktype に対してサポートされません
+$ EAI_SOCKTYPE
+10 ai_socktype はサポートされません
+$ EAI_SYSTEM
+11 システムエラー、errno 参照
+$ EAI_BADHINTS
+12 hints の値が無効
+$ EAI_PROTOCOL
+13 解決されたプロトコルは不明です
+$ EAI_OVERFLOW
+14 引数バッファオーバフロー
+$ 0
+32766 成功
+$ NL_MSGMAX
+32767 不明なエラー

Copied: user/ed/newcons/lib/libc/nls/ja_JP.eucJP.msg (from r199171, head/lib/libc/nls/ja_JP.eucJP.msg)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/ed/newcons/lib/libc/nls/ja_JP.eucJP.msg	Wed Nov 11 08:27:09 2009	(r199172, copy of r199171, head/lib/libc/nls/ja_JP.eucJP.msg)
@@ -0,0 +1,295 @@
+$ $FreeBSD$
+$
+$ Message catalog for ja_JP.eucJP locale
+$
+$ strerror() support catalog
+$
+$set 1
+$ EPERM
+1 µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤Áàºî¤Ç¤¹
+$ ENOENT
+2 ¤½¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ï¤¢¤ê¤Þ¤»¤ó
+$ ESRCH
+3 ¤½¤Î¤è¤¦¤Ê¥×¥í¥»¥¹¤Ï¤¢¤ê¤Þ¤»¤ó
+$ EINTR
+4 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ì¤Þ¤·¤¿
+$ EIO
+5 Æþ½ÐÎÏ¥¨¥é¡¼¤Ç¤¹
+$ ENXIO
+6 ¥Ç¥Ð¥¤¥¹¤¬½àÈ÷¤µ¤ì¤Æ¤¤¤Þ¤»¤ó
+$ E2BIG
+7 °ú¿ô¤Î¥ê¥¹¥È¤¬Ä¹¤¹¤®¤Þ¤¹
+$ ENOEXEC
+8 ̵¸ú¤Ê¼Â¹Ô·Á¼°¤Ç¤¹
+$ EBADF
+9 ̵¸ú¤Ê¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Ç¤¹
+$ ECHILD
+10 »Ò¥×¥í¥»¥¹¤¬¤¢¤ê¤Þ¤»¤ó
+$ EDEADLK
+11 ¥ê¥½¡¼¥¹¥Ç¥Ã¥É¥í¥Ã¥¯¤ò²óÈò¤·¤Þ¤·¤¿
+$ ENOMEM
+12 ¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤¬¤Ç¤­¤Þ¤»¤ó
+$ EACCES
+13 ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬µñÀ䤵¤ì¤Þ¤·¤¿
+$ EFAULT
+14 ̵¸ú¤Ê¥¢¥É¥ì¥¹¤Ç¤¹
+$ ENOTBLK
+15 ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤¬Í׵ᤵ¤ì¤Æ¤¤¤Þ¤¹
+$ EBUSY
+16 ¥Ç¥Ð¥¤¥¹¤¬¥Ó¥¸¡¼¾õÂ֤Ǥ¹
+$ EEXIST
+17 ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤¹
+$ EXDEV
+18 ¥Ç¥Ð¥¤¥¹¤ò¤Þ¤¿¤°¥ê¥ó¥¯¤Ç¤¹
+$ ENODEV
+19 ¥Ç¥Ð¥¤¥¹¤¬Âбþ¤·¤Æ¤Ê¤¤Áàºî¤Ç¤¹
+$ ENOTDIR
+20 ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó
+$ EISDIR
+21 ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹
+$ EINVAL
+22 ̵¸ú¤Ê°ú¿ô¤Ç¤¹
+$ ENFILE
+23 ¥·¥¹¥Æ¥àÆâ¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤Þ¤¹
+$ EMFILE
+24 ¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤Þ¤¹
+$ ENOTTY
+25 ¥Ç¥Ð¥¤¥¹¤¬Âбþ¤·¤Æ¤¤¤Ê¤¤ ioctl ¤Ç¤¹
+$ ETXTBSY
+26 ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤¬¥Ó¥¸¡¼¾õÂ֤Ǥ¹
+$ EFBIG
+27 ¥Õ¥¡¥¤¥ë¤¬Â礭¤¹¤®¤Þ¤¹
+$ ENOSPC
+28 ¥Ç¥Ð¥¤¥¹¤Î¶õ¤­ÎΰèÉÔ­¤Ç¤¹
+$ ESPIPE
+29 ̵¸ú¤Ê¥·¡¼¥¯¤Ç¤¹
+$ EROFS
+30 Æɤ߹þ¤ßÀìÍÑ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¹
+$ EMLINK
+31 ¥ê¥ó¥¯¿ô¤¬Â¿¤¹¤®¤Þ¤¹
+$ EPIPE
+32 ¥Ñ¥¤¥×¤¬Ç˲õ¤µ¤ì¤Æ¤Þ¤·¤¿
+$ EDOM
+33 ¿ôÃÍ°ú¿ô¤¬Èϰϳ°¤Ç¤¹
+$ ERANGE
+34 ·ë²Ì¤¬Â礭²á¤®¤Þ¤¹
+$ EAGAIN, EWOULDBLOCK
+35 ¥ê¥½¡¼¥¹¤¬°ì»þŪ¤ËÍøÍѤǤ­¤Þ¤»¤ó
+$ EINPROGRESS
+36 Áàºî¤¬¸½ºß¿Ê¹ÔÃæ¤Ç¤¹
+$ EALREADY
+37 Áàºî¤Ï´û¤Ë¿Ê¹ÔÃæ¤Ç¤¹
+$ ENOTSOCK
+38 ¥½¥±¥Ã¥È¤Ç¤Ê¤¤¤â¤Î¤Ë¤Ä¤¤¤Æ¥½¥±¥Ã¥ÈÁàºî¤ò¹Ô¤¤¤Þ¤·¤¿
+$ EDESTADDRREQ
+39 °¸À襢¥É¥ì¥¹¤¬Í׵ᤵ¤ì¤Æ¤¤¤Þ¤¹
+$ EMSGSIZE
+40 ¥á¥Ã¥»¡¼¥¸¤¬Ä¹¤¹¤®¤Þ¤¹
+$ EPROTOTYPE
+41 ¥½¥±¥Ã¥È¤¬Âбþ¤·¤Æ¤¤¤Ê¤¤¥×¥í¥È¥³¥ë¥¿¥¤¥×¤Ç¤¹
+$ ENOPROTOOPT
+42 ÍøÍѤǤ­¤Ê¤¤¥×¥í¥È¥³¥ë¤Ç¤¹
+$ EPROTONOSUPPORT
+43 Âбþ¤·¤Æ¤¤¤Ê¤¤¥×¥í¥È¥³¥ë¤Ç¤¹
+$ ESOCKTNOSUPPORT
+44 Âбþ¤·¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¥¿¥¤¥×¤Ç¤¹
+$ EOPNOTSUPP
+45 Âбþ¤·¤Æ¤¤¤Ê¤¤Áàºî¤Ç¤¹
+$ EPFNOSUPPORT
+46 Âбþ¤·¤Æ¤¤¤Ê¤¤¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¤Ç¤¹
+$ EAFNOSUPPORT
+47 ¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¤¬Âбþ¤·¤Æ¤¤¤Ê¤¤¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¤¬»ØÄꤵ¤ì¤Þ¤·¤¿
+$ EADDRINUSE
+48 ¥¢¥É¥ì¥¹¤¬´û¤Ë»ÈÍÑÃæ¤Ç¤¹
+$ EADDRNOTAVAIL
+49 Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤Ç¤­¤Þ¤»¤ó
+$ ENETDOWN
+50 ¥Í¥Ã¥È¥ï¡¼¥¯¤¬¥À¥¦¥ó¤·¤Æ¤¤¤Þ¤¹
+$ ENETUNREACH
+51 ¥Í¥Ã¥È¥ï¡¼¥¯¤ËÅþã¤Ç¤­¤Þ¤»¤ó
+$ ENETRESET
+52 ¥ê¥»¥Ã¥È¤Ë¤è¤ê¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÀܳ¤¬¼º¤ï¤ì¤Þ¤·¤¿
+$ ECONNABORTED
+53 ¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤Ã¤ÆÀܳ¤¬ÀÚÃǤµ¤ì¤Þ¤·¤¿
+$ ECONNRESET
+54 Àܳ¤¬ÄÌ¿®Áê¼ê¤Ë¤è¤Ã¤Æ¥ê¥»¥Ã¥È¤µ¤ì¤Þ¤·¤¿
+$ ENOBUFS
+55 ¥Ð¥Ã¥Õ¥¡¤ÎÍÆÎÌÉÔ­¤Ç¤¹
+$ EISCONN
+56 ¥½¥±¥Ã¥È¤Ï´û¤ËÀܳ¤µ¤ì¤Æ¤¤¤Þ¤¹
+$ ENOTCONN
+57 ¥½¥±¥Ã¥È¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó
+$ ESHUTDOWN
+58 ¥½¥±¥Ã¥È¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó¤Î¸å¤ÇÁ÷¿®¤¬¤Ç¤­¤Þ¤»¤ó
+$ ETOOMANYREFS
+59 ½èÍý¸Â³¦¤òĶ¤¨¤ë¿½Å»²¾È¤Ç¤¹
+$ ETIMEDOUT
+60 Áàºî¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤Þ¤·¤¿
+$ ECONNREFUSED
+61 Àܳ¤¬µñÀ䤵¤ì¤Þ¤·¤¿
+$ ELOOP
+62 ½èÍý¸Â³¦¤òĶ¤¨¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¥ì¥Ù¥ë¤Ç¤¹
+$ ENAMETOOLONG
+63 ¥Õ¥¡¥¤¥ë̾¤¬Ä¹¤¹¤®¤Þ¤¹
+$ EHOSTDOWN
+64 ¥Û¥¹¥È¤¬¥À¥¦¥ó¤·¤Æ¤¤¤Þ¤¹
+$ EHOSTUNREACH
+65 ¥Û¥¹¥È¤Ø¤Î·ÐÏ©¤¬¤¢¤ê¤Þ¤»¤ó
+$ ENOTEMPTY
+66 ¥Ç¥£¥ì¥¯¥È¥ê¤¬¶õ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó
+$ EPROCLIM
+67 ¥×¥í¥»¥¹¤¬Â¿¤¹¤®¤Þ¤¹
+$ EUSERS
+68 ¥æ¡¼¥¶¤¬Â¿¤¹¤®¤Þ¤¹
+$ EDQUOT
+69 ¥Ç¥£¥¹¥¯¥¯¥©¡¼¥¿¤¬Ä¶²á¤·¤Þ¤·¤¿
+$ ESTALE
+70 ¼º¸ú¤·¤¿ NFS ¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ç¤¹
+$ EREMOTE
+71 ¥Ñ¥¹Ãæ¤Î¥ê¥â¡¼¥È¤Î¥ì¥Ù¥ë¤¬Â¿¤¹¤®¤Þ¤¹
+$ EBADRPC
+72 ̵¸ú¤Ê RPC ¹½Â¤ÂΤǤ¹
+$ ERPCMISMATCH
+73 RPC ¥Ð¡¼¥¸¥ç¥ó¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹
+$ EPROGUNAVAIL
+74 RPC ¥×¥í¥°¥é¥à¤¬ÍøÍѤǤ­¤Þ¤»¤ó
+$ EPROGMISMATCH
+75 ¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¹ç¤Ã¤Æ¤¤¤Þ¤»¤ó
+$ EPROCUNAVAIL
+76 ¥×¥í¥°¥é¥à¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤ procedure ¤Ç¤¹
+$ ENOLCK
+77 ¥í¥Ã¥¯¤¬ÍøÍѤǤ­¤Þ¤»¤ó
+$ ENOSYS
+78 ´Ø¿ô¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó
+$ EFTYPE
+79 ¥Õ¥¡¥¤¥ë¤Î·¿¤Þ¤¿¤Ï·Á¼°¤¬ÉÔŬÀڤǤ¹
+$ EAUTH
+80 ǧ¾Ú¥¨¥é¡¼¤Ç¤¹
+$ ENEEDAUTH
+81 ǧ¾Úʪ¤¬É¬ÍפǤ¹
+$ EIDRM
+82 ¼±Ê̻ҤϺï½ü¤µ¤ì¤Þ¤·¤¿
+$ ENOMSG
+83 Í׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬¤¢¤ê¤Þ¤»¤ó
+$ EOVERFLOW
+84 ¥Ç¡¼¥¿·¿¤Ë³ÊǼ¤¹¤ë¤Ë¤ÏÂ礭¤¹¤®¤ëÃͤǤ¹
+$ ECANCELED
+85 ½èÍý¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤Þ¤·¤¿
+$ EILSEQ
+86 ÉÔÀµ¤Ê¥Ð¥¤¥ÈÎó¤Ç¤¹
+$ ENOATTR
+87 ¤½¤Î¤è¤¦¤Ê°À­¤Ï¤¢¤ê¤Þ¤»¤ó
+$ EDOOFUS
+88 ¥×¥í¥°¥é¥ß¥ó¥°¥¨¥é¡¼¤Ç¤¹
+$ EBADMSG
+89 ̵¸ú¤Ê¥á¥Ã¥»¡¼¥¸¤Ç¤¹
+$ EMULTIHOP
+90 ¥Þ¥ë¥Á¥Û¥Ã¥×¤¬»î¤ß¤é¤ì¤Þ¤·¤¿
+$ ENOLINK
+91 ¥ê¥ó¥¯¤¬ÀÚÃǤµ¤ì¤Æ¤¤¤Þ¤¹
+$ EPROTO
+92 ¥×¥í¥È¥³¥ë¥¨¥é¡¼¤Ç¤¹
+$ ENOTCAPABLE
+93 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬ÉÔ­¤Ç¤¹
+$
+$ strsignal() support catalog
+$
+$set 2
+$ SIGHUP
+1 ¥Ï¥ó¥°¥¢¥Ã¥×
+$ SIGINT
+2 ³ä¤ê¹þ¤ß
+$ SIGQUIT
+3 ̾̂
+$ SIGILL
+4 ÉÔÀµÌ¿Îá
+$ SIGTRAP
+5 ¥È¥ì¡¼¥¹/BPT ¥È¥é¥Ã¥×
+$ SIGABRT
+6 ¥¢¥Ü¡¼¥È¥È¥é¥Ã¥×
+$ SIGEMT
+7 EMT ¥È¥é¥Ã¥×
+$ SIGFPE
+8 ÉâÆ°¾®¿ôÅÀÎã³°
+$ SIGKILL
+9 Kill ¤µ¤ì¤¿
+$ SIGBUS
+10 ¥Ð¥¹¥¨¥é¡¼
+$ SIGSEGV
+11 ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿
+$ SIGSYS
+12 ¸ºß¤·¤Ê¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë
+$ SIGPIPE
+13 ¥Ñ¥¤¥×Ç˲õ
+$ SIGALRM
+14 ¥¢¥é¡¼¥à¥¯¥í¥Ã¥¯
+$ SIGTERM
+15 ½ªÎ»
+$ SIGURG
+16 ¶ÛµÞÆþ½ÐÎϾõ¶·
+$ SIGSTOP
+17 °ì»þÄä»ß (¥·¥°¥Ê¥ë)
+$ SIGTSTP
+18 °ì»þÄä»ß
+$ SIGCONT
+19 ·Ñ³
+$ SIGCHLD
+20 »Ò¥×¥í¥»¥¹¤Î½ªÎ»
+$ SIGTTIN
+21 °ì»þÄä»ß (tty ÆþÎÏ)
+$ SIGTTOU
+22 °ì»þÄä»ß (tty ½ÐÎÏ)
+$ SIGIO
+23 Æþ½ÐÎϲÄǽ
+$ SIGXCPU
+24 CPU »þ´Ö¤ÎÀ©¸ÂĶ²á
+$ SIGXFSZ
+25 ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ÎÀ©¸ÂĶ²á
+$ SIGVTALRM
+26 ²¾ÁÛ¥¿¥¤¥Þ¤Î´ü¸ÂĶ²á
+$ SIGPROF
+27 ¥×¥í¥Õ¥¡¥¤¥ë¥¿¥¤¥Þ¤Î´ü¸ÂĶ²á
+$ SIGWINCH
+28 ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ÎÊѲ½
+$ SIGINFO
+29 ¾ðÊóÍ×µá
+$ SIGUSR1
+30 ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 1
+$ SIGUSR2
+31 ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 2
+$
+$ gai_strerror() support catalog
+$
+$set 3
+$ 1 (obsolete)
+1 ¥Û¥¹¥È̾¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó
+$ EAI_AGAIN
+2 ̾Á°²ò·è¤Ç¤Î°ì»þŪ¤Ê¼ºÇÔ
+$ EAI_BADFLAGS
+3 ai_flags ¤ÎÃͤ¬Ìµ¸ú
+$ EAI_FAIL
+4 ̾Á°²ò·è¤Ç¤Î²óÉüÉÔǽ¤Ê¼ºÇÔ
+$ EAI_FAMILY
+5 ai_family ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó
+$ EAI_MEMORY
+6 ¥á¥â¥ê³ä¤êÅö¤Æ¼ºÇÔ
+$ 7 (obsolete)
+7 ¥Û¥¹¥È̾¤ËÂбþ¤¹¤ë¥¢¥É¥ì¥¹¤Ï¤¢¤ê¤Þ¤»¤ó
+$ EAI_NONAME
+8 ¥Û¥¹¥È̾¤«¥µ¡¼¥Ó¥¹Ì¾¤¬»ØÄꤵ¤ì¤Ê¤¤¡¢¤Þ¤¿¤ÏÉÔÌÀ
+$ EAI_SERVICE
+9 ¥µ¡¼¥Ó¥¹Ì¾¤Ï ai_socktype ¤ËÂФ·¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó
+$ EAI_SOCKTYPE
+10 ai_socktype ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó
+$ EAI_SYSTEM
+11 ¥·¥¹¥Æ¥à¥¨¥é¡¼¡¢errno »²¾È
+$ EAI_BADHINTS
+12 hints ¤ÎÃͤ¬Ìµ¸ú
+$ EAI_PROTOCOL
+13 ²ò·è¤µ¤ì¤¿¥×¥í¥È¥³¥ë¤ÏÉÔÌÀ¤Ç¤¹
+$ EAI_OVERFLOW
+14 °ú¿ô¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¥Õ¥í¡¼
+$ 0
+32766 À®¸ù
+$ NL_MSGMAX
+32767 ÉÔÌÀ¤Ê¥¨¥é¡¼

Modified: user/ed/newcons/sbin/camcontrol/camcontrol.8
==============================================================================
--- user/ed/newcons/sbin/camcontrol/camcontrol.8	Wed Nov 11 08:20:19 2009	(r199171)
+++ user/ed/newcons/sbin/camcontrol/camcontrol.8	Wed Nov 11 08:27:09 2009	(r199172)
@@ -27,7 +27,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 4, 2009
+.Dd November 9, 2009
 .Dt CAMCONTROL 8
 .Os
 .Sh NAME
@@ -165,6 +165,20 @@
 .Op Fl w
 .Op Fl y
 .Nm
+.Ic idle
+.Op device id
+.Op generic args
+.Op Fl t Ar time
+.Nm
+.Ic standby
+.Op device id
+.Op generic args
+.Op Fl t Ar time
+.Nm
+.Ic sleep
+.Op device id
+.Op generic args
+.Nm
 .Ic help
 .Sh DESCRIPTION
 The
@@ -821,6 +835,15 @@ The user
 will not be asked about the timeout if a timeout is specified on the
 command line.
 .El
+.It Ic idle
+Put ATA device into IDLE state. Optional parameter specifies automatic
+idle timer value in seconds.
+.It Ic standby
+Put ATA device into STANDBY state. Optional parameter specifies automatic
+standby timer value in seconds.
+.It Ic sleep
+Put ATA device into SLEEP state. Note that the only way get device out of
+this state may be reset.
 .It Ic help
 Print out verbose usage information.
 .El

Modified: user/ed/newcons/sbin/camcontrol/camcontrol.c
==============================================================================
--- user/ed/newcons/sbin/camcontrol/camcontrol.c	Wed Nov 11 08:20:19 2009	(r199171)
+++ user/ed/newcons/sbin/camcontrol/camcontrol.c	Wed Nov 11 08:27:09 2009	(r199172)
@@ -74,7 +74,10 @@ typedef enum {
 	CAM_CMD_DETACH		= 0x00000010,
 	CAM_CMD_REPORTLUNS	= 0x00000011,
 	CAM_CMD_READCAP		= 0x00000012,
-	CAM_CMD_IDENTIFY	= 0x00000013
+	CAM_CMD_IDENTIFY	= 0x00000013,
+	CAM_CMD_IDLE		= 0x00000014,
+	CAM_CMD_STANDBY		= 0x00000015,
+	CAM_CMD_SLEEP		= 0x00000016
 } cam_cmdmask;
 
 typedef enum {
@@ -154,6 +157,9 @@ struct camcontrol_opts option_table[] = 
 	{"rate", CAM_CMD_RATE, CAM_ARG_NONE, negotiate_opts},
 	{"debug", CAM_CMD_DEBUG, CAM_ARG_NONE, "IPTSXc"},
 	{"format", CAM_CMD_FORMAT, CAM_ARG_NONE, "qrwy"},
+	{"idle", CAM_CMD_IDLE, CAM_ARG_NONE, "t:"},
+	{"standby", CAM_CMD_STANDBY, CAM_ARG_NONE, "t:"},
+	{"sleep", CAM_CMD_SLEEP, CAM_ARG_NONE, ""},
 #endif /* MINIMALISTIC */
 	{"help", CAM_CMD_USAGE, CAM_ARG_NONE, NULL},
 	{"-?", CAM_CMD_USAGE, CAM_ARG_NONE, NULL},
@@ -217,6 +223,8 @@ static int scsireportluns(struct cam_dev
 			  char *combinedopt, int retry_count, int timeout);
 static int scsireadcapacity(struct cam_device *device, int argc, char **argv,
 			    char *combinedopt, int retry_count, int timeout);
+static int atapm(struct cam_device *device, int argc, char **argv,
+			    char *combinedopt, int retry_count, int timeout);
 #endif /* MINIMALISTIC */
 
 camcontrol_optret
@@ -4128,6 +4136,91 @@ bailout:
 	return (retval);
 }
 
+static int
+atapm(struct cam_device *device, int argc, char **argv,
+		 char *combinedopt, int retry_count, int timeout)
+{
+	union ccb *ccb;
+	int retval = 0;
+	int t = -1;
+	int c;
+	u_char cmd, sc;
+
+	ccb = cam_getccb(device);
+
+	if (ccb == NULL) {
+		warnx("%s: error allocating ccb", __func__);
+		return (1);
+	}
+
+	while ((c = getopt(argc, argv, combinedopt)) != -1) {
+		switch (c) {
+		case 't':
+			t = atoi(optarg);
+			break;
+		default:
+			break;
+		}
+	}
+	if (strcmp(argv[1], "idle") == 0) {
+		if (t == -1)
+			cmd = ATA_IDLE_IMMEDIATE;
+		else
+			cmd = ATA_IDLE_CMD;
+	} else if (strcmp(argv[1], "standby") == 0) {
+		if (t == -1)
+			cmd = ATA_STANDBY_IMMEDIATE;
+		else
+			cmd = ATA_STANDBY_CMD;
+	} else {
+		cmd = ATA_SLEEP;
+		t = -1;
+	}
+	if (t < 0)
+		sc = 0;
+	else if (t <= (240 * 5))
+		sc = t / 5;
+	else if (t <= (11 * 30 * 60))
+		sc = t / (30 * 60) + 241;
+	else
+		sc = 253;
+	cam_fill_ataio(&ccb->ataio,
+		      retry_count,
+		      NULL,
+		      /*flags*/CAM_DIR_NONE,
+		      MSG_SIMPLE_Q_TAG,
+		      /*data_ptr*/NULL,
+		      /*dxfer_len*/0,
+		      timeout ? timeout : 30 * 1000);
+	ata_28bit_cmd(&ccb->ataio, cmd, 0, 0, sc);
+
+	/* Disable freezing the device queue */
+	ccb->ccb_h.flags |= CAM_DEV_QFRZDIS;
+
+	if (arglist & CAM_ARG_ERR_RECOVER)
+		ccb->ccb_h.flags |= CAM_PASS_ERR_RECOVER;
+
+	if (cam_send_ccb(device, ccb) < 0) {
+		warn("error sending command");
+
+		if (arglist & CAM_ARG_VERBOSE)
+			cam_error_print(device, ccb, CAM_ESF_ALL,
+					CAM_EPF_ALL, stderr);
+
+		retval = 1;
+		goto bailout;
+	}
+
+	if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) {
+		cam_error_print(device, ccb, CAM_ESF_ALL, CAM_EPF_ALL, stderr);
+		retval = 1;
+		goto bailout;
+	}
+bailout:
+	cam_freeccb(ccb);
+	return (retval);
+}
+
 #endif /* MINIMALISTIC */
 
 void 
@@ -4166,6 +4259,9 @@ usage(int verbose)
 "                              [-R syncrate][-v][-T <enable|disable>]\n"
 "                              [-U][-W bus_width]\n"
 "        camcontrol format     [dev_id][generic args][-q][-r][-w][-y]\n"
+"        camcontrol idle       [dev_id][generic args][-t time]\n"
+"        camcontrol standby    [dev_id][generic args][-t time]\n"
+"        camcontrol sleep      [dev_id][generic args]\n"
 #endif /* MINIMALISTIC */
 "        camcontrol help\n");
 	if (!verbose)
@@ -4193,6 +4289,9 @@ usage(int verbose)
 "tags        report or set the number of transaction slots for a device\n"
 "negotiate   report or set device negotiation parameters\n"
 "format      send the SCSI FORMAT UNIT command to the named device\n"
+"idle        send the ATA IDLE command to the named device\n"
+"standby     send the ATA STANDBY command to the named device\n"
+"sleep       send the ATA SLEEP command to the named device\n"
 "help        this message\n"
 "Device Identifiers:\n"
 "bus:target        specify the bus and target, lun defaults to 0\n"
@@ -4259,7 +4358,9 @@ usage(int verbose)
 "-q                be quiet, don't print status messages\n"
 "-r                run in report only mode\n"
 "-w                don't send immediate format command\n"
-"-y                don't ask any questions\n");
+"-y                don't ask any questions\n"
+"idle/standby arguments:\n"
+"-t <arg>          number of seconds before respective state.\n");
 #endif /* MINIMALISTIC */
 }
 
@@ -4555,6 +4656,13 @@ main(int argc, char **argv)
 						 combinedopt, retry_count,
 						 timeout);
 			break;
+		case CAM_CMD_IDLE:
+		case CAM_CMD_STANDBY:
+		case CAM_CMD_SLEEP:
+			error = atapm(cam_dev, argc, argv,
+						 combinedopt, retry_count,
+						 timeout);
+			break;
 #endif /* MINIMALISTIC */
 		case CAM_CMD_USAGE:
 			usage(1);

Modified: user/ed/newcons/sbin/reboot/reboot.c
==============================================================================
--- user/ed/newcons/sbin/reboot/reboot.c	Wed Nov 11 08:20:19 2009	(r199171)
+++ user/ed/newcons/sbin/reboot/reboot.c	Wed Nov 11 08:27:09 2009	(r199172)
@@ -216,10 +216,12 @@ restart:
 }
 
 static void
-usage()
+usage(void)
 {
-	(void)fprintf(stderr, "usage: %s [-%slnpq] [-k kernel]\n",
-	    getprogname(), dohalt ? "" : "d");
+
+	(void)fprintf(stderr, dohalt ?
+	    "usage: halt [-lnpq] [-k kernel]\n" :
+	    "usage: reboot [-dlnpq] [-k kernel]\n");
 	exit(1);
 }
 

Modified: user/ed/newcons/secure/lib/libssh/Makefile
==============================================================================
--- user/ed/newcons/secure/lib/libssh/Makefile	Wed Nov 11 08:20:19 2009	(r199171)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-user mailing list