first usable version of kernel and commands
After an year of hard work, this is a first "usable" version of Jehanne.
This commit is contained in:
128
sys/src/kern/port/getput.c
Normal file
128
sys/src/kern/port/getput.c
Normal file
@ -0,0 +1,128 @@
|
||||
#include "u.h"
|
||||
|
||||
void
|
||||
put64be(uint8_t *p, uint64_t x)
|
||||
{
|
||||
p[0] = x>>56;
|
||||
p[1] = x>>48;
|
||||
p[2] = x>>40;
|
||||
p[3] = x>>32;
|
||||
p[4] = x>>24;
|
||||
p[5] = x>>16;
|
||||
p[6] = x>>8;
|
||||
p[7] = x;
|
||||
}
|
||||
|
||||
void
|
||||
put32be(uint8_t *p, uint32_t x)
|
||||
{
|
||||
p[0] = x>>24;
|
||||
p[1] = x>>16;
|
||||
p[2] = x>>8;
|
||||
p[3] = x;
|
||||
}
|
||||
|
||||
void
|
||||
put24be(uint8_t *p, int x)
|
||||
{
|
||||
p[0] = x>>16;
|
||||
p[1] = x>>8;
|
||||
p[2] = x;
|
||||
}
|
||||
|
||||
void
|
||||
put16be(uint8_t *p, int x)
|
||||
{
|
||||
p[0] = x>>8;
|
||||
p[1] = x;
|
||||
}
|
||||
|
||||
uint64_t
|
||||
get64be(uint8_t *p)
|
||||
{
|
||||
return
|
||||
((uint64_t)p[0]<<56)|((uint64_t)p[1]<<48)|((uint64_t)p[2]<<40)|(uint64_t)p[3]<<32|
|
||||
((uint64_t)p[4]<<24)|((uint64_t)p[5]<<16)|((uint64_t)p[6]<<8)|(uint64_t)p[7];
|
||||
}
|
||||
|
||||
uint32_t
|
||||
get32be(uint8_t *p)
|
||||
{
|
||||
return ((uint32_t)p[0]<<24)|((uint32_t)p[1]<<16)|((uint32_t)p[2]<<8)|(uint32_t)p[3];
|
||||
}
|
||||
|
||||
uint32_t
|
||||
get24be(uint8_t *p)
|
||||
{
|
||||
return ((uint32_t)p[0]<<16)|((uint32_t)p[1]<<8)|(uint32_t)p[2];
|
||||
}
|
||||
|
||||
uint16_t
|
||||
get16be(uint8_t *p)
|
||||
{
|
||||
return ((uint16_t)p[0]<<8)|(uint16_t)p[1];
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
put64le(uint8_t *p, uint64_t x)
|
||||
{
|
||||
p[0] = x;
|
||||
p[1] = x>>8;
|
||||
p[2] = x>>16;
|
||||
p[3] = x>>24;
|
||||
p[4] = x>>32;
|
||||
p[5] = x>>40;
|
||||
p[6] = x>>48;
|
||||
p[7] = x>>56;
|
||||
}
|
||||
|
||||
void
|
||||
put32le(uint8_t *p, uint32_t x)
|
||||
{
|
||||
p[0] = x;
|
||||
p[1] = x>>8;
|
||||
p[2] = x>>16;
|
||||
p[3] = x>>24;
|
||||
}
|
||||
|
||||
void
|
||||
put24le(uint8_t *p, int x)
|
||||
{
|
||||
p[0] = x;
|
||||
p[1] = x>>8;
|
||||
p[2] = x>>16;
|
||||
}
|
||||
|
||||
void
|
||||
put16le(uint8_t *p, int x)
|
||||
{
|
||||
p[0] = x;
|
||||
p[1] = x>>8;
|
||||
}
|
||||
|
||||
uint64_t
|
||||
get64le(uint8_t *p)
|
||||
{
|
||||
return
|
||||
((uint64_t)p[0])|((uint64_t)p[1]<<8)|((uint64_t)p[2]<<16)|(uint64_t)p[3]<<24|
|
||||
((uint64_t)p[4]<<32)|((uint64_t)p[5]<<40)|((uint64_t)p[6]<<48)|(uint64_t)p[7]<<56;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
get32le(uint8_t *p)
|
||||
{
|
||||
return ((uint32_t)p[0])|((uint32_t)p[1]<<8)|((uint32_t)p[2]<<16)|(uint32_t)p[3]<<24;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
get24le(uint8_t *p)
|
||||
{
|
||||
return ((uint32_t)p[0])|((uint32_t)p[1]<<8)|(uint32_t)p[2]<<16;
|
||||
}
|
||||
|
||||
uint16_t
|
||||
get16le(uint8_t *p)
|
||||
{
|
||||
return ((uint16_t)p[0])|(uint16_t)p[1]<<8;
|
||||
}
|
Reference in New Issue
Block a user