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

SQL Server

开发平台:

Unix_Linux

  1. /*
  2.  *  fdeclbuf.h  - This file contains functions declarations of Buffer
  3.  *                Kernel of GNU SQL-server. Buffer 
  4.  *
  5.  *    The functions deal with three parts of information. Page table
  6.  *  contains pages' descriptors including all information concerning
  7.  *  satisfied locks and presence of pages in the pool of buffers. Hash
  8.  *  table serves a fast search of a page descriptor by the corresponding
  9.  *  page number. Queue table contains all waiting locks.
  10.  *
  11.  *  This file is a part of GNU SQL Server
  12.  *
  13.  *  Copyright (c) 1996, 1997, Free Software Foundation, Inc
  14.  *  Developed at the Institute of System Programming
  15.  *
  16.  *  This program is free software; you can redistribute it and/or modify
  17.  *  it under the terms of the GNU General Public License as published by
  18.  *  the Free Software Foundation; either version 2 of the License, or
  19.  *  (at your option) any later version.
  20.  *
  21.  *  This program is distributed in the hope that it will be useful,
  22.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  23.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  24.  *  GNU General Public License for more details.
  25.  *
  26.  *  You should have received a copy of the GNU General Public License
  27.  *  along with this program; if not, write to the Free Software
  28.  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  29.  *
  30.  *  Contacts:   gss@ispras.ru
  31.  *
  32.  */
  33. #ifndef __fdeclbuf_h__
  34. #define __fdeclbuf_h__
  35. /* $Id: fdeclbuf.h,v 1.245 1997/03/31 03:46:38 kml Exp $ */
  36. #include "setup_os.h"
  37. #include <sys/types.h>
  38. #ifdef HAVE_SYS_IPC_H
  39. #include <sys/ipc.h>
  40. #endif
  41. #include "totdecl.h"
  42. #include "bufdefs.h"
  43. /* buf.c */
  44. /*      23 */ void set_prio __P((struct BUFF *buf, u2_t new_prio));
  45. /*      52 */ void unset_prio __P((struct BUFF *buf));
  46. /*      71 */ void change_prio __P((struct BUFF *buf, u2_t new_prio));
  47. /*      82 */ struct BUFF *find_buf __P((void));
  48. /*     100 */ struct BUFF *get_buf __P((void));
  49. /*     145 */ void del_buf __P((struct BUFF *buf));
  50. /*     159 */ void push_buf __P((struct BUFF *buf));
  51. /*     176 */ void optimal __P((u2_t num));
  52. /*     191 */ char *get_empty __P((unsigned size));
  53. /* bufipc.c */
  54. /*      55 */ void main __P((i4_t argc, char **argv));
  55. /*     135 */ void msg_rcv __P((void));
  56. /*     300 */ void buf_to_user __P((u2_t trnum, key_t keys));
  57. /*     317 */ void user_p __P((u2_t conn, i4_t type));
  58. /*     337 */ void push_micro __P((i4_t addr));
  59. /*     361 */ void pushmicro __P((i4_t addr));
  60. /*     381 */ struct des_seg *new_seg __P((void));
  61. /*     413 */ void del_seg __P((struct des_seg *desseg));
  62. /*     433 */ void inifixb __P((i4_t nop, i4_t ljadd));
  63. /*     473 */ void do_fix __P((void));
  64. /*     493 */ void fix_mode __P((void));
  65. /*     503 */ void end_op __P((void));
  66. /*     511 */ void weak_err __P((char *text));
  67. /*     520 */ void read_buf __P((struct BUFF *buf));
  68. /*     554 */ void write_buf __P((struct BUFF *buf));
  69. /*     587 */ void ADM_ERRFU __P((i4_t p));
  70. /*     602 */ void finit __P((void));
  71. /*     645 */ void wait_free __P((void));
  72. /*     650 */ void waitfor_seg __P((i4_t buf_num));
  73. /* buflock.c */
  74. /*      30 */ void tactup __P((void));
  75. /*      39 */ void tact __P((void));
  76. /*      78 */ i4_t buflock __P((u2_t conn, u2_t segn, u2_t pn,
  77.                            char type, u2_t prget));
  78. /*     119 */ i4_t enforce __P((u2_t conn, u2_t segn, u2_t pn));
  79. /*     146 */ void unlock __P((u2_t segn, u2_t lnum, char *p));
  80. /* get_put.c */
  81. /*      18 */ struct BUFF *get __P((u2_t sn, u2_t pn, char pr));
  82. /*      47 */ void put __P((u2_t sn, u2_t pn, i4_t address, char prmod));
  83. /* page.c */
  84. /*      22 */ void init_hash __P((void));
  85. /*      31 */ u2_t hash __P((u2_t page));
  86. /*      44 */ struct PAGE *new_page __P((u2_t seg_num, u2_t page_num));
  87. /*      77 */ void del_page __P((struct PAGE *page));
  88. /*      99 */ struct PAGE *find_page __P((u2_t n_seg, u2_t n_page));
  89. /* queue.c */
  90. /*      24 */ struct WAIT *new_wait __P((u2_t conn, u2_t type, u2_t tact, u2_t prg));
  91. /*      38 */ void into_wait __P((struct PAGE *page, struct WAIT *wait));
  92. /*      51 */ void out_first __P((struct PAGE *page));
  93. /*      65 */ void set_weak_locks __P((struct PAGE *page));
  94. #endif