/*  get_size.c 
    diet -Os gcc -Wall -W -s -o get_size get_size.c -lowfat
*/

#include "buffer.h"

struct test_str {
  char x;
  char y[5];
  uid_t uid;
  unsigned long u;
};


#define XX(a,b) \
  buffer_puts(buffer_1, a); \
  buffer_putulong(buffer_1, b); \
  buffer_puts(buffer_1, "\n")

int main() {
  char ch_buf[13];
  long long ll_buf[3];
  XX("char:\t", sizeof(char));
  XX("short:\t", sizeof(short));
  XX("int:\t", sizeof(int));
  XX("long:\t", sizeof(long));
  XX("long long:\t", sizeof(long long));
  XX("float:\t", sizeof(float));
  XX("double:\t", sizeof(double));

  XX("uint32_t:\t", sizeof(uint32_t));
  XX("uint64_t:\t", sizeof(uint64_t));
  XX("size_t:\t", sizeof(size_t));	/* strlen(3) */
  XX("ssize_t:\t", sizeof(ssize_t));	/* write(2) */
  XX("pid_t:\t", sizeof(pid_t));
  XX("uid_t:\t", sizeof(uid_t));
  XX("gid_t:\t", sizeof(gid_t));	/* setgoups(2), setgoups(2) */
  XX("mode_t:\t", sizeof(mode_t));	/* chmod(2) */

  XX("buffer:\t", sizeof(struct buffer));
  XX("ch_buf:\t", sizeof(ch_buf));
  XX("ll_buf:\t", sizeof(ll_buf));
  XX("test_str:\t", sizeof(struct test_str));

  buffer_flush(buffer_1);
  return 0;
}

