OSDN Git Service

android-2.1_r1 snapshot
authorThe Android Open Source Project <initial-contribution@android.com>
Tue, 12 Jan 2010 23:18:05 +0000 (15:18 -0800)
committerThe Android Open Source Project <initial-contribution@android.com>
Tue, 12 Jan 2010 23:18:05 +0000 (15:18 -0800)
libc/kernel/common/linux/msm_kgsl.h
libc/zoneinfo/zoneinfo.dat
libc/zoneinfo/zoneinfo.idx
libc/zoneinfo/zoneinfo.version
linker/linker.c
linker/linker.h

index d717e57..740ba60 100644 (file)
@@ -139,6 +139,8 @@ struct kgsl_drawctxt_destroy {
 struct kgsl_sharedmem_from_pmem {
  int pmem_fd;
  unsigned int gpuaddr;
+ unsigned int len;
+ unsigned int offset;
 };
 
 #define IOCTL_KGSL_SHAREDMEM_FROM_PMEM   _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem)
@@ -188,5 +190,12 @@ struct kgsl_sharedmem_from_vmalloc {
 
 #define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE   _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free)
 
+struct kgsl_drawctxt_set_bin_base_offset {
+ unsigned int drawctxt_id;
+ unsigned int offset;
+};
+
+#define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET   _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset)
+
 #endif
 
index e5bf25a..c9f0b6f 100644 (file)
Binary files a/libc/zoneinfo/zoneinfo.dat and b/libc/zoneinfo/zoneinfo.dat differ
index 78a3650..cb560db 100644 (file)
Binary files a/libc/zoneinfo/zoneinfo.idx and b/libc/zoneinfo/zoneinfo.idx differ
index 5090b11..80b5d00 100644 (file)
@@ -1294,6 +1294,13 @@ static int reloc_library(soinfo *si, Elf32_Rel *rel, unsigned count)
                        reloc, sym_addr, sym_name);
             *((unsigned*)reloc) += sym_addr;
             break;
+        case R_ARM_REL32:
+            COUNT_RELOC(RELOC_RELATIVE);
+            MARK(rel->r_offset);
+            TRACE_TYPE(RELO, "%5d RELO REL32 %08x <- %08x - %08x %s\n", pid,
+                       reloc, sym_addr, rel->r_offset, sym_name);
+            *((unsigned*)reloc) += sym_addr - rel->r_offset;
+            break;
 #elif defined(ANDROID_X86_LINKER)
         case R_386_JUMP_SLOT:
             COUNT_RELOC(RELOC_ABSOLUTE);
index d289c81..551cf93 100644 (file)
@@ -159,6 +159,13 @@ extern soinfo libdl_info;
 #define R_ARM_JUMP_SLOT  22
 #define R_ARM_RELATIVE   23
 
+/* According to the AAPCS specification, we only
+ * need the above relocations. However, in practice,
+ * the following ones turn up from time to time.
+ */
+#define R_ARM_ABS32      2
+#define R_ARM_REL32      3
+
 #elif defined(ANDROID_X86_LINKER)
 
 #define R_386_32         1
@@ -194,12 +201,6 @@ extern soinfo libdl_info;
 #define DT_PREINIT_ARRAYSZ 33
 #endif
 
-/* in theory we only need the above relative relocations,
-   but in practice the following one turns up from time
-   to time.  fushigi na.
-*/
-#define R_ARM_ABS32      2
-
 soinfo *find_library(const char *name);
 unsigned unload_library(soinfo *si);
 Elf32_Sym *lookup_in_library(soinfo *si, const char *name);