File: mac_plugin.h

package info (click to toggle)
evms 2.5.2-1.sarge2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 14,248 kB
  • ctags: 15,488
  • sloc: ansic: 201,340; perl: 12,421; sh: 4,262; makefile: 1,516; yacc: 316; sed: 16
file content (97 lines) | stat: -rw-r--r-- 3,457 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*
 *
 *   (C) Copyright IBM Corp. 2003
 *
 *   This program is free software;  you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
 *   the GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program;  if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
 *   Module: libmac.so
 *
 *   File: mac_plugin.h
 */

#ifndef   _MAC_HEADERS_
#define   _MAC_HEADERS_ 1

//
// MAC Disk Private Data Area
//
#define  MAC_DISK_PDATA_SIGNATURE          0x4D41432D  /* MAC- */

#define  DISK_HAS_CHANGES_PENDING          0x00000001
#define  DISK_HAS_MOVE_PENDING             0x00000002

#include "mac_disklabel.h"

typedef struct disk_private_data_s {

        u_int32_t          signature;           /* used to validate disk private data area           */
        
        u_int32_t          flags;               /* see DISK_HAS_xxxx flags above                     */

        u_int32_t          vsectors_per_block;  /* disk hardsector size >> EVMS_VSECTOR_SIZE         */
        
        u_int32_t          pcount;              /* number of partition map entries                   */

        copy_job_t        *copy_job;            /* ptr to valid copy job if a segment move is in     */
                                                /* progress ... DISK_HAS_MOVE_PENDING should be      */
                                                /* set if this is the case.                          */
        
        mac_partition_t    pmap;                /* copy of the pmap partition record                 */

} disk_private_data_t; 


//
// MAC Segment Private Data Area
//
#define  MAC_SEGMENT_PDATA_SIGNATURE       0x4D5A4547   /* MSEG */
#define  SEG_CFLAG_TOP_SEGMENT             0x00000001

typedef struct seg_private_data_s {

        u_int32_t          signature;           /* used to validate our private data area            */

        u_int32_t          cflags;              /* common flag definitions                           */

        //----------------- end of segment manager common area  -----------------------

        storage_object_t  *logical_disk;        /* storage object we found the mac partitions on     */

        mac_partition_t    p_record;            /* mac partition record we read off the disk label   */                                         

        u_int32_t          minor;               /* minor number assigned to this segment             */
        
        u_int32_t          pmap_index;          /* location of record in the PMAP                    */

        DISKSEG           *move_target;         /* used when moving segments on the disk             */
    
} seg_private_data_t;


extern struct engine_functions_s       *EngFncs;
extern plugin_record_t                 *mac_plugin;

#define my_plugin_record               mac_plugin

#include "disks.h"
#include "helpers.h"
#include "commit.h"
#include "options.h"
#include "discovery.h"
#include "segments.h"
#include "dm.h"

#endif