[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]

FreeBSD/Linux Kernel Cross Reference
sys/geom/geom_pc98_enc.c

Version: -  FREEBSD  -  FREEBSD7  -  FREEBSD70  -  FREEBSD6  -  FREEBSD64  -  FREEBSD63  -  FREEBSD62  -  FREEBSD61  -  FREEBSD60  -  FREEBSD5  -  FREEBSD55  -  FREEBSD54  -  FREEBSD53  -  FREEBSD52  -  FREEBSD51  -  FREEBSD50  -  FREEBSD4  -  FREEBSD3  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD5  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  OPENSOLARIS  -  minix-3-1-1  -  TRUSTEDBSD-SEBSD  -  FREEBSD-LIBC  -  FREEBSD7-LIBC  -  FREEBSD6-LIBC  -  GLIBC27 
SearchContext: -  none  -  excerpts  -  bigexcerpts 

  1 /*-
  2  * Copyright (c) 2003 TAKAHASHI Yoshihiro
  3  * All rights reserved.
  4  *
  5  * Redistribution and use in source and binary forms, with or without
  6  * modification, are permitted provided that the following conditions
  7  * are met:
  8  * 1. Redistributions of source code must retain the above copyright
  9  *    notice, this list of conditions and the following disclaimer.
 10  * 2. Redistributions in binary form must reproduce the above copyright
 11  *    notice, this list of conditions and the following disclaimer in the
 12  *    documentation and/or other materials provided with the distribution.
 13  *
 14  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 15  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 17  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 19  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 20  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 21  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 22  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 23  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 24  * SUCH DAMAGE.
 25  */
 26 
 27 #include <sys/cdefs.h>
 28 __FBSDID("$FreeBSD: src/sys/geom/geom_pc98_enc.c,v 1.3 2005/05/01 09:44:50 nyan Exp $");
 29 
 30 #include <sys/types.h>
 31 #include <sys/diskpc98.h>
 32 #include <sys/endian.h>
 33 
 34 void
 35 pc98_partition_dec(void const *pp, struct pc98_partition *d)
 36 {
 37         unsigned char const *ptr = pp;
 38         u_int i;
 39 
 40         d->dp_mid = ptr[0];
 41         d->dp_sid = ptr[1];
 42         d->dp_dum1 = ptr[2];
 43         d->dp_dum2 = ptr[3];
 44         d->dp_ipl_sct = ptr[4];
 45         d->dp_ipl_head = ptr[5];
 46         d->dp_ipl_cyl = le16dec(ptr + 6);
 47         d->dp_ssect = ptr[8];
 48         d->dp_shd = ptr[9];
 49         d->dp_scyl = le16dec(ptr + 10);
 50         d->dp_esect = ptr[12];
 51         d->dp_ehd = ptr[13];
 52         d->dp_ecyl = le16dec(ptr + 14);
 53         for (i = 0; i < sizeof (d->dp_name); i++)
 54                 d->dp_name[i] = ptr[16 + i];
 55 }
 56 
 57 void
 58 pc98_partition_enc(void *pp, struct pc98_partition *d)
 59 {
 60         unsigned char *ptr = pp;
 61         u_int i;
 62 
 63         ptr[0] = d->dp_mid;
 64         ptr[1] = d->dp_sid;
 65         ptr[2] = d->dp_dum1;
 66         ptr[3] = d->dp_dum2;
 67         ptr[4] = d->dp_ipl_sct;
 68         ptr[5] = d->dp_ipl_head;
 69         le16enc(ptr + 6, d->dp_ipl_cyl);
 70         ptr[8] = d->dp_ssect;
 71         ptr[9] = d->dp_shd;
 72         le16enc(ptr + 10, d->dp_scyl);
 73         ptr[12] = d->dp_esect;
 74         ptr[13] = d->dp_ehd;
 75         le16enc(ptr + 14, d->dp_ecyl);
 76         for (i = 0; i < sizeof (d->dp_name); i++)
 77                 ptr[16 + i] = d->dp_name[i];
 78 }
 79 

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.