clang format
This commit is contained in:
parent
d7308fcf4a
commit
55e9efd57b
28
console.c
28
console.c
@ -405,20 +405,20 @@ void putstr(char *str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void goto_xy(int newx, int newy) {
|
void goto_xy(int newx, int newy) {
|
||||||
if (newx >= char_width) {
|
if (newx >= char_width) {
|
||||||
newx = char_width - 1;
|
newx = char_width - 1;
|
||||||
}
|
}
|
||||||
if (newy >= char_height) {
|
if (newy >= char_height) {
|
||||||
newy = char_height -1;
|
newy = char_height - 1;
|
||||||
}
|
}
|
||||||
if (newx < 0) {
|
if (newx < 0) {
|
||||||
newx = 0;
|
newx = 0;
|
||||||
}
|
}
|
||||||
if (newy < 0) {
|
if (newy < 0) {
|
||||||
newy = 0;
|
newy = 0;
|
||||||
}
|
}
|
||||||
x = newx;
|
x = newx;
|
||||||
y = newy;
|
y = newy;
|
||||||
update_cursor(1);
|
update_cursor(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
3
ether.c
3
ether.c
@ -112,7 +112,8 @@ struct ether_t *ether_find_from_ipv4(unsigned int ipv4) {
|
|||||||
|
|
||||||
for (i = 0; i < ptr_vector_len(ðer_devs); i++) {
|
for (i = 0; i < ptr_vector_len(ðer_devs); i++) {
|
||||||
card = ptr_vector_get(ðer_devs, i);
|
card = ptr_vector_get(ðer_devs, i);
|
||||||
if (card->ipv4 == 0) continue;
|
if (card->ipv4 == 0)
|
||||||
|
continue;
|
||||||
if ((ipv4 & card->mask) == (card->ipv4 & card->mask) || card->default_gw != 0) {
|
if ((ipv4 & card->mask) == (card->ipv4 & card->mask) || card->default_gw != 0) {
|
||||||
return card;
|
return card;
|
||||||
}
|
}
|
||||||
|
29
socket.c
29
socket.c
@ -24,11 +24,11 @@ extern unsigned long timer_ticks;
|
|||||||
|
|
||||||
extern void tcp_send(struct ether_t *ether, struct socket_t *sock, unsigned short flags, unsigned char *packet, unsigned int len, int thrice);
|
extern void tcp_send(struct ether_t *ether, struct socket_t *sock, unsigned short flags, unsigned char *packet, unsigned int len, int thrice);
|
||||||
|
|
||||||
|
|
||||||
void socket_timeout() {
|
void socket_timeout() {
|
||||||
for (int i = 0; i < ptr_vector_len(&sockets); i++) {
|
for (int i = 0; i < ptr_vector_len(&sockets); i++) {
|
||||||
struct socket_t *s = ptr_vector_get(&sockets, i);
|
struct socket_t *s = ptr_vector_get(&sockets, i);
|
||||||
if (!s->ether) continue;
|
if (!s->ether)
|
||||||
|
continue;
|
||||||
if (s->socket_type == 1 && s->status == SOCKET_STATUS_CONNECTED) {
|
if (s->socket_type == 1 && s->status == SOCKET_STATUS_CONNECTED) {
|
||||||
if (s->tcp_keep_alive + 720000 < timer_ticks) {
|
if (s->tcp_keep_alive + 720000 < timer_ticks) {
|
||||||
if (s->tcp_keep_alive_probes == 0) {
|
if (s->tcp_keep_alive_probes == 0) {
|
||||||
@ -85,9 +85,11 @@ struct socket_t *socket_find(unsigned short dport, unsigned short sport, unsigne
|
|||||||
|
|
||||||
for (i = 0; i < ptr_vector_len(&sockets); i++) {
|
for (i = 0; i < ptr_vector_len(&sockets); i++) {
|
||||||
struct socket_t *s = ptr_vector_get(&sockets, i);
|
struct socket_t *s = ptr_vector_get(&sockets, i);
|
||||||
if (!s->ether) continue;
|
if (!s->ether)
|
||||||
|
continue;
|
||||||
if (s->port_recv == dport && s->port_dest == sport && (s->addr == 0xffffffff || s->addr == src_ip)) {
|
if (s->port_recv == dport && s->port_dest == sport && (s->addr == 0xffffffff || s->addr == src_ip)) {
|
||||||
if (s->status == SOCKET_STATUS_OPENED || s->status == SOCKET_STATUS_CONNECTED || s->status == SOCKET_STATUS_CLOSE2 || s->status == SOCKET_STATUS_FINACK || s->status == SOCKET_STATUS_FINACK2) {
|
if (s->status == SOCKET_STATUS_OPENED || s->status == SOCKET_STATUS_CONNECTED || s->status == SOCKET_STATUS_CLOSE2 || s->status == SOCKET_STATUS_FINACK ||
|
||||||
|
s->status == SOCKET_STATUS_FINACK2) {
|
||||||
s->tcp_keep_alive = timer_ticks;
|
s->tcp_keep_alive = timer_ticks;
|
||||||
s->tcp_keep_alive_probes = 0;
|
s->tcp_keep_alive_probes = 0;
|
||||||
s->tcp_keep_alive_interval = 0;
|
s->tcp_keep_alive_interval = 0;
|
||||||
@ -104,7 +106,8 @@ struct socket_t *socket_find(unsigned short dport, unsigned short sport, unsigne
|
|||||||
|
|
||||||
for (i = 0; i < ptr_vector_len(&sockets); i++) {
|
for (i = 0; i < ptr_vector_len(&sockets); i++) {
|
||||||
struct socket_t *s = ptr_vector_get(&sockets, i);
|
struct socket_t *s = ptr_vector_get(&sockets, i);
|
||||||
if (!s->ether) continue;
|
if (!s->ether)
|
||||||
|
continue;
|
||||||
if (s->port_recv == dport && s->addr == 0) {
|
if (s->port_recv == dport && s->addr == 0) {
|
||||||
if (s->status == SOCKET_STATUS_LISTEN) {
|
if (s->status == SOCKET_STATUS_LISTEN) {
|
||||||
struct task_t *task = (struct task_t *)s->data;
|
struct task_t *task = (struct task_t *)s->data;
|
||||||
@ -118,7 +121,7 @@ struct socket_t *socket_find(unsigned short dport, unsigned short sport, unsigne
|
|||||||
new_socket->port_recv = dport;
|
new_socket->port_recv = dport;
|
||||||
new_socket->tcp_sock.seq_number = random();
|
new_socket->tcp_sock.seq_number = random();
|
||||||
new_socket->tcp_sock.ack_number = seq + 1;
|
new_socket->tcp_sock.ack_number = seq + 1;
|
||||||
|
|
||||||
init_ptr_vector(&new_socket->out_packets);
|
init_ptr_vector(&new_socket->out_packets);
|
||||||
init_ptr_vector(&new_socket->packets);
|
init_ptr_vector(&new_socket->packets);
|
||||||
|
|
||||||
@ -351,7 +354,7 @@ int socket_bind(unsigned int serial, unsigned int dest_ip, unsigned short dest_p
|
|||||||
|
|
||||||
if (sock->port_recv == 0) {
|
if (sock->port_recv == 0) {
|
||||||
sock->status = SOCKET_STATUS_CLOSE;
|
sock->status = SOCKET_STATUS_CLOSE;
|
||||||
socket_doclose(sock);
|
socket_doclose(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
socket_mark_port_bitmap(sock->port_recv);
|
socket_mark_port_bitmap(sock->port_recv);
|
||||||
@ -361,7 +364,7 @@ int socket_bind(unsigned int serial, unsigned int dest_ip, unsigned short dest_p
|
|||||||
socket_mark_port_bitmap(src_port);
|
socket_mark_port_bitmap(src_port);
|
||||||
} else {
|
} else {
|
||||||
sock->status = SOCKET_STATUS_CLOSE;
|
sock->status = SOCKET_STATUS_CLOSE;
|
||||||
socket_doclose(sock);
|
socket_doclose(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -374,7 +377,7 @@ int socket_bind(unsigned int serial, unsigned int dest_ip, unsigned short dest_p
|
|||||||
sock->ether = ptr_vector_get(ðer_devs, 0);
|
sock->ether = ptr_vector_get(ðer_devs, 0);
|
||||||
} else {
|
} else {
|
||||||
sock->status = SOCKET_STATUS_CLOSE;
|
sock->status = SOCKET_STATUS_CLOSE;
|
||||||
socket_doclose(sock);
|
socket_doclose(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -391,7 +394,7 @@ int socket_connect(unsigned int serial, unsigned int dest_ip, unsigned short des
|
|||||||
|
|
||||||
if (sock->socket_type != 1) {
|
if (sock->socket_type != 1) {
|
||||||
sock->status = SOCKET_STATUS_CLOSE;
|
sock->status = SOCKET_STATUS_CLOSE;
|
||||||
socket_doclose(sock);
|
socket_doclose(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -405,7 +408,7 @@ int socket_connect(unsigned int serial, unsigned int dest_ip, unsigned short des
|
|||||||
sock->port_recv = socket_get_port();
|
sock->port_recv = socket_get_port();
|
||||||
if (sock->port_recv == 0) {
|
if (sock->port_recv == 0) {
|
||||||
sock->status = SOCKET_STATUS_CLOSE;
|
sock->status = SOCKET_STATUS_CLOSE;
|
||||||
socket_doclose(sock);
|
socket_doclose(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,7 +427,7 @@ int socket_connect(unsigned int serial, unsigned int dest_ip, unsigned short des
|
|||||||
void socket_doclose(struct socket_t *sock) {
|
void socket_doclose(struct socket_t *sock) {
|
||||||
int i, j;
|
int i, j;
|
||||||
if (sock->socket_type == 1) {
|
if (sock->socket_type == 1) {
|
||||||
if (sock->status == 1) {
|
if (sock->status == 1) {
|
||||||
sched_remove_socket_from_all_tasks(sock);
|
sched_remove_socket_from_all_tasks(sock);
|
||||||
|
|
||||||
for (i = 0; i < ptr_vector_len(&sockets); i++) {
|
for (i = 0; i < ptr_vector_len(&sockets); i++) {
|
||||||
@ -520,7 +523,7 @@ unsigned int socket_open(unsigned char type) {
|
|||||||
sock->serial = ++socket_serial;
|
sock->serial = ++socket_serial;
|
||||||
sock->tcp_sock.seq_number = 0;
|
sock->tcp_sock.seq_number = 0;
|
||||||
sock->tcp_sock.ack_number = 0;
|
sock->tcp_sock.ack_number = 0;
|
||||||
sock->ether = (void *)0;
|
sock->ether = (void *)0;
|
||||||
ptr_vector_append(&sockets, sock);
|
ptr_vector_append(&sockets, sock);
|
||||||
ptr_vector_append(¤t_task->sockets, sock);
|
ptr_vector_append(¤t_task->sockets, sock);
|
||||||
} else if (type == 17) {
|
} else if (type == 17) {
|
||||||
|
2
socket.h
2
socket.h
@ -16,8 +16,6 @@
|
|||||||
#define SOCKET_STATUS_FINACK 7
|
#define SOCKET_STATUS_FINACK 7
|
||||||
#define SOCKET_STATUS_FINACK2 8
|
#define SOCKET_STATUS_FINACK2 8
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct socket_t {
|
struct socket_t {
|
||||||
struct ether_t *ether;
|
struct ether_t *ether;
|
||||||
unsigned char status;
|
unsigned char status;
|
||||||
|
@ -161,7 +161,7 @@ void syscall_isr(struct regs *r) {
|
|||||||
break;
|
break;
|
||||||
case SYS_STATFS:
|
case SYS_STATFS:
|
||||||
r->eax = vfs_statfs((char *)r->ebx, (struct statfs *)r->ecx);
|
r->eax = vfs_statfs((char *)r->ebx, (struct statfs *)r->ecx);
|
||||||
break;
|
break;
|
||||||
case SYS_FSTAT:
|
case SYS_FSTAT:
|
||||||
r->eax = vfs_fstat((int)r->ebx, (struct stat *)r->ecx);
|
r->eax = vfs_fstat((int)r->ebx, (struct stat *)r->ecx);
|
||||||
break;
|
break;
|
||||||
|
15
tcp.c
15
tcp.c
@ -105,7 +105,7 @@ int tcp_process_socket(struct socket_t *sock) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tcp_ack(struct socket_t *sock, struct tcp_header_t* packet, int isSynAck, unsigned int len) {
|
static int tcp_ack(struct socket_t *sock, struct tcp_header_t *packet, int isSynAck, unsigned int len) {
|
||||||
int retval = 1;
|
int retval = 1;
|
||||||
int send_thrice = 0;
|
int send_thrice = 0;
|
||||||
if (sock->tcp_sock.ack_number != 0 && !isSynAck && sock->tcp_sock.ack_number != htonl(packet->seq_number)) {
|
if (sock->tcp_sock.ack_number != 0 && !isSynAck && sock->tcp_sock.ack_number != htonl(packet->seq_number)) {
|
||||||
@ -130,7 +130,6 @@ static int tcp_ack(struct socket_t *sock, struct tcp_header_t* packet, int isSyn
|
|||||||
tcp_send(sock->ether, sock, TCP_FLAGS_ACK, (void *)0, 0, send_thrice);
|
tcp_send(sock->ether, sock, TCP_FLAGS_ACK, (void *)0, 0, send_thrice);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tcp_process_packet(struct ether_t *ether, unsigned int dest, unsigned int src, struct tcp_header_t *packet, unsigned int len) {
|
void tcp_process_packet(struct ether_t *ether, unsigned int dest, unsigned int src, struct tcp_header_t *packet, unsigned int len) {
|
||||||
@ -140,15 +139,15 @@ void tcp_process_packet(struct ether_t *ether, unsigned int dest, unsigned int s
|
|||||||
struct socket_t *sock = socket_find(htons(packet->dest_port), htons(packet->source_port), htonl(src), htonl(packet->seq_number), htons(packet->flags));
|
struct socket_t *sock = socket_find(htons(packet->dest_port), htons(packet->source_port), htonl(src), htonl(packet->seq_number), htons(packet->flags));
|
||||||
|
|
||||||
if (sock != (void *)0) {
|
if (sock != (void *)0) {
|
||||||
|
|
||||||
sched_tcp_read_wakeup(sock);
|
sched_tcp_read_wakeup(sock);
|
||||||
// if awaiting syn & ack
|
// if awaiting syn & ack
|
||||||
if (sock->status == SOCKET_STATUS_OPENED) {
|
if (sock->status == SOCKET_STATUS_OPENED) {
|
||||||
if ((htons(packet->flags) & TCP_FLAGS_SYN) && (htons(packet->flags) & TCP_FLAGS_ACK)) {
|
if ((htons(packet->flags) & TCP_FLAGS_SYN) && (htons(packet->flags) & TCP_FLAGS_ACK)) {
|
||||||
tcp_ack(sock, packet, 1, 1);
|
tcp_ack(sock, packet, 1, 1);
|
||||||
if (sock->status == SOCKET_STATUS_CLOSE) {
|
if (sock->status == SOCKET_STATUS_CLOSE) {
|
||||||
socket_doclose(sock);
|
socket_doclose(sock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else if (htons(packet->flags) & TCP_FLAGS_RES) {
|
} else if (htons(packet->flags) & TCP_FLAGS_RES) {
|
||||||
sock->status = SOCKET_STATUS_CLOSE;
|
sock->status = SOCKET_STATUS_CLOSE;
|
||||||
@ -169,21 +168,21 @@ void tcp_process_packet(struct ether_t *ether, unsigned int dest, unsigned int s
|
|||||||
data->data = (unsigned char *)malloc(data->len);
|
data->data = (unsigned char *)malloc(data->len);
|
||||||
memcpy(data->data, packet->payload, data->len);
|
memcpy(data->data, packet->payload, data->len);
|
||||||
data->flags = packet->flags;
|
data->flags = packet->flags;
|
||||||
tcp_sock_add_packet(sock, data);
|
tcp_sock_add_packet(sock, data);
|
||||||
}
|
}
|
||||||
if (htons(packet->flags) & TCP_FLAGS_FIN) {
|
if (htons(packet->flags) & TCP_FLAGS_FIN) {
|
||||||
tcp_ack(sock, packet, 0, 0);
|
tcp_ack(sock, packet, 0, 0);
|
||||||
if (sock->status == SOCKET_STATUS_CLOSE) {
|
if (sock->status == SOCKET_STATUS_CLOSE) {
|
||||||
socket_doclose(sock);
|
socket_doclose(sock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (htons(packet->flags) & TCP_FLAGS_FIN) {
|
} else if (htons(packet->flags) & TCP_FLAGS_FIN) {
|
||||||
tcp_ack(sock, packet, 0, 0);
|
tcp_ack(sock, packet, 0, 0);
|
||||||
if (sock->status == SOCKET_STATUS_CLOSE) {
|
if (sock->status == SOCKET_STATUS_CLOSE) {
|
||||||
socket_doclose(sock);
|
socket_doclose(sock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sock->send_payload = 1;
|
sock->send_payload = 1;
|
||||||
tcp_process_socket(sock);
|
tcp_process_socket(sock);
|
||||||
|
1
tcp.h
1
tcp.h
@ -20,7 +20,6 @@ struct tcp_socket_t {
|
|||||||
unsigned int ack_number;
|
unsigned int ack_number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct tcp_data_t {
|
struct tcp_data_t {
|
||||||
unsigned char *data;
|
unsigned char *data;
|
||||||
unsigned int len;
|
unsigned int len;
|
||||||
|
92
vfs.c
92
vfs.c
@ -1097,55 +1097,53 @@ int vfs_statfs_dev(struct vfs_device_t *device, struct statfs *sfs) {
|
|||||||
memset(sfs, 0, sizeof(struct statfs));
|
memset(sfs, 0, sizeof(struct statfs));
|
||||||
|
|
||||||
sfs->fs_type = device->fs;
|
sfs->fs_type = device->fs;
|
||||||
|
|
||||||
switch (device->fs) {
|
switch (device->fs) {
|
||||||
case 3:
|
case 3: {
|
||||||
{
|
struct minix_data *mdata = (struct minix_data *)device->fs_data;
|
||||||
struct minix_data *mdata = (struct minix_data *)device->fs_data;
|
sfs->total_inodes = mdata->sb.s_ninodes;
|
||||||
sfs->total_inodes = mdata->sb.s_ninodes;
|
sfs->total_blocks = mdata->sb.s_zones;
|
||||||
sfs->total_blocks = mdata->sb.s_zones;
|
sfs->blocksize = mdata->sb.s_blocksize;
|
||||||
sfs->blocksize = mdata->sb.s_blocksize;
|
|
||||||
|
|
||||||
sfs->free_inodes = 0;
|
sfs->free_inodes = 0;
|
||||||
|
|
||||||
for (int i = 0; i < (mdata->sb.s_imap_blocks * mdata->sb.s_blocksize) / 4; i++) {
|
|
||||||
if (mdata->s_imap[i] == 0xffffffff) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (mdata->s_imap[i] == 0) {
|
|
||||||
sfs->free_inodes += 32;
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
for (int x = 0; x < 32; x++) {
|
|
||||||
if (!(mdata->s_imap[i] & (1 << x))) {
|
|
||||||
sfs->free_inodes++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sfs->free_blocks = 0;
|
|
||||||
|
|
||||||
for (int i = 0; i < (mdata->sb.s_zmap_blocks * mdata->sb.s_blocksize) / 4; i++) {
|
|
||||||
if (mdata->s_zmap[i] == 0xffffffff) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (mdata->s_zmap[i] == 0) {
|
|
||||||
sfs->free_blocks += 32;
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
for (int x = 0; x < 32; x++) {
|
|
||||||
if (!(mdata->s_zmap[i] & (1 << x))) {
|
|
||||||
sfs->free_blocks++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
for (int i = 0; i < (mdata->sb.s_imap_blocks * mdata->sb.s_blocksize) / 4; i++) {
|
||||||
|
if (mdata->s_imap[i] == 0xffffffff) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
break;
|
if (mdata->s_imap[i] == 0) {
|
||||||
default:
|
sfs->free_inodes += 32;
|
||||||
return -1;
|
continue;
|
||||||
|
} else {
|
||||||
|
for (int x = 0; x < 32; x++) {
|
||||||
|
if (!(mdata->s_imap[i] & (1 << x))) {
|
||||||
|
sfs->free_inodes++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sfs->free_blocks = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < (mdata->sb.s_zmap_blocks * mdata->sb.s_blocksize) / 4; i++) {
|
||||||
|
if (mdata->s_zmap[i] == 0xffffffff) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (mdata->s_zmap[i] == 0) {
|
||||||
|
sfs->free_blocks += 32;
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
for (int x = 0; x < 32; x++) {
|
||||||
|
if (!(mdata->s_zmap[i] & (1 << x))) {
|
||||||
|
sfs->free_blocks++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} break;
|
||||||
|
default:
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1190,9 +1188,6 @@ int vfs_statfs(char *path, struct statfs *sfs) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int vfs_fstat(int fileno, struct stat *s) {
|
int vfs_fstat(int fileno, struct stat *s) {
|
||||||
if (fileno < 0 || fileno >= 256) {
|
if (fileno < 0 || fileno >= 256) {
|
||||||
return -1;
|
return -1;
|
||||||
@ -1530,4 +1525,3 @@ int vfs_dup(int fno) {
|
|||||||
|
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user