ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/BeOS/xpram_beos.cpp
Revision: 1.10
Committed: 2009-07-23T19:19:14Z (14 years, 10 months ago) by asvitkine
Branch: MAIN
CVS Tags: HEAD
Changes since 1.9: +1 -1 lines
Log Message:
BasiliskII side of changes to support .sheepvm bundles for SheepShaver

File Contents

# User Rev Content
1 cebix 1.1 /*
2     * xpram_beos.cpp - XPRAM handling, BeOS specific stuff
3     *
4 gbeauche 1.9 * Basilisk II (C) 1997-2008 Christian Bauer
5 cebix 1.1 *
6     * This program is free software; you can redistribute it and/or modify
7     * it under the terms of the GNU General Public License as published by
8     * the Free Software Foundation; either version 2 of the License, or
9     * (at your option) any later version.
10     *
11     * This program is distributed in the hope that it will be useful,
12     * but WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     * GNU General Public License for more details.
15     *
16     * You should have received a copy of the GNU General Public License
17     * along with this program; if not, write to the Free Software
18     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19     */
20    
21     #include <StorageKit.h>
22     #include <unistd.h>
23    
24     #include "sysdeps.h"
25     #include "xpram.h"
26    
27    
28     // XPRAM file name and path
29 cebix 1.5 #if POWERPC_ROM
30     const char XPRAM_FILE_NAME[] = "SheepShaver_NVRAM";
31     #else
32 cebix 1.1 const char XPRAM_FILE_NAME[] = "BasiliskII_XPRAM";
33 cebix 1.5 #endif
34 cebix 1.1 static BPath xpram_path;
35    
36    
37     /*
38     * Load XPRAM from settings file
39     */
40    
41 asvitkine 1.10 void LoadXPRAM(const char *vmdir)
42 cebix 1.1 {
43     // Construct XPRAM path
44     find_directory(B_USER_SETTINGS_DIRECTORY, &xpram_path, true);
45     xpram_path.Append(XPRAM_FILE_NAME);
46    
47     // Load XPRAM from settings file
48     int fd;
49     if ((fd = open(xpram_path.Path(), O_RDONLY)) >= 0) {
50 cebix 1.5 read(fd, XPRAM, XPRAM_SIZE);
51 cebix 1.1 close(fd);
52     }
53     }
54    
55    
56     /*
57     * Save XPRAM to settings file
58     */
59    
60     void SaveXPRAM(void)
61     {
62     if (xpram_path.InitCheck() != B_NO_ERROR)
63     return;
64     int fd;
65 cebix 1.2 if ((fd = open(xpram_path.Path(), O_WRONLY | O_CREAT, 0666)) >= 0) {
66 cebix 1.5 write(fd, XPRAM, XPRAM_SIZE);
67 cebix 1.1 close(fd);
68     }
69     }
70    
71    
72     /*
73     * Delete PRAM file
74     */
75    
76     void ZapPRAM(void)
77     {
78     // Construct PRAM path
79     find_directory(B_USER_SETTINGS_DIRECTORY, &xpram_path, true);
80     xpram_path.Append(XPRAM_FILE_NAME);
81    
82     // Delete file
83     unlink(xpram_path.Path());
84     }