/********************************************************************************************************************************/ /* Created: 19-Feb-2009 13:00:12 by OpenVMS SDL EV2-3 */ /* Source: 19-FEB-2009 13:00:10 DISK$SYSMAN:[LAISHEV.WORK.BBS-RDB]BBSDEF.SDL;140 */ /********************************************************************************************************************************/ /*** MODULE BBSDEF IDENT BBSDEF-1-X ***/ #ifndef __BBSDEF_LOADED #define __BBSDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /*++ */ /* Facility: */ /* BBS/Forum system on DEC RDB */ /* */ /* Abstract: */ /* */ /* */ /* Author: */ /* Ruslan R. Laishev */ /* */ /* Creation Date: 3-APR-2008 */ /* */ /* Modification History: */ /* */ /* */ /*-- */ #define BBS$K_MINULEN 3 #define BBS$K_MINPLEN 6 #ifdef __NEW_STARLET typedef union _sqlstate { char sqlstate$t_sts [5]; __struct { char sqlstate$t_class [2]; char sqlstate$t_code [3]; } sqlstate$r_s; } SQLSTATE; #if !defined(__VAXC) #define sqlstate$t_class sqlstate$r_s.sqlstate$t_class #define sqlstate$t_code sqlstate$r_s.sqlstate$t_code #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ union sqlstate { char sqlstate$t_sts [5]; __struct { char sqlstate$t_class [2]; char sqlstate$t_code [3]; } sqlstate$r_s; } ; #if !defined(__VAXC) #define sqlstate$t_class sqlstate$r_s.sqlstate$t_class #define sqlstate$t_code sqlstate$r_s.sqlstate$t_code #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define SQLCODE$M_SEVERITY 0x1 #define SQLCODE$M_CODE 0x2 #ifdef __NEW_STARLET typedef struct _sqlcode { __union { int sqlcode$l_sts; __struct { unsigned sqlcode$v_severity : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned sqlcode$v_code : 3 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned sqlcode$v_fill_2_ : 4; } sqlcode$r_fill_1_; } sqlcode$r_fill_0_; } SQLCODE; #if !defined(__VAXC) #define sqlcode$l_sts sqlcode$r_fill_0_.sqlcode$l_sts #define sqlcode$v_severity sqlcode$r_fill_0_.sqlcode$r_fill_1_.sqlcode$v_severity #define sqlcode$v_code sqlcode$r_fill_0_.sqlcode$r_fill_1_.sqlcode$v_code #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct sqlcode { __union { int sqlcode$l_sts; __struct { unsigned sqlcode$v_severity : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned sqlcode$v_code : 3 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned sqlcode$v_fill_2_ : 4; } sqlcode$r_fill_1_; } sqlcode$r_fill_0_; } ; #if !defined(__VAXC) #define sqlcode$l_sts sqlcode$r_fill_0_.sqlcode$l_sts #define sqlcode$v_severity sqlcode$r_fill_0_.sqlcode$r_fill_1_.sqlcode$v_severity #define sqlcode$v_code sqlcode$r_fill_0_.sqlcode$r_fill_1_.sqlcode$v_code #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _rdb$_message_vector { unsigned int rdb$l_acnt; /* Number of arguments in the vector */ unsigned int rdb$l_sts; /* Primary status code of the last SQL statement */ unsigned int rdb$l_fcnt; /* Number of FAO arguments to primary message */ /* Return status for follow-on messages, if any */ unsigned int rdb$l_args [17]; } RDB$_MESSAGE_VECTOR; #else /* __OLD_STARLET */ struct rdb$_message_vector { unsigned int rdb$l_acnt; /* Number of arguments in the vector */ unsigned int rdb$l_sts; /* Primary status code of the last SQL statement */ unsigned int rdb$l_fcnt; /* Number of FAO arguments to primary message */ /* Return status for follow-on messages, if any */ unsigned int rdb$l_args [17]; } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _bbs__user { unsigned int bbs_l_uic; /* User Identification code */ unsigned int bbs_l_privs; /* User's privileges mask */ unsigned int bbs_l_flags; /* User's flags mask */ __struct { /* Vector */ unsigned __int64 bbs_q_q [2]; unsigned int bbs_l_l; } bbs_r_md; } BBS__USER; #if !defined(__VAXC) #define bbs_q_q bbs_r_md.bbs_q_q #define bbs_l_l bbs_r_md.bbs_l_l #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct bbs__user { unsigned int bbs_l_uic; /* User Identification code */ unsigned int bbs_l_privs; /* User's privileges mask */ unsigned int bbs_l_flags; /* User's flags mask */ __struct { /* Vector */ unsigned int bbs_q_q [2] [2]; unsigned int bbs_l_l; } bbs_r_md; } ; #if !defined(__VAXC) #define bbs_q_q bbs_r_md.bbs_q_q #define bbs_l_l bbs_r_md.bbs_l_l #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define act_rtn ACT_RTN #ifdef __NEW_STARLET int act_rtn( unsigned int *); #else /* __OLD_STARLET */ int act_rtn(__unknown_params); #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _actrtn { __struct { unsigned char rtn_b_len; char rtn_t_name [16]; } name; int (*rtn)(void); } ACTRTN; #if !defined(__VAXC) #define rtn_b_len name.rtn_b_len #define rtn_t_name name.rtn_t_name #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct actrtn { __struct { unsigned char rtn_b_len; char rtn_t_name [16]; } name; int (*rtn)(); } ; #if !defined(__VAXC) #define rtn_b_len name.rtn_b_len #define rtn_t_name name.rtn_t_name #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* A format */ /* */ #ifdef __NEW_STARLET typedef struct _html_fmt { unsigned int fmt$l_id; __struct { unsigned short int fmt$w_len; char fmt$t_name [32]; } fmt$r_key; unsigned int fmt$l_fmt [4]; } HTML_FMT; #if !defined(__VAXC) #define fmt$w_len fmt$r_key.fmt$w_len #define fmt$t_name fmt$r_key.fmt$t_name #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct html_fmt { unsigned int fmt$l_id; __struct { unsigned short int fmt$w_len; char fmt$t_name [32]; } fmt$r_key; unsigned int fmt$l_fmt [4]; } ; #if !defined(__VAXC) #define fmt$w_len fmt$r_key.fmt$w_len #define fmt$t_name fmt$r_key.fmt$t_name #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* A format codes constant */ /* */ #define FMT$K_UAT_START 0 #define FMT$K_UAT_ROW 1 #define FMT$K_UAT_END 2 #define FMT$K_UPT_START 3 #define FMT$K_UPT_ROW 4 #define FMT$K_UPT_END 5 #define FMT$K_CAT_START 6 #define FMT$K_CAT_ROW 7 #define FMT$K_CAT_END 8 #define FMT$K_SUBCAT_START 9 #define FMT$K_SUBCAT_ROW 10 #define FMT$K_SUBCAT_END 11 #define FMT$K_TOPIC_START 12 #define FMT$K_TOPIC_ROW 13 #define FMT$K_TOPIC_END 14 /* */ /* A definition of the rows, see BBS-INIT.SQL */ /* */ #ifdef __NEW_STARLET typedef struct _row_upt { unsigned int upt$l_uic; char upt$t_owner [64]; unsigned __int64 upt$q_birthday; unsigned int upt$l_icq; char upt$t_skype [64]; char upt$t_hompage [128]; char upt$t_signature [128]; char upt$t_sex [1]; char upt$t_city [32]; char upt$t_country [32]; char upt$t_avatar [128]; } ROW_UPT; #else /* __OLD_STARLET */ struct row_upt { unsigned int upt$l_uic; char upt$t_owner [64]; unsigned int upt$q_birthday [2]; unsigned int upt$l_icq; char upt$t_skype [64]; char upt$t_hompage [128]; char upt$t_signature [128]; char upt$t_sex [1]; char upt$t_city [32]; char upt$t_country [32]; char upt$t_avatar [128]; } ; #endif /* #ifdef __NEW_STARLET */ /* */ #define UAT$M_CONF 0x1 #define UAT$M_DISUSER 0x2 #define UAT$M_EXPIRED 0x4 #define UAT$M_NOMAIL 0x8 #define UAT$M_HIDEMAIL 0x10 #define UAT$M_NOSIG 0x20 #define UAT$M_NOAVA 0x40 #define UAT$M_ADMIN 0x1 #define UAT$M_MODER 0x2 #define UAT$M_POST 0x4 #ifdef __NEW_STARLET typedef struct _row_uat { unsigned int uat$l_uic; char uat$t_name [12]; char uat$t_pass [32]; __union { int uat$l_flags; __struct { unsigned uat$v_conf : 1; /* User record need to be Approved */ unsigned uat$v_disuser : 1; /* User has been disabled */ unsigned uat$v_expired : 1; /* User account has expired */ unsigned uat$v_nomail : 1; /* Mail service has been disabled */ unsigned uat$v_hidemail : 1; /* Hide a E-Mail from other users */ unsigned uat$v_nosig : 1; /* Do not show users signatures */ unsigned uat$v_noava : 1; /* Do not show users avatars */ unsigned uat$v_fill_7_ : 1; } uat$r_fill_4_; } uat$r_fill_3_; __union { int uat$l_privs; __struct { unsigned uat$v_admin : 1; /* SYSTEM Manager */ unsigned uat$v_moder : 1; /* Moderator */ unsigned uat$v_post : 1; /* Ordinary user */ unsigned uat$v_fill_8_ : 5; } uat$r_fill_6_; } uat$r_fill_5_; unsigned __int64 uat$q_created; unsigned __int64 uat$q_lastlogin; unsigned __int64 uat$q_expired; char uat$t_email [128]; unsigned int uat$l_profile; unsigned int uat$l_topics; unsigned int uat$l_replies; } ROW_UAT; #if !defined(__VAXC) #define uat$l_flags uat$r_fill_3_.uat$l_flags #define uat$v_conf uat$r_fill_3_.uat$r_fill_4_.uat$v_conf #define uat$v_disuser uat$r_fill_3_.uat$r_fill_4_.uat$v_disuser #define uat$v_expired uat$r_fill_3_.uat$r_fill_4_.uat$v_expired #define uat$v_nomail uat$r_fill_3_.uat$r_fill_4_.uat$v_nomail #define uat$v_hidemail uat$r_fill_3_.uat$r_fill_4_.uat$v_hidemail #define uat$v_nosig uat$r_fill_3_.uat$r_fill_4_.uat$v_nosig #define uat$v_noava uat$r_fill_3_.uat$r_fill_4_.uat$v_noava #define uat$l_privs uat$r_fill_5_.uat$l_privs #define uat$v_admin uat$r_fill_5_.uat$r_fill_6_.uat$v_admin #define uat$v_moder uat$r_fill_5_.uat$r_fill_6_.uat$v_moder #define uat$v_post uat$r_fill_5_.uat$r_fill_6_.uat$v_post #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct row_uat { unsigned int uat$l_uic; char uat$t_name [12]; char uat$t_pass [32]; __union { int uat$l_flags; __struct { unsigned uat$v_conf : 1; /* User record need to be Approved */ unsigned uat$v_disuser : 1; /* User has been disabled */ unsigned uat$v_expired : 1; /* User account has expired */ unsigned uat$v_nomail : 1; /* Mail service has been disabled */ unsigned uat$v_hidemail : 1; /* Hide a E-Mail from other users */ unsigned uat$v_nosig : 1; /* Do not show users signatures */ unsigned uat$v_noava : 1; /* Do not show users avatars */ unsigned uat$v_fill_7_ : 1; } uat$r_fill_4_; } uat$r_fill_3_; __union { int uat$l_privs; __struct { unsigned uat$v_admin : 1; /* SYSTEM Manager */ unsigned uat$v_moder : 1; /* Moderator */ unsigned uat$v_post : 1; /* Ordinary user */ unsigned uat$v_fill_8_ : 5; } uat$r_fill_6_; } uat$r_fill_5_; unsigned int uat$q_created [2]; unsigned int uat$q_lastlogin [2]; unsigned int uat$q_expired [2]; char uat$t_email [128]; unsigned int uat$l_profile; unsigned int uat$l_topics; unsigned int uat$l_replies; } ; #if !defined(__VAXC) #define uat$l_flags uat$r_fill_3_.uat$l_flags #define uat$v_conf uat$r_fill_3_.uat$r_fill_4_.uat$v_conf #define uat$v_disuser uat$r_fill_3_.uat$r_fill_4_.uat$v_disuser #define uat$v_expired uat$r_fill_3_.uat$r_fill_4_.uat$v_expired #define uat$v_nomail uat$r_fill_3_.uat$r_fill_4_.uat$v_nomail #define uat$v_hidemail uat$r_fill_3_.uat$r_fill_4_.uat$v_hidemail #define uat$v_nosig uat$r_fill_3_.uat$r_fill_4_.uat$v_nosig #define uat$v_noava uat$r_fill_3_.uat$r_fill_4_.uat$v_noava #define uat$l_privs uat$r_fill_5_.uat$l_privs #define uat$v_admin uat$r_fill_5_.uat$r_fill_6_.uat$v_admin #define uat$v_moder uat$r_fill_5_.uat$r_fill_6_.uat$v_moder #define uat$v_post uat$r_fill_5_.uat$r_fill_6_.uat$v_post #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* */ /* */ #ifdef __NEW_STARLET typedef struct _row_cat { unsigned int cat$l_id; unsigned __int64 cat$q_created; char cat$t_name [64]; char cat$t_ldesc [512]; } ROW_CAT; #else /* __OLD_STARLET */ struct row_cat { unsigned int cat$l_id; unsigned int cat$q_created [2]; char cat$t_name [64]; char cat$t_ldesc [512]; } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* */ /* */ #ifdef __NEW_STARLET typedef struct _row_subcat { unsigned int subcat$l_id; unsigned int subcat$l_cat; unsigned int subcat$l_moder1; unsigned int subcat$l_moder2; unsigned int subcat$l_moder3; unsigned __int64 subcat$q_created; unsigned int subcat$l_topics; char subcat$t_name [64]; char subcat$t_ldesc [512]; unsigned __int64 subcat$q_lastupd; } ROW_SUBCAT; #else /* __OLD_STARLET */ struct row_subcat { unsigned int subcat$l_id; unsigned int subcat$l_cat; unsigned int subcat$l_moder1; unsigned int subcat$l_moder2; unsigned int subcat$l_moder3; unsigned int subcat$q_created [2]; unsigned int subcat$l_topics; char subcat$t_name [64]; char subcat$t_ldesc [512]; unsigned int subcat$q_lastupd [2]; } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* */ /* */ #define TOPIC$M_HIDDEN 0x1 #define TOPIC$M_DELETED 0x2 #define TOPIC$M_CLOSED 0x4 #ifdef __NEW_STARLET typedef struct _row_topic { unsigned int topic$l_id; unsigned int topic$l_subcat; char topic$t_name [64]; unsigned __int64 topic$q_created; unsigned int topic$l_msgs; unsigned int topic$l_author; unsigned __int64 topic$q_updated; __struct { unsigned topic$v_hidden : 1; /* Topic's messages cannot be show to unregistered users */ unsigned topic$v_deleted : 1; /* Topic has been marked as "deleted" */ unsigned topic$v_closed : 1; /* Topic has been closed */ unsigned topic$v_fill_9_ : 5; } topic$r_flags; unsigned int topic$l_hits; unsigned int topic$l_replies; } ROW_TOPIC; #if !defined(__VAXC) #define topic$v_hidden topic$r_flags.topic$v_hidden #define topic$v_deleted topic$r_flags.topic$v_deleted #define topic$v_closed topic$r_flags.topic$v_closed #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct row_topic { unsigned int topic$l_id; unsigned int topic$l_subcat; char topic$t_name [64]; unsigned int topic$q_created [2]; unsigned int topic$l_msgs; unsigned int topic$l_author; unsigned int topic$q_updated [2]; __struct { unsigned topic$v_hidden : 1; /* Topic's messages cannot be show to unregistered users */ unsigned topic$v_deleted : 1; /* Topic has been marked as "deleted" */ unsigned topic$v_closed : 1; /* Topic has been closed */ unsigned topic$v_fill_9_ : 5; } topic$r_flags; unsigned int topic$l_hits; unsigned int topic$l_replies; } ; #if !defined(__VAXC) #define topic$v_hidden topic$r_flags.topic$v_hidden #define topic$v_deleted topic$r_flags.topic$v_deleted #define topic$v_closed topic$r_flags.topic$v_closed #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* */ /* */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __BBSDEF_LOADED */