admdef.h
上传用户:dgyhgb
上传日期:2007-01-07
资源大小:676k
文件大小:3k
源码类别:

SQL Server

开发平台:

Unix_Linux

  1. /*
  2.  * admdef.h - Decarations for Storage and Transaction Synchrohization
  3.  *            Management System Administrator of GNU SQL server
  4.  *
  5.  * This file is a part of GNU SQL Server
  6.  *
  7.  * Copyright (c) 1996, 1997, Free Software Foundation, Inc
  8.  * Developed at the Institute of System Programming 
  9.  * This file is written by Vera Ponomarenko
  10.  *
  11.  * This program is free software; you can redistribute it and/or modify it under
  12.  * the terms of the GNU GeSETAneral Public License as published by the Free
  13.  * Software Foundation; either version 2 of the License, or (at your option)
  14.  * any later version.
  15.  *
  16.  * This program is distributed in the hope that it will be useful, but WITHOUT
  17.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  18.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  19.  * more details.
  20.  *
  21.  * You should have received a copy of the GNU General Public License along with
  22.  * this program; if not, write to the Free Software Foundation, Inc.,
  23.  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  24.  *
  25.  * Contacts: gss@ispras.ru
  26.  *
  27.  */
  28. #ifndef __ADMDEF_H__
  29. #define __ADMDEF_H__
  30. /* $Id: admdef.h,v 1.245 1997/03/31 03:46:38 kml Exp $ */
  31. #include <pupsi.h>
  32. #define SETUPFL         GSQL_ROOT_DIR "/setup.txt"
  33. #ifndef SERVBIN
  34. #define SERVBIN         GSQL_ROOT_DIR "/bin"
  35. #endif
  36. #ifndef DBAREA
  37. #define DBAREA          GSQL_ROOT_DIR "/db"
  38. #endif
  39. /*
  40.  * the following declaration MUST be adequate to *_SVC identifiers
  41.  * in dispatch.x and to names of associated programs -- see .../main/makefile
  42.  */
  43. #define SVC_FILES  {  
  44.   SERVBIN "/gsqlt-boot",
  45.   SERVBIN "/gsqlt-dyn" }
  46. #define BUF             SERVBIN "/buf"
  47. #define SYN             SERVBIN "/syn"
  48. #define SRT             SERVBIN "/srt"
  49. #define MJ              SERVBIN "/mj"
  50. #define LJ              SERVBIN "/lj"
  51. #define MCR             SERVBIN "/rcvmc"
  52. #define MJFILE          DBAREA "/mjour"
  53. #define LJFILE          DBAREA "/ljour"
  54. #define ADMFILE         DBAREA "/admfile"
  55. #define SEG0            DBAREA "/seg0"
  56. #define SEG1            DBAREA "/seg1"
  57. #ifndef __gspstr_h___
  58. void realop  __P((i4_t op, u2_t num, char *b));
  59. void endotr  __P((i2_t num, i4_t exit_code));
  60. void copylj  __P((void));
  61. void dyn_change_parameters  __P((void));
  62. void ini_adm_file  __P((char *));
  63. void ini_lj  __P((char *));
  64. void ini_mj  __P((char *));
  65. void ini_BD_seg  __P((char *, u2_t BD_seg_scale_size));
  66. #ifdef __dispatch_h__
  67. i4_t  creatr  __P((init_arg *arg));
  68. #endif
  69. typedef struct debug_pid_t
  70. {
  71.   pid_t                debugger;
  72.   pid_t                to_debug;
  73.   struct debug_pid_t  *next;
  74.   struct debug_pid_t  *prev;
  75. } debug_pid_t;
  76. extern debug_pid_t volatile *debuggers_pids;
  77. struct des_trn
  78. {
  79.   i4_t   uidtr;
  80.   pid_t  idprtr;
  81.   i4_t    msgidtrn;
  82.   time_t cretime;
  83.   char   res_ready;
  84. };
  85. #define FIRSTMQN           2000
  86. #define SEND_WAIT          60
  87. #define TRN_SEND(code, sz) trn_send(code, sz, i)
  88. void trn_send  __P((i4_t code, i4_t sz, i4_t trn_num));
  89. #ifdef TRN_SEND_NEED
  90. void
  91. trn_send (i4_t code, i4_t sz, i4_t trn_num)
  92. {
  93.   i4_t rest_time = SEND_WAIT;
  94.   
  95.   if (tabtr[trn_num].idprtr && tabtr[trn_num].cretime)
  96.     {
  97.       kill (tabtr[trn_num].idprtr, SIGUSR1);
  98.       sbuf.mtype = code;
  99.       while (1)
  100. {
  101.   if (msgsnd (tabtr[trn_num].msgidtrn, (MSGBUFP)&sbuf, sz, 0) >= 0)
  102.     break;
  103.   if (--rest_time)
  104.     sleep (1);
  105.   else
  106.     {
  107.       perror ("ADM.msgsnd");
  108.       break;
  109.     }
  110. }
  111.     }
  112. }
  113. #endif
  114. #endif
  115. #endif