#!/usr/bin/env python # -*- mode: python; -*- #============================================================================ # Copyright (C) 2004 Mike Wray # Copyright (C) 2005-2006 XenSource Inc #============================================================================ """Xen management daemon. Provides console server and HTTP management api. Run: xend start Restart: xend restart The daemon is stopped with: xend stop The daemon should reconnect to device control interfaces and recover its state when restarted. On Solaris, the daemons are SMF managed, and you should not attempt to start xend by hand. """ import fcntl import glob import os import os.path import sys import socket import signal import time import commands from xen.xend.server import SrvDaemon class CheckError(ValueError): pass def hline(): print >>sys.stderr, "*" * 70 def msg(message): print >>sys.stderr, "*" * 3, message def check_logging(): """Check python logging is installed and raise an error if not. Logging is standard from Python 2.3 on. """ try: import logging except ImportError: hline() msg("Python logging is not installed.") msg("Use 'make install-logging' at the xen root to install.") msg("") msg("Alternatively download and install from") msg("http://www.red-dove.com/python_logging.html") hline() raise CheckError("logging is not installed") def check_user(): """Check that the effective user id is 0 (root). """ if os.geteuid() != 0: hline() msg("Xend must be run as root.") hline() raise CheckError("invalid user") def start_daemon(daemon, *args): if os.fork() == 0: os.execvp(daemon, (daemon,) + args) def start_blktapctrl(): start_daemon("blktapctrl", "") def main(): try: check_logging() check_user() except CheckError: sys.exit(1) daemon = SrvDaemon.instance() if not sys.argv[1:]: print 'usage: %s {start|stop|reload|restart}' % sys.argv[0] elif sys.argv[1] == 'start': if os.uname()[0] != "SunOS": start_blktapctrl() return daemon.start() elif sys.argv[1] == 'trace_start': start_blktapctrl() return daemon.start(trace=1) elif sys.argv[1] == 'stop': return daemon.stop() elif sys.argv[1] == 'reload': return daemon.reloadConfig() elif sys.argv[1] == 'restart': start_blktapctrl() return daemon.stop() or daemon.start() elif sys.argv[1] == 'status': return daemon.status() else: print 'not an option:', sys.argv[1] return 1 if __name__ == '__main__': sys.exit(main()) ree/tmk_core/common/eeprom.h?id=7a9980fd853fdcce430f0dbe85fc25674cf88d36'>eeprom.h
blob: 8a81e70668958baf55c1682a5bdd0b1366843e76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef TMK_CORE_COMMON_EEPROM_H_
#define TMK_CORE_COMMON_EEPROM_H_

#if defined(__AVR__) && !defined(EEPROM_DRIVER)
#    include <avr/eeprom.h>
#else
#    include <stdint.h>
#    include <stdlib.h>

uint8_t  eeprom_read_byte(const uint8_t *__p);
uint16_t eeprom_read_word(const uint16_t *__p);
uint32_t eeprom_read_dword(const uint32_t *__p);
void     eeprom_read_block(void *__dst, const void *__src, size_t __n);
void     eeprom_write_byte(uint8_t *__p, uint8_t __value);
void     eeprom_write_word(uint16_t *__p, uint16_t __value);
void     eeprom_write_dword(uint32_t *__p, uint32_t __value);
void     eeprom_write_block(const void *__src, void *__dst, size_t __n);
void     eeprom_update_byte(uint8_t *__p, uint8_t __value);
void     eeprom_update_word(uint16_t *__p, uint16_t __value);
void     eeprom_update_dword(uint32_t *__p, uint32_t __value);
void     eeprom_update_block(const void *__src, void *__dst, size_t __n);
#endif

#endif /* TMK_CORE_COMMON_EEPROM_H_ */