/programs/develop/ktcc/trunk/bin/lib/libck.a |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/develop/ktcc/trunk/libc/gcc compile programs/README.txt |
---|
File deleted |
/programs/develop/ktcc/trunk/libc/gcc compile programs/start.asm |
---|
File deleted |
/programs/develop/ktcc/trunk/libc/gcc compile programs/makefile |
---|
File deleted |
/programs/develop/ktcc/trunk/libc/include/errno.h |
---|
1,6 → 1,42 |
#ifndef _ERRNO_H |
#define _ERRNO_H |
#include <stdio.h> |
extern int errno; |
/* errors codes from KOS, but minus */ |
# define E_SUCCESS (0) |
# define E_UNSUPPORTED (-2) |
# define E_UNKNOWNFS (-3) |
# define E_NOTFOUND (-5) |
# define E_EOF (-6) |
# define E_INVALIDPTR (-7) |
# define E_DISKFULL (-8) |
# define E_FSYSERROR (-9) |
# define E_ACCESS (-10) |
# define E_HARDWARE (-11) |
# define E_NOMEM (-12) |
/* conversion errors */ |
# define ERANGE (-20) |
# define EINVAL (-21) |
/* program run and pipe errors */ |
# define E_NOMEM2 (-30) |
# define E_FILEFMT (-31) |
# define E_TOOMANY (-32) |
# define E_PARAM (-33) |
/* socket error codes*/ |
#define ENOBUFS 1 |
#define EINPROGRESS 2 |
#define EOPNOTSUPP 4 |
#define EWOULDBLOCK 6 |
#define ENOTCONN 9 |
#define EALREADY 10 |
#define EINVALUE 11 |
#define EMSGSIZE 12 |
#define ENOMEM 18 |
#define EADDRINUSE 20 |
#define ECONNREFUSED 61 |
#define ECONNRESET 52 |
#define EISCONN 56 |
#define ETIMEDOUT 60 |
#define ECONNABORTED 53 |
#endif |
#endif |
/programs/develop/ktcc/trunk/libc/include/net/socket.h |
---|
2,6 → 2,7 |
#define __SOCKET_H |
#include <stddef.h> |
#include <errno.h> |
// Socket Types |
#define SOCK_STREAM 1 |
53,27 → 54,7 |
//Socket options |
#define SO_BINDTODEVICE (1<<9) |
#define SO_NONBLOCK (1<<31) |
// Error Codes |
#define ENOBUFS 1 |
#define EINPROGRESS 2 |
#define EOPNOTSUPP 4 |
#define EWOULDBLOCK 6 |
#define ENOTCONN 9 |
#define EALREADY 10 |
#define EINVALUE 11 |
#define EMSGSIZE 12 |
#define ENOMEM 18 |
#define EADDRINUSE 20 |
#define ECONNREFUSED 61 |
#define ECONNRESET 52 |
#define EISCONN 56 |
#define ETIMEDOUT 60 |
#define ECONNABORTED 53 |
#define PORT(X) (X<<8) |
extern int err_code; |
#pragma pack(push,1) |
struct sockaddr{ |
/programs/develop/ktcc/trunk/libc/include/stdio.h |
---|
2,6 → 2,7 |
#define stdio_h |
#include "kolibrisys.h" |
#include <errno.h> |
#include <stdarg.h> |
/* use stdarg.h |
typedef char *va_list; |
33,7 → 34,6 |
#define stderr ((FILE*)3) /* works only for fprintf!!! */ |
#define FILE_OPEN_READ 0 |
#define FILE_OPEN_WRITE 1 |
#define FILE_OPEN_APPEND 2 |
101,30 → 101,5 |
int tiny_vsnprintf (char * s, size_t n, const char * format, va_list args ); |
// support %c, %s, %d, %x, %u, %% for 32-bit values only. no width specs, left align |
// always zero-ended |
extern int errno; |
/* errors codes from KOS, but minus */ |
#ifndef E_SUCCESS |
# define E_SUCCESS (0) |
# define E_UNSUPPORTED (-2) |
# define E_UNKNOWNFS (-3) |
# define E_NOTFOUND (-5) |
# define E_EOF (-6) |
# define E_INVALIDPTR (-7) |
# define E_DISKFULL (-8) |
# define E_FSYSERROR (-9) |
# define E_ACCESS (-10) |
# define E_HARDWARE (-11) |
# define E_NOMEM (-12) |
/* conversion errors */ |
# define ERANGE (-20) |
# define EINVAL (-21) |
/* program run and pipe errors */ |
# define E_NOMEM2 (-30) |
# define E_FILEFMT (-31) |
# define E_TOOMANY (-32) |
# define E_PARAM (-33) |
#endif |
#endif |
/programs/develop/ktcc/trunk/libc/net/socket.c |
---|
1,12 → 1,10 |
#include <net/socket.h> |
int err_code=0; |
int socket(int domain, int type, int protocol) |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(0), "c"(domain), "d"(type), "S"(protocol) |
); |
} |
15,7 → 13,7 |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(1), "c"(socket) |
); |
} |
23,7 → 21,7 |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(2), "c"(socket), "d"(addres), "S"(addres_len) |
); |
} |
32,7 → 30,7 |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(3), "c"(socket), "d"(backlog) |
); |
} |
41,7 → 39,7 |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(4), "c"(socket), "d"(address), "S"(socket_len) |
); |
} |
50,7 → 48,7 |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(5), "c"(socket), "d"(address), "S"(address_len) |
); |
} |
59,7 → 57,7 |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(6), "c"(socket), "d"(message), "S"(msg_len), "D"(flag) |
); |
} |
68,7 → 66,7 |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(7), "c"(socket), "d"(buffer), "S"(buff_len), "D"(flag) |
); |
} |
77,7 → 75,7 |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(8), "c"(socket),"d"(opt) |
); |
} |
86,7 → 84,7 |
{ |
asm volatile( |
"int $0x40" |
:"=b"(err_code) |
:"=b"(errno) |
:"a"(75), "b"(9), "c"(socket),"d"(opt) |
); |
} |
98,6 → 96,6 |
:"=b"(*sock2), "=a"(*sock1) |
:"a"(75), "b"(10) |
); |
err_code = *sock2; |
errno = *sock2; |
return *sock1; |
} |
/programs/develop/ktcc/trunk/samples/net/http_tcp_demo.c |
---|
35,22 → 35,22 |
puts("Connecting...\n"); |
if (connect(sock, addr_info->ai_addr, addr_info->ai_addrlen) != 0) { |
printf("Connection failed, err_code = %d\n", err_code); |
exit(err_code); |
printf("Connection failed, errno = %d\n", errno); |
exit(errno); |
} |
puts("Connected successfully\n"); |
puts("Sending request...\n"); |
if (send(sock, request, strlen(request), MSG_NOFLAG) == -1) { |
printf("Sending failed, err_code = %d\n", err_code); |
exit(err_code); |
printf("Sending failed, errno = %d\n", errno); |
exit(errno); |
} |
puts("Request sended successfully, waiting for response...\n"); |
char buf[512 + 1]; |
if (recv(sock, buf, 512, MSG_NOFLAG) == -1) { |
printf("Receive failed, err_code = %d\n", err_code); |
exit(err_code); |
printf("Receive failed, errno = %d\n", errno); |
exit(errno); |
} |
printf("Response = %s\n", buf); |
/programs/develop/ktcc/trunk/samples/net/tcpsrv_demo.c |
---|
11,18 → 11,18 |
struct sockaddr addr={AF_INET4, PORT(23) , 0, 0}; |
int sk1=socket(AF_INET4, SOCK_STREAM, IPPROTO_TCP); |
printf("Open socket: %d. Error: %d\n",sk1, err_code); |
printf("Open socket: %d. Error: %d\n",sk1, errno); |
bind(sk1, &addr,sizeof(addr)); |
printf("Socket binding. Error: %d\n", err_code); |
printf("Socket binding. Error: %d\n", errno); |
listen(sk1, 1); |
printf("Listening to a socket. Error: %d\n", err_code); |
printf("Listening to a socket. Error: %d\n", errno); |
int sk2 = accept(sk1, &addr, sizeof(addr)); |
printf("Accept done. Error: %d\n", err_code); |
printf("Accept done. Error: %d\n", errno); |
send(sk2, msg1, strlen(msg1),MSG_NOFLAG); |
printf("Send message: '%s' Error: %d\n", msg1, err_code); |
printf("Send message: '%s' Error: %d\n", msg1, errno); |
puts("Received data:"); |
while(msg2!='!') |
{ |