/*
 *	sys/types.h
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2013-2016 Naoyuki Sawa
 *
 *	* Fri Mar 22 00:29:55 JST 2013 Naoyuki Sawa
 *	- 新規作成。
 *	* Sun Sep 07 20:09:27 JST 2014 Naoyuki Sawa
 *	- blkcnt_t,blksize_t,fsblkcnt_t,fsfilcnt_tを追加しました。
 *	- blkcnt_t,blksize_tは符号*付き*整数型とする仕様です。
 *	  「POSIX Programmer's Manual <sys/types.h>」より抜粋:
 *	  ＞blkcnt_t and off_t shall be signed integer types.
 *	    ~~~~~~~~                    ~~~~~~
 *	  ＞blksize_t, pid_t, and ssize_t shall be signed integer types.
 *	    ~~~~~~~~~                              ~~~~~~
 *	- fsblkcnt_t,fsfilcnt_tは符号*無し*整数型とする仕様です。
 *	  「POSIX Programmer's Manual <sys/types.h>」より抜粋:
 *	  ＞fsblkcnt_t, fsfilcnt_t, and ino_t shall be defined as unsigned integer types.
 *	    ~~~~~~~~~~  ~~~~~~~~~~                                ~~~~~~~~
 *	* Wed Nov 18 21:37:53 JST 2015 Naoyuki Sawa
 *	- 'extern "C" {'〜'}'で囲みました。.cppを含むWin32プロジェクトからもインクルード出来るようにするためです。
 *	* Sat Mar 19 21:19:21 JST 2016 Naoyuki Sawa
 *	- ssize_tの定義を追加しました。
 *	  □参照資料
 *	  │「/app/gcc-3.3.2/lib/gcc-lib/sparc-sun-solaris2.8/3.3.2/include/sys/types.h」
 *	  │(http://www.sde.cs.titech.ac.jp/~gondow/dwarf2-xml/HTML-dxref//app/gcc-3.3.2/lib/gcc-lib/sparc-sun-solaris2.8/3.3.2/include/sys/types.h.html)
 *	  尚、Win32用プロジェクトでは/clip/include/sys/types.hは読み込まれないので、代りに/clip/clipstdw.hにssize_tの定義を追加しました。
 *	- /clip/include/sys/types.h(又は/clip/clipstdw.h)にssize_tの定義を追加した事に伴い、これまでssize_tの代りにintを使っていた部分を正式なssize_tに修正しました。
 *	  2016/03/19時点でint⇒ssize_tに修正した箇所は、getline(),getdelim(),mq_receive()です。
 *	* Tue Jun 14 22:14:51 JST 2016 Naoyuki Sawa
 *	- pid_tを追加しました。
 *	  /clip/include/signal.hのkill()の関数宣言で使用するためです。
 */
#ifndef __SYS_TYPES_H__
#define __SYS_TYPES_H__

#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus

typedef unsigned short dev_t;		/* device number */
typedef unsigned short ino_t;		/* inode number */
typedef unsigned short mode_t;		/* permissions */
typedef unsigned short nlink_t;		/* link count */
typedef unsigned short uid_t;		/* user id */
typedef unsigned short gid_t;		/* group id */
typedef          long  off_t;		/* file offset */
//typedef          long  time_t;	/* time of day in seconds */		//⇒ time.hでも定義されているので、衝突回避のために、ここでは定義しないことにしました。

typedef          long blkcnt_t;		/* count of file blocks */		/*{{2014/09/07追加:blkcnt_t,blksize_t,fsblkcnt_t,fsfilcnt_tを追加しました。}}*/
typedef          long blksize_t;	/* used for block sizes */		/*{{2014/09/07追加:blkcnt_t,blksize_t,fsblkcnt_t,fsfilcnt_tを追加しました。}}*/
typedef unsigned long fsblkcnt_t;	/* count of file system blocks */	/*{{2014/09/07追加:blkcnt_t,blksize_t,fsblkcnt_t,fsfilcnt_tを追加しました。}}*/
typedef unsigned long fsfilcnt_t;	/* count of files */			/*{{2014/09/07追加:blkcnt_t,blksize_t,fsblkcnt_t,fsfilcnt_tを追加しました。}}*/

#ifndef _SSIZE_T
#define _SSIZE_T
typedef int ssize_t;			/* size of something in bytes or -1 */	//{{2016/03/19追加:ssize_tの定義を追加しました。_SSIZE_Tマクロを使っている理由は/clip/include/stdio.hの同日のコメントを参照して下さい。}}
#endif//_SSIZE_T

#ifndef _PID_T
#define _PID_T
typedef int pid_t;			/* process id */			//{{2016/06/14追加:pid_tを追加しました。/clip/include/signal.hのkill()の関数宣言で使用するためです。_PID_Tマクロを使っている理由は/clip/include/signal.hの同日のコメントを参照して下さい。}}
#endif//_PID_T

#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus

#endif/*__SYS_TYPES_H__*/
