~ubuntu-branches/ubuntu/quantal/silo/quantal

« back to all changes in this revision

Viewing changes to include/silo.h

  • Committer: Bazaar Package Importer
  • Author(s): Fabio M. Di Nitto
  • Date: 2007-10-25 09:28:08 UTC
  • mfrom: (15.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20071025092808-1yhj12t7s4zqsfu5
Tags: 1.4.13a+git20070930-1ubuntu1
* Merge from debian unstable, remaining changes:
  - Build with -fno-stack-protector.
  - Change silo.postinst to automatically update the boot block without
    invoking siloconfig and keep asking questions on upgrades.
  - Convert silo.conf to use /dev/disk/by-uuid.
  - Ubuntu maintainer foobar.
  - Fix debian/rules call to dh_installdocs.
  - Drop the requirement of gcc-4.1 and start using default gcc.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef SILO_H
 
2
#define SILO_H
 
3
 
 
4
#include <promlib.h>
 
5
 
 
6
#define CMD_LENG 512
 
7
 
 
8
extern unsigned long _start;
 
9
 
 
10
struct aout_hdr {
 
11
    int magic;
 
12
    int ltext;
 
13
    int ldata;
 
14
    int lbss;
 
15
    int lsym;
 
16
    int lentry;
 
17
    int x1;
 
18
    int x2;
 
19
};
 
20
typedef struct {
 
21
    unsigned char info[128];    /* Informative text string */
 
22
    unsigned char spare0[14];
 
23
    struct sun_info {
 
24
        unsigned char spare1;
 
25
        unsigned char id;
 
26
        unsigned char spare2;
 
27
        unsigned char flags;
 
28
    } infos[8];
 
29
    unsigned char spare1[246];  /* Boot information etc. */
 
30
    unsigned short rspeed;      /* Disk rotational speed */
 
31
    unsigned short pcylcount;   /* Physical cylinder count */
 
32
    unsigned short sparecyl;    /* extra sects per cylinder */
 
33
    unsigned char spare2[4];    /* More magic... */
 
34
    unsigned short ilfact;      /* Interleave factor */
 
35
    unsigned short ncyl;        /* Data cylinder count */
 
36
    unsigned short nacyl;       /* Alt. cylinder count */
 
37
    unsigned short ntrks;       /* Tracks per cylinder */
 
38
    unsigned short nsect;       /* Sectors per track */
 
39
    unsigned char spare3[4];    /* Even more magic... */
 
40
    struct sun_partition {
 
41
        unsigned int start_cylinder;
 
42
        unsigned int num_sectors;
 
43
    } partitions[8];
 
44
    unsigned short magic;       /* Magic number */
 
45
    unsigned short csum;        /* Label xor'd checksum */
 
46
} sun_partition;
 
47
 
 
48
#define SUN_LABEL_MAGIC          0xDABE
 
49
 
 
50
struct silo_inode {
 
51
    unsigned int inolen;
 
52
    unsigned int mtime;
 
53
    unsigned int size;
 
54
    unsigned int mode;
 
55
    unsigned int uid;
 
56
    unsigned int gid;
 
57
    unsigned char name[0];
 
58
};
 
59
 
 
60
/* Options for cmd for load_file */
 
61
#define LOADFILE_GZIP           0x01
 
62
#define LOADFILE_LS             0x02
 
63
#define LOADFILE_MATCH          0x04
 
64
#define LOADFILE_QUIET          0x08
 
65
#define LOADFILE_NO_ROTATE      0x10
 
66
 
 
67
#define LOADFILE_LS_MATCH       (LOADFILE_MATCH | LOADFILE_MATCH)
 
68
 
 
69
/* cmdline.c */
 
70
void silo_cmdinit(void);
 
71
void silo_cmdedit(void (*)(void), int);
 
72
extern char cbuff[];
 
73
extern char passwdbuff[];
 
74
/* ls.c */
 
75
#define LSOPT_L 1
 
76
#define LSOPT_T 2
 
77
#define LSOPT_R 4
 
78
extern int ls_opt;
 
79
int do_ls (unsigned char *, int *);
 
80
/* disk.c */
 
81
char *silo_disk_get_bootdevice(void);
 
82
int silo_diskinit(void);
 
83
int silo_disk_read(char *, int, unsigned long long);
 
84
int silo_disk_open(char *);
 
85
int silo_disk_setdisk(char *);
 
86
int silo_disk_partitionable(void);
 
87
void silo_disk_close(void);
 
88
/* printf.c */
 
89
int vprintf (char *, va_list);
 
90
int putchar (int);
 
91
/* malloc.c */
 
92
void *malloc (int);
 
93
void free (void *);
 
94
void mark (void **);
 
95
void release (void *);
 
96
/* file.c */
 
97
int silo_load_file(char *, int, char *, unsigned char *,
 
98
                   unsigned char *, int *, int,
 
99
                   void (*)(int, char **, char **));
 
100
/* misc.c */
 
101
void silo_fatal(const char *);
 
102
char *silo_get_bootargs(int);
 
103
void silo_show_bootargs(void);
 
104
void silo_set_bootargs(char *, char *);
 
105
void silo_set_prollargs(char *, unsigned int, int);
 
106
char *silo_v0_device(char *);
 
107
enum arch silo_get_architecture(void);
 
108
unsigned char *silo_find_linux_HdrS(char *, int);
 
109
void print_message(char *);
 
110
void get_idprom(void);
 
111
char *get_syspackage(void);
 
112
char *seed_part_into_device (char *device, int part);
 
113
/* cfg.c */
 
114
int cfg_parse (char *, char *, int);
 
115
char *cfg_get_strg (char *, char *);
 
116
int cfg_get_flag (char *, char *);
 
117
int cfg_print_images (char *, char *);
 
118
char *cfg_get_default (void);
 
119
/* strtol.c */
 
120
int strtol (const char *, char **, int);
 
121
#define atoi(a) strtol(a,0,10)
 
122
/* decompress.c */
 
123
int decompress (char *, char *, unsigned char (*)(void), void (*)(void));
 
124
/* main.c */
 
125
extern enum arch architecture;
 
126
/* timer.c */
 
127
int init_timer ();
 
128
void close_timer ();
 
129
int get_ticks (void);
 
130
void reset_ticks (void);
 
131
/* memory.c */
 
132
char *memory_find (int);
 
133
void memory_release (void);
 
134
char *image_memory_find (unsigned int len);
 
135
void image_memory_release (void);
 
136
struct linux_mlist_v0 *prom_meminit (void);
 
137
int sun4c_mapio (unsigned long, unsigned long, int);
 
138
void sun4c_unmapio (unsigned long);
 
139
/* libc */
 
140
char *strdup (const char *);
 
141
char *strstr (const char *, const char *);
 
142
int strcmp (const char *, const char *);
 
143
char *strcat (char *, const char *);
 
144
#undef tolower
 
145
int tolower (int);
 
146
int strcasecmp (const char *, const char *);
 
147
#endif