~ubuntu-branches/ubuntu/gutsy/ms-sys/gutsy

« back to all changes in this revision

Viewing changes to src/br.c

  • Committer: Bazaar Package Importer
  • Author(s): Gürkan Sengün
  • Date: 2004-04-04 21:46:59 UTC
  • Revision ID: james.westby@ubuntu.com-20040404214659-zagib326l5tnd75w
Tags: upstream-1.1.3
Import upstream version 1.1.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
 
 
3
#include "file.h"
 
4
#include "br.h"
 
5
 
 
6
int is_br(FILE *fp)
 
7
{
 
8
   /* A "file" is probably some kind of boot record if it contains the magic
 
9
      chars 0x55, 0xAA at position 0x1FE */
 
10
   unsigned char aucRef[] = {0x55, 0xAA};
 
11
 
 
12
   return contains_data(fp, 0x1FE, aucRef, sizeof(aucRef)); 
 
13
} /* is_br */
 
14
 
 
15
int is_lilo_br(FILE *fp)
 
16
{
 
17
   /* A "file" is probably a LILO boot record if it contains the magic
 
18
      chars LILO at position 0x6 or 0x2 for floppies */
 
19
   unsigned char aucRef[] = {'L','I','L','O'};
 
20
 
 
21
   return ( contains_data(fp, 0x6, aucRef, sizeof(aucRef)) ||
 
22
            contains_data(fp, 0x2, aucRef, sizeof(aucRef)) ); 
 
23
} /* is_lilo_br */
 
24
 
 
25
int is_dos_mbr(FILE *fp)
 
26
{
 
27
   #include "mbr_dos.h"
 
28
   unsigned char aucRef[] = {0x55, 0xAA};
 
29
 
 
30
   return
 
31
      contains_data(fp, 0x0, mbr_dos_0x0, sizeof(mbr_dos_0x0)) &&
 
32
      contains_data(fp, 0x1FE, aucRef, sizeof(aucRef));
 
33
} /* is_dos_mbr */
 
34
 
 
35
int is_95b_mbr(FILE *fp)
 
36
{
 
37
   #include "mbr_95b.h"
 
38
   unsigned char aucRef[] = {0x55, 0xAA};
 
39
 
 
40
   return
 
41
      contains_data(fp, 0x0,   mbr_95b_0x0,   sizeof(mbr_95b_0x0)) &&
 
42
      contains_data(fp, 0x0e0, mbr_95b_0x0e0, sizeof(mbr_95b_0x0e0)) &&
 
43
      contains_data(fp, 0x1FE, aucRef, sizeof(aucRef));
 
44
} /* is_95b_mbr */
 
45
 
 
46
int is_2000_mbr(FILE *fp)
 
47
{
 
48
   #include "mbr_2000.h"
 
49
   unsigned char aucRef[] = {0x55, 0xAA};
 
50
 
 
51
   return
 
52
      contains_data(fp, 0x0, mbr_2000_0x0, sizeof(mbr_2000_0x0)) &&
 
53
      contains_data(fp, 0x1FE, aucRef, sizeof(aucRef));
 
54
} /* is_2000_mbr */
 
55
 
 
56
int is_syslinux_mbr(FILE *fp)
 
57
{
 
58
   #include "mbr_syslinux.h"
 
59
   unsigned char aucRef[] = {0x55, 0xAA};
 
60
 
 
61
   return
 
62
      contains_data(fp, 0x0, mbr_syslinux_0x0, sizeof(mbr_syslinux_0x0)) &&
 
63
      contains_data(fp, 0x1FE, aucRef, sizeof(aucRef));
 
64
} /* is_syslinux_mbr */
 
65
 
 
66
int is_zero_mbr(FILE *fp)
 
67
{
 
68
   #include "mbr_zero.h"
 
69
 
 
70
   return
 
71
      contains_data(fp, 0x0, mbr_zero_0x0, sizeof(mbr_zero_0x0));
 
72
        /* Don't bother to check 55AA signature */
 
73
} /* is_zero_mbr */
 
74
 
 
75
int write_dos_mbr(FILE *fp)
 
76
{
 
77
   #include "mbr_dos.h"
 
78
   unsigned char aucRef[] = {0x55, 0xAA};
 
79
 
 
80
   return
 
81
      write_data(fp, 0x0, mbr_dos_0x0, sizeof(mbr_dos_0x0)) &&
 
82
      write_data(fp, 0x1FE, aucRef, sizeof(aucRef));
 
83
} /* write_dos_mbr */
 
84
 
 
85
int write_95b_mbr(FILE *fp)
 
86
{
 
87
   #include "mbr_95b.h"
 
88
   unsigned char aucRef[] = {0x55, 0xAA};
 
89
 
 
90
   return
 
91
      write_data(fp, 0x0,   mbr_95b_0x0, sizeof(mbr_95b_0x0)) &&
 
92
      write_data(fp, 0x0e0, mbr_95b_0x0e0, sizeof(mbr_95b_0x0e0)) &&
 
93
      write_data(fp, 0x1FE, aucRef, sizeof(aucRef));
 
94
} /* write_95b_mbr */
 
95
 
 
96
int write_2000_mbr(FILE *fp)
 
97
{
 
98
   #include "mbr_2000.h"
 
99
   unsigned char aucRef[] = {0x55, 0xAA};
 
100
 
 
101
   return
 
102
      write_data(fp, 0x0, mbr_2000_0x0, sizeof(mbr_2000_0x0)) &&
 
103
      write_data(fp, 0x1FE, aucRef, sizeof(aucRef));
 
104
} /* write_2000_mbr */
 
105
 
 
106
int write_syslinux_mbr(FILE *fp)
 
107
{
 
108
   #include "mbr_syslinux.h"
 
109
   unsigned char aucRef[] = {0x55, 0xAA};
 
110
 
 
111
   return
 
112
      write_data(fp, 0x0, mbr_syslinux_0x0, sizeof(mbr_syslinux_0x0)) &&
 
113
      write_data(fp, 0x1FE, aucRef, sizeof(aucRef));
 
114
} /* write_syslinux_mbr */
 
115
 
 
116
int write_zero_mbr(FILE *fp)
 
117
{
 
118
   #include "mbr_zero.h"
 
119
   unsigned char aucRef[] = {0x55, 0xAA};
 
120
 
 
121
   return
 
122
      write_data(fp, 0x0,   mbr_zero_0x0, sizeof(mbr_zero_0x0)) &&
 
123
      write_data(fp, 0x1FE, aucRef, sizeof(aucRef));
 
124
} /* write_zero_mbr */