Main Page | Directories | File List | Globals

frb.c

Go to the documentation of this file.
00001 /*
00002  * kernel_net/net_core/frb.c
00003  *
00004  * Copyright (c) 2003-2005 Lukasz Dembinski <dembol@nasa.com.pl>
00005  * All Rights Reserved
00006  * 
00007  * Date:        2005/06
00008  * Author:      Lukasz Dembinski
00009  * Info:        frb.c core file
00010  * Contact:     mailto: <dembol@nasa.com.pl>
00011  *
00012  */
00013 
00014 #include <agnix/agnix.h>
00015 #include <agnix/net/net.h>
00016 #include <agnix/memory.h>
00017 
00018 #define MOD_NAME        "NET: "
00019 
00020 u8 *frb_data(struct frb_s *frb)
00021 {
00022     return (frb->frb_data + frb->frb_offset);
00023 }
00024 
00025 u8 *frb_push(struct frb_s *frb, int size)
00026 {
00027     frb->frb_offset += size;
00028     
00029     return frb_data(frb);
00030 }
00031 
00032 u8 *frb_pop(struct frb_s *frb, int size)
00033 {
00034     if (frb->frb_offset < size)
00035         return NULL;
00036         
00037     frb->frb_offset -= size;
00038     frb->frb_len    += size;
00039     
00040     return frb_data(frb);
00041 }
00042 
00043 int frb_create(struct frb_s *frb)
00044 {
00045     frb->frb_len     = 0;
00046     frb->frb_offset  = 0;
00047     frb->frb_data    = (u8 *)get_free_pages(0);
00048     
00049     return 0;
00050 }
00051 
00052 int frb_destroy(struct frb_s *frb)
00053 {
00054     put_free_pages((u32)frb->frb_data, 0);
00055     
00056     return 0;
00057 }
00058 
00059 int frb_reverse(struct frb_s *frb)
00060 {
00061     frb->frb_offset = 1000;
00062     
00063     return 0;
00064 }
Dokumentacje wygenerowano programem Doxygen 1.4.2 dla projektu Agnix